OSDN Git Service

V309
authorjean-michel-thoorens <jeanmichel.thoorens@gmail.com>
Fri, 31 Dec 2021 10:15:22 +0000 (11:15 +0100)
committerjean-michel-thoorens <jeanmichel.thoorens@gmail.com>
Fri, 31 Dec 2021 10:15:22 +0000 (11:15 +0100)
256 files changed:
ADDON/CORE_ANS.asm
ADDON/FixPoint.asm
ADDON/SD_TOOLS.asm
ADDON/UTILITY.asm
FastForth.pdf [deleted file]
FastForthWords.txt [deleted file]
FastForth_at_work.pdf [deleted file]
MSP430-FORTH/BOOT.f
MSP430-FORTH/CHNGBAUD.f
MSP430-FORTH/CORDIC.f
MSP430-FORTH/CORETEST.4TH
MSP430-FORTH/CORE_ANS.f
MSP430-FORTH/CopySourceFileToTarget_SD_Card.bat.lnk
MSP430-FORTH/DOUBLE.f
MSP430-FORTH/FF_SPECS.f
MSP430-FORTH/FixPoint.f
MSP430-FORTH/LAST.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/BOOT.4th [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/CHNGBAUD.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/CORDIC.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/CORE_ANS.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/DOUBLE.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/FF_SPECS.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/FIXPOINT.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/LAST.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/PROG100k.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/RC5toLCD.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/RTC.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/SD_TEST.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/SD_TOOLS.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/TESTASM.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/TSTWORDS.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/UARTI2CS.4TH [deleted file]
MSP430-FORTH/MSP_EXP430FR5994/UTILITY.4TH [deleted file]
MSP430-FORTH/PROG100k.f [deleted file]
MSP430-FORTH/PROG10K.f [new file with mode: 0644]
MSP430-FORTH/PreprocessSourceFile.bat.lnk
MSP430-FORTH/RC5toLCD.f
MSP430-FORTH/RTC.f
MSP430-FORTH/SD_430FR5994/BOOT.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/CHNGBAUD.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/CORDIC.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/CORETEST.4TH [moved from MSP430-FORTH/MSP_EXP430FR5994/CORETEST.4TH with 67% similarity]
MSP430-FORTH/SD_430FR5994/CORE_ANS.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/DOUBLE.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/FF_SPECS.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/FIXPOINT.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/LAST.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/MISC/TESTASM.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/PID.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/PROG10k.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/RC5toLCD.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/RTC.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/SD_TEST.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/SD_TOOLS.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/TESTXASM.4TH [moved from MSP430-FORTH/MSP_EXP430FR5994/TESTXASM.4TH with 50% similarity]
MSP430-FORTH/SD_430FR5994/TSTWORDS.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/UARTI2CS.4TH [new file with mode: 0644]
MSP430-FORTH/SD_430FR5994/UTILITY.4TH [new file with mode: 0644]
MSP430-FORTH/SD_TEST.f
MSP430-FORTH/SD_TOOLS.f
MSP430-FORTH/SendSourceFileToTarget.bat.lnk
MSP430-FORTH/TESTASM.F
MSP430-FORTH/TESTXASM.F
MSP430-FORTH/TSTWORDS.4TH [deleted file]
MSP430-FORTH/TSTWORDS.f [new file with mode: 0644]
MSP430-FORTH/UARTI2CS.f
MSP430-FORTH/UTILITY.f
README.md
SciTEDirectory.properties
binaries/CHIPSTICK_FR2433_16MHz_115200.txt [new file with mode: 0644]
binaries/CHIPSTICK_FR2433_16MHz_4MBds.txt [new file with mode: 0644]
binaries/CHIPSTICK_FR2433_16MHz_I2C.txt
binaries/CHIPSTICK_FR2433_16MHz_UART.txt [deleted file]
binaries/CHIPSTICK_FR2433_1MHz_115200.txt [new file with mode: 0644]
binaries/CHIPSTICK_FR2433_1MHz_I2C.txt
binaries/CHIPSTICK_FR2433_1MHz_UART.txt [deleted file]
binaries/CHIPSTICK_FR2433_8MHz_115200.txt [new file with mode: 0644]
binaries/CHIPSTICK_FR2433_8MHz_I2C.txt
binaries/CHIPSTICK_FR2433_8MHz_UART.txt [deleted file]
binaries/LP_MSP430FR2476_16MHz_115200.txt [new file with mode: 0644]
binaries/LP_MSP430FR2476_16MHz_4MBds.txt [new file with mode: 0644]
binaries/LP_MSP430FR2476_16MHz_I2C.txt
binaries/LP_MSP430FR2476_16MHz_UART.txt [deleted file]
binaries/LP_MSP430FR2476_1MHz_115200.txt [new file with mode: 0644]
binaries/LP_MSP430FR2476_1MHz_I2C.txt
binaries/LP_MSP430FR2476_1MHz_UART.txt [deleted file]
binaries/LP_MSP430FR2476_8MHz_115200.txt [new file with mode: 0644]
binaries/LP_MSP430FR2476_8MHz_I2C.txt
binaries/LP_MSP430FR2476_8MHz_UART.txt [deleted file]
binaries/Log/log.txt [deleted file]
binaries/MSP_EXP430FR2355_16MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2355_16MHz_4MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2355_16MHz_I2C.txt
binaries/MSP_EXP430FR2355_16MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR2355_1MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2355_1MHz_I2C.txt
binaries/MSP_EXP430FR2355_1MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR2355_24MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2355_24MHz_6MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2355_24MHz_I2C.txt
binaries/MSP_EXP430FR2355_24MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR2355_8MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2355_8MHz_I2C.txt
binaries/MSP_EXP430FR2355_8MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR2433_16MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2433_16MHz_4MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2433_16MHz_I2C.txt
binaries/MSP_EXP430FR2433_16MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR2433_1MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2433_1MHz_I2C.txt
binaries/MSP_EXP430FR2433_1MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR2433_8MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR2433_8MHz_I2C.txt
binaries/MSP_EXP430FR2433_8MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR4133_16MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR4133_16MHz_4MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR4133_16MHz_I2C.txt
binaries/MSP_EXP430FR4133_16MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR4133_1MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR4133_1MHz_I2C.txt
binaries/MSP_EXP430FR4133_1MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR4133_8MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR4133_8MHz_I2C.txt
binaries/MSP_EXP430FR4133_8MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5739_16MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5739_16MHz_4MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5739_16MHz_I2C.txt
binaries/MSP_EXP430FR5739_16MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5739_1MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5739_1MHz_I2C.txt
binaries/MSP_EXP430FR5739_1MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5739_24MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5739_24MHz_6MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5739_24MHz_I2C.txt
binaries/MSP_EXP430FR5739_24MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5739_8MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5739_8MHz_I2C.txt
binaries/MSP_EXP430FR5739_8MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5969_16MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5969_16MHz_4MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5969_16MHz_I2C.txt
binaries/MSP_EXP430FR5969_16MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5969_1MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5969_1MHz_I2C.txt
binaries/MSP_EXP430FR5969_1MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5969_8MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5969_8MHz_I2C.txt
binaries/MSP_EXP430FR5969_8MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5994_16MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5994_16MHz_4MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5994_16MHz_I2C.txt
binaries/MSP_EXP430FR5994_16MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5994_1MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5994_1MHz_I2C.txt
binaries/MSP_EXP430FR5994_1MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR5994_8MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR5994_8MHz_I2C.txt
binaries/MSP_EXP430FR5994_8MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR6989_16MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR6989_16MHz_4MBds.txt [new file with mode: 0644]
binaries/MSP_EXP430FR6989_16MHz_I2C.txt
binaries/MSP_EXP430FR6989_16MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR6989_1MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR6989_1MHz_I2C.txt
binaries/MSP_EXP430FR6989_1MHz_UART.txt [deleted file]
binaries/MSP_EXP430FR6989_8MHz_115200.txt [new file with mode: 0644]
binaries/MSP_EXP430FR6989_8MHz_I2C.txt
binaries/MSP_EXP430FR6989_8MHz_UART.txt [deleted file]
config/BSL_prog.bat
config/Command Prompt.lnk [new file with mode: 0644]
config/CopySourceFileToTarget_SD_Card.bat
config/CopyTo_SD_Card.bat
config/FET_prog.bat
config/INFO.txt [new file with mode: 0644]
config/MSP430read.bat
config/MSP430readINFO.bat [new file with mode: 0644]
config/MSP430readMAIN.bat [new file with mode: 0644]
config/MSP430readRAM.bat [new file with mode: 0644]
config/Preprocess.bat
config/PreprocessSourceFile.bat
config/SciTEUser.properties [new file with mode: 0644]
config/Select.bat
config/Send [new file with mode: 0644]
config/SendFile.ttl
config/SendSource
config/SendSource.bat
config/SendSourceFileToTarget.bat
config/SendToSD.ttl
config/UNIFLASH_prog.bat [new file with mode: 0644]
config/asm.properties
config/build
config/build.bat
config/forth.properties
config/others.properties
config/prog
config/target_MAIN.txt [new file with mode: 0644]
forthMSP430FR.asm
forthMSP430FR_ASM.asm
forthMSP430FR_CONDCOMP.asm [deleted file]
forthMSP430FR_EXTD_ASM.asm
forthMSP430FR_SD_ACCEPT.asm
forthMSP430FR_SD_INIT.asm
forthMSP430FR_SD_LOAD.asm
forthMSP430FR_SD_LowLvl.asm
forthMSP430FR_SD_RW.asm
forthMSP430FR_TERM_HALF.asm
forthMSP430FR_TERM_I2C.asm
forthMSP430FR_TERM_UART.asm
inc/CHIPSTICK_FR2433.asm
inc/CHIPSTICK_FR2433.pat
inc/FastForthREGtoTI.pat
inc/LP_MSP430FR2476.asm
inc/LP_MSP430FR2476.pat
inc/MSP430FR2355.pat
inc/MSP430FR2433.inc
inc/MSP430FR2433.pat
inc/MSP430FR2476.inc
inc/MSP430FR2476.pat
inc/MSP430FR2633.pat
inc/MSP430FR4133.inc
inc/MSP430FR4133.pat
inc/MSP430FR5738.inc
inc/MSP430FR5738.pat
inc/MSP430FR5739.inc
inc/MSP430FR5739.pat
inc/MSP430FR5948.inc
inc/MSP430FR5948.pat
inc/MSP430FR5969.inc
inc/MSP430FR5969.pat
inc/MSP430FR5972.inc
inc/MSP430FR5972.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_EXP430FR5972.asm
inc/MSP_EXP430FR5972.pat
inc/MSP_EXP430FR5994.asm
inc/MSP_EXP430FR5994.pat
inc/MSP_EXP430FR6989.asm
inc/MSP_EXP430FR6989.pat
inc/TERMINALBAUDRATE.inc
inc/TargetInit.asm
inc/ThingsInFirst.inc
inc/ThingsInLast.inc
prog/SciTEUser.properties [new file with mode: 0644]
prog/TERATERM.INI [new file with mode: 0644]

index d311d55..5e9a9b8 100644 (file)
     MOV @IP+,PC
 
 ;-------------------------------------------------------------------------------
+; COMPARAISON OPERATIONS
+;-------------------------------------------------------------------------------
+            FORTHWORD "0<"
+; https://forth-standard.org/standard/core/Zeroless
+; 0<     n -- flag      true if TOS negative
+            ADD TOS,TOS     ;1 set carry if TOS negative
+            SUBC TOS,TOS    ;1 TOS=-1 if carry was clear
+EQUALTRUE   XOR #-1,TOS     ;1 TOS=-1 if carry was set
+            MOV @IP+,PC     ;
+
+; https://forth-standard.org/standard/core/ZeroEqual
+; 0=     n/u -- flag    return true if TOS=0
+            FORTHWORD "0="
+            SUB #1,TOS      ; borrow (clear cy) if TOS was 0
+            SUBC TOS,TOS    ; TOS=-1 if borrow was set
+            MOV @IP+,PC
+
+            FORTHWORD "0<>"
+; https://forth-standard.org/standard/core/Zerone
+; 0<>     n/u -- flag    return true if TOS<>0
+            SUB #1,TOS      ; 1 borrow (clear cy) if TOS was 0
+            SUBC TOS,TOS    ; 1 TOS=-1 if borrow was set
+            XOR #-1,TOS     ; 1
+            MOV @IP+,PC
+
+            FORTHWORD "="
+; https://forth-standard.org/standard/core/Equal
+; =      x1 x2 -- flag         test x1=x2
+EQUAL       SUB @PSP+,TOS   ;2
+            JZ EQUALTRUE    ;2 flag Z will be = 0
+            AND #0,TOS      ;1 flag Z = 1
+            MOV @IP+,PC     ;4
+
+        .IFNDEF LESS
+            FORTHWORD "<"
+;https://forth-standard.org/standard/core/less
+;C <      n1 n2 -- flag        test n1<n2, signed
+LESS        SUB @PSP+,TOS   ;1 TOS=n2-n1
+            JZ LESSEND      ;2 flag Z = 1
+            JL TOSFALSE     ;2 signed jump
+TOSTRUE     MOV #-1,TOS     ;1 flag Z = 0
+LESSEND     MOV @IP+,PC     ;4
+        .ENDIF
+
+            FORTHWORD ">"
+;https://forth-standard.org/standard/core/more
+;C >     n1 n2 -- flag         test n1>n2, signed
+MORE        SUB @PSP+,TOS   ;2 TOS=n2-n1
+            JL TOSTRUE      ;2 --> +5
+TOSFALSE    AND #0,TOS      ;1 flag Z = 1
+            MOV @IP+,PC     ;4
+
+        .IFNDEF ULESS
+; https://forth-standard.org/standard/core/Uless
+; U<    u1 u2 -- flag       test u1<u2, unsigned
+            FORTHWORD "U<"
+ULESS       SUB @PSP+,TOS   ; 2 u2-u1
+            JZ  UTOSEND
+            JNC UTOSFALSE
+UTOSTRUE    MOV #-1,TOS     ;1 flag Z = 0
+UTOSEND     MOV @IP+,PC     ;4
+
+; https://forth-standard.org/standard/core/Umore
+; U>     n1 n2 -- flag
+            FORTHWORD "U>"
+            SUB @PSP+,TOS   ; 2
+            JNC UTOSTRUE    ; 2 flag = true, Z = 0
+UTOSFALSE   AND #0,TOS      ;1 flag Z = 1
+            MOV @IP+,PC     ;4
+        .ENDIF
+
+;-------------------------------------------------------------------------------
+; STACK OPERATIONS
+;-------------------------------------------------------------------------------
+        .IFNDEF QDUP
+; https://forth-standard.org/standard/core/DUP
+; DUP      x -- x x      duplicate top of stack
+            FORTHWORD "DUP"
+QDUPNEXT    SUB #2,PSP      ; 2  push old TOS..
+            MOV TOS,0(PSP)  ; 3  ..onto stack
+QDUPEND     MOV @IP+,PC     ; 4
+
+; https://forth-standard.org/standard/core/qDUP
+; ?DUP     x -- 0 | x x    DUP if nonzero
+            FORTHWORD "?DUP"
+QDUP        CMP #0,TOS
+            JZ QDUPEND
+            JNZ QDUPNEXT
+        .ENDIF
+
+; https://forth-standard.org/standard/core/SWAP
+; SWAP     x1 x2 -- x2 x1    swap top two items
+            FORTHWORD "SWAP"
+            MOV @PSP,W      ; 2
+            MOV TOS,0(PSP)  ; 3
+            MOV W,TOS       ; 1
+            MOV @IP+,PC     ; 4
+
+            FORTHWORD "DROP"
+; https://forth-standard.org/standard/core/DROP
+; DROP     x --          drop top of stack
+            MOV @PSP+,TOS   ; 2
+            MOV @IP+,PC     ; 4
+
+        .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
+            MOV @IP+,PC               ; 4
+        .ENDIF
+
+            FORTHWORD "NIP"
+; https://forth-standard.org/standard/core/NIP
+; NIP      x1 x2 -- x2         Drop the first item below the top of stack
+            ADD #2,PSP      ; 1
+            MOV @IP+,PC     ; 4
+
+            FORTHWORD "ROT"
+;https://forth-standard.org/standard/core/ROT
+;C ROT    x1 x2 x3 -- x2 x3 x1
+            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     ; 4
+
+; https://forth-standard.org/standard/core/Rfrom
+; R>    -- x    R: x --   pop from return stack
+            FORTHWORD "R>"
+            SUB #2,PSP      ; 1
+            MOV TOS,0(PSP)  ; 3
+            MOV @RSP+,TOS   ; 2
+            MOV @IP+,PC     ; 4
+
+            FORTHWORD "R@"
+;https://forth-standard.org/standard/core/RFetch
+;C R@    -- x     R: x -- x   fetch from rtn stk
+            SUB #2,PSP
+            MOV TOS,0(PSP)
+            MOV @RSP,TOS
+            MOV @IP+,PC
+
+    .IFNDEF TOR
+; https://forth-standard.org/standard/core/toR
+; >R    x --   R: -- x   push to return stack
+            FORTHWORD ">R"
+TOR         PUSH TOS
+            MOV @PSP+,TOS
+            MOV @IP+,PC
+    .ENDIF
+
+; https://forth-standard.org/standard/core/TUCK
+; TUCK  ( x1 x2 -- x2 x1 x2 )
+            FORTHWORD "TUCK"
+            mDOCOL
+            .word SWAP,OVER,EXIT
+
+; https://forth-standard.org/standard/core/DEPTH
+; DEPTH    -- +n        number of items on stack, must leave 0 if stack empty
+            FORTHWORD "DEPTH"
+            MOV #DEPTH,PC
+
+;-------------------------------------------------------------------------------
 ; RETURN from high level word
 ;-------------------------------------------------------------------------------
             FORTHWORD "EXIT"
 ; https://forth-standard.org/standard/core/EXIT
-; EXIT     --      exit a colon definition; CALL #EXIT performs ASMtoFORTH (10 cycles)
+; EXIT     --      exit a colon definition; CALL #EXIT performs mASM2FORTH (10 cycles)
 ;                                           JMP #EXIT performs EXIT
             MOV @RSP+,IP    ; 2 pop previous IP (or next PC) from return stack
             MOV @IP+,PC     ; 4 = NEXT
                             ; 6 (ITC-2)
 
+        .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
-            JMP EMIT                ;17~  23~
+            MOV #EMIT,PC            ;17~  23~
 
 ;https://forth-standard.org/standard/core/SPACES
 ;C SPACES   n --            output n spaces
@@ -30,13 +197,136 @@ SPACES      CMP #0,TOS
             PUSH IP
             MOV #SPACESNEXT,IP
             JMP SPACE               ;25~
-SPACESNEXT  .word   $+2
+SPACESNEXT  mNEXTADR
             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
-            MOV @IP+,PC                   ;
+            MOV @IP+,PC             ;
+        .ENDIF
+
+        .IFNDEF CR
+            FORTHWORD "CR"
+; https://forth-standard.org/standard/core/CR
+; CR      --               send CR to the output device
+CR          MOV @PC+,PC
+            .word BODYCR
+BODYCR      mDOCOL                  ;  send CR+LF to the default output device
+            .word   LIT,0Dh,EMIT
+            .word   LIT,0Ah,EMIT
+            .word   EXIT
+        .ENDIF
+
+;-------------------------------------------------------------------------------
+; ARITHMETIC OPERATIONS
+;-------------------------------------------------------------------------------
+        .IFNDEF ANDD
+;https://forth-standard.org/standard/core/AND
+;C AND    x1 x2 -- x3           logical AND
+            FORTHWORD "AND"
+ANDD        AND @PSP+,TOS
+            MOV @IP+,PC
+        .ENDIF
+
+;https://forth-standard.org/standard/core/OR
+;C OR     x1 x2 -- x3           logical OR
+            FORTHWORD "OR"
+ORR         BIS @PSP+,TOS
+            MOV @IP+,PC
+
+;https://forth-standard.org/standard/core/XOR
+;C XOR    x1 x2 -- x3           logical XOR
+            FORTHWORD "XOR"
+XORR        XOR @PSP+,TOS
+            MOV @IP+,PC
+
+;https://forth-standard.org/standard/core/INVERT
+;C INVERT   x1 -- x2            bitwise inversion
+            FORTHWORD "INVERT"
+            XOR #-1,TOS
+            MOV @IP+,PC
+
+;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
+            SUB #1,TOS
+            JNZ LSH_1
+LSH_X       MOV W,TOS
+            MOV @IP+,PC
+
+;https://forth-standard.org/standard/core/RSHIFT
+;C RSHIFT  x1 u -- x2    logical R shift u places
+            FORTHWORD "RSHIFT"
+RSHIFT      MOV @PSP+,W
+            AND #1Fh,TOS        ; no need to shift more than 16
+            JZ RSH_X
+RSH_1       BIC #1,SR           ; CLRC
+            RRC W
+            SUB #1,TOS
+            JNZ RSH_1
+RSH_X       MOV W,TOS
+            MOV @IP+,PC
+
+;https://forth-standard.org/standard/core/TwoTimes
+;C 2*      x1 -- x2         arithmetic left shift
+            FORTHWORD "2*"
+TWOTIMES    ADD TOS,TOS
+            MOV @IP+,PC
+
+;https://forth-standard.org/standard/core/TwoDiv
+;C 2/      x1 -- x2        arithmetic right shift
+            FORTHWORD "2/"
+TWODIV      RRA TOS
+            MOV @IP+,PC
+
+        .IFNDEF MAX
+;https://forth-standard.org/standard/core/MAX
+;C MAX    n1 n2 -- n3       signed maximum
+            FORTHWORD "MAX"
+MAX         CMP @PSP,TOS    ; n2-n1
+            JL SELn1        ; n2<n1
+SELn2       ADD #2,PSP
+            MOV @IP+,PC
+
+;https://forth-standard.org/standard/core/MIN
+;C MIN    n1 n2 -- n3       signed minimum
+            FORTHWORD "MIN"
+MIN         CMP @PSP,TOS    ; n2-n1
+            JL SELn2        ; n2<n1
+SELn1       MOV @PSP+,TOS
+            MOV @IP+,PC
+        .ENDIF
+
+            FORTHWORD "1+"
+; https://forth-standard.org/standard/core/OnePlus
+; 1+      n1/u1 -- n2/u2       add 1 to TOS
+            ADD #1,TOS
+            MOV @IP+,PC
+
+            FORTHWORD "1-"
+; https://forth-standard.org/standard/core/OneMinus
+; 1-      n1/u1 -- n2/u2     subtract 1 from TOS
+            SUB #1,TOS
+            MOV @IP+,PC
+
+            FORTHWORD "+"
+;https://forth-standard.org/standard/core/Plus
+;C +       n1/u1 n2/u2 -- n3/u3     add n1+n2
+            ADD @PSP+,TOS
+            MOV @IP+,PC
+
+; https://forth-standard.org/standard/core/Minus
+; -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
+            FORTHWORD "-"
+            SUB @PSP+,TOS   ; 2  -- n2-n1 ( = -n3)
+            XOR #-1,TOS     ; 1
+            ADD #1,TOS      ; 1  -- n3 = -(n2-n1) = n1-n2
+            MOV @IP+,PC
 
     .IFDEF MPY
 
@@ -71,12 +361,12 @@ MSTAR       MOV TOS,S           ; TOS= n2
             ADD #1,0(PSP)       ;
 u1n2MSTAR   CMP #0,TOS          ; n2 <= -1 ?
             JGE u1u2MSTAR       ; no
-            XOR #-1,TOS         ; y: n2 --> u2 
+            XOR #-1,TOS         ; y: n2 --> u2
             ADD #1,TOS          ;
 u1u2MSTAR   PUSHM #2,IP         ;           PUSHM IP,S
-            ASMtoFORTH
+            mASM2FORTH
             .word UMSTAR        ; UMSTAR use S,T,W,X,Y
-            .word   $+2
+            mNEXTADR
             POPM #2,IP          ;           POPM S,IP
             CMP #0,S            ; result > -1 ?
             JGE MSTARend        ; yes
@@ -94,6 +384,7 @@ MSTARend    MOV @IP+,PC
 UMSLASHMOD  PUSH #DROP          ;3 as return address for MU/MOD
             MOV #MUSMOD,PC
 
+    .IFNDEF FLOORED_DIVISION
 ;https://forth-standard.org/standard/core/SMDivREM
 ;C SM/REM   d1lo d1hi n2 -- n3 n4  symmetric signed div
             FORTHWORD "SM/REM"
@@ -128,13 +419,40 @@ NEGAT       XOR #-1,TOS         ;1
 SMSLASHREMnrnq                  ;   -- nr nq  S=divisor
             MOV @IP+,PC         ;4 34 words
 
+        .ELSE   ; FLOORED_DIVISION
 ;https://forth-standard.org/standard/core/FMDivMOD
 ;C FM/MOD   d1 n1 -- r q   floored signed div'n
             FORTHWORD "FM/MOD"
-FMSLASHMOD  PUSH IP
-            MOV #FMSLASHMOD1,IP
-            JMP SMSLASHREM
-FMSLASHMOD1 .word   $+2         ; -- remainder quotient       S=divisor
+FMSLASHMOD  MOV TOS,S           ;1            S=divisor
+            MOV @PSP,T          ;2            T=rem_sign
+            CMP #0,TOS          ;1            n2 >= 0 ?
+            JGE d1u2FMSLASHMOD  ;2            yes
+            XOR #-1,TOS         ;1
+            ADD #1,TOS          ;1
+d1u2FMSLASHMOD                  ;   -- d1 u2
+            CMP #0,0(PSP)       ;3           d1hi >= 0 ?
+            JGE ud1u2FMSLASHMOD ;2           yes
+            XOR #-1,2(PSP)      ;4           d1lo
+            XOR #-1,0(PSP)      ;4           d1hi
+            ADD #1,2(PSP)       ;4           d1lo+1
+            ADDC #0,0(PSP)      ;4           d1hi+C
+ud1u2FMSLASHMOD                 ;   -- ud1 u2
+            PUSHM  #2,S          ;4         PUSHM S,T
+            CALL #MUSMOD
+            MOV @PSP+,TOS
+            POPM  #2,S          ;4          POPM T,S
+            CMP #0,T            ;1  -- ur uq  T=rem_sign>=0?
+            JGE FMSLASHMODnruq  ;2           yes
+            XOR #-1,0(PSP)      ;3
+            ADD #1,0(PSP)       ;3
+FMSLASHMODnruq
+            XOR S,T             ;1           S=divisor T=quot_sign
+            CMP #0,T            ;1  -- nr uq  T=quot_sign>=0?
+            JGE FMSLASHMODnrnq  ;2           yes
+NEGAT       XOR #-1,TOS         ;1
+            ADD #1,TOS          ;1
+FMSLASHMODnrnq                  ;   -- nr nq  S=divisor
+
             CMP #0,0(PSP)       ;
             JZ FMSLASHMODEND
             CMP #1,TOS          ; quotient < 1 ?
@@ -143,18 +461,19 @@ QUOTLESSONE ADD S,0(PSP)        ; add divisor to remainder
             SUB #1,TOS          ; decrement quotient
 FMSLASHMODEND
             MOV @RSP+,IP
-            MOV @IP+,PC                   ;
+            MOV @IP+,PC         ;
+        .ENDIF
 
 ;https://forth-standard.org/standard/core/NEGATE
 ;C NEGATE   x1 -- x2            two's complement
             FORTHWORD "NEGATE"
-            JMP NEGAT 
+            JMP NEGAT
 
 ;https://forth-standard.org/standard/core/ABS
 ;C ABS     n1 -- +n2     absolute value
             FORTHWORD "ABS"
             CMP #0,TOS           ; 1
-            JN NEGAT      
+            JN NEGAT
             MOV @IP+,PC
 
 ;https://forth-standard.org/standard/core/Times
@@ -167,70 +486,61 @@ STAR        mDOCOL
 ;C /MOD   n1 n2 -- n3 n4    signed divide/rem'dr
             FORTHWORD "/MOD"
 SLASHMOD    mDOCOL
-            .word   TOR,STOD,RFROM,FMSLASHMOD,EXIT
+            .word   TOR,STOD,RFROM
+        .IFNDEF FLOORED_DIVISION
+            .word SMSLASHREM
+        .ELSE
+            .word FMSLASHMOD
+        .ENDIF
+            .word EXIT
 
 ;https://forth-standard.org/standard/core/Div
 ;C /      n1 n2 -- n3       signed divide
             FORTHWORD "/"
 SLASH       mDOCOL
-            .word   TOR,STOD,RFROM,FMSLASHMOD,NIP,EXIT
+            .word   TOR,STOD,RFROM
+        .IFNDEF FLOORED_DIVISION
+            .word SMSLASHREM
+        .ELSE
+            .word FMSLASHMOD
+        .ENDIF
+            .word NIP,EXIT
 
 ;https://forth-standard.org/standard/core/MOD
 ;C MOD    n1 n2 -- n3       signed remainder
             FORTHWORD "MOD"
 MODD        mDOCOL
-            .word   TOR,STOD,RFROM,FMSLASHMOD,DROP,EXIT
+            .word   TOR,STOD,RFROM
+        .IFNDEF FLOORED_DIVISION
+            .word SMSLASHREM
+        .ELSE
+            .word FMSLASHMOD
+        .ENDIF
+            .word 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
-            .word   TOR,MSTAR,RFROM,FMSLASHMOD,EXIT
+            .word   TOR,MSTAR,RFROM
+        .IFNDEF FLOORED_DIVISION
+            .word SMSLASHREM
+        .ELSE
+            .word FMSLASHMOD
+        .ENDIF
+            .word EXIT
 
 ;https://forth-standard.org/standard/core/TimesDiv
 ;C */     n1 n2 n3 -- n4        n1*n2/n3
             FORTHWORD "*/"
 STARSLASH   mDOCOL
-            .word   TOR,MSTAR,RFROM,FMSLASHMOD,NIP,EXIT
-
-
-
-;https://forth-standard.org/standard/core/ALIGNED
-;C ALIGNED  addr -- a-addr       align given addr
-            FORTHWORD "ALIGNED"
-ALIGNED     BIT #1,TOS
-            ADDC #0,TOS
-            MOV @IP+,PC
-
-;https://forth-standard.org/standard/core/ALIGN
-;C ALIGN    --                         align HERE
-            FORTHWORD "ALIGN"
-ALIGNN      BIT #1,&DDP    ; 3
-            ADDC #0,&DDP   ; 4
-            MOV @IP+,PC
-
-;https://forth-standard.org/standard/core/CHARS
-;C CHARS    n1 -- n2            chars->adrs units
-            FORTHWORD "CHARS"
-            MOV @IP+,PC
-
-;https://forth-standard.org/standard/core/CHARPlus
-;C CHAR+    c-addr1 -- c-addr2   add char size
-            FORTHWORD "CHAR+"
-            ADD #1,TOS
-            MOV @IP+,PC
-
-;https://forth-standard.org/standard/core/CELLS
-;C CELLS    n1 -- n2            cells->adrs units
-            FORTHWORD "CELLS"
-            ADD TOS,TOS
-            MOV @IP+,PC
-
-;https://forth-standard.org/standard/core/CELLPlus
-;C CELL+    a-addr1 -- a-addr2      add cell size
-            FORTHWORD "CELL+"
-            ADD #2,TOS
-            MOV @IP+,PC
+            .word   TOR,MSTAR,RFROM
+        .IFNDEF FLOORED_DIVISION
+            .word SMSLASHREM
+        .ELSE
+            .word FMSLASHMOD
+        .ENDIF
+            .word NIP,EXIT
 
 ;----------------------------------------------------------------------
 ; DOUBLE OPERATORS
@@ -241,7 +551,7 @@ ALIGNN      BIT #1,&DDP    ; 3
             FORTHWORD "S>D"
 STOD        SUB #2,PSP
             MOV TOS,0(PSP)
-            JMP ZEROLESS
+            MOV #ZEROLESS,PC
 
 ; https://forth-standard.org/standard/core/TwoFetch
 ; 2@    a-addr -- x1 x2    fetch 2 cells ; the lower address will appear on top of stack
@@ -259,6 +569,16 @@ TWOSTORE    MOV @PSP+,0(TOS)
             MOV @PSP+,TOS
             MOV @IP+,PC
 
+    .IFNDEF TWODUP
+; 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
+            MOV @PSP,-4(PSP)    ; 4
+            SUB #4,PSP          ; 1
+            MOV @IP+,PC         ; 4
+    .ENDIF
+
 ; https://forth-standard.org/standard/core/TwoDROP
 ; 2DROP  x1 x2 --          drop 2 cells
             FORTHWORD "2DROP"
@@ -286,12 +606,35 @@ TWOSTORE    MOV @PSP+,0(TOS)
             MOV 6(PSP),TOS      ; -- x1 x2 x3 x4 x1 x2
             MOV @IP+,PC
 
+;-------------------------------------------------------------------------------
+; MEMORY OPERATIONS
+;-------------------------------------------------------------------------------
+        .IFNDEF FETCH
+;https://forth-standard.org/standard/core/Fetch
+; C@     c-addr -- word   fetch word from memory
+            FORTHWORD "@"
+FETCH       MOV @TOS,TOS        ;2
+            MOV @IP+,PC         ;4
+        .ENDIF
+
+        .IFNDEF STORE
+;https://forth-standard.org/standard/core/Store
+; C!      word c-addr --    store word in memory
+            FORTHWORD "!"
+STORE       MOV @PSP+,0(TOS)    ;4
+            MOV @PSP+,TOS       ;2
+            MOV @IP+,PC
+        .ENDIF
+
+        .IFNDEF CFETCH
 ;https://forth-standard.org/standard/core/CFetch
 ; C@     c-addr -- char   fetch char from memory
             FORTHWORD "C@"
 CFETCH      MOV.B @TOS,TOS      ;2
             MOV @IP+,PC         ;4
+        .ENDIF
 
+        .IFNDEF CSTORE
 ;https://forth-standard.org/standard/core/CStore
 ; C!      char c-addr --    store char in memory
             FORTHWORD "C!"
@@ -299,105 +642,264 @@ CSTORE      MOV.B @PSP+,0(TOS)  ;4
             ADD #1,PSP          ;1
             MOV @PSP+,TOS       ;2
             MOV @IP+,PC
+        .ENDIF
 
+        .IFNDEF CCOMMA
 ;https://forth-standard.org/standard/core/CComma
 ; C,   char --        append char
             FORTHWORD "C,"
-CCOMMA      MOV &DDP,W
+CCOMMA      MOV &DP,W
             MOV.B TOS,0(W)
-            ADD #1,&DDP
+            ADD #1,&DP
             MOV @PSP+,TOS
             MOV @IP+,PC
+        .ENDIF
 
-;https://forth-standard.org/standard/core/AND
-;C AND    x1 x2 -- x3           logical AND
-            FORTHWORD "AND"
-ANDD        AND @PSP+,TOS    
+;https://forth-standard.org/standard/core/PlusStore
+;C +!     n/u a-addr --       add to memory
+            FORTHWORD "+!"
+PLUSSTORE   ADD @PSP+,0(TOS)
+            MOV @PSP+,TOS
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/OR
-;C OR     x1 x2 -- x3           logical OR
-            FORTHWORD "OR"
-ORR         BIS @PSP+,TOS    
+;https://forth-standard.org/standard/core/ALIGNED
+;C ALIGNED  addr -- a-addr       align given addr
+            FORTHWORD "ALIGNED"
+ALIGNED     BIT #1,TOS
+            ADDC #0,TOS
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/XOR
-;C XOR    x1 x2 -- x3           logical XOR
-            FORTHWORD "XOR"
-XORR        XOR @PSP+,TOS    
+;https://forth-standard.org/standard/core/ALIGN
+;C ALIGN    --                         align HERE
+            FORTHWORD "ALIGN"
+ALIGNN      BIT #1,&DP    ; 3
+            ADDC #0,&DP   ; 4
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/INVERT
-;C INVERT   x1 -- x2            bitwise inversion
-            FORTHWORD "INVERT"
-            XOR #-1,TOS    
+;https://forth-standard.org/standard/core/CHARS
+;C CHARS    n1 -- n2            chars->adrs units
+            FORTHWORD "CHARS"
             MOV @IP+,PC
 
-;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
-            SUB #1,TOS
-            JNZ LSH_1
-LSH_X       MOV W,TOS
+;https://forth-standard.org/standard/core/CHARPlus
+;C CHAR+    c-addr1 -- c-addr2   add char size
+            FORTHWORD "CHAR+"
+            ADD #1,TOS
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/RSHIFT
-;C RSHIFT  x1 u -- x2    logical R shift u places
-            FORTHWORD "RSHIFT"
-RSHIFT      MOV @PSP+,W
-            AND #1Fh,TOS        ; no need to shift more than 16
-            JZ RSH_X
-RSH_1       BIC #1,SR           ; CLRC
-            RRC W
-            SUB #1,TOS
-            JNZ RSH_1
-RSH_X       MOV W,TOS
+;https://forth-standard.org/standard/core/CELLS
+;C CELLS    n1 -- n2            cells->adrs units
+            FORTHWORD "CELLS"
+            ADD TOS,TOS
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/TwoTimes
-;C 2*      x1 -- x2         arithmetic left shift
-            FORTHWORD "2*"
-TWOTIMES    ADD TOS,TOS
+;https://forth-standard.org/standard/core/CELLPlus
+;C CELL+    a-addr1 -- a-addr2      add cell size
+            FORTHWORD "CELL+"
+            ADD #2,TOS
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/TwoDiv
-;C 2/      x1 -- x2        arithmetic right shift
-            FORTHWORD "2/"
-TWODIV      RRA TOS
+; ------------------------------------------------------------------------------
+; CONTROL STRUCTURES
+; ------------------------------------------------------------------------------
+; THEN and BEGIN compile nothing
+; DO compile one word
+; IF, ELSE, AGAIN, UNTIL, WHILE, REPEAT, LOOP & +LOOP compile two words
+; LEAVE compile three words
+
+            FORTHWORDIMM "IF"       ; immediate
+; https://forth-standard.org/standard/core/IF
+; IF       -- IFadr    initialize conditional forward branch
+IFF         SUB #2,PSP              ;
+            MOV TOS,0(PSP)          ;
+            MOV &DP,TOS            ; -- HERE
+            ADD #4,&DP             ;           compile one word, reserve one word
+            MOV #QFBRAN,0(TOS)      ; -- HERE   compile QFBRAN
+            ADD #2,TOS              ; -- HERE+2=IFadr
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/MAX
-;C MAX    n1 n2 -- n3       signed maximum
-            FORTHWORD "MAX"
-MAX         CMP @PSP,TOS    ; n2-n1
-            JL SELn1        ; n2<n1
-SELn2       ADD #2,PSP
+            FORTHWORDIMM "ELSE"     ; immediate
+; https://forth-standard.org/standard/core/ELSE
+; ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+ELSS        ADD #4,&DP             ; make room to compile two words
+            MOV &DP,W              ; W=HERE+4
+            MOV #BRAN,-4(W)
+            MOV W,0(TOS)            ; HERE+4 ==> [IFadr]
+            SUB #2,W                ; HERE+2
+            MOV W,TOS               ; -- ELSEadr
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/MIN
-;C MIN    n1 n2 -- n3       signed minimum
-            FORTHWORD "MIN"
-MIN         CMP @PSP,TOS    ; n2-n1
-            JL SELn2        ; n2<n1
-SELn1       MOV @PSP+,TOS
+            FORTHWORDIMM "THEN"     ; immediate
+; https://forth-standard.org/standard/core/THEN
+; THEN     IFadr --                resolve forward branch
+THEN        MOV &DP,0(TOS)         ; -- IFadr
+            MOV @PSP+,TOS           ; --
             MOV @IP+,PC
 
-;https://forth-standard.org/standard/core/PlusStore
-;C +!     n/u a-addr --       add to memory
-            FORTHWORD "+!"
-PLUSSTORE   ADD @PSP+,0(TOS)
+            FORTHWORDIMM "BEGIN"    ; immediate
+; https://forth-standard.org/standard/core/BEGIN
+; BEGIN    -- BEGINadr             initialize backward branch
+            MOV #HEREXEC,PC         ; -- HERE
+
+            FORTHWORDIMM "UNTIL"    ; immediate
+; https://forth-standard.org/standard/core/UNTIL
+; UNTIL    BEGINadr --             resolve conditional backward branch
+UNTIL       MOV #QFBRAN,X
+UNTIL1      ADD #4,&DP             ; compile two words
+            MOV &DP,W              ; W = HERE
+            MOV X,-4(W)             ; compile Bran or QFBRAN at HERE
+            MOV TOS,-2(W)           ; compile bakcward adr at HERE+2
             MOV @PSP+,TOS
             MOV @IP+,PC
 
+            FORTHWORDIMM "AGAIN"    ; immediate
+; https://forth-standard.org/standard/core/AGAIN
+;X AGAIN    BEGINadr --             resolve uncondionnal backward branch
+AGAIN       MOV #BRAN,X
+            JMP UNTIL1
+
+            FORTHWORDIMM "WHILE"    ; immediate
+; https://forth-standard.org/standard/core/WHILE
+; WHILE    BEGINadr -- WHILEadr BEGINadr
+WHILE       mDOCOL
+            .word   IFF,SWAP,EXIT
+
+            FORTHWORDIMM "REPEAT"   ; immediate
+; https://forth-standard.org/standard/core/REPEAT
+; REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
+REPEAT      mDOCOL
+            .word   AGAIN,THEN,EXIT
+
+            FORTHWORDIMM "DO"       ; immediate
+; Primitive XDO; compiled by DO
+;Z (do)    n1|u1 n2|u2 --  R: -- sys1 sys2      run-time code for DO
+;                                               n1|u1=limit, n2|u2=index
+XDO         MOV #8000h,X    ;2 compute 8000h-limit = "fudge factor"
+            SUB @PSP+,X     ;2
+            MOV TOS,Y       ;1 loop ctr = index+fudge
+            ADD X,Y         ;1 Y = INDEX
+            PUSHM #2,X      ;4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+            MOV @PSP+,TOS   ;2
+            MOV @IP+,PC     ;4
+
+; https://forth-standard.org/standard/core/DO
+; DO       -- DOadr   L: -- 0
+DO          SUB #2,PSP              ;
+            MOV TOS,0(PSP)          ;
+            ADD #2,&DP             ;   make room to compile xdo
+            MOV &DP,TOS            ; -- HERE+2
+            MOV #XDO,-2(TOS)        ;   compile xdo
+            ADD #2,&LEAVEPTR        ; -- HERE+2     LEAVEPTR+2
+            MOV &LEAVEPTR,W         ;
+            MOV #0,0(W)             ; -- HERE+2     L-- 0
+            MOV @IP+,PC
+
+    .IFNDEF II
+            FORTHWORD "I"
+; https://forth-standard.org/standard/core/I
+; I        -- n   R: sys1 sys2 -- sys1 sys2
+;                  get the innermost loop index
+II          SUB #2,PSP              ;1 make room in TOS
+            MOV TOS,0(PSP)          ;3
+            MOV @RSP,TOS            ;2 index = loopctr - fudge
+            SUB 2(RSP),TOS          ;3
+            MOV @IP+,PC             ;4 13~
+    .ENDIF
+
+; Primitive XLOOP; compiled by 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
+; return stack and skip the branch.  Else take the inline branch.
+; Note that LOOP terminates when index=8000h.
+XLOOP       ADD #1,0(RSP)   ;4 increment INDEX
+XLOOPNEXT   BIT #100h,SR    ;2 is overflow bit set?
+            JZ XLOOPDO      ;2 no overflow = loop
+            ADD #4,RSP      ;1 empties RSP
+            ADD #2,IP       ;1 overflow = loop done, skip branch ofs
+            MOV @IP+,PC     ;4 14~ taken or not taken xloop/loop
+XLOOPDO     MOV @IP,IP
+            MOV @IP+,PC     ;4 14~ taken or not taken xloop/loop
+
+
+            FORTHWORDIMM "LOOP"     ; immediate
+; https://forth-standard.org/standard/core/LOOP
+; LOOP    DOadr --         L-- an an-1 .. a1 0
+LOO         MOV #XLOOP,X
+LOOPNEXT    ADD #4,&DP             ; make room to compile two words
+            MOV &DP,W
+            MOV X,-4(W)             ; xloop --> HERE
+            MOV TOS,-2(W)           ; DOadr --> HERE+2
+; resolve all "leave" adr
+LEAVELOOP   MOV &LEAVEPTR,TOS       ; -- Adr of top LeaveStack cell
+            SUB #2,&LEAVEPTR        ; --
+            MOV @TOS,TOS            ; -- first LeaveStack value
+            CMP #0,TOS              ; -- = value left by DO ?
+            JZ LOOPEND
+            MOV W,0(TOS)            ; move adr after loop as UNLOOP adr
+            JMP LEAVELOOP
+LOOPEND     MOV @PSP+,TOS
+            MOV @IP+,PC
+
+; Primitive XPLOOP; compiled by +LOOP
+;Z (+loop)   n --   R: sys1 sys2 --  | sys1 sys2
+;                        run-time code for +LOOP
+; Add n to the loop index.  If loop terminates, clean up the
+; return stack and skip the branch. Else take the inline branch.
+XPLOO       ADD TOS,0(RSP)  ;4 increment INDEX by TOS value
+            MOV @PSP+,TOS   ;2 get new TOS, doesn't change flags
+            JMP XLOOPNEXT   ;2
+
+            FORTHWORDIMM "+LOOP"    ; immediate
+; https://forth-standard.org/standard/core/PlusLOOP
+; +LOOP   adrs --   L-- an an-1 .. a1 0
+PLUSLOOP    MOV #XPLOO,X
+            JMP LOOPNEXT
+
+            FORTHWORDIMM "CASE"
+; https://forth-standard.org/standard/core/CASE
+; CASE      ; -- #of-1
+            mDOCOL
+            .word LIT,0
+            .word EXIT
+
+            FORTHWORDIMM "OF"
+; https://forth-standard.org/standard/core/OF
+; OF        ; #of-1 -- orgOF #of
+            mDOCOL
+            .word ONEPLUS           ; count OFs
+            .word TOR               ; move off the stack in case the control-flow stack is the data stack.
+            .word LIT,OVER,COMMA
+            .word LIT,EQUAL,COMMA   ; copy and test case value
+            .word IFF              ; add orig to control flow stack
+            .word LIT,DROP,COMMA    ; discards case value if =
+            .word RFROM             ; we can bring count back now
+            .word EXIT
+
+            FORTHWORDIMM "ENDOF"
+; https://forth-standard.org/standard/core/ENDOF
+; ENDOF     ; orgOF #of -- orgENDOF #of
+            mDOCOL
+            .word TOR                ; move off the stack in case the control-flow stack is the data stack.
+            .word ELSS
+            .word RFROM              ; we can bring count back now
+            .word EXIT
+
+            FORTHWORDIMM "ENDCASE"
+; https://forth-standard.org/standard/core/ENDCASE
+; ENDCASE   ; orgENDOF1..orgENDOFn #of --
+            mDOCOL
+            .word LIT,DROP,COMMA
+            .word LIT,0,XDO
+ENDCASELOOP .word THEN
+            .word XLOOP,ENDCASELOOP
+            .word EXIT
+
 ;https://forth-standard.org/standard/core/CHAR
 ;C CHAR   -- char           parse ASCII character
             FORTHWORD "CHAR"
 CHARR       mDOCOL
-            .word   FBLANK,WORDD,ONEPLUS,CFETCH,EXIT
+            .word   BL,WORDD,ONEPLUS,CFETCH,EXIT
 
 ;https://forth-standard.org/standard/core/BracketCHAR
 ;C [CHAR]   --          compile character literal
@@ -407,6 +909,35 @@ BRACCHAR    mDOCOL
             .word   lit,lit,COMMA
             .word   COMMA,EXIT
 
+            .IFNDEF MOVE
+; https://forth-standard.org/standard/core/MOVE
+; MOVE    addr1 addr2 u --     smart move
+;             VERSION FOR 1 ADDRESS UNIT = 1 CHAR
+            FORTHWORD "MOVE"
+MOVE        MOV TOS,W           ; W = cnt
+            MOV @PSP+,Y         ; Y = addr2 = dst
+            MOV @PSP+,X         ; X = addr1 = src
+            MOV @PSP+,TOS       ; pop new TOS
+            CMP #0,W            ; count = 0 ?
+            JZ MOVEND           ; if 0, already done !
+            CMP X,Y             ; dst = src ?
+            JZ MOVEND           ; already done !
+            JC MOVEDOWN         ; U< if src > dst
+MOVEUPLOOP  MOV.B @X+,0(Y)      ; copy W bytes
+            ADD #1,Y
+            SUB #1,W
+            JNZ MOVEUPLOOP
+            MOV @IP+,PC         ; out 1 of MOVE ====>
+MOVEDOWN    ADD W,Y             ; copy W bytes beginning with the end
+            ADD W,X
+MOVEDOWNLOO SUB #1,X
+            SUB #1,Y
+            MOV.B @X,0(Y)
+            SUB #1,W
+            JNZ MOVEDOWNLOO
+MOVEND      MOV @IP+,PC ; out 2 of MOVE ====>
+            .ENDIF
+
 ;https://forth-standard.org/standard/core/FILL
 ;C FILL   c-addr u char --  fill memory with char
             FORTHWORD "FILL"
@@ -423,18 +954,18 @@ FILL_X      MOV @PSP+,TOS   ; pop new TOS
 
 ;https://forth-standard.org/standard/core/HEX
             FORTHWORD "HEX"
-HEX         MOV #16,&BASE
+HEX         MOV #16,&BASEADR
             MOV @IP+,PC
 
 ;https://forth-standard.org/standard/core/DECIMAL
             FORTHWORD "DECIMAL"
-DECIMAL     MOV #10,&BASE
+DECIMAL     MOV #10,&BASEADR
             MOV @IP+,PC
 
 ; https://forth-standard.org/standard/core/HERE
 ; HERE    -- addr      returns memory ptr
-            FORTHWORD "HERE"
-            MOV #HERE,PC
+HERE       FORTHWORD "HERE"
+            MOV #HEREXEC,PC
 
 ;https://forth-standard.org/standard/core/p
 ;C (                \  --     paren ; skip input until )
@@ -449,7 +980,7 @@ DOTPAREN    MOV #0,&CAPS
             mDOCOL
             .word   lit,')',WORDD
             .word   COUNT,TYPE
-            .word   FBLANK,LIT,CAPS,STORE
+            .word   BL,LIT,CAPS,STORE
             .word   EXIT
 
 ;https://forth-standard.org/standard/core/J
@@ -471,10 +1002,10 @@ UNLOOP      ADD #4,RSP
 ;https://forth-standard.org/standard/core/LEAVE
 ;C LEAVE    --    L: -- adrs
             FORTHWORDIMM "LEAVE"    ; immediate
-LEAV        MOV &DDP,W              ; compile three words
+LEAV        MOV &DP,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 #6,&DP             ; [HERE+4] = After LOOP adr
             ADD #2,&LEAVEPTR
             ADD #4,W
             MOV &LEAVEPTR,X
@@ -484,16 +1015,42 @@ LEAV        MOV &DDP,W              ; compile three words
 ;https://forth-standard.org/standard/core/RECURSE
 ;C RECURSE  --      recurse to current definition (compile current definition)
             FORTHWORDIMM "RECURSE"  ; immediate
-RECURSE     MOV &DDP,X              ;
+RECURSE     MOV &DP,X              ;
             MOV &LAST_CFA,0(X)      ;
-            ADD #2,&DDP             ;
+            ADD #2,&DP             ;
             MOV @IP+,PC
 
+            .IFNDEF TOBODY
 ; https://forth-standard.org/standard/core/toBODY
 ; >BODY     -- addr      leave BODY of a CREATEd word; also leave default ACTION-OF primary DEFERred word
             FORTHWORD ">BODY"
 TOBODY      ADD #4,TOS
             MOV @IP+,PC
+            .ENDIF
+
+; https://forth-standard.org/standard/core/EXECUTE
+; EXECUTE   i*x xt -- j*x   execute Forth word at 'xt'
+            FORTHWORD "EXECUTE"
+            PUSH TOS                ; 3 push xt
+            MOV @PSP+,TOS           ; 2
+            MOV @RSP+,PC            ; 4 xt --> PC
+
+; https://forth-standard.org/standard/core/EVALUATE
+; EVALUATE          ; i*x c-addr u -- j*x  interpret string
+            FORTHWORD "EVALUATE"
+            MOV #SOURCE_LEN,X       ; 2
+            MOV @X+,S               ; 2 S = SOURCE_LEN
+            MOV @X+,T               ; 2 T = SOURCE_ORG
+            MOV @X+,W               ; 2 W = TOIN
+            PUSHM #4,IP             ; 6 PUSHM IP,S,T,W
+            mASM2FORTH
+            .word   INTERPRET
+            mNEXTADR
+            MOV @RSP+,&TOIN         ; 4
+            MOV @RSP+,&SOURCE_ORG   ; 4
+            MOV @RSP+,&SOURCE_LEN   ; 4
+            MOV @RSP+,IP
+            MOV @IP+,PC
 
 ;https://forth-standard.org/standard/core/SOURCE
 ;C SOURCE   -- adr u   of  current input buffer
@@ -514,7 +1071,7 @@ TOBODY      ADD #4,TOS
 ;C BASE    -- a-addr       holds conversion radix
             FORTHWORD "BASE"
             CALL rDOCON
-            .word   BASE    ; VARIABLE address in RAM space
+            .word   BASEADR    ; VARIABLE address in RAM space
 
 ;https://forth-standard.org/standard/core/toIN
 ;C >IN     -- a-addr       holds offset in input stream
@@ -522,11 +1079,56 @@ TOBODY      ADD #4,TOS
 FTOIN       CALL rDOCON
             .word   TOIN    ; VARIABLE address in RAM space
 
+; https://forth-standard.org/standard/core/BL
+; BL      -- char            an ASCII space
+            FORTHWORD "BL"
+            CALL rDOCON
+            .word 20h
+
+    .IFNDEF PAD
 ;https://forth-standard.org/standard/core/PAD
 ; PAD           --  pad address
             FORTHWORD "PAD"
 PAD         CALL rDOCON
             .WORD    PAD_ORG
+    .ENDIF
+
+; https://forth-standard.org/standard/core/VARIABLE
+; VARIABLE <name>       --                      define a Forth VARIABLE
+            FORTHWORD "VARIABLE"
+            mDOCOL
+            .word   CREATE
+            mNEXTADR
+            MOV #DOVAR,-4(W)        ;   CFA = CALL rDOVAR
+            MOV @RSP+,IP
+            MOV @IP+,PC
+
+; https://forth-standard.org/standard/core/CONSTANT
+; CONSTANT <name>     n --                      define a Forth CONSTANT
+            FORTHWORD "CONSTANT"
+            mDOCOL
+            .word   CREATE
+            mNEXTADR
+            MOV TOS,-2(W)           ;   PFA = n
+            MOV @PSP+,TOS
+            MOV @RSP+,IP
+            MOV @IP+,PC
+
+; https://forth-standard.org/standard/core/DEFER
+; 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"
+            mDOCOL
+            .word   CREATE
+            mNEXTADR
+            MOV #4030h,-4(W)        ;4 first CELL = MOV @PC+,PC = BR #addr
+            MOV #NEXTADR,-2(W)      ;3 second CELL              =   ...mNEXT : do nothing by default
+            MOV @RSP+,IP
+            MOV @IP+,PC
 
 ; https://forth-standard.org/standard/core/TO
 ; TO name Run-time: ( x -- )
@@ -540,7 +1142,7 @@ PAD         CALL rDOCON
 ; Skip leading space delimiters. Parse name delimited by a space.
 ; Create a definition for name with the execution semantics defined below,
 ; with an initial value equal to x.
-; 
+;
 ; name Execution: ( -- x )
 ; Place x on the stack. The value of x is that given when name was created,
 ; until the phrase x TO name is executed, causing a new value of x to be assigned to name.
@@ -548,13 +1150,14 @@ PAD         CALL rDOCON
             mDOCOL
             .word CREATE,COMMA
             .word DOES
-            .word $+2
+            mNEXTADR
             MOV @RSP+,IP
             BIT #UF9,SR         ; see TO
-            JNZ VALUENEXT  
+            JNZ STOREVALUE
             MOV @TOS,TOS        ; execute Fetch
             MOV @IP+,PC
-VALUENEXT   BIC #UF9,SR         ; clear 'TO' flag
+STOREVALUE  BIC #UF9,SR         ; clear 'TO' flag
             MOV @PSP+,0(TOS)    ; 4 execute Store
             MOV @PSP+,TOS       ; 2
             MOV @IP+,PC         ; 4
+
index 7f69be9..da8e81a 100644 (file)
@@ -68,10 +68,10 @@ UDMT1       CMP #0,X
             BIT Y,TOS           ; 1 TEST ACTUAL BIT MRhi
             JMP UDMT3
 UDMT2       BIT X,W             ; 1 TEST ACTUAL BIT MRlo
-UDMT3       JZ UDMT4            ; 
+UDMT3       JZ UDMT4            ;
             ADD IP,4(PSP)       ; 3 IF 1: ADD MDlo TO RESlo
             ADDC T,2(PSP)       ; 3      ADDC MDhi TO REShi
-            ADDC M,Q            ; 1      ADDC MDLO TO RESLO        
+            ADDC M,Q            ; 1      ADDC MDLO TO RESLO
             ADDC P,R            ; 1      ADDC MDHI TO RESHI
 UDMT4       ADD IP,IP           ; 1 (RLA LSBs) MDlo *2
             ADDC T,T            ; 1 (RLC MSBs) MDhi *2
@@ -90,7 +90,7 @@ UDMT4       ADD IP,IP           ; 1 (RLA LSBs) MDlo *2
             FORTHWORD "F*"          ; s15.16 * s15.16 --> s15.16 result
             MOV 2(PSP),S        ;
             XOR TOS,S           ; MDhi XOR MRhi --> S keep sign of result
-            BIT #8000h,2(PSP)   ; MD < 0 ? 
+            BIT #8000h,2(PSP)   ; MD < 0 ?
             JZ FSTAR1           ; no
             XOR #-1,2(PSP)
             XOR #-1,4(PSP)
@@ -98,7 +98,7 @@ UDMT4       ADD IP,IP           ; 1 (RLA LSBs) MDlo *2
             ADDC #0,2(PSP)
 FSTAR1       mDOCOL
             .word DABS,UDMT
-            .word   $+2         ; -- RES0 RES1 RES2 RES3 
+            .word   $+2         ; -- RES0 RES1 RES2 RES3
             MOV @RSP+,IP
             MOV @PSP+,TOS       ; -- RES0 RES1 RES2
             MOV @PSP+,0(PSP)    ; -- RES1 RES2
@@ -108,7 +108,7 @@ FSTARSIGN   AND #-1,S           ; clear V, set N
             XOR #-1,TOS
             ADD #1,0(PSP)
             ADDC #0,TOS
-FSTAREND    MOV @IP+,PC 
+FSTAREND    MOV @IP+,PC
 
 
             FORTHWORD "F/"          ; s15.16 / s15.16 --> s15.16 result
@@ -120,7 +120,7 @@ FDIV        PUSHM #4,rDOVAR     ; 6 save rDOVAR to rDOCOL regs to use M to R ali
             MOV #0,T            ; DVDlo = 0
             MOV X,S             ;
             XOR TOS,S           ; MDhi XOR MRhi --> S keep sign of result
-            AND #-1,X           ; MD < 0 ? 
+            AND #-1,X           ; MD < 0 ?
             JGE FDIV1           ; no
             XOR #-1,Y           ; lo
             XOR #-1,X           ; hi
@@ -132,7 +132,7 @@ FDIV1       AND #-1,TOS
             XOR #-1,TOS
             ADD #1,M
             ADDC #0,TOS
-FDIV2   
+FDIV2
 ; unsigned 32-BIT DIVIDEND : 32-BIT DIVISOR --> 32-BIT QUOTIENT, 32-BIT REMAINDER
 ; DVDhi|DVDlo : DVRhi|DVRlo --> QUOThi|QUOTlo, REMAINDER
 ;            FORTHWORD "UD/MOD"
@@ -149,18 +149,18 @@ Q322        JNC Q323            ;2 yes: REM U< DIV
 Q323        ADDC R,R            ;1 RLC quotLO
             ADDC Q,Q            ;1 RLC quotHI
             SUB #1,P            ;1 Decrement loop counter
-            JN Q6432END         ;2 loop back if count>=0    
+            JN Q6432END         ;2 loop back if count>=0
             ADD T,T             ;1 RLA DVDlo
             ADDC Y,Y            ;1 RLC DVDhi
             ADDC X,X            ;1 RLC REMlo
             ADDC W,W            ;1 RLC REMhi
-            JNC Q321            ; 
+            JNC Q321            ;
             SUB M,X             ;1 REMlo - DIVlo
             SUBC TOS,W          ;1 REMhi - DIVhi
             BIS #1,SR
             JMP Q323
 Q6432END
-;            MOV X,4(PSP)       ; REMlo    
+;            MOV X,4(PSP)       ; REMlo
 ;            MOV W,2(PSP)       ; REMhi
 ;            ADD #4,PSP         ; skip REMlo REMhi
             MOV R,0(PSP)        ; QUOTlo
@@ -184,7 +184,7 @@ FNUMS       MOV @PSP,S          ; -- Qlo Qhi len        S = Qhi
             MOV TOS,2(PSP)      ; -- len Qlo len
             MOV #FNUMSNEXT,IP   ;
 FNUMSLOOP   MOV &BASE,TOS       ; -- len Qlo base
-            MOV #UMSTAR,PC 
+            MOV #UMSTAR,PC
 FNUMSNEXT   .word   $+2         ; -- len RESlo digit
             SUB #2,IP
             CMP #10,TOS         ;                       digit to char
@@ -203,7 +203,7 @@ FNUMS2CHAR  ADD #30h,TOS        ; -- len RESlo char
             MOV #0,0(PSP)       ; -- Qhi 0 len
             MOV #HOLDS_ORG,X    ; -- Qhi 0 len          X= org
             JMP HOLDS1
-            
+
     .ELSEIF ; hardware multiplier
 
             FORTHWORD "F*"          ; signed s15.16 multiplication --> s15.16 result
@@ -227,7 +227,7 @@ FDIV        PUSHM #4,rDOVAR     ; 6 PUSHM rDOVAR to rDOCOL to use M to R alias
             MOV #0,T            ; DVDlo = 0
             MOV X,S             ;
             XOR TOS,S           ; MDhi XOR MRhi --> S keep sign of result
-            AND #-1,X           ; MD < 0 ? 
+            AND #-1,X           ; MD < 0 ?
             JGE FDIV1           ; no
             XOR #-1,Y           ; lo
             XOR #-1,X           ; hi
@@ -239,7 +239,7 @@ FDIV1       AND #-1,TOS
             XOR #-1,TOS
             ADD #1,M
             ADDC #0,TOS
-FDIV2   
+FDIV2
 ; unsigned 32-BIT DIVIDEND : 32-BIT DIVISOR --> 32-BIT QUOTIENT, 32-BIT REMAINDER
 ; DVDhi|DVDlo : DVRhi|DVRlo --> QUOThi|QUOTlo, REMAINDER
 ;            FORTHWORD "UD/MOD"
@@ -256,19 +256,19 @@ Q322        JNC Q323            ;2 yes: REM U< DIV
 Q323        ADDC R,R            ;1 RLC quotLO
             ADDC Q,Q            ;1 RLC quotHI
             SUB #1,P            ;1 Decrement loop counter
-            JN Q6432END         ;2 loop back if count>=0    
+            JN Q6432END         ;2 loop back if count>=0
             ADD T,T             ;1 RLA DVDlo
             ADDC Y,Y            ;1 RLC DVDhi
             ADDC X,X            ;1 RLC REMlo
             ADDC W,W            ;1 RLC REMhi
-            JNC Q321            ; 
+            JNC Q321            ;
             SUB M,X             ;1 REMlo - DIVlo
             SUBC TOS,W          ;1 REMhi - DIVhi
             BIS #1,SR
             JMP Q323
 Q6432END
-;            MOV X,4(PSP)       ; REMlo    
-;            MOV W,2(PSP)       ; REMhi    
+;            MOV X,4(PSP)       ; REMlo
+;            MOV W,2(PSP)       ; REMhi
 ;            MOV @IP+,PC        ; 33 words
             AND #-1,S           ; clear V, set N
             JGE FDIVEND         ; if positive
@@ -279,7 +279,7 @@ Q6432END
 FDIVEND     MOV R,0(PSP)        ; QUOTlo
             MOV Q,TOS           ; QUOThi
             POPM #4,rDOVAR      ; 6 restore rDOCOL to rDOVAR
-            MOV @IP+,PC 
+            MOV @IP+,PC
 
 ; F#S    Qlo Qhi u -- Qhi 0   convert fractionnal part of Q15.16 fixed point number
 ;                             with u digits
@@ -290,7 +290,7 @@ FNUMS       MOV 2(PSP),X        ; -- Qlo Qhi u      X = Qlo
             MOV TOS,T           ;                   T = limit
             MOV #0,S            ;                   S = count
 FNUMSLOOP   MOV @PSP,&MPY       ;                   Load 1st operand
-            MOV &BASE,&OP2      ;                   Load 2nd operand
+            MOV &BASEADR,&OP2   ;                   Load 2nd operand
             MOV &RES0,0(PSP)    ; -- Qhi Qlo' x     low result on stack
             MOV &RES1,TOS       ; -- Qhi Qlo' digit high result in TOS
             CMP #10,TOS         ;                   digit to char
@@ -305,13 +305,13 @@ FNUMS2CHAR  ADD #30h,TOS
             MOV #0,0(PSP)       ; -- Qhi 0 len
             MOV #HOLDS_ORG,X    ; -- Qhi 0 len      X= org
             JMP HOLDS1
-            
+
     .ENDIF ; of hardware MPY
 
             FORTHWORD "F."          ; display a Q15.16 number with 4 digits after comma
             MOV TOS,S           ; S = sign
             MOV #4,T            ; T = 4     preset 4 digits for base 16 by default
-            MOV &BASE,W
+            MOV &BASEADR,W
             CMP #0Ah,W
             JNZ FDOT1           ;           if not base 10
             ADD #1,T            ; T = 5     set 5 digits
@@ -320,18 +320,18 @@ FDOT1       CMP #2,W            ;
             JNZ FDOT2           ;           if not base 2
             MOV #10h,T          ; T = 16    set 16 digits
 FDOT2       PUSHM #3,IP         ;                   R-- IP S=sign T=#digit
-            ASMtoFORTH
+            mASM2FORTH
             .word   LESSNUM     ; -- uQlo Qhi
             .word   DABS        ; -- uQlo uQhi      R-- IP sign #digit
             .word   RFROM       ; -- uQlo uQhi u    R-- IP sign
-            .word   FNUMS       ; -- uQhi 0     
-            .word   LIT,2Ch,HOLD;                   $2C = char ','
+            .word   FNUMS       ; -- uQhi 0
+            .word   LIT,',',HOLD;
             .word   NUMS        ; -- 0 0
             .word   RFROM       ; -- 0 0 Qhi        R-- IP
-            .word   SIGN        ; -- 0 0 
-            .word   NUMGREATER  ; -- addr len 
+            .word   SIGN        ; -- 0 0
+            .word   NUMGREATER  ; -- addr len
             .word   TYPE        ; --
-            .word   FBLANK,EMIT ; --      
+            .word   BL,EMIT     ; --
             .word   EXIT
 
             FORTHWORD "S>F"         ; convert a signed number to a Q15.16 (signed) number
index bb01c09..5a16f43 100644 (file)
@@ -1,5 +1,13 @@
 ; -*- coding: utf-8 -*-
 
+    .IFNDEF ANDD
+;https://forth-standard.org/standard/core/AND
+;C AND    x1 x2 -- x3           logical AND
+            FORTHWORD "AND"
+ANDD        AND @PSP+,TOS    
+            MOV @IP+,PC
+    .ENDIF
+
     .IFNDEF MAX
 
 ;https://forth-standard.org/standard/core/MAX
@@ -113,6 +121,7 @@ DUMP        PUSH IP
             ADD @PSP,TOS                    ; -- ORG END
             ASMtoFORTH
             .word   SWAP                    ; -- END ORG
+            .word   LIT,FFF0h,AND           ; -- END ORG_modulo_16
             .word   xdo                     ; --
 DUMP1       .word   CR
             .word   II,lit,4,UDOTR,SPACE    ; generate address
@@ -158,7 +167,7 @@ DisplaySector
 ; ----------------------------------;
 ; read first sector of Cluster and dump it
 ; ----------------------------------;
-            FORTHWORD "CLUSTR."     ; cluster.  --         don't forget to add decimal point to your sector number (if < 65536)
+            FORTHWORD "CLUSTER."    ; cluster.  --         don't forget to add decimal point to your sector number (if < 65536)
 ; ----------------------------------;
 CLUSTER     BIT.B #CD_SD,&SD_CDIN   ; test Card Detect: memory card present ?
             JZ CD_CLUST_OK          ;
@@ -196,11 +205,6 @@ CLUSTER1    RRA W                   ; shift one right multiplicator
             MOV TOS,2(PSP)          ;           save TOS
             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
+            JMP CLUSTER
 ; ----------------------------------;
 
index 2e0c5e9..a3dbb1a 100644 (file)
@@ -1,6 +1,6 @@
 ; -*- coding: utf-8 -*-
 
-            FORTHWORD "{TOOLS}"
+            FORTHWORD "{UTILITY}"
             MOV @IP+,PC
 
     .IFNDEF TOR
@@ -25,7 +25,26 @@ ANDD        AND     @PSP+,TOS
 ;C C@     c-addr -- char   fetch char from memory
             FORTHWORD "C@"
 CFETCH      MOV.B @TOS,TOS      ;2
-            MOV @IP+,PC               ;4
+            MOV @IP+,PC         ;4
+        .ENDIF
+
+        .IFNDEF ULESS
+; https://forth-standard.org/standard/core/Uless
+; U<    u1 u2 -- flag       test u1<u2, unsigned
+            FORTHWORD "U<"
+ULESS       SUB @PSP+,TOS   ; 2 u2-u1
+            JNC UTOSFALSE
+            JZ  ULESSEND
+UTOSTRUE    MOV #-1,TOS     ;1 flag Z = 0
+ULESSEND    MOV @IP+,PC     ;4
+
+; https://forth-standard.org/standard/core/Umore
+; U>     n1 n2 -- flag
+            FORTHWORD "U>"
+            SUB @PSP+,TOS   ; 2
+            JNC UTOSTRUE    ; 2 flag = true, Z = 0
+UTOSFALSE   AND #0,TOS      ;1 flag Z = 1
+            MOV @IP+,PC     ;4
         .ENDIF
 
         .IFNDEF SPACE
@@ -55,6 +74,91 @@ SPACESNEXT2 MOV @PSP+,TOS           ; --         drop n
 
         .ENDIF
 
+    .IFNDEF TWODUP
+; 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
+            MOV @PSP,-4(PSP)    ; 4
+            SUB #4,PSP          ; 1
+            MOV @IP+,PC         ; 4
+    .ENDIF
+
+    .IFNDEF XDO
+; Primitive XDO; compiled by DO
+;Z (do)    n1|u1 n2|u2 --  R: -- sys1 sys2      run-time code for DO
+;                                               n1|u1=limit, n2|u2=index
+XDO         MOV #8000h,X    ;2 compute 8000h-limit = "fudge factor"
+            SUB @PSP+,X     ;2
+            MOV TOS,Y       ;1 loop ctr = index+fudge
+            ADD X,Y         ;1 Y = INDEX
+            PUSHM #2,X      ;4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+            MOV @PSP+,TOS   ;2
+            MOV @IP+,PC     ;4
+
+            FORTHWORDIMM "DO"       ; immediate
+; https://forth-standard.org/standard/core/DO
+; DO       -- DOadr   L: -- 0
+DO          SUB #2,PSP              ;
+            MOV TOS,0(PSP)          ;
+            ADD #2,&DP             ;   make room to compile xdo
+            MOV &DP,TOS            ; -- HERE+2
+            MOV #XDO,-2(TOS)        ;   compile xdo
+            ADD #2,&LEAVEPTR        ; -- HERE+2     LEAVEPTR+2
+            MOV &LEAVEPTR,W         ;
+            MOV #0,0(W)             ; -- HERE+2     L-- 0
+            MOV @IP+,PC
+
+; Primitive XLOOP; compiled by 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
+; return stack and skip the branch.  Else take the inline branch.
+; Note that LOOP terminates when index=8000h.
+XLOOP       ADD #1,0(RSP)   ;4 increment INDEX
+XLOOPNEXT   BIT #100h,SR    ;2 is overflow bit set?
+            JZ XLOOPDO      ;2 no overflow = loop
+            ADD #4,RSP      ;1 empties RSP
+            ADD #2,IP       ;1 overflow = loop done, skip branch ofs
+            MOV @IP+,PC     ;4 14~ taken or not taken xloop/loop
+XLOOPDO     MOV @IP,IP
+            MOV @IP+,PC     ;4 14~ taken or not taken xloop/loop
+
+            FORTHWORDIMM "LOOP"     ; immediate
+; https://forth-standard.org/standard/core/LOOP
+; LOOP    DOadr --         L-- an an-1 .. a1 0
+LOO         MOV #XLOOP,X
+LOOPNEXT    ADD #4,&DP             ; make room to compile two words
+            MOV &DP,W
+            MOV X,-4(W)             ; xloop --> HERE
+            MOV TOS,-2(W)           ; DOadr --> HERE+2
+; resolve all "leave" adr
+LEAVELOOP   MOV &LEAVEPTR,TOS       ; -- Adr of top LeaveStack cell
+            SUB #2,&LEAVEPTR        ; --
+            MOV @TOS,TOS            ; -- first LeaveStack value
+            CMP #0,TOS              ; -- = value left by DO ?
+            JZ LOOPEND
+            MOV W,0(TOS)            ; move adr after loop as UNLOOP adr
+            JMP LEAVELOOP
+LOOPEND     MOV @PSP+,TOS
+            MOV @IP+,PC
+
+; Primitive XPLOOP; compiled by +LOOP
+;Z (+loop)   n --   R: sys1 sys2 --  | sys1 sys2
+;                        run-time code for +LOOP
+; Add n to the loop index.  If loop terminates, clean up the
+; return stack and skip the branch. Else take the inline branch.
+XPLOO       ADD TOS,0(RSP)  ;4 increment INDEX by TOS value
+            MOV @PSP+,TOS   ;2 get new TOS, doesn't change flags
+            JMP XLOOPNEXT   ;2
+
+            FORTHWORDIMM "+LOOP"    ; immediate
+; https://forth-standard.org/standard/core/PlusLOOP
+; +LOOP   adrs --   L-- an an-1 .. a1 0
+PLUSLOOP    MOV #XPLOO,X
+            JMP LOOPNEXT
+    .ENDIF
+
     .IFNDEF II
 ; https://forth-standard.org/standard/core/I
 ; I        -- n   R: sys1 sys2 -- sys1 sys2
@@ -70,7 +174,7 @@ II          SUB #2,PSP              ;1 make room in TOS
 ;https://forth-standard.org/standard/tools/DotS
             FORTHWORD ".S"      ; --            print <depth> of Param Stack and stack contents if not empty
 DOTS        MOV TOS,-2(PSP)     ; -- TOS ( tos x x )
-            MOV PSP,TOS 
+            MOV PSP,TOS
             SUB #2,TOS          ; to take count that TOS is first cell
             MOV TOS,-6(PSP)     ; -- TOS ( tos x  PSP )
             MOV #PSTACK,TOS     ; -- P0  ( tos x  PSP )
@@ -89,12 +193,12 @@ DOTS1       MOV TOS,-4(PSP)     ; -- S0  ( tos S0 SP )
             .word   DROP,DROP,EXIT
 STKDISPL1   .word   xdo
 STKDISPL2   .word   II,FETCH,UDOT
-            .word   lit,2,xploop,STKDISPL2
+            .word   lit,2,xploo,STKDISPL2
             .word   EXIT
 
 
             FORTHWORD ".RS"     ; --           print <depth> of Return Stack and stack contents if not empty
-DOTRS       MOV TOS,-2(PSP)     ; -- TOS ( tos x x ) 
+DOTRS       MOV TOS,-2(PSP)     ; -- TOS ( tos x x )
             MOV RSP,-6(PSP)     ; -- TOS ( tos x  RSP )
             MOV #RSTACK,TOS     ; -- R0  ( tos x  RSP )
             JMP DOTS1
@@ -105,6 +209,42 @@ DOTRS       MOV TOS,-2(PSP)     ; -- TOS ( tos x x )
 QUESTION    MOV @TOS,TOS
             MOV #UDOT,PC
 
+        .IFNDEF QDUP
+; https://forth-standard.org/standard/core/DUP
+; DUP      x -- x x      duplicate top of stack
+            FORTHWORD "DUP"
+QDUPNEXT    SUB #2,PSP      ; 2  push old TOS..
+            MOV TOS,0(PSP)  ; 3  ..onto stack
+QDUPEND     MOV @IP+,PC     ; 4
+
+; https://forth-standard.org/standard/core/qDUP
+; ?DUP     x -- 0 | x x    DUP if nonzero
+            FORTHWORD "?DUP"
+QDUP        CMP #0,TOS
+            JZ QDUPEND
+            JNZ QDUPNEXT
+        .ENDIF
+
+        .IFNDEF CR
+            FORTHWORD "CR"
+; https://forth-standard.org/standard/core/CR
+; CR      --               send CR to the output device
+CR          MOV @PC+,PC
+            .word BODYCR
+BODYCR      mDOCOL                  ;  send CR+LF to the default output device
+            .word   XSQUOTE
+            .byte   2,0Dh,0Ah
+            .word   TYPE,EXIT
+        .ENDIF
+
+    .IFNDEF TWODIV
+;https://forth-standard.org/standard/core/TwoDiv
+;C 2/      x1 -- x2        arithmetic right shift
+            FORTHWORD "2/"
+TWODIV      RRA TOS
+            MOV @IP+,PC
+    .ENDIF
+
     .SWITCH THREADS
     .CASE   1
 
@@ -115,11 +255,12 @@ WORDS       mDOCOL
             .word   CR
             .word   LIT,CONTEXT,FETCH   ; -- VOC_BODY
 WORDS1      .word   FETCH               ; -- NFA
-            .word   QDUP                ; -- 0 | -- NFA NFA 
+            .word   QDUP                ; -- 0 | -- NFA NFA
             .word   QFBRAN,WORDS2        ; -- NFA
-            .word   DUP,DUP,COUNT       ; -- NFA NFA addr count 
-            .word   lit,07Fh,ANDD,TYPE  ; -- NFA NFA 
-            .word   CFETCH,lit,0Fh,ANDD
+            .word   DUP,DUP,COUNT       ; -- NFA NFA addr count
+            .word   TWODIV,ANDD,TYPE    ; -- NFA NFA
+            .word   CFETCH,TWODIV
+            .word   lit,0Fh,ANDD
             .word   lit,10h,SWAP,MINUS
             .word   SPACES
             .word   lit,2,MINUS         ; NFA -- LFA
@@ -147,6 +288,35 @@ ROT         MOV @PSP,W          ; 2 fetch x2
             MOV @IP+,PC               ; 4
         .ENDIF
 
+            .IFNDEF MOVE
+; https://forth-standard.org/standard/core/MOVE
+; MOVE    addr1 addr2 u --     smart move
+;             VERSION FOR 1 ADDRESS UNIT = 1 CHAR
+            FORTHWORD "MOVE"
+MOVE        MOV TOS,W           ; W = cnt
+            MOV @PSP+,Y         ; Y = addr2 = dst
+            MOV @PSP+,X         ; X = addr1 = src
+            MOV @PSP+,TOS       ; pop new TOS
+            CMP #0,W            ; count = 0 ?
+            JZ MOVEND           ; if 0, already done !
+            CMP X,Y             ; dst = src ?
+            JZ MOVEND           ; already done !
+            JC MOVEDOWN         ; U< if src > dst
+MOVEUPLOOP  MOV.B @X+,0(Y)      ; copy W bytes
+            ADD #1,Y
+            SUB #1,W
+            JNZ MOVEUPLOOP
+            MOV @IP+,PC         ; out 1 of MOVE ====>
+MOVEDOWN    ADD W,Y             ; copy W bytes beginning with the end
+            ADD W,X
+MOVEDOWNLOO SUB #1,X
+            SUB #1,Y
+            MOV.B @X,0(Y)
+            SUB #1,W
+            JNZ MOVEDOWNLOO
+MOVEND      MOV @IP+,PC ; out 2 of MOVE ====>
+            .ENDIF
+
 ;https://forth-standard.org/standard/tools/WORDS
 ;X WORDS        --      list all words in first vocabulary in CONTEXT. 38 words
             FORTHWORD "WORDS"
@@ -156,23 +326,22 @@ WORDS       mDOCOL
             .word   PAD,LIT,THREADS,DUP,PLUS
             .word   MOVE
                                             ; BEGIN
-WORDS2      .word   LIT,0,DUP               
+WORDS2      .word   LIT,0,DUP
             .word   LIT,THREADS,DUP,PLUS    ;   I = ptr = thread*2
             .word   LIT,0
             .word   xdo                     ;   DO
-WORDS3      .word   DUP
-            .word   II,PAD,PLUS,FETCH       ;   old MAX NFA U< NFA ?
+WORDS3      .word   DUP,II,PAD,PLUS,FETCH   ;   old MAX NFA U< NFA ?
             .word   ULESS,QFBRAN,WORDS4      ;   no
-            .word   DROP,DROP,II            ;   yes, replace old MAX of NFA by new MAX of NFA 
+            .word   TWODROP,II              ;   yes, replace old MAX of NFA by new MAX of NFA
             .word   DUP,PAD,PLUS,FETCH      ;
-WORDS4      .word   LIT,2,xploop,WORDS3     ;   2 +LOOP
+WORDS4      .word   LIT,2,xploo,WORDS3      ;   2 +LOOP
             .word   QDUP                    ;   MAX of NFA = 0 ?
             .word   QFBRAN,WORDS5            ; WHILE
             .word   DUP,LIT,2,MINUS,FETCH   ;   replace NFA MAX by its [LFA]
-            .word   ROT,PAD,PLUS,STORE   
-            .word   DUP,COUNT               ;   display NFA MAX in 10 chars format
-            .word   lit,07Fh,ANDD,TYPE
-            .word   CFETCH,lit,0Fh,ANDD
+            .word   ROT,PAD,PLUS,STORE
+            .word   DUP,COUNT,TWODIV,TYPE   ;   display NFA MAX in 10 chars format
+            .word   CFETCH,TWODIV
+            .word   lit,0Fh,ANDD
             .word   lit,10h,SWAP,MINUS
             .word   SPACES
             .word   BRAN,WORDS2             ; REPEAT
@@ -230,13 +399,20 @@ UDOTR       mDOCOL
             .word   EXIT
     .ENDIF
 
+    .IFNDEF HERE
+; https://forth-standard.org/standard/core/HERE
+; HERE    -- addr      returns memory ptr
+HERE       FORTHWORD "HERE"
+            MOV #HEREXEC,PC
+    .ENDIF
+
 ;https://forth-standard.org/standard/tools/DUMP
             FORTHWORD "DUMP"
 DUMP        PUSH IP
-            PUSH &BASE                      ; save current base
-            MOV #10h,&BASE                  ; HEX base
+            PUSH &BASEADR                   ; save current base
+            MOV #10h,&BASEADR               ; HEX base
             ADD @PSP,TOS                    ; -- ORG END
-            ASMtoFORTH
+            mASM2FORTH
             .word   SWAP                    ; -- END ORG
             .word   xdo                     ; --
 DUMP1       .word   CR
@@ -252,9 +428,9 @@ DUMP3       .word   II,CFETCH,lit,3,UDOTR
             .word   SPACE,SPACE
             .word   II,lit,10h,PLUS,II,xdo  ; display 16 chars
 DUMP4       .word   II,CFETCH
-            .word   lit,7Eh,MIN,FBLANK,MAX,EMIT
+            .word   lit,7Eh,MIN,BL,MAX,EMIT
             .word   xloop,DUMP4             ; chars display loop
-            .word   lit,10h,xploop,DUMP1    ; line loop
-            .word   RFROM,lit,BASE,STORE       ; restore current base
+            .word   lit,10h,xploo,DUMP1     ; line loop
+            .word   RFROM,lit,BASEADR,STORE ; restore current base
             .word   EXIT
 
diff --git a/FastForth.pdf b/FastForth.pdf
deleted file mode 100644 (file)
index 6ee8457..0000000
Binary files a/FastForth.pdf and /dev/null differ
diff --git a/FastForthWords.txt b/FastForthWords.txt
deleted file mode 100644 (file)
index 8995418..0000000
+++ /dev/null
@@ -1,503 +0,0 @@
-
-RETURN-STACK-CELLS  = 48            maximum size of the return stack, in cells
-STACK-CELLS         = 48            maximum size of the data stack, in cells
-/COUNTED-STRING            = 255           maximum size of a counted string, in characters
-/HOLD              = 34            size of the pictured numeric output string buffer, in characters
-/PAD               = 84            size of the scratch area pointed to by PAD, in characters
-ADDRESS-UNIT-BITS   = 16            size of one address unit, in bits
-FLOORED                    = true          true if floored division is the default
-MAX-CHAR               = 255           maximum value of any character in the implementation-defined character set
-MAX-N               = 32767         largest usable signed integer
-MAX-U               = 65535         largest usable unsigned integer
-MAX-D              = 2147483647    largest usable signed double number
-MAX-UD              = 4294967295    largest usable unsigned double number
-WoRdS aRe CaSe-InSeNsItIvE
-
-FORTH word-set
-----------------
-RST_HERE        PWR_HERE        RST_STATE       PWR_STATE       CREATE          ;               :               IMMEDIATE       
-POSTPONE        ]               [               \               '               [']             ABORT"          INTERPRET       
-COUNT           LITERAL         ALLOT           ,               >NUMBER         FIND            WORD            ."              
-S"              .               U.              SIGN            HOLD            #>              #S              #               
-<#              !               @               CR              TYPE            NOECHO          ECHO            EMIT            
-KEY             ACCEPT          COLD            WARM            WIPE            
-
-RST_HERE        defines the bound of the program memory protected against COLD or hardware reset.
-PWR_HERE        defines the bound of the program memory protected against ON/OFF and also against any error occurring.
-RST_STATE       removes all words defined after RST_HERE (COLD or <reset> have same effet)
-PWR_STATE       removes all words defined after PWR_HERE (an error has same effect)
-INTERPRET       text interpreter, common part of EVALUATE and QUIT.
-NOECHO          stop display on output 
-ECHO            start display on output
-CREATE          https://forth-standard.org/standard/core/CREATE
-;               https://forth-standard.org/standard/core/Semi
-:               https://forth-standard.org/standard/core/Colon
-IMMEDIATE       https://forth-standard.org/standard/core/IMMEDIATE
-POSTPONE        https://forth-standard.org/standard/core/POSTPONE
-]               https://forth-standard.org/standard/core/right-bracket
-[               https://forth-standard.org/standard/core/Bracket
-\               https://forth-standard.org/standard/block/bs
-[']             https://forth-standard.org/standard/core/BracketTick
-'               https://forth-standard.org/standard/core/Tick
-ABORT"          https://forth-standard.org/standard/core/ABORTq
-COUNT           https://forth-standard.org/standard/core/COUNT
-LITERAL         https://forth-standard.org/standard/core/LITERAL
-ALLOT           https://forth-standard.org/standard/core/ALLOT
-,               https://forth-standard.org/standard/core/Comma
->NUMBER         https://forth-standard.org/standard/core/toNUMBER
-FIND            https://forth-standard.org/standard/core/FIND
-WORD            https://forth-standard.org/standard/core/WORD
-."              https://forth-standard.org/standard/core/Dotq
-S"              https://forth-standard.org/standard/core/Sq
-.               https://forth-standard.org/standard/core/d
-U.              https://forth-standard.org/standard/core/Ud
-SIGN            https://forth-standard.org/standard/core/SIGN
-HOLD            https://forth-standard.org/standard/core/HOLD
-#>              https://forth-standard.org/standard/core/num-end
-#S              https://forth-standard.org/standard/core/numS
-#               https://forth-standard.org/standard/core/num
-<#              https://forth-standard.org/standard/core/num-start
-!               https://forth-standard.org/standard/core/Store
-@               https://forth-standard.org/standard/core/Fetch
-CR              DEFERed word, https://forth-standard.org/standard/core/CR
-TYPE            https://forth-standard.org/standard/core/TYPE
-EMIT            DEFERed word, https://forth-standard.org/standard/core/EMIT
-KEY             DEFERed word, https://forth-standard.org/standard/core/KEY
-ACCEPT          DEFERed word, https://forth-standard.org/standard/core/ACCEPT
-COLD            PFA of COLD content = STOP_APP subroutine address, by default --> STOP_TERM
-WARM            PFA of WARM content = INI_APP subroutine address, by default --> ENABLE_IO
-WIPE            resets the program memory to its original state (Deep_RST have same effect).
-
-words added by the option MSP430ASSEMBLER:
-
-ASM             CODE            HI2LO
-
-CODE <word>     creates a word written in assembler. 
-                this defined <word> must be ended with ENDCODE unless COLON or LO2HI use.
-ASM <word>      creates a word written in assembler but not interpretable by FORTH (because ended by RET instr.).
-                this defined <word> must be ended with ENDASM. Visible only from assembler
-HI2LO           used to switch compilation from high level (FORTH) to low level (assembler).
-
-Other words are useable via the preprocessor GEMA and they address is in \inc\device.pat file :
-
-SLEEP               CODE_WITHOUT_RETURN: CPU shutdown
-LIT                 CODE compiled by LITERAL
-XSQUOTE             CODE compiled by S" and S_
-HEREXEC             CODE HERE and BEGIN execute address
-QFBRAN              CODE compiled by IF UNTIL
-BRAN                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR            CODE NEXT instruction (MOV @IP+,PC)
-XDO                 CODE compiled by DO
-XPLOOP              CODE compiled by +LOOP
-XLOOP               CODE compiled by LOOP
-MUSMOD              ASM 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2           ASM input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1               ASM input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR             ASM content of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL              CODE accept one line from input and leave org len of input buffer
-CIB_ADR             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES             restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON              restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR              restore rDOVAR: MOV #XDOVAR,rDOVAR
-!to find DTC value, download \MSP430-FORTH\FF_SPECS.4th
-!XDOCOL             if DTC = 1, restore rDOCOL as this: MOV #TYPE+-16,rDOCOL
-!XDOCOL             if DTC = 2, restore rDOCOL as this: MOV ##S+16,rDOCOL
-!                   if DTC = 3, nothing to do, R7 is free for use.
-INI_FORTH           CODE_WITHOUT_RETURN common part of RST and QABORT, starts FORTH engine
-QABORT              CODE_WITHOUT_RETURN run-time part of ABORT"
-3DROP               CODE 
-ABORT_TERM          CODE_WITHOUT_RETURN called by QREVEAL and INTERPRET   
-!-------------------------------------------------------------------------------
-UART_COLD_TERM      ASM, content of COLD_PFA by default
-UART_INIT_TERM      ASM, content of WARM_PFA by default
-UART_RXON           ASM, content of SLEEP_PFA by default
-UART_RXOFF          ASM, called by ACCEPT before RX char LF.
-!-------------------------------------------------------------------------------
-I2C_COLD_TERM       ASM, content of COLD_PFA by default
-I2C_INIT_TERM       ASM, content of WARM_PFA by default
-I2C_RXON            ASM, content of SLEEP_PFA by default
-I2C_CTRL_CH         ASM, used as is: MOV.B #CTRL_CHAR,Y
-!                                    CALL #I2C_CTRL_CH
-!-------------------------------------------------------------------------------
-
-MSP430ASSEMBLER word-set
---------------------
-
-?GOTO           GOTO            FW3             FW2             FW1             BW3             BW2             
-BW1             REPEAT          WHILE           AGAIN           UNTIL           ELSE            THEN            
-IF              0=              0<>             U>=             U<              0<              0>=             
-S<              S>=             RRUM            RLAM            RRAM            RRCM            POPM            
-PUSHM           CALL            PUSH.B          PUSH            SXT             RRA.B           RRA             
-SWPB            RRC.B           RRC             AND.B           AND             XOR.B           XOR             
-BIS.B           BIS             BIC.B           BIC             BIT.B           BIT             DADD.B          
-DADD            CMP.B           CMP             SUB.B           SUB             SUBC.B          SUBC            
-ADDC.B          ADDC            ADD.B           ADD             MOV.B           MOV             RETI            
-LO2HI           COLON           ENDASM          ENDCODE
-
-see: http://www.ece.utep.edu/courses/web3376/Notes_files/ee3376-isa.pdf
-     readme.md for symbolic alias of registers, symbolic jumps (IF ELSE THEN...),..
-
-?GOTO           used after a conditionnal (0=,0<>,U>=,U<,0<,S<,S>=) to branch to a label FWx or BWx
-GOTO            used as unconditionnal branch to a label FWx or BWx
-BW3             BACKWARD branch destination n°3
-BW2                                         n°2
-BW1                                         n°1
-FW3             FORWARD branch destination  n°3
-FW2                                         n°2
-FW1                                         n°1
-REPEAT          assembler version of the FORTH word REPEAT
-WHILE           idem
-AGAIN           idem
-UNTIL           idem
-ELSE            idem
-THEN            idem
-IF              idem
-0=              conditionnal     
-0<>             conditionnal
-U>=             conditionnal
-U<              conditionnal
-0<              conditionnal, to use only with ?GOTO
-0>=             conditionnal, to use only with IF UNTIL WHILE
-S<              conditionnal
-S>=             conditionnal
-LO2HI           switches compilation between low level and high level modes without saving IP register.
-COLON           pushes IP then performs LO2HI, used as: CODE <word> ... assembler instr ... COLON ... FORTH words ... ;
-ENDASM          to end an ASM definition.
-ENDCODE         to end a CODE definition.
-
-ADD     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=135
-ADDC    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=136
-AND     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=137
-BIC     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=138
-BIS     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=139
-BIT     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=140
-CALL    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=142
-CMP     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=147
-DADD    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=149
-MOV     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=165
-PUSH    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=168
-RETI    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=170
-RRA     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=173
-RRC     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=174
-SUB     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=179
-SUBC    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=180
-SWPB    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=181
-SXT     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=182
-XOR     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=184
-
-RRUM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=218
-RLAM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=208
-RRAM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=211
-RRCM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=214
-POPM    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204
-PUSHM   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205
-
-EXTENDED_MEM WORDS set:
-
-POPM.A  http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204
-PUSHM.A http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205
-ADDA    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=229
-CALLA   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=232
-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
-
-EXTENDED_ASM WORDS set:
-
-ADDX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=187
-ADDCX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=188
-ANDX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=189
-BICX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=190
-BISX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=191
-BITX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=192
-CMPX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=194
-DADDX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=196
-MOVX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=202
-PUSHX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=207
-RRAX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=212
-RRCX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=216
-RRUX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=219
-SUBX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=221
-SUBCX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=222
-SWPBX   http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=223
-SXTX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=225
-XORX    http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=227
-
-RPT     http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=219
-
-CONDCOMP ADD-ON
----------------
-MARKER          [DEFINED]       [UNDEFINED]     [IF]            [ELSE]          [THEN]        
-
-MARKER          https://forth-standard.org/standard/core/MARKER
-[DEFINED]       https://forth-standard.org/standard/tools/BracketDEFINED
-[UNDEFINED]     https://forth-standard.org/standard/tools/BracketUNDEFINED
-[IF]            https://forth-standard.org/standard/tools/BracketIF
-[ELSE]          https://forth-standard.org/standard/tools/BracketELSE
-[THEN]          https://forth-standard.org/standard/tools/BracketTHEN
-
-
-VOCABULARY ADD-ON
------------------
-DEFINITIONS     ONLY            PREVIOUS        ALSO            ASSEMBLER       FORTH           VOCABULARY
-
-DEFINITIONS     https://forth-standard.org/standard/search/DEFINITIONS
-ONLY            https://forth-standard.org/standard/search/ONLY
-PREVIOUS        https://forth-standard.org/standard/search/PREVIOUS
-ALSO            https://forth-standard.org/standard/search/ALSO
-ASSEMBLER       assembler VOCABULARY
-FORTH           FORTH VOCABULARY
-VOCABULARY <word>     creates a new VOCABULARY named word
-
-
-NONAME ADD-ON
--------------
-CODENNM         IS              DEFER           :NONAME         
-
-:NONAME         https://forth-standard.org/standard/core/ColonNONAME 
-CODENNM         assembly counterpart of :NONAME
-DEFER           https://forth-standard.org/standard/core/DEFER
-IS              https://forth-standard.org/standard/core/IS
-
-
-SD_CARD_LOADER ADD-ON
----------------------
-LOAD"
-
-LOAD"           LOAD" SD_TEST.4TH" loads source file SD_TEST.4TH from SD_Card and compile it.
-
-ACCEPT becomes a DEFERed word
-
-
-SD_CARD_READ_WRITE ADD-ON
--------------------------
-TERM2SD"        SD_EMIT         WRITE           READ            CLOSE           DEL"            WRITE"          
-READ"
-
-TERM2SD"        TERM2SD" SD_TEST.4TH" copy input file to SD_CARD (use CopySourceFileToTarget_SD_Card.bat to do)
-SD_EMIT         sends output stream at the end of last opened as write file.
-WRITE           write sequentially BUFFER content to a sector
-READ            read sequentially a sector to BUFFER
-CLOSE           close last opened file.
-DEL"            DEL" SD_TEST.4TH" remove this file from SD_CARD.
-WRITE"          WRITE" TRUC" open or create TRUC file ready to write to the end of this file
-READ"           READ" TRUC" open TRUC and load its first sector in BUFFER
-
-
-
-BOOTLOADER
-----------
-BOOT
-
-QUIT becomes a DEFERed word
-
-
-; when ADD-ONs are compiled into the kernel, their respective MARKER word identified with braces {} does nothing.
-; when ADD-ONs are downloaded, their respective MARKER word identified with braces {} removes all ADD-ONs words.
-
-
-ANS_COMPLEMENT ADD-ON
----------------------
-VALUE           TO              SPACES          SPACE           BL              PAD             >IN             
-BASE            STATE           CONSTANT        VARIABLE        SOURCE          RECURSE         EVALUATE        
-EXECUTE         >BODY           .(              (               DECIMAL         HEX             HERE            
-FILL            MOVE            +!              [CHAR]          CHAR            CELL+           CELLS           
-CHAR+           CHARS           ALIGN           ALIGNED         2OVER           2SWAP           2DROP           
-2DUP            2!              2@              R@              ROT             OVER            */              
-*/MOD           MOD             /               /MOD            *               FM/MOD          ABS             
-NEGATE          SM/REM          UM/MOD          M*              UM*             2/              2*              
-MIN             MAX             RSHIFT          LSHIFT          INVERT          1-              1+              
-S>D             XOR             OR              AND             LEAVE           UNLOOP          J               
-I               +LOOP           LOOP            DO              REPEAT          WHILE           AGAIN           
-UNTIL           ELSE            THEN            IF              >               <               U<              
-=               0<              0=              C,              C!              C@              R>              
->R              NIP             DROP            SWAP            DEPTH           EXIT            ?DUP            
-DUP             -               +               DOES>           BEGIN           {CORE_COMP}
-
-VALUE           https://forth-standard.org/standard/core/VALUE
-TO              https://forth-standard.org/standard/core/TO
-BEGIN           https://forth-standard.org/standard/core/BEGIN
-DOES>           https://forth-standard.org/standard/core/DOES
-SPACES          https://forth-standard.org/standard/core/SPACES
-SPACE           https://forth-standard.org/standard/core/SPACE
-BL              https://forth-standard.org/standard/core/BL
-PAD             https://forth-standard.org/standard/core/PAD            
->IN             https://forth-standard.org/standard/core/toIN
-BASE            https://forth-standard.org/standard/core/BASE
-STATE           https://forth-standard.org/standard/core/STATE
-CONSTANT        https://forth-standard.org/standard/core/CONSTANT
-VARIABLE        https://forth-standard.org/standard/core/VARIABLE
-SOURCE          https://forth-standard.org/standard/core/SOURCE
-RECURSE         https://forth-standard.org/standard/core/RECURSE
-EVALUATE        https://forth-standard.org/standard/core/EVALUATE
-EXECUTE         https://forth-standard.org/standard/core/EXECUTE
->BODY           https://forth-standard.org/standard/core/toBODY
-.(              https://forth-standard.org/standard/core/Dotp
-(               https://forth-standard.org/standard/core/p
-DECIMAL         https://forth-standard.org/standard/core/DECIMAL
-HEX             https://forth-standard.org/standard/core/HEX
-HERE            https://forth-standard.org/standard/core/HERE
-FILL            https://forth-standard.org/standard/core/FILL
-MOVE            https://forth-standard.org/standard/core/MOVE
-+!              https://forth-standard.org/standard/core/PlusStore
-[CHAR]          https://forth-standard.org/standard/core/BracketCHAR
-CHAR            https://forth-standard.org/standard/core/CHAR
-CELL+           https://forth-standard.org/standard/core/CELLPlus
-CELLS           https://forth-standard.org/standard/core/CELLS
-CHAR+           https://forth-standard.org/standard/core/CHARPlus
-CHARS           https://forth-standard.org/standard/core/CHARS
-ALIGN           https://forth-standard.org/standard/core/ALIGN
-ALIGNED         https://forth-standard.org/standard/core/ALIGNED
-2OVER           https://forth-standard.org/standard/core/TwoOVER
-2SWAP           https://forth-standard.org/standard/core/TwoSWAP
-2DROP           https://forth-standard.org/standard/core/TwoDROP
-2DUP            https://forth-standard.org/standard/core/TwoDUP
-2!              https://forth-standard.org/standard/core/TwoStore
-2@              https://forth-standard.org/standard/core/TwoFetch
-R@              https://forth-standard.org/standard/core/RFetch
-ROT             https://forth-standard.org/standard/core/ROT
-OVER            https://forth-standard.org/standard/core/OVER
-*/              https://forth-standard.org/standard/core/TimesDiv
-*/MOD           https://forth-standard.org/standard/core/TimesDivMOD
-MOD             https://forth-standard.org/standard/core/MOD
-/               https://forth-standard.org/standard/core/Div
-/MOD            https://forth-standard.org/standard/core/DivMOD
-*               https://forth-standard.org/standard/core/Times
-FM/MOD          https://forth-standard.org/standard/core/FMDivMOD
-ABS             https://forth-standard.org/standard/core/ABS
-NEGATE          https://forth-standard.org/standard/core/NEGATE
-SM/REM          https://forth-standard.org/standard/core/SMDivREM
-UM/MOD          https://forth-standard.org/standard/core/UMDivMOD
-M*              https://forth-standard.org/standard/core/MTimes
-UM*             https://forth-standard.org/standard/core/UMTimes
-2/              https://forth-standard.org/standard/core/TwoDiv
-2*              https://forth-standard.org/standard/core/TwoTimes
-MIN             https://forth-standard.org/standard/core/MIN
-MAX             https://forth-standard.org/standard/core/MAX
-RSHIFT          https://forth-standard.org/standard/core/RSHIFT
-LSHIFT          https://forth-standard.org/standard/core/LSHIFT
-INVERT          https://forth-standard.org/standard/core/INVERT
-1-              https://forth-standard.org/standard/core/OneMinus
-1+              https://forth-standard.org/standard/core/OnePlus
-S>D             https://forth-standard.org/standard/core/StoD
-XOR             https://forth-standard.org/standard/core/XOR
-OR              https://forth-standard.org/standard/core/OR
-AND             https://forth-standard.org/standard/core/AND
-LEAVE           https://forth-standard.org/standard/core/LEAVE
-UNLOOP          https://forth-standard.org/standard/core/UNLOOP
-J               https://forth-standard.org/standard/core/J
-I               https://forth-standard.org/standard/core/I
-+LOOP           https://forth-standard.org/standard/core/PlusLOOP
-LOOP            https://forth-standard.org/standard/core/LOOP
-DO              https://forth-standard.org/standard/core/DO        
-REPEAT          https://forth-standard.org/standard/core/REPEAT
-WHILE           https://forth-standard.org/standard/core/WHILE
-AGAIN           https://forth-standard.org/standard/core/AGAIN
-UNTIL           https://forth-standard.org/standard/core/UNTIL
-THEN            https://forth-standard.org/standard/core/THEN
-ELSE            https://forth-standard.org/standard/core/ELSE
-IF              https://forth-standard.org/standard/core/IF
->               https://forth-standard.org/standard/core/more
-<               https://forth-standard.org/standard/core/less
-U<              https://forth-standard.org/standard/core/Uless
-=               https://forth-standard.org/standard/core/Equal
-0<              https://forth-standard.org/standard/core/Zeroless
-0=              https://forth-standard.org/standard/core/ZeroEqual
-C,              https://forth-standard.org/standard/core/CComma
-C!              https://forth-standard.org/standard/core/CStore
-C@              https://forth-standard.org/standard/core/CFetch
-R>              https://forth-standard.org/standard/core/Rfrom
->R              https://forth-standard.org/standard/core/toR
-NIP             https://forth-standard.org/standard/core/NIP
-DROP            https://forth-standard.org/standard/core/DROP
-SWAP            https://forth-standard.org/standard/core/SWAP
-DEPTH           https://forth-standard.org/standard/core/DEPTH
-EXIT            https://forth-standard.org/standard/core/EXIT
-?DUP            https://forth-standard.org/standard/core/qDUP
-DUP             https://forth-standard.org/standard/core/DUP
--               https://forth-standard.org/standard/core/Minus
-+               https://forth-standard.org/standard/core/Plus
-{CORE_COMP}
-
-
-DOUBLE word set
----------------
-D.R             2LITERAL        2VALUE          2CONSTANT       2VARIABLE       M*/             DMIN            
-DMAX            D2*             D2/             DABS            DNEGATE         D-              M+              
-D+              DU<             D<              D=              D0<             D0=             D>S             
-2ROT            D.              2R>             2R@             2>R             {DOUBLE}
-
-
-D.R             https://forth-standard.org/standard/double/DDotR
-2LITERAL        https://forth-standard.org/standard/double/TwoLITERAL
-2VALUE          https://forth-standard.org/standard/double/TwoVALUE
-2CONSTANT       https://forth-standard.org/standard/double/TwoCONSTANT
-2VARIABLE       https://forth-standard.org/standard/double/TwoVARIABLE
-M*/             https://forth-standard.org/standard/double/MTimesDiv
-DMIN            https://forth-standard.org/standard/double/DMIN
-DMAX            https://forth-standard.org/standard/double/DMAX
-D2*             https://forth-standard.org/standard/double/DTwoTimes
-D2/             https://forth-standard.org/standard/double/DTwoDiv
-DABS            https://forth-standard.org/standard/double/DABS
-DNEGATE         https://forth-standard.org/standard/double/DNEGATE
-D-              https://forth-standard.org/standard/double/DMinus
-M+              https://forth-standard.org/standard/double/MPlus
-D+              https://forth-standard.org/standard/double/DPlus
-DU<             https://forth-standard.org/standard/double/DUless
-D<              https://forth-standard.org/standard/double/Dless
-D=              https://forth-standard.org/standard/double/DEqual
-D0<             https://forth-standard.org/standard/double/DZeroless
-D0=             https://forth-standard.org/standard/double/DZeroEqual
-D>S             https://forth-standard.org/standard/double/DtoS
-2ROT            https://forth-standard.org/standard/double/TwoROT
-D.              https://forth-standard.org/standard/double/Dd
-2R>             https://forth-standard.org/standard/core/TwoRfrom
-2R@             https://forth-standard.org/standard/core/TwoRFetch
-2>R             https://forth-standard.org/standard/core/TwotoR
-{DOUBLE}        if you type {DOUBLE}, it and all subsequent words are removed
-
-
-FIXPOINT ADD-ON
----------------
-
-S>F             F.              F*              F#S             F/              F-              F+              
-HOLDS           {FIXPOINT}
-
-S>F             u/n -- Qlo Qhi       convert u/n in a s15.16 value
-F.              display a s15.16 value
-F*              s15.16 multiplication  
-F#S             Qlo Qhi u -- Qhi 0    
-                convert fractionnal part of a s15.16 value displaying u digits
-F/              s15.16 division        
-F-              s15.16 soustraction
-F+              s15.16 addition
-HOLDS           https://forth-standard.org/standard/core/HOLDS
-{FIXPOINT}      do nothing if compiled in core, else it and all subsequent loaded words are removed
-
-UTILITY ADD-ON
---------------
-
-DUMP            U.R             WORDS           ?               .RS             .S              {TOOLS}
-
-DUMP            https://forth-standard.org/standard/tools/DUMP  
-U.R   u z --    display unsigned number u with size z
-WORDS           https://forth-standard.org/standard/tools/WORDS 
-?               https://forth-standard.org/standard/tools/q
-.RS             displays return stack content
-.S              https://forth-standard.org/standard/tools/DotS
-{TOOLS}         do nothing if compiled in core.
-
-
-SD_TOOLS ADD-ON
----------------
-
-DIR             FAT             CLUSTER         SECTOR          {SD_TOOLS}
-
-DIR             dump first sector of current directory
-FAT             dump first sector of FAT1
-CLUSTER         .123 CLUSTER displays first sector of cluster 123
-SECTOR          .123456789 SECTOR displays sector 123456789
-{SD_TOOLS}      if you type {SD_TOOLS}, it and all subsequent words are removed
-
-
diff --git a/FastForth_at_work.pdf b/FastForth_at_work.pdf
deleted file mode 100644 (file)
index fc3f946..0000000
Binary files a/FastForth_at_work.pdf and /dev/null differ
index c981bd8..f1a04ca 100644 (file)
 ; BOOT.f
 ; --------
 \
-\ to see kernel options, download FastForthSpecs.f
-\ FastForth kernel options: MSP430ASSEMBLER, CONDCOMP, SD_CARD_LOADER, BOOTLOADER
-\
-\ TARGET SELECTION
+\ TARGET SELECTION ( = the name of \INC\target.pat file without the extension)
 \ MSP_EXP430FR5739  MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
-\ MSP_EXP430FR4133  MSP_EXP430FR2433    MSP_EXP430FR2355    CHIPSTICK_FR2433
+\ MSP_EXP430FR4133  CHIPSTICK_FR2433    MSP_EXP430FR2433    MSP_EXP430FR2355
+\ LP_MSP430FR2476
+\
+\ from scite editor : copy your target selection in (shift+F8) parameter 1:
+\
+\ or, from windows explorer:
+\ drag and drop this file onto SendSourceFileToTarget.bat
+\ then select your TARGET when asked.
 \
 \ SYSRSTIV decimal/hex values for MSP430FR5994 (device specific)
-\ ----------------------------------------------------------   
-\ #00 $00 No interrupt pending                                      
-\ #02 $02 Brownout (BOR)                                            
-\ #04 $04 RSTIFG RST/NMI (BOR)                                      
-\ #06 $06 PMMSWBOR software BOR (BOR)                               
-\ #08 $08 LPMx.5 wake up (BOR)                                      
-\ #10 $0A violation memory protected areas (BOR)                                  
-\ #12 $0C Reserved                                                  
-\ #14 $0E SVSHIFG SVSH event (BOR)                                  
-\ #16 $10 Reserved                                                  
-\ #18 $12 Reserved                                                  
-\ #20 $14 PMMSWPOR software POR (POR)                               
-\ #22 $16 WDTIFG watchdog timeout (PUC)                             
-\ #24 $18 WDTPW password violation (PUC)                            
-\ #26 $1A FRCTLPW password violation (PUC)                          
-\ #28 $1C Uncorrectable FRAM bit error detection (PUC)              
-\ #30 $1E Peripheral area fetch (PUC)                               
-\ #32 $20 PMMPW PMM password violation (PUC)                        
-\ #34 $22 MPUPW MPU password violation (PUC)                        
-\ #36 $24 CSPW CS password violation (PUC)                          
+\ ----------------------------------------------------------
+\ #00 $00 No interrupt pending
+\ #02 $02 Brownout (BOR)
+\ #04 $04 RSTIFG RST/NMI (BOR)
+\ #06 $06 PMMSWBOR software BOR (BOR)
+\ #08 $08 LPMx.5 wake up (BOR)
+\ #10 $0A violation memory protected areas (BOR)
+\ #12 $0C Reserved
+\ #14 $0E SVSHIFG SVSH event (BOR)
+\ #16 $10 Reserved
+\ #18 $12 Reserved
+\ #20 $14 PMMSWPOR software POR (POR)
+\ #22 $16 WDTIFG watchdog timeout (PUC)
+\ #24 $18 WDTPW password violation (PUC)
+\ #26 $1A FRCTLPW password violation (PUC)
+\ #28 $1C Uncorrectable FRAM bit error detection (PUC)
+\ #30 $1E Peripheral area fetch (PUC)
+\ #32 $20 PMMPW PMM password violation (PUC)
+\ #34 $22 MPUPW MPU password violation (PUC)
+\ #36 $24 CSPW CS password violation (PUC)
 \ #38 $26 MPUSEGIPIFG encapsulated IP memory segment violation (PUC)
-\ #40 $28 MPUSEGIIFG information memory segment violation (PUC)     
-\ #42 $2A MPUSEG1IFG segment 1 memory violation (PUC)               
-\ #44 $2C MPUSEG2IFG segment 2 memory violation (PUC)               
-\ #46 $2E MPUSEG3IFG segment 3 memory violation (PUC)   
+\ #40 $28 MPUSEGIIFG information memory segment violation (PUC)
+\ #42 $2A MPUSEG1IFG segment 1 memory violation (PUC)
+\ #44 $2C MPUSEG2IFG segment 2 memory violation (PUC)
+\ #46 $2E MPUSEG3IFG segment 3 memory violation (PUC)
 \
-\ SYSRSTIV values added by FastForth 
-\ ----------------------------------
-\ -3 reset after FastForth "flashing".
-\ -1 Deep Reset: restores FastForth as it was "flashed".   
+\ emulated SYSRSTIV values added by FastForth SYS
+\ -----------------------------------------------
+\ n SYS  ( n<0)     : user WIPE = Deep Reset: restores FastForth as it was "flashed"
+\ -3                : reset after FastForth "flashing".
+\ SYS               : WARM
+\ n SYS  (n even )  : user COLD (don't reuse hardware SYSRSTIV!)
+\ n SYS  (n odd )   : user WARM.
 \
 \ note
-\ --------------------------------------------------------------------------------
-\ any reset event is kept in SYSRSTIV register. Their values are device specific.
-\ WARM displays the content of SYSRSTIV register.
-\ --------------------------------------------------------------------------------
-\ When BOOT.4TH is called by the FastForth bootstrap, the SYSRSTIV value is on
-\ the Top Of paramater Stack -TOS- ready to test.
-\ --------------------------------------------------------------------------------
-\ to enable bootstrap: ' BOOT IS WARM
-\ to disable bootstrap: ' BOOT [PFA] IS WARM
-\ --------------------------------------------------------------------------------
+\ ------------------------------------------------------------------------------
+\ When BOOT.4TH is called by the FastForth bootstrap, the SYSRSTIV (hardware or
+\ emulated value) is on the Top Of paramater Stack -TOS- ready to test.
+\ ------------------------------------------------------------------------------
+\ to enable bootstrap: BOOT
+\ to disable bootstrap: UNBOOT
+\ ------------------------------------------------------------------------------
 \
-\ first, we test for downloading driver only if good FastForth version
-
-CODE ABORT_BOOTSTRAP
-SUB #2,PSP
-MOV TOS,0(PSP)      \
-MOV &VERSION,TOS    \ -- sys_event version
-SUB #308,TOS        \                   FastForth V3.8
-COLON
-'CR' EMIT            \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_BOOTSTRAP definition before resuming
-;
-
-ABORT_BOOTSTRAP
+\ it's an example:
 
-[UNDEFINED] = [IF]
+    [UNDEFINED] =
+    [IF]
 \ https://forth-standard.org/standard/core/Equal
 \ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    SUB #1,TOS      \ 1 borrow (clear cy) if TOS was 0
+    SUBC TOS,TOS    \ 1 TOS=-1 if borrow was set
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-\ --------------------------------------------------------------------------------
-\ WARNING !
-\ --------------------------------------------------------------------------------
-\ it is not recommended here to compile then execute a word 
-\ because the risk of crushing thereafter. 
-\ Interpreting mode as below is required: 
-\ --------------------------------------------------------------------------------
+    [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]
 
-\ it's an example:
+    [UNDEFINED] EXECUTE
+    [IF]
+\ https://forth-standard.org/standard/core/EXECUTE
+\ EXECUTE   i*x xt -- j*x   execute Forth word at 'xt'
+    CODE EXECUTE
+    PUSH TOS                \ 3 push xt
+    MOV @PSP+,TOS           \ 2
+    MOV @RSP+,PC            \ 4 xt --> PC
+    ENDCODE
+    [THEN]
 
-$04 = [IF]              \ if PUC event is <reset>
-    LOAD" SD_TEST.4TH"
-[THEN]
+\ ------------------------------------------------------------------------------
+\ WARNING !
+\ ------------------------------------------------------------------------------
+\ it is not recommended here to compile then execute a definition
+\ because the risk of crushing thereafter.
+\ Interpreting mode as below is required:
+\ ------------------------------------------------------------------------------
+    4 =                     \ from SYS
+    [IF]                    \ if PUC event is <SW1+RESET> or -1 SYS
+        RST_RET             \ remove definitions above
+        LOAD" SD_TEST.4TH"  \ load a file to test the SD_Card driver
+    [ELSE]                  \ else
+        ' SYS $0A + EXECUTE \ resumes WARM to remove definitions above
+    [THEN]                  \ then
index a27a2f3..0317a8e 100644 (file)
 \
 \ COLD            \ uncomment for this TEST which must not disrupt the downloading process
 
-CODE I2CTERM_ABORT
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV &KERNEL_ADDON,TOS
-BIT #$7800,TOS
-0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (UART TERMINAL), set TOS = 0
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS            \ FastForth V3.8
-COLON
-$0D EMIT            \ return to column 1 without CR
-ABORT" FastForth V3.8 please!"
-ABORT" <-- Ouch! unexpected I2C_FastForth target!"
-PWR_STATE           \ remove ABORT_UARTI2CS definition before resuming
-;
+    CODE I2CTERM_ABORT
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV &KERNEL_ADDON,TOS
+    BIT #$3C00,TOS          \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (UART TERMINAL), set TOS = 0
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS            \ FastForth V3.9
+    COLON
+    $0D EMIT                \ return to column 1 without CR
+    ABORT" FastForth V3.9 please!"
+    ABORT" <-- Ouch! unexpected I2C_FastForth target!"
+    RST_RET             \ remove ABORT_UARTI2CS definition before resuming
+    ;
 
 I2CTERM_ABORT
 
@@ -36,446 +36,484 @@ I2CTERM_ABORT
 ; CHNGBAUD.f
 ; ------------
 
-[UNDEFINED] DUP [IF]    \ define DUP and DUP?
 \ https://forth-standard.org/standard/core/DUP
 \ DUP      x -- x x      duplicate top of stack
-CODE DUP
+    [UNDEFINED] DUP [IF]    \ define DUP and DUP?
+    CODE DUP
 BW1 SUB #2,PSP      \ 2  push old TOS..
     MOV TOS,0(PSP)  \ 3  ..onto stack
     MOV @IP+,PC     \ 4
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/qDUP
 \ ?DUP     x -- 0 | x x    DUP if nonzero
-CODE ?DUP
-CMP #0,TOS      \ 2  test for TOS nonzero
-0<> ?GOTO BW1   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DROP
 \ DROP     x --          drop top of stack
-CODE DROP
-MOV @PSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] DROP [IF]
+    CODE DROP
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    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] 1+ [IF]
+    [UNDEFINED] OVER [IF]
+    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/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR [IF]
+    DEFER CR    \ DEFERed definition, by default executes that of :NONAME
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
 \ https://forth-standard.org/standard/core/OnePlus
 \ 1+      n1/u1 -- n2/u2       add 1 to TOS
-CODE 1+
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 1+ [IF]
+    CODE 1+
+    ADD #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] U/ [IF]
 \ U/   u1 u2 -- q   unsigned 16/16->q16
-CODE U/
-SUB #2,PSP
-MOV #0,0(PSP)   \ -- u1lo u1hi u2
-CALL #MUSMOD    \ -- r qlo qhi
-MOV @PSP,TOS    \ -- r qlo qlo
-ADD #4,PSP      \ -- qlo
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] >R [IF]
+    [UNDEFINED] U/ [IF]
+    CODE U/
+    SUB #2,PSP
+    MOV #0,0(PSP)   \ -- u1lo u1hi u2
+    CALL #MUSMOD    \ -- r qlo qhi
+    MOV @PSP,TOS    \ -- r qlo qlo
+    ADD #4,PSP      \ -- qlo
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] >R [IF]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
+    [UNDEFINED] R> [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Equal
 \ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1 flag Z = 1
-ELSE            \ 2
-    XOR #-1,TOS \ 1
-THEN
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] < [IF]  \ define < and >
+    [UNDEFINED] = [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1 flag Z = 1
+    ELSE            \ 2
+        XOR #-1,TOS \ 1
+    THEN
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/less
 \ <      n1 n2 -- flag        test n1<n2, signed
-CODE <
+    [UNDEFINED] < [IF]  \ define < and >
+    CODE <
     SUB @PSP+,TOS   \ 1 TOS=n2-n1
     S< ?GOTO FW1    \ 2 signed
     0<> IF          \ 2
-BW1     MOV #-1,TOS \ 1 flag Z = 0
+BW1 MOV #-1,TOS \ 1 flag Z = 0
     THEN
     MOV @IP+,PC
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/more
 \ >     n1 n2 -- flag         test n1>n2, signed
-CODE >
+    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]
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] IF [IF]
 \ https://forth-standard.org/standard/core/IF
 \ IF       -- IFadr    initialize conditional forward branch
-CODE IF
-SUB #2,PSP          \
-MOV TOS,0(PSP)      \
-MOV &DP,TOS         \ -- HERE
-ADD #4,&DP          \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)  \ -- HERE   compile QFBRAN
-ADD #2,TOS          \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] IF [IF]
+    CODE IF
+    SUB #2,PSP          \
+    MOV TOS,0(PSP)      \
+    MOV &DP,TOS         \ -- HERE
+    ADD #4,&DP          \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)  \ -- HERE   compile QFBRAN
+    ADD #2,TOS          \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/THEN
 \ THEN     IFadr --                resolve forward branch
-CODE THEN
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
+    CODE THEN
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ELSE
 \ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]     \ define DO LOOP +LOOP
+    [UNDEFINED] ELSE [IF]
+    CODE ELSE
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] DO
+    [IF]                \ define DO LOOP +LOOP
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    ADD #2,&DP              \   make room to compile xdo
+    MOV &DP,TOS             \ -- HERE+2
+    MOV #XDO,-2(TOS)        \   compile xdo
+    ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W         \
+    MOV #0,0(W)             \ -- HERE+2     L-- 0
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP              \ make room to compile two words
     MOV &DP,W
-    MOV X,-4(W)         \ xloop --> HERE
-    MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    MOV X,-4(W)             \ xloop --> HERE
+    MOV TOS,-2(W)           \ DOadr --> HERE+2
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP
-MOV #XPLOOP,X
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2        \ goto BW1 LOOP
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] CASE [IF]
 \ https://forth-standard.org/standard/core/CASE
-: CASE 0 ; IMMEDIATE \ -- #of-1 
-
-\ https://forth-standard.org/standard/core/OF
-: OF \ #of-1 -- orgOF #of 
-1+                         \ count OFs 
->R                         \ move off the stack in case the control-flow stack is the data stack. 
-POSTPONE OVER POSTPONE = \ copy and test case value
-POSTPONE IF                \ add orig to control flow stack 
-POSTPONE DROP          \ discards case value if = 
-R>                         \ we can bring count back now 
-; IMMEDIATE 
+    [UNDEFINED] CASE [IF]
+    : CASE 0 ; IMMEDIATE \ -- #of-1
+
+    \ https://forth-standard.org/standard/core/OF
+    : OF \ #of-1 -- orgOF #of
+    1+                     \ count OFs
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE OVER POSTPONE = \ copy and test case value
+    POSTPONE IF                    \ add orig to control flow stack
+    POSTPONE DROP              \ discards case value if =
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/ENDOF
-: ENDOF \ orgOF #of -- orgENDOF #of 
->R                         \ move off the stack in case the control-flow stack is the data stack. 
-POSTPONE ELSE 
-R>                         \ we can bring count back now 
-; IMMEDIATE 
+    : ENDOF \ orgOF #of -- orgENDOF #of
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE ELSE
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/ENDCASE
-: ENDCASE \ orgENDOF1..orgENDOFn #of -- 
-POSTPONE DROP
-0 DO 
-    POSTPONE THEN 
-LOOP 
-; IMMEDIATE 
-[THEN]
-
-[UNDEFINED] S_ [IF]
-CODE S_             \           Squote alias with blank separator instead quote
-MOV #0,&CAPS        \           turn CAPS OFF
-COLON
-XSQUOTE ,           \           compile run-time code
-$20 WORD            \ -- c-addr (= HERE)
-HI2LO
-MOV.B @TOS,TOS      \ -- len    compile string
-ADD #1,TOS          \ -- len+1
-BIT #1,TOS          \           C = ~Z
-ADDC TOS,&DP        \           store aligned DP
-MOV @PSP+,TOS       \ --
-MOV @RSP+,IP        \           pop paired with push COLON
-MOV #$20,&CAPS      \           turn CAPS ON (default state)
-MOV @IP+,PC         \ NEXT
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ESC [IF]
-CODE ESC
-CMP #0,&STATEADR
-0= IF MOV @IP+,PC   \ interpret time use is disallowed
-THEN
-COLON          
-$1B                 \ -- char escape
-POSTPONE LITERAL    \ compile-time code : lit $1B  
-POSTPONE EMIT       \ compile-time code : EMIT
-POSTPONE S_         \ compile-time code : S_ <escape_sequence>
-POSTPONE TYPE       \ compile-time code : TYPE
-; IMMEDIATE
-[THEN]
-
-: BAD_MHz
-$20 DUP EMIT 
-        ABORT" only for 1,4,8,16,24 MHz MCLK!"
-;
-
-: OVR_BAUDS
-$20 DUP EMIT ESC [7m    \ set reverse video
-        ." with MCLK = " FREQ_KHZ @ 1000 U/ .
-        ABORT" MHz? don't dream!"
-;
-
-: CHNGBAUD                  \ only for 1, 4, 8, 16, 24 MHz
-PWR_STATE                   \ removes this created word (garbage collector)
-ECHO
-ESC [8;42;128t      \ set 42L * 128C terminal display
-41 0 DO CR LOOP     \ to avoid erasing any line of source, create 42-1 empty lines
-ESC [H              \ cursor home
-
-FREQ_KHZ @ DUP >R               \ r-- target MCLCK frequency in MHz
-." target MCLK = " 1000 U/ . ." MHz" CR
-." choose your baudrate:" CR
-."  0 --> 6 MBds" CR        \ >= 24 MHz
-."  1 --> 5 MBds" CR        \ >= 20 MHz
-."  2 --> 4 MBds" CR        \ >= 16 MHz
-."  3 --> 3 MBds" CR        \ >= 12 MHz
-."  4 --> 1843200 Bds" CR   \ >= 8 MHz
-."  5 --> 921600 Bds" CR    \ >= 4 MHz
-."  6 --> 460800 Bds" CR    \ >= 2 MHz
-."  7 --> 230400 Bds" CR    \ >= 1 MHz
-."  8 --> 115200 Bds" CR    \ >= 500 kHz
-."  9 --> 38400 Bds" CR
-."  A --> 19200 Bds" CR
-."  B --> 9600 Bds" CR
-." other --> abort" CR
-." your choice: "
-KEY
-
-CASE
-#48 OF  ." 6 MBds"          \ add this to the current line
-        R> CASE
-            #24000 OF $4 $0 \ -- TERM_BRW  TERM_MCTLW
-                   ENDOF
-            24000 <   
-            IF OVR_BAUDS    \ < 24 MHz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#49 OF  ." 5 MBds"
-        R> CASE
-            #24000 OF $4 $EE00  ENDOF
-            #20000 OF $4 $0     ENDOF
-            20000 <   
-            IF OVR_BAUDS    \ < 20 MHz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#50 OF  ." 4 MBds"
-        R> CASE
-            #24000 OF $6 $0     ENDOF
-            #20000 OF $5 $0     ENDOF
-            #16000 OF $4 $0     ENDOF
-            16000 <   
-            IF OVR_BAUDS    \ < 16 MHz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#51 OF  ." 3 MBds"
-        R> CASE
-            #24000 OF $8 $0     ENDOF
-            #20000 OF $6 $D600  ENDOF
-            #16000 OF $5 $4900  ENDOF
-            #12000 OF $4 $0     ENDOF
-            12000 <   
-            IF OVR_BAUDS    \ < 12 MHz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#52 OF  ." 1843200 Bds"
-        R> CASE
-            #24000 OF $0D $0200 ENDOF
-            #20000 OF $0A $DF00 ENDOF
-            #16000 OF $8 $D600  ENDOF
-            #12000 OF $6 $AA00  ENDOF
-            #8000  OF $5 $9200  ENDOF
-            8000 <   
-            IF OVR_BAUDS    \ < 8 MHz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#53 OF  ." 921600 Bds"
-        R> CASE
-            #24000 OF $1 $00A1  ENDOF
-            #20000 OF $1 $B751  ENDOF
-            #16000 OF $11 $4A00 ENDOF
-            #12000 OF $0D $0200  ENDOF
-            #8000  OF $8 $D600  ENDOF
-            #4000  OF $4 $4900  ENDOF
-            4000 <   
-            IF OVR_BAUDS    \ < 4 MHz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#54 OF  ." 460800 Bds"
-        R> CASE
-            #24000 OF $3 $0241  ENDOF
-            #20000 OF $2 $92B1  ENDOF
-            #16000 OF $2 $BB21  ENDOF
-            #12000 OF $1 $00A1  ENDOF
-            #8000  OF $11 $4A00 ENDOF
-            #4000  OF $8 $D600  ENDOF
-            #2000  OF $4 $4900  ENDOF
-            2000 <   
-            IF OVR_BAUDS    \ < 2 MHz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#55 OF  ." 230400 Bds"
-        R> CASE
-            #24000 OF $6 $2081  ENDOF
-            #20000 OF $5 $EE61  ENDOF
-            #16000 OF $4 $5551  ENDOF
-            #12000 OF $3 $0241  ENDOF
-            #8000  OF $2 $BB21  ENDOF
-            #4000  OF $11 $4A00 ENDOF
-            #2000  OF $8 $D600  ENDOF
-            #1000  OF $4 $4900  ENDOF
-            1000 <   
-            IF OVR_BAUDS    \ < 1 MHz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#56 OF  ." 115200 Bds"
-        R> CASE
-            #24000 OF $0D $4901 ENDOF
-            #20000 OF $0A $AD01 ENDOF
-            #16000 OF $8 $F7A1  ENDOF
-            #12000 OF $6 $2081  ENDOF
-            #8000  OF $4 $5551  ENDOF
-            #4000  OF $2 $BB21  ENDOF
-            #2000  OF $11 $4A00 ENDOF
-            #1000  OF $8 $D600  ENDOF
-            #500   OF $4 $4900  ENDOF
-            500 <   
-            IF OVR_BAUDS    \ < 500 Khz --> abort
-            THEN BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#57 OF  ." 38400 Bds"
-        R> CASE
-            #24000  OF $27 $0011    ENDOF
-            #16000  OF $1A $D601    ENDOF
-            #8000   OF $0D $4901    ENDOF
-            #4000   OF $6 $2081     ENDOF
-            #1000   OF $1 $00A1     ENDOF
-            BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#65 OF  ." 19200 Bds"
-        R> CASE
-            #24000  OF $4E $0021    ENDOF
-            #16000  OF $34 $4911    ENDOF
-            #8000   OF $1A $D601    ENDOF
-            #4000   OF $0D $4901    ENDOF
-            #1000   OF $3 $0241     ENDOF
-            BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-#66 OF  ." 9600 Bds"
-        R> CASE
-            #24000  OF $9C $0041    ENDOF
-            #16000  OF $68 $D621    ENDOF
-            #8000   OF $34 $4911    ENDOF
-            #4000   OF $1A $D601    ENDOF
-            #1000   OF $6 $2081     ENDOF
-            BAD_MHz    \ other MHz --> abort
-        ENDCASE
-    ENDOF
-    ." abort" ABORT" "      \ ABORT" displays nothing
-ENDCASE
-TERMMCTLW_RST !             \ set UCAxMCTLW value in FRAM
-TERMBRW_RST !               \ set UCAxBRW value in FRAM
-CR ESC [7m                  \ escape sequence to set reverse video
-." Change baudrate in Teraterm, save its setup, then reset target."
-;
-
-CHNGBAUD 
+    : ENDCASE \ orgENDOF1..orgENDOFn #of --
+    POSTPONE DROP
+    0 DO
+        POSTPONE THEN
+    LOOP
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] S_ [IF]
+    CODE S_             \           Squote alias with blank separator instead quote
+    MOV #0,&CAPS        \           turn CAPS OFF
+    COLON
+    XSQUOTE ,           \           compile run-time code
+    $20 WORD            \ -- c-addr (= HERE)
+    HI2LO
+    MOV.B @TOS,TOS      \ -- len    compile string
+    ADD #1,TOS          \ -- len+1
+    BIT #1,TOS          \           C = ~Z
+    ADDC TOS,&DP        \           store aligned DP
+    MOV @PSP+,TOS       \ --
+    MOV @RSP+,IP        \           pop paired with push COLON
+    MOV #$20,&CAPS      \           turn CAPS ON (default state)
+    MOV @IP+,PC         \ NEXT
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ESC [IF]
+    CODE ESC
+    CMP #0,&STATEADR
+    0= IF MOV @IP+,PC   \ interpret time use is disallowed
+    THEN
+    COLON
+    $1B                 \ -- char escape
+    POSTPONE LITERAL    \ compile-time code : lit $1B
+    POSTPONE EMIT       \ compile-time code : EMIT
+    POSTPONE S_         \ compile-time code : S_ <escape_sequence>
+    POSTPONE TYPE       \ compile-time code : TYPE
+    ; IMMEDIATE
+    [THEN]
+
+    : BAD_MHz
+    $20 DUP EMIT
+            ABORT" only for 1,4,8,16,24 MHz MCLK!"
+    ;
+
+    : OVR_BAUDS
+    $20 DUP EMIT ESC [7m    \ set reverse video
+            ." with MCLK = " FREQ_KHZ @ 1000 U/ .
+            ABORT" MHz? don't dream!"
+    ;
+
+    : CHNGBAUD                  \ only for 1, 4, 8, 16, 24 MHz
+    RST_RET                     \ removes this created word (garbage collector)
+    ECHO
+    ESC [8;42;80t      \ set 42L * 80C terminal display
+    41 0 DO CR LOOP     \ to avoid erasing any line of source, create 42-1 empty lines
+    ESC [H              \ cursor home
+
+    FREQ_KHZ @ DUP >R               \ r-- target MCLCK frequency in MHz
+    ." target MCLK = " 1000 U/ . ." MHz" CR
+    ." choose your baudrate:" CR
+    ."  0 --> 6 MBds" CR        \ >= 24 MHz
+    ."  1 --> 5 MBds" CR        \ >= 20 MHz
+    ."  2 --> 4 MBds" CR        \ >= 16 MHz
+    ."  3 --> 3 MBds" CR        \ >= 12 MHz
+    ."  4 --> 1843200 Bds" CR   \ >= 8 MHz
+    ."  5 --> 921600 Bds" CR    \ >= 4 MHz
+    ."  6 --> 460800 Bds" CR    \ >= 2 MHz
+    ."  7 --> 230400 Bds" CR    \ >= 1 MHz
+    ."  8 --> 115200 Bds" CR    \ >= 500 kHz
+    ."  9 --> 38400 Bds" CR
+    ."  A --> 19200 Bds" CR
+    ."  B --> 9600 Bds" CR
+    ." other --> abort" CR
+    ." your choice: "
+    KEY
+    CASE
+    #48 OF  ." 6 MBds"          \ add this to the current line
+            R> CASE
+                #24000 OF $4 $0 \ -- TERM_BRW  TERM_MCTLW
+                    ENDOF
+                24000 <
+                IF OVR_BAUDS    \ < 24 MHz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #49 OF  ." 5 MBds"
+            R> CASE
+                #24000 OF $4 $EE00  ENDOF
+                #20000 OF $4 $0     ENDOF
+                20000 <
+                IF OVR_BAUDS    \ < 20 MHz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #50 OF  ." 4 MBds"
+            R> CASE
+                #24000 OF $6 $0     ENDOF
+                #20000 OF $5 $0     ENDOF
+                #16000 OF $4 $0     ENDOF
+                16000 <
+                IF OVR_BAUDS    \ < 16 MHz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #51 OF  ." 3 MBds"
+            R> CASE
+                #24000 OF $8 $0     ENDOF
+                #20000 OF $6 $D600  ENDOF
+                #16000 OF $5 $4900  ENDOF
+                #12000 OF $4 $0     ENDOF
+                12000 <
+                IF OVR_BAUDS    \ < 12 MHz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #52 OF  ." 1843200 Bds"
+            R> CASE
+                #24000 OF $0D $0200 ENDOF
+                #20000 OF $0A $DF00 ENDOF
+                #16000 OF $8 $D600  ENDOF
+                #12000 OF $6 $AA00  ENDOF
+                #8000  OF $5 $9200  ENDOF
+                8000 <
+                IF OVR_BAUDS    \ < 8 MHz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #53 OF  ." 921600 Bds"
+            R> CASE
+                #24000 OF $1 $00A1  ENDOF
+                #20000 OF $1 $B751  ENDOF
+                #16000 OF $11 $4A00 ENDOF
+                #12000 OF $0D $0200  ENDOF
+                #8000  OF $8 $D600  ENDOF
+                #4000  OF $4 $4900  ENDOF
+                4000 <
+                IF OVR_BAUDS    \ < 4 MHz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #54 OF  ." 460800 Bds"
+            R> CASE
+                #24000 OF $3 $0241  ENDOF
+                #20000 OF $2 $92B1  ENDOF
+                #16000 OF $2 $BB21  ENDOF
+                #12000 OF $1 $00A1  ENDOF
+                #8000  OF $11 $4A00 ENDOF
+                #4000  OF $8 $D600  ENDOF
+                #2000  OF $4 $4900  ENDOF
+                2000 <
+                IF OVR_BAUDS    \ < 2 MHz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #55 OF  ." 230400 Bds"
+            R> CASE
+                #24000 OF $6 $2081  ENDOF
+                #20000 OF $5 $EE61  ENDOF
+                #16000 OF $4 $5551  ENDOF
+                #12000 OF $3 $0241  ENDOF
+                #8000  OF $2 $BB21  ENDOF
+                #4000  OF $11 $4A00 ENDOF
+                #2000  OF $8 $D600  ENDOF
+                #1000  OF $4 $4900  ENDOF
+                1000 <
+                IF OVR_BAUDS    \ < 1 MHz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #56 OF  ." 115200 Bds"
+            R> CASE
+                #24000 OF $0D $4901 ENDOF
+                #20000 OF $0A $AD01 ENDOF
+                #16000 OF $8 $F7A1  ENDOF
+                #12000 OF $6 $2081  ENDOF
+                #8000  OF $4 $5551  ENDOF
+                #4000  OF $2 $BB21  ENDOF
+                #2000  OF $11 $4A00 ENDOF
+                #1000  OF $8 $D600  ENDOF
+                #500   OF $4 $4900  ENDOF
+                500 <
+                IF OVR_BAUDS    \ < 500 Khz --> abort
+                THEN BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #57 OF  ." 38400 Bds"
+            R> CASE
+                #24000  OF $27 $0011    ENDOF
+                #16000  OF $1A $D601    ENDOF
+                #8000   OF $0D $4901    ENDOF
+                #4000   OF $6 $2081     ENDOF
+                #1000   OF $1 $00A1     ENDOF
+                BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #65 OF  ." 19200 Bds"
+            R> CASE
+                #24000  OF $4E $0021    ENDOF
+                #16000  OF $34 $4911    ENDOF
+                #8000   OF $1A $D601    ENDOF
+                #4000   OF $0D $4901    ENDOF
+                #1000   OF $3 $0241     ENDOF
+                BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+    #66 OF  ." 9600 Bds"
+            R> CASE
+                #24000  OF $9C $0041    ENDOF
+                #16000  OF $68 $D621    ENDOF
+                #8000   OF $34 $4911    ENDOF
+                #4000   OF $1A $D601    ENDOF
+                #1000   OF $6 $2081     ENDOF
+                BAD_MHz    \ other MHz --> abort
+            ENDCASE
+        ENDOF
+        ." abort" ABORT" "      \ ABORT" " displays nothing
+    ENDCASE
+    TERMMCTLW_RST !             \ set UCAxMCTLW value in FRAM
+    TERMBRW_RST !               \ set UCAxBRW value in FRAM
+    CR ESC [7m                  \ escape sequence to set reverse video
+    ." Change baudrate in Teraterm, save its setup, then reset target."
+    ;
+
+    CHNGBAUD
index a764d61..2b44c8b 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<
 
-CODE ABORT_CORDIC
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV &KERNEL_ADDON,TOS
-BIT #BIT10,TOS
-0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (FIXPOINT input), set TOS = 0  
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS            \ FastForth V3.8
-COLON
-$0D EMIT    \ return to column 1 without CR
-ABORT" FastForth V3.8 please!"
-ABORT" build FastForth with FIXPOINT_INPUT addon !"
-PWR_STATE           \ if no abort remove this word
-;
-
-ABORT_CORDIC
+    CODE ABORT_CORDIC
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV &KERNEL_ADDON,TOS
+    BIT #BIT8,TOS
+    0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (FIXPOINT_INPUT), set TOS = 0
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    $0D EMIT            \ return to column 1 without CR
+    ABORT" FastForth V3.9 please!"
+    ABORT" build FastForth with FIXPOINT_INPUT addon"
+    RST_RET             \ if no abort remove this word
+    ;
+
+    ABORT_CORDIC
 
 ; ----------
 ; CORDIC.f
 ; ----------
 
-[DEFINED] {CORDIC} [IF] {CORDIC} [THEN]
-
 MARKER {CORDIC}
 
-
 \ CORDIC USES
 \   OPERATION   |   MODE    |   INITIALIZE x y z    |   DIRECTION   |     RESULT        | post operation
 \ --------------|-----------|-----------------------|---------------|-------------------|
@@ -74,267 +71,314 @@ MARKER {CORDIC}
 \ --------------|-----------|-----------------------|---------------|-------------------|
 \ Gi = CORDIC gain for i iterations; Gi < 1
 \
+    CREATE T_ARCTAN \ ArcTan table
+    12870 ,         \ 286 * 45      =
+    7598 ,          \ 286 * 26.565  = 7597,605
+    4014 ,          \ 286 * 14.036  = 4014,366
+    2038 ,          \ 286 * 7.125   = 2037,755
+    1023 ,          \ 286 * 3.576   = 1022,832
+    512 ,           \ 286 * 1.790   = 511,914
+    256 ,           \ 286 * 0.895   = 256,020
+    128 ,           \ 286 * 0.448   = 128,017
+    64 ,            \ 286 * 0.224   = 64,010
+    32 ,            \ 286 * 0.112   = 32,005
+    16 ,            \ 286 * 0.056   = 16,0025
+    8 ,             \ 286 * 0.028   = 8,00126
+    4 ,             \ 286 * 0.014   = 4
+    2 ,             \ 286 * 0.007   = 2
+    1 ,             \ 286 * 0.003   = 1
+
+    CREATE T_SCALE  \ 1/Gi table
+    46340 ,         \ = 65536 * cos(45)
+    41448 ,         \ = 65536 * cos(45) * cos(26.565)
+    40211 ,         \ = 65536 * cos(45) * cos(26.565) * cos(14.036)
+    39900 ,         \ = 65536 * cos(45) * cos(26.565) * cos(14.036) * ...
+    39822 ,
+    39803 ,
+    39798 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
 
-CREATE T_ARCTAN \ ArcTan table
-12870 ,         \ 286 * 45      = 
-7598 ,          \ 286 * 26.565  = 7597,605
-4014 ,          \ 286 * 14.036  = 4014,366
-2038 ,          \ 286 * 7.125   = 2037,755
-1023 ,          \ 286 * 3.576   = 1022,832
-512 ,           \ 286 * 1.790   = 511,914
-256 ,           \ 286 * 0.895   = 256,020
-128 ,           \ 286 * 0.448   = 128,017
-64 ,            \ 286 * 0.224   = 64,010
-32 ,            \ 286 * 0.112   = 32,005
-16 ,            \ 286 * 0.056   = 16,0025
-8 ,             \ 286 * 0.028   = 8,00126
-4 ,             \ 286 * 0.014   = 4
-2 ,             \ 286 * 0.007   = 2
-1 ,             \ 286 * 0.003   = 1
-
-CREATE T_SCALE  \ 1/Gi table
-46340 ,         \ = 65536 * cos(45)
-41448 ,         \ = 65536 * cos(45) * cos(26.565)
-40211 ,         \ = 65536 * cos(45) * cos(26.565) * cos(14.036)
-39900 ,         \ = 65536 * cos(45) * cos(26.565) * cos(14.036) * ... 
-39822 ,
-39803 ,
-39798 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-\ https://forth-standard.org/standard/core/Uless
-\ U<    u1 u2 -- flag       test u1<u2, unsigned
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @PSP+,TOS   \ 2 u2-u1
-0<> IF
-    MOV #-1,TOS     \ 1
-    U< IF           \ 2 flag 
-        AND #0,TOS  \ 1 flag Z = 1
-    THEN
-THEN
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DABS [IF]
 \ https://forth-standard.org/standard/double/DABS
 \ DABS     d1 -- |d1|     absolute value
-CODE DABS
-AND #-1,TOS         \ clear V, set N
-S< IF               \
-    XOR #-1,0(PSP)  \ 4
-    XOR #-1,TOS     \ 1
-    ADD #1,0(PSP)   \ 4
-    ADDC #0,TOS     \ 1
-THEN
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] DABS
+    [IF]
+    CODE DABS
+    AND #-1,TOS         \ clear V, set N
+    S< IF               \
+        XOR #-1,0(PSP)  \ 4
+        XOR #-1,TOS     \ 1
+        ADD #1,0(PSP)   \ 4
+        ADDC #0,TOS     \ 1
+    THEN
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] HOLDS [IF]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    RST_SET
+\ \ https://forth-standard.org/standard/core/Equal
+\ \ =      x1 x2 -- flag         test x1=x2
+\     [UNDEFINED] =
+\     [IF]
+\     CODE =
+\     SUB @PSP+,TOS   \ 2
+\     0<> IF          \ 2
+\         AND #0,TOS  \ 1
+\         MOV @IP+,PC \ 4
+\     THEN
+\     XOR #-1,TOS     \ 1 flag Z = 1
+\     MOV @IP+,PC     \ 4
+\     ENDCODE
+\     [THEN]
+\
+\ \ https://forth-standard.org/standard/core/Uless
+\ \ U<    u1 u2 -- flag       test u1<u2, unsigned
+\     [UNDEFINED] U<
+\     [IF]
+\     CODE U<
+\     SUB @PSP+,TOS   \ 2 u2-u1
+\     0<> IF
+\         MOV #-1,TOS     \ 1
+\         U< IF           \ 2 flag
+\             AND #0,TOS  \ 1 flag Z = 1
+\         THEN
+\     THEN
+\     MOV @IP+,PC     \ 4
+\     ENDCODE
+\     [THEN]
+\
+\     $81EF DEVICEID @ U<
+\     DEVICEID @ $81F3 U<
+\     =
+
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+
+    KERNEL_ADDON HMPY TSTBIT \ hardware MPY ?
+
+    RST_RET
+
+    [IF]   ; MSP430FRxxxx with hardware_MPY
+
 \ 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 #>
 \ free chars area in the 32+2 bytes HOLD buffer = {26,23,2} chars with a 32 bits sized {hexa,decimal,binary} number.
 \ (2 supplementary bytes are room for sign - and decimal point)
 \ C HOLDS    addr u --
-CODE HOLDS
-            MOV @PSP+,X         \ 2     X=src
-BW3         ADD TOS,X           \ 1     X=src_end
-            MOV &HP,Y           \ 3     Y=dst
-BEGIN       SUB #1,X            \ 1     src-1
-            SUB #1,TOS          \ 1     cnt-1
-U>= WHILE   SUB #1,Y            \ 1     dst-1
-            MOV.B @X,0(Y)       \ 4     
-REPEAT      MOV Y,&HP           \ 3
-            MOV @PSP+,TOS       \ 2
-            MOV @IP+,PC         \ 4  15 words
-ENDCODE
-[THEN]
-
-$81EF DEVICEID @ U< 
-DEVICEID @ $81F3 U<
-= [IF]   ; MSP430FR413x subfamily without hardware_MPY
-
-[UNDEFINED] F#S [IF]
+        [UNDEFINED] HOLDS
+        [IF]
+    CODE HOLDS
+    MOV @PSP+,X         \ 2     X=src
+BW3 ADD TOS,X           \ 1     X=src_end
+    MOV &HP,Y           \ 3     Y=dst
+    BEGIN
+       SUB #1,X            \ 1     src-1
+        SUB #1,TOS          \ 1     cnt-1
+    U>= WHILE
+        SUB #1,Y            \ 1     dst-1
+        MOV.B @X,0(Y)       \ 4
+    REPEAT
+    MOV Y,&HP           \ 3
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4  15 words
+    ENDCODE
+        [THEN]
+
+\ F#S    Qlo Qhi u -- Qhi 0   convert fractionnal part of Q15.16 fixed point number
+\                             with u digits
+        [UNDEFINED] F#S
+        [IF]
+    CODE F#S
+                MOV 2(PSP),X        \ -- Qlo Qhi u      X = Qlo
+                MOV @PSP,2(PSP)     \ -- Qhi Qhi u
+                MOV X,0(PSP)        \ -- Qhi Qlo u
+                MOV TOS,T           \                   T = len
+                MOV #0,S            \                   S = count
+    BEGIN       MOV @PSP,&MPY       \                   Load 1st 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
+        U>= IF  ADD #7,TOS
+        THEN    ADD #$30,TOS
+                MOV.B TOS,HOLDS_ORG(S)  \ -- Qhi RESlo char     char to string
+                ADD #1,S            \                   count+1
+                CMP T,S             \                   count=len ?
+    0= UNTIL    MOV T,TOS           \ -- len RESlo len
+                MOV #0,0(PSP)       \ -- Qhi 0 len
+                MOV #HOLDS_ORG,X    \ -- Qhi 0 len          X=HOLDS_ORG
+                GOTO BW3            \ 35~ JMP HOLDS+2
+    ENDCODE
+        [THEN]
+
+    HDNCODE XSCALE              \ X = X*Cordic_Gain
+    MOV T_SCALE(W),&MPYS32L     \ 3     CORDIC Gain * 65536
+    MOV #0,&MPYS32H
+    MOV X,&OP2                  \ 3     Load 1st operand
+    MOV &RES1,X                 \ 3     hi result
+    MOV @RSP+,PC                \ RET
+    ENDCODE
+
+    [ELSE] ; no hardware multiplier
+
+\ 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 #>
+\ free chars area in the 32+2 bytes HOLD buffer = {26,23,2} chars with a 32 bits sized {hexa,decimal,binary} number.
+\ (2 supplementary bytes are room for sign - and decimal point)
+\ C HOLDS    addr u --
+        [UNDEFINED] HOLDS
+        [IF]
+    CODE HOLDS
+    MOV @PSP+,X         \ 2     X=src
+BW3 ADD TOS,X           \ 1     X=src_end
+    MOV &HP,Y           \ 3     Y=dst
+    BEGIN
+       SUB #1,X            \ 1     src-1
+        SUB #1,TOS          \ 1     cnt-1
+    U>= WHILE
+        SUB #1,Y            \ 1     dst-1
+        MOV.B @X,0(Y)       \ 4
+    REPEAT
+    MOV Y,&HP           \ 3
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4  15 words
+    ENDCODE
+        [THEN]
+
 \ F#S    Qlo Qhi len -- Qhi 0   convert fractional part Qlo of Q15.16 fixed point number
 \                               with len digits
-CODE F#S
-            MOV @PSP,S          \ -- Qlo Qhi len        S = Qhi
-            MOV #0,T            \                       T = count
-            PUSHM #3,IP         \                       R-- IP Qhi count
-            MOV 2(PSP),0(PSP)   \ -- Qlo Qlo len
-            MOV TOS,2(PSP)      \ -- len Qlo len
-BEGIN       MOV &BASEADR,TOS    \ -- len Qlo base
-            LO2HI
-            UM*                 \                       u1 u2 -- RESlo REShi
-            HI2LO               \ -- len RESlo digit
-            CMP #10,TOS         \                       digit to char
-    U>= IF  ADD #7,TOS
-    THEN    ADD #$30,TOS        \ -- len RESlo char 
-            MOV @RSP,T          \                       T=count
-            MOV.B TOS,HOLDS_ORG(T)  \                   char to string_org(T)
-            ADD #1,T            \                       count+1
-            MOV T,0(RSP)        \
-            CMP 2(PSP),T        \ -- len RESlo char     count=len ?
-U>= UNTIL   POPM #3,IP          \                       S=Qhi, T=len
-            MOV T,TOS           \ -- len RESlo len
-            MOV S,2(PSP)        \ -- Qhi RESlo len
-            MOV #0,0(PSP)       \ -- Qhi 0 len
-            MOV #HOLDS_ORG,X    \ -- Qhi 0 len          X=HOLDS_ORG
-            GOTO BW3            \ 36~ JMP HOLDS
-ENDCODE
-[THEN]
-
-HDNCODE XSCALE              \ X --> X*Cordic_Gain
+        [UNDEFINED] F#S
+        [IF]
+    CODE F#S
+                MOV @PSP,S          \ -- Qlo Qhi len        S = Qhi
+                MOV #0,T            \                       T = count
+                PUSHM #3,IP         \                       R-- IP Qhi count
+                MOV 2(PSP),0(PSP)   \ -- Qlo Qlo len
+                MOV TOS,2(PSP)      \ -- len Qlo len
+    BEGIN       MOV &BASEADR,TOS    \ -- len Qlo base
+                LO2HI
+                UM*                 \                       u1 u2 -- RESlo REShi
+                HI2LO               \ -- len RESlo digit
+                CMP #10,TOS         \                       digit to char
+        U>= IF  ADD #7,TOS
+        THEN    ADD #$30,TOS        \ -- len RESlo char
+                MOV @RSP,T          \                       T=count
+                MOV.B TOS,HOLDS_ORG(T)  \                   char to string_org(T)
+                ADD #1,T            \                       count+1
+                MOV T,0(RSP)        \
+                CMP 2(PSP),T        \ -- len RESlo char     count=len ?
+    U>= UNTIL   POPM #3,IP          \                       S=Qhi, T=len
+                MOV T,TOS           \ -- len RESlo len
+                MOV S,2(PSP)        \ -- Qhi RESlo len
+                MOV #0,0(PSP)       \ -- Qhi 0 len
+                MOV #HOLDS_ORG,X    \ -- Qhi 0 len          X=HOLDS_ORG
+                GOTO BW3            \ 36~ JMP HOLDS
+    ENDCODE
+        [THEN]
+
 \ T.I. UNSIGNED MULTIPLY SUBROUTINE: U1 x U2 -> Ud
 \ https://forth-standard.org/standard/core/UMTimes
 \ UM*     u1 u2 -- ud   unsigned 16x16->32 mult.
-            MOV T_SCALE(W),rDOCON   \ rDOCON=MR, X=MDlo
-UMSTAR1     MOV #0,Y                \ 1 MDhi=0
-            MOV #0,S                \ 1 RES0=0
-            MOV #0,T                \ 1 RES1=0
-            MOV #1,W                \ 1 BIT TEST REGISTER
-BEGIN       BIT W,rDOCON            \ 1 TEST ACTUAL BIT MRlo
-    0<> IF  ADD X,S                 \ 1 IF 1: ADD MDlo TO RES0
-            ADDC Y,T                \ 1      ADDC MDhi TO RES1
-    THEN    ADD X,X                 \ 1 (RLA LSBs) MDlo x 2
-            ADDC Y,Y                \ 1 (RLC MSBs) MDhi x 2
-            ADD W,W                 \ 1 (RLA) NEXT BIT TO TEST
-U>= UNTIL                           \ S = RESlo, T=REShi
-            MOV T,X                 \ 2 IF BIT IN CARRY: FINISHED    10~ loop
-            MOV #XDOCON,rDOCON      \ restore rDOCON
-            MOV @RSP+,PC            \ RET
-ENDCODE
-
-[ELSE] ; hardware multiplier
-
-[UNDEFINED] F#S [IF]
-\ F#S    Qlo Qhi u -- Qhi 0   convert fractionnal part of Q15.16 fixed point number
-\                             with u digits
-CODE F#S
-            MOV 2(PSP),X        \ -- Qlo Qhi u      X = Qlo
-            MOV @PSP,2(PSP)     \ -- Qhi Qhi u
-            MOV X,0(PSP)        \ -- Qhi Qlo u
-            MOV TOS,T           \                   T = len
-            MOV #0,S            \                   S = count
-BEGIN       MOV @PSP,&MPY       \                   Load 1st 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
-    U>= IF  ADD #7,TOS
-    THEN    ADD #$30,TOS
-            MOV.B TOS,HOLDS_ORG(S)  \ -- Qhi RESlo char     char to string
-            ADD #1,S            \                   count+1
-            CMP T,S             \                   count=len ?
-0= UNTIL    MOV T,TOS           \ -- len RESlo len
-            MOV #0,0(PSP)       \ -- Qhi 0 len
-            MOV #HOLDS_ORG,X    \ -- Qhi 0 len          X=HOLDS_ORG
-            GOTO BW3            \ 35~ JMP HOLDS+2
-ENDCODE
-[THEN]
-
-HDNCODE XSCALE              \ X = X*Cordic_Gain
-MOV T_SCALE(W),&MPYS32L     \ 3     CORDIC Gain * 65536
-MOV #0,&MPYS32H
-MOV X,&OP2                  \ 3     Load 1st operand
-MOV &RES1,X                 \ 3     hi result
-MOV @RSP+,PC                \ RET
-ENDCODE
-
-[THEN]  ; end of hardware multiplier
-
-CODE POL2REC   \ u F -- X Y
+    HDNCODE XSCALE              \ X --> X*Cordic_Gain
+                MOV T_SCALE(W),rDOCON   \ rDOCON=MR, X=MDlo
+    UMSTAR1     MOV #0,Y                \ 1 MDhi=0
+                MOV #0,S                \ 1 RES0=0
+                MOV #0,T                \ 1 RES1=0
+                MOV #1,W                \ 1 BIT TEST REGISTER
+    BEGIN       BIT W,rDOCON            \ 1 TEST ACTUAL BIT MRlo
+        0<> IF  ADD X,S                 \ 1 IF 1: ADD MDlo TO RES0
+                ADDC Y,T                \ 1      ADDC MDhi TO RES1
+        THEN    ADD X,X                 \ 1 (RLA LSBs) MDlo x 2
+                ADDC Y,Y                \ 1 (RLC MSBs) MDhi x 2
+                ADD W,W                 \ 1 (RLA) NEXT BIT TO TEST
+    U>= UNTIL                           \ S = RESlo, T=REShi
+                MOV T,X                 \ 2 IF BIT IN CARRY: FINISHED    10~ loop
+                MOV #XDOCON,rDOCON      \ restore rDOCON
+                MOV @RSP+,PC            \ RET
+    ENDCODE
+
+    [THEN]  ; endcase of hardware multiplier
+
 \ input ; u = module {1000...16384}, F = angle (15Q16 number) in degrees {-89,9...89,9}
-\ output ; X Y 
+\ output ; X Y
 \ TOS = Fhi, 0(PSP) = Flo, 2(PSP) = u
-PUSH IP             \ save IP before use
-MOV @PSP+,&MPY32L     \ multiply angle by 286
-MOV TOS,&MPY32H
-MOV #286,&OP2
-MOV &RES0,Y
-MOV &RES1,TOS       \ -- module angle*286
+    CODE POL2REC   \ u F -- X Y
+    PUSH IP             \ save IP before use
+    MOV @PSP+,&MPY32L     \ multiply angle by 286
+    MOV TOS,&MPY32H
+    MOV #286,&OP2
+    MOV &RES0,Y
+    MOV &RES1,TOS       \ -- module angle*286
 \ =====================
 \ CORDIC 16 bits engine
 \ =====================
-MOV #-1,IP          \ IP = i-1
-MOV @PSP,X          \ X = Xi
-MOV #0,Y            \ Y = Yi
-BEGIN               \ i loops with init i = -1 
-    ADD #1,IP       \ i = i+1
-    MOV X,S         \ S = Xi to be right shifted
-    MOV Y,T         \ T = Yi to be right shifted
-    MOV #0,W        \
-    GOTO FW1
-    BEGIN
-        RRA S       \ (Xi >> 1)
-        RRA T       \ (Yi >> 1)
-        ADD #1,W
-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
-    0>= IF          \ TOS >= 0 : Rotate clockwise
-        SUB T,X     \ Xi+1 = Xi - ( Yi >> i)
-        ADD S,Y     \ Yi+1 = Yi + ( Xi >> i)
-        SUB T_ARCTAN(W),TOS
-    ELSE            \ TOS < 0 : Rotate counter-clockwise
-        ADD T,X     \ Xi+1 = Xi + ( Yi >> i)
-        SUB S,Y     \ Yi+1 = Yi - ( Xi >> i)
-        ADD T_ARCTAN(W),TOS
-    THEN
-    CMP #0,TOS      \ if angle*256 = 0 quit loop
-    0<> WHILE       \ search "Extended control-flow patterns" in https://forth-standard.org/standard/rationale
-        CMP #14,IP  \ IP = size of ARC_TAN table ?
-0= UNTIL 
-    THEN            \ search "Extended control-flow patterns" in https://forth-standard.org/standard/rationale
+    MOV #-1,IP          \ IP = i-1
+    MOV @PSP,X          \ X = Xi
+    MOV #0,Y            \ Y = Yi
+    BEGIN               \ i loops with init i = -1
+        ADD #1,IP       \ i = i+1
+        MOV X,S         \ S = Xi to be right shifted
+        MOV Y,T         \ T = Yi to be right shifted
+        MOV #0,W        \
+        GOTO FW1
+        BEGIN
+            RRA S       \ (Xi >> 1)
+            RRA T       \ (Yi >> 1)
+            ADD #1,W
+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
+        0>= IF          \ TOS >= 0 : Rotate clockwise
+            SUB T,X     \ Xi+1 = Xi - ( Yi >> i)
+            ADD S,Y     \ Yi+1 = Yi + ( Xi >> i)
+            SUB T_ARCTAN(W),TOS
+        ELSE            \ TOS < 0 : Rotate counter-clockwise
+            ADD T,X     \ Xi+1 = Xi + ( Yi >> i)
+            SUB S,Y     \ Yi+1 = Yi - ( Xi >> i)
+            ADD T_ARCTAN(W),TOS
+        THEN
+        CMP #0,TOS      \ if angle*256 = 0 quit loop
+        0<> WHILE       \ search "Extended control-flow patterns" in https://forth-standard.org/standard/rationale
+            CMP #14,IP  \ IP = size of ARC_TAN table ?
+    0= UNTIL
+        THEN            \ search "Extended control-flow patterns" in https://forth-standard.org/standard/rationale
 \ multiply cos by factor scale
-CALL #XSCALE
-MOV X,0(PSP)        \ 3     hi result = cos
+    CALL #XSCALE
+    MOV X,0(PSP)        \ 3     hi result = cos
 \ multiply sin by factor scale
-MOV Y,X             \ 3
-CALL #XSCALE
-MOV X,TOS           \ 3     hi result = sin
+    MOV Y,X             \ 3
+    CALL #XSCALE
+    MOV X,TOS           \ 3     hi result = sin
 \ ==================
 \ endof CORDIC engine   \ X = cos, Y = sin
 \ ==================
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE                 \ -- cos sin
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE                 \ -- cos sin
 
 
 \ REC2POL version with inputs scaling, to increase the accuracy of the angle:
@@ -342,282 +386,279 @@ ENDCODE                 \ -- cos sin
 \ input : X < 16384, Y < 16384
 \ output ; u = hypothenuse, f = angle (15Q16 number) in degrees
 \ rounded hypothenuse, 1 mn accuracy angle
-CODE REC2POL        \ X Y -- u f
-MOV @PSP,X          \ X = Xi
-MOV TOS,Y           \ Y = Yi
+    CODE REC2POL        \ X Y -- u f
+    MOV @PSP,X          \ X = Xi
+    MOV TOS,Y           \ Y = Yi
 \ normalize X Y to 16384 maxi
 \ 1- calculate T = |Y|
-MOV Y,T
-CMP #0,T
-S< IF
-    XOR #-1,T
-    ADD #1,T
-THEN
+    MOV Y,T
+    CMP #0,T
+    S< IF
+        XOR #-1,T
+        ADD #1,T
+    THEN
 \ 2- calculate S = |X|
-MOV X,S
-CMP #0,S
-S< IF 
-    XOR #-1,S
-    ADD #1,S
-THEN
+    MOV X,S
+    CMP #0,S
+    S< IF
+        XOR #-1,S
+        ADD #1,S
+    THEN
 \ 3- abort if null inputs
-MOV #-1,TOS \ set TOS TRUE for the two ABORT" below
-CMP #0,X
-0= IF
-    CMP #0,Y
+    MOV #-1,TOS \ set TOS TRUE for the two ABORT" below
+    CMP #0,X
     0= IF
-        LO2HI 
-            ABORT" null inputs!"
-        HI2LO
+        CMP #0,Y
+        0= IF
+            LO2HI
+                ABORT" null inputs!"
+            HI2LO
+        THEN
     THEN
-THEN
 \ 4- select max of |X|,|Y|
-CMP S,T
-U< IF       \ |X| > |Y|
-    MOV S,T
-THEN
-\ 5- abort if |X| or |Y| >= 16384
-CMP #16384,T
-    U>= IF
-    LO2HI
-        ABORT" |x| or |y| >= 16384"
-    HI2LO
+    CMP S,T
+    U< IF       \ |X| > |Y|
+        MOV S,T
     THEN
+\ 5- abort if |X| or |Y| >= 16384
+    CMP #16384,T
+        U>= IF
+        LO2HI
+            ABORT" |x| or |y| >= 16384"
+        HI2LO
+        THEN
 \ 6- multiply inputs by 2^n scale factor
-MOV #1,S        \ init scale factor
-RLAM #3,T       \ test bit 2^13 of max(X,Y)
-GOTO FW1
-BEGIN
-    ADD X,X     \ X=X*2
-    ADD Y,Y     \ Y=Y*2
-    ADD S,S     \ scale factor *2
-    ADD T,T     \ to test next bit 2^(n-1)
+    MOV #1,S        \ init scale factor
+    RLAM #3,T       \ test bit 2^13 of max(X,Y)
+    GOTO FW1
+    BEGIN
+        ADD X,X     \ X=X*2
+        ADD Y,Y     \ Y=Y*2
+        ADD S,S     \ scale factor *2
+        ADD T,T     \ to test next bit 2^(n-1)
 FW1
-U>= UNTIL       \ until carry set
+    U>= UNTIL       \ until carry set
 \ 7- save IP and scale factor n
-PUSHM #2,IP     \ push IP,S
+    PUSHM #2,IP     \ push IP,S
 \ ==================
-\ CORDIC engine
+\ CORDIC 16 bits engine
 \ ==================
-MOV #-1,IP          \ IP = i-1, X = Xi, Y = Yi
-MOV #0,TOS          \ init z=0
- BEGIN              \ i loops with init: i = -1
-    ADD #1,IP       \ i = i+1
-    MOV X,S         \ S = Xi to be right shifted
-    MOV Y,T         \ T = Yi to be right shifted
-    MOV #0,W        \ W = right shift loop count
-    GOTO FW1
-    BEGIN
-        RRA S       \ (X >> i)
-        RRA T       \ (Y >> i)
-        ADD #1,W    \
-FW1     CMP IP,W    \ W = i ?
-    0= UNTIL        \ 6~ loop
-    ADD W,W         \ W = 2i = T_SCALE displacement
-    CMP #0,Y        \ Y sign ?
-    S>= IF          \ Y >= 0 : Rotate counter-clockwise
-        ADD T,X     \ Xi+1 = Xi + ( Yi >> i)
-        SUB S,Y     \ Yi+1 = Yi - ( Xi >> i)
-        ADD T_ARCTAN(W),TOS
-    ELSE            \ Y < 0 : Rotate clockwise
-        SUB T,X     \ Xi+1 = Xi - ( Yi >> i)
-        ADD S,Y     \ Yi+1 = Yi + ( Xi >> i)
-        SUB T_ARCTAN(W),TOS
-    THEN
-    CMP #0,Y        \
-    0<> WHILE       \ if Y = 0 quit loop ---+
-    CMP #14,IP      \                       |
- 0= UNTIL           \                       |
-    THEN            \ <---------------------+
+    MOV #-1,IP          \ IP = i-1, X = Xi, Y = Yi
+    MOV #0,TOS          \ init z=0
   BEGIN              \ i loops with init: i = -1
+        ADD #1,IP       \ i = i+1
+        MOV X,S         \ S = Xi to be right shifted
+        MOV Y,T         \ T = Yi to be right shifted
+        MOV #0,W        \ W = right shift loop count
+        GOTO FW1
+        BEGIN
+            RRA S       \ (X >> i)
+            RRA T       \ (Y >> i)
+            ADD #1,W    \
+FW1         CMP IP,W    \ W = i ?
+        0= UNTIL        \ 6~ loop
+        ADD W,W         \ W = 2i = T_SCALE displacement
+        CMP #0,Y        \ Y sign ?
+        S>= IF          \ Y >= 0 : Rotate counter-clockwise
+            ADD T,X     \ Xi+1 = Xi + ( Yi >> i)
+            SUB S,Y     \ Yi+1 = Yi - ( Xi >> i)
+            ADD T_ARCTAN(W),TOS
+        ELSE            \ Y < 0 : Rotate clockwise
+            SUB T,X     \ Xi+1 = Xi - ( Yi >> i)
+            ADD S,Y     \ Yi+1 = Yi + ( Xi >> i)
+            SUB T_ARCTAN(W),TOS
+        THEN
+        CMP #0,Y        \
+        0<> WHILE       \ if Y = 0 quit loop ---+
+        CMP #14,IP      \                       |
   0= UNTIL           \                       |
+        THEN            \ <---------------------+
 \ multiply x by CORDIC gain
-CALL #XSCALE             \ 3     hi result = hypothenuse
+    CALL #XSCALE             \ 3     hi result = hypothenuse
 \ ==================
 \ endof CORDIC engine   \ X = hypothenuse, TOS = 256*angle
 \ ==================
 \ divide x by scale factor
-POPM #2,IP              \ S = scale factor, restore IP
-GOTO FW1                
-BEGIN                   \ 4~ loop
-    RRA X               \ divide x by 2
-FW1 RRA S               \ shift right scale factor
-U>= UNTIL               \ until carry set
-MOV X,0(PSP)
-
+    POPM #2,IP              \ S = scale factor, restore IP
+    GOTO FW1
+    BEGIN                   \ 4~ loop
+        RRA X               \ divide x by 2
+FW1     RRA S               \ shift right scale factor
+    U>= UNTIL               \ until carry set
+    MOV X,0(PSP)
 \ divide z by 286 to display it as a Q15.16 number
-SUB #4,PSP              \ -- X * * Zhi
-MOV TOS,rDOCON          \ -- rDOCON as sign of QUOT
-CMP #0,rDOCON
-S< IF
-    XOR #-1,TOS
-    ADD #1,TOS
-THEN
-MOV #0,2(PSP)           \ -- X Zlo * Zhi
-MOV TOS,0(PSP)          \ -- X Zlo Zhi Zhi
-MOV #286,TOS            \ -- X Zlo Zhi DIV
-CALL #MUSMOD            \ -- X rem QUOTlo QUOThi
-MOV @PSP+,0(PSP)        \    remove remainder
-CMP #0,rDOCON
-S< IF
-    XOR #-1,0(PSP)
-    XOR #-1,TOS
-    ADD #1,0(PSP)
-    ADDC #0,TOS
-THEN
-MOV #XDOCON,rDOCON
-MOV @IP+,PC
-ENDCODE
-
-
-[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 &BASEADR,W
-CMP ##10,W
-0= IF               \           if base 10
-    ADD #1,T        \ T = 5     set 5 digits
-ELSE
-    CMP #%10,W
-    0= IF           \           if base 2
-        MOV #16,T   \ T = 16    set 16 digits
+    SUB #4,PSP              \ -- X * * Zhi
+    MOV TOS,rDOCON          \ -- rDOCON as sign of QUOT
+    CMP #0,rDOCON
+    S< IF
+        XOR #-1,TOS
+        ADD #1,TOS
     THEN
-THEN
-PUSHM #3,IP         \                   R-- IP sign #digit
-LO2HI
-    <# DABS         \ -- uQlo uQhi      R-- IP sign #digit
-    R> F#S          \ -- uQhi 0         R-- IP sign
-    $2C HOLD        \                   $2C = char ','
-    #S              \ -- 0 0
-    R> SIGN #>      \ -- addr len       R-- IP
-    TYPE $20 EMIT   \ --         
-;
-
-[THEN]
-
-PWR_HERE
-
-[UNDEFINED] SWAP [IF]
+    MOV #0,2(PSP)           \ -- X Zlo * Zhi
+    MOV TOS,0(PSP)          \ -- X Zlo Zhi Zhi
+    MOV #286,TOS            \ -- X Zlo Zhi DIV
+    CALL #MUSMOD            \ -- X rem QUOTlo QUOThi
+    MOV @PSP+,0(PSP)        \    remove remainder
+    CMP #0,rDOCON
+    S< IF
+        XOR #-1,0(PSP)
+        XOR #-1,TOS
+        ADD #1,0(PSP)
+        ADDC #0,TOS
+    THEN
+    MOV #XDOCON,rDOCON
+    MOV @IP+,PC
+    ENDCODE
+
+
+    [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 &BASEADR,W
+    CMP ##10,W
+    0= IF               \           if base 10
+        ADD #1,T        \ T = 5     set 5 digits
+    ELSE
+        CMP #%10,W
+        0= IF           \           if base 2
+            MOV #16,T   \ T = 16    set 16 digits
+        THEN
+    THEN
+    PUSHM #3,IP         \                   R-- IP sign #digit
+    LO2HI
+        <# DABS         \ -- uQlo uQhi      R-- IP sign #digit
+        R> F#S          \ -- uQhi 0         R-- IP sign
+        $2C HOLD        \                   $2C = char ','
+        #S              \ -- 0 0
+        R> SIGN #>      \ -- addr len       R-- IP
+        TYPE $20 EMIT   \ --
+    ;
+
+    [THEN]
+
+RST_SET
+
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-ECHO
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    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]
-
-; -----------------------------------------------------------
-; requires FIXPOINT_INPUT kernel addon, see forthMSP430FR.asm
-; -----------------------------------------------------------
-
-
-10000 89,0 POL2REC . .  ; sin, cos --> 
-10000 75,0 POL2REC . .  ; sin, cos --> 
-10000 60,0 POL2REC . .  ; sin, cos --> 
-10000 45,0 POL2REC . .  ; sin, cos --> 
-10000 30,0 POL2REC . .  ; sin, cos --> 
-10000 15,0 POL2REC . .  ; sin, cos --> 
-10000 1,0 POL2REC . .   ; sin, cos --> 
+    [UNDEFINED] ROT
+    [IF] \
+    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]
+
+ECHO
+
+10000 89,0 POL2REC . .  ; sin, cos -->
+10000 75,0 POL2REC . .  ; sin, cos -->
+10000 60,0 POL2REC . .  ; sin, cos -->
+10000 45,0 POL2REC . .  ; sin, cos -->
+10000 30,0 POL2REC . .  ; sin, cos -->
+10000 15,0 POL2REC . .  ; sin, cos -->
+10000 1,0 POL2REC . .   ; sin, cos -->
 \ module phase -- X Y
-16384 30,0 POL2REC SWAP . . ; x, y --> 
-16384 45,0 POL2REC SWAP . . ; x, y --> 
-16384 60,0 POL2REC SWAP . . ; x, y --> 
+16384 30,0 POL2REC SWAP . . ; x, y -->
+16384 45,0 POL2REC SWAP . . ; x, y -->
+16384 60,0 POL2REC SWAP . . ; x, y -->
 
 \
-10000 -89,0 POL2REC . .  ; sin, cos --> 
-10000 -75,0 POL2REC . .  ; sin, cos --> 
-10000 -60,0 POL2REC . .  ; sin, cos --> 
-10000 -45,0 POL2REC . .  ; sin, cos --> 
-10000 -30,0 POL2REC . .  ; sin, cos --> 
-10000 -15,0 POL2REC . .  ; sin, cos --> 
-10000 -1,0 POL2REC . .   ; sin, cos --> 
+10000 -89,0 POL2REC . .  ; sin, cos -->
+10000 -75,0 POL2REC . .  ; sin, cos -->
+10000 -60,0 POL2REC . .  ; sin, cos -->
+10000 -45,0 POL2REC . .  ; sin, cos -->
+10000 -30,0 POL2REC . .  ; sin, cos -->
+10000 -15,0 POL2REC . .  ; sin, cos -->
+10000 -1,0 POL2REC . .   ; sin, cos -->
 \ module phase -- X Y
-16384 -30,0 POL2REC SWAP . . ; x, y --> 
-16384 -45,0 POL2REC SWAP . . ; x, y --> 
-16384 -60,0 POL2REC SWAP . . ; x, y --> 
+16384 -30,0 POL2REC SWAP . . ; x, y -->
+16384 -45,0 POL2REC SWAP . . ; x, y -->
+16384 -60,0 POL2REC SWAP . . ; x, y -->
 
 \
--10000 89,0 POL2REC . .  ; sin, cos --> 
--10000 75,0 POL2REC . .  ; sin, cos --> 
--10000 60,0 POL2REC . .  ; sin, cos --> 
--10000 45,0 POL2REC . .  ; sin, cos --> 
--10000 30,0 POL2REC . .  ; sin, cos --> 
--10000 15,0 POL2REC . .  ; sin, cos --> 
--10000 1,0 POL2REC . .   ; sin, cos --> 
+-10000 89,0 POL2REC . .  ; sin, cos -->
+-10000 75,0 POL2REC . .  ; sin, cos -->
+-10000 60,0 POL2REC . .  ; sin, cos -->
+-10000 45,0 POL2REC . .  ; sin, cos -->
+-10000 30,0 POL2REC . .  ; sin, cos -->
+-10000 15,0 POL2REC . .  ; sin, cos -->
+-10000 1,0 POL2REC . .   ; sin, cos -->
 \ module phase -- X Y
--16384 30,0 POL2REC SWAP . . ; x, y --> 
--16384 45,0 POL2REC SWAP . . ; x, y --> 
--16384 60,0 POL2REC SWAP . . ; x, y --> 
+-16384 30,0 POL2REC SWAP . . ; x, y -->
+-16384 45,0 POL2REC SWAP . . ; x, y -->
+-16384 60,0 POL2REC SWAP . . ; x, y -->
 \
 
--10000 -89,0 POL2REC . .  ; sin, cos --> 
--10000 -75,0 POL2REC . .  ; sin, cos --> 
--10000 -60,0 POL2REC . .  ; sin, cos --> 
--10000 -45,0 POL2REC . .  ; sin, cos --> 
--10000 -30,0 POL2REC . .  ; sin, cos --> 
--10000 -15,0 POL2REC . .  ; sin, cos --> 
--10000 -1,0 POL2REC . .   ; sin, cos --> 
+-10000 -89,0 POL2REC . .  ; sin, cos -->
+-10000 -75,0 POL2REC . .  ; sin, cos -->
+-10000 -60,0 POL2REC . .  ; sin, cos -->
+-10000 -45,0 POL2REC . .  ; sin, cos -->
+-10000 -30,0 POL2REC . .  ; sin, cos -->
+-10000 -15,0 POL2REC . .  ; sin, cos -->
+-10000 -1,0 POL2REC . .   ; sin, cos -->
 \ module phase -- X Y
--16384 -30,0 POL2REC SWAP . . ; x, y --> 
--16384 -45,0 POL2REC SWAP . . ; x, y --> 
--16384 -60,0 POL2REC SWAP . . ; x, y --> 
+-16384 -30,0 POL2REC SWAP . . ; x, y -->
+-16384 -45,0 POL2REC SWAP . . ; x, y -->
+-16384 -60,0 POL2REC SWAP . . ; x, y -->
 \
 
 
-2  1  REC2POL F. .          ; phase module --> 
-2 -1  REC2POL F. .          ; phase module --> 
-20  10  REC2POL F. .        ; phase module --> 
-20 -10  REC2POL F. .        ; phase module --> 
-200 100 REC2POL F. .        ; phase module --> 
-100 -100 REC2POL F. .       ; phase module --> 
-2000 1000 REC2POL F. .      ; phase module --> 
-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 --> 
+2  1  REC2POL F. .          ; phase module -->
+2 -1  REC2POL F. .          ; phase module -->
+20  10  REC2POL F. .        ; phase module -->
+20 -10  REC2POL F. .        ; phase module -->
+200 100 REC2POL F. .        ; phase module -->
+100 -100 REC2POL F. .       ; phase module -->
+2000 1000 REC2POL F. .      ; phase module -->
+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
 
--2  1  REC2POL F. .          ; phase module --> 
--2 -1  REC2POL F. .          ; phase module --> 
--20  10  REC2POL F. .        ; phase module --> 
--20 -10  REC2POL F. .        ; phase module --> 
--200 100 REC2POL F. .        ; phase module --> 
--100 -100 REC2POL F. .       ; phase module --> 
--2000 1000 REC2POL F. .      ; phase module --> 
--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 --> 
+-2  1  REC2POL F. .          ; phase module -->
+-2 -1  REC2POL F. .          ; phase module -->
+-20  10  REC2POL F. .        ; phase module -->
+-20 -10  REC2POL F. .        ; phase module -->
+-200 100 REC2POL F. .        ; phase module -->
+-100 -100 REC2POL F. .       ; phase module -->
+-2000 1000 REC2POL F. .      ; phase module -->
+-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
 
-10000 89,0 POL2REC REC2POL   ROT . F. 
-10000 75,0 POL2REC REC2POL   ROT . F. 
-10000 60,0 POL2REC REC2POL   ROT . F. 
-10000 45,0 POL2REC REC2POL   ROT . F. 
-10000 30,0 POL2REC REC2POL   ROT . F. 
-10000 26,565 POL2REC REC2POL ROT . F. 
-10000 15,0 POL2REC REC2POL   ROT . F. 
-10000 14,036 POL2REC REC2POL ROT . F. 
-10000 7,125 POL2REC REC2POL  ROT . F. 
-10000 1,0 POL2REC REC2POL    ROT . F. 
+10000 89,0 POL2REC REC2POL   ROT . F.
+10000 75,0 POL2REC REC2POL   ROT . F.
+10000 60,0 POL2REC REC2POL   ROT . F.
+10000 45,0 POL2REC REC2POL   ROT . F.
+10000 30,0 POL2REC REC2POL   ROT . F.
+10000 26,565 POL2REC REC2POL ROT . F.
+10000 15,0 POL2REC REC2POL   ROT . F.
+10000 14,036 POL2REC REC2POL ROT . F.
+10000 7,125 POL2REC REC2POL  ROT . F.
+10000 1,0 POL2REC REC2POL    ROT . F.
 
 
index b358899..dd67eec 100644 (file)
@@ -3,25 +3,78 @@
 \ ; CORETEST.4TH for any FastForth target
 \ ; -------------------------------------
 
-[DEFINED] {CORETEST} [IF] {CORETEST} [THEN]
-
 MARKER {CORETEST}
 
-: ABORT_TEST
-$0D EMIT   \ return to column 1
-POSTPONE {CORETEST} \ that remove all test words 
+: ABORT_TEST        \ flag --
+$0D EMIT            \ return to column 1
+POSTPONE {CORETEST} \ remove all test words
 ABORT" {CORE_ANS} word set not found !"
 ;
 
 [UNDEFINED] {CORE_ANS} ABORT_TEST
 
 : CORETESTSUCCESS
-$0A BASE !
-$0D EMIT   \ return to column 1
-{CORETEST} \ that remove all test words 
-1 ABORT" CORE tests success!"
+$0D EMIT        \ -- $0D    return to column 1
+$0A BASE !      \           set decimal
+{CORETEST}      \           remove all test words
+." CORETEST + COREPLUSTEST success!" \ true --
 ;
 
+[UNDEFINED] SM/REM [IF]
+CODE SM/REM
+MOV R14,R12
+MOV @R15,R11
+CMP #0,R14
+S< IF
+    XOR #-1,R14
+    ADD #1,R14
+THEN
+CMP #0,0(R15)
+S< IF
+    XOR #-1,2(R15)
+    XOR #-1,0(R15)
+    ADD #1,2(R15)
+    ADDC #0,0(R15)
+THEN
+PUSHM #3,R13
+LO2HI
+    UM/MOD
+HI2LO
+POPM #3,R13
+CMP #0,R11
+S< IF
+    XOR #-1,0(R15)
+    ADD #1,0(R15)
+THEN
+XOR R12,R11
+CMP #0,R11
+S< IF
+    XOR #-1,R14
+    ADD #1,R14
+THEN
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] FM/MOD [IF]
+\ https://forth-standard.org/standard/core/FMDivMOD
+\ FM/MOD   d1 n1 -- r q   floored signed div'n
+: FM/MOD
+SM/REM
+HI2LO                   \ -- remainder quotient       S=divisor
+CMP #0,0(R15)           \ remainder <> 0 ?
+0<> IF
+    CMP #1,R14          \ quotient < 1 ?
+    S< IF
+      ADD R12,0(R15)    \ add divisor to remainder
+      SUB #1,R14        \ decrement quotient
+    THEN
+THEN
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 \ From: John Hayes S1I
 \ Subject: tester.fr
 \ Date: Mon, 27 Nov 95 13:10:09 PST
@@ -52,7 +105,7 @@ VARIABLE VERBOSE
 \             DO 0 LOOP
 \             ELSE 0 DO DROP LOOP THEN
 \             THEN ;
-\ 
+\
 \ : ERROR     \ ( C-ADDR U -- ) DISPLAY AN ERROR MESSAGE FOLLOWED BY
 \         \ THE LINE THAT HAD THE ERROR.
 \     TYPE SOURCE TYPE CR          \ DISPLAY LINE CORRESPONDING TO ERROR
@@ -1084,7 +1137,7 @@ CREATE ABUF 80 CHARS ALLOT
 
 : ACCEPT-TEST
     CR ." PLEASE TYPE UP TO 80 CHARACTERS: "
-ABUF 80 \ ACCEPT            \ JMT 
+ABUF 80 \ ACCEPT            \ JMT
           ['] ACCEPT >BODY  \ JMT: find default part of deferred ACCEPT
           EXECUTE           \ JMT: execute ACCEPT
     CR ." RECEIVED: " [CHAR] " EMIT
@@ -1100,100 +1153,13 @@ T{ : GDX   123 ; : GDX   GDX 234 ; -> }T
 
 T{ GDX -> 123 234 }T
 
-\ ------------------------------------------------------------------------
-TESTING TO VALUE :NONAME IS DEFER
-
-[DEFINED] VALUE [IF]
-T{  111 VALUE v1 -> }T
-T{ -999 VALUE v2 -> }T
-T{ v1 ->  111 }T
-T{ v2 -> -999 }T
-T{ 222 TO v1 -> }T
-T{ v1 -> 222 }T
-T{ : vd1 v1 ; -> }T
-T{ vd1 -> 222 }T
-T{ : vd2 TO v2 ; -> }T
-T{ v2 -> -999 }T
-T{ -333 vd2 -> }T
-T{ v2 -> -333 }T
-T{ v1 ->  222 }T
-[THEN]
-
-[DEFINED] :NONAME [IF]
-
-[UNDEFINED] CASE [IF]
-\ https://forth-standard.org/standard/core/CASE
-: CASE 0 ; IMMEDIATE \ -- #of-1 
-
-\ https://forth-standard.org/standard/core/OF
-: OF \ #of-1 -- orgOF #of 
-1+                         \ count OFs 
->R                         \ move off the stack in case the control-flow stack is the data stack. 
-POSTPONE OVER POSTPONE = \ copy and test case value
-POSTPONE IF                \ add orig to control flow stack 
-POSTPONE DROP          \ discards case value if = 
-R>                         \ we can bring count back now 
-; IMMEDIATE 
-
-\ https://forth-standard.org/standard/core/ENDOF
-: ENDOF \ orgOF #of -- orgENDOF #of 
->R                         \ move off the stack in case the control-flow stack is the data stack. 
-POSTPONE ELSE 
-R>                         \ we can bring count back now 
-; IMMEDIATE 
-
-\ https://forth-standard.org/standard/core/ENDCASE
-: ENDCASE \ orgENDOF1..orgENDOFn #of -- 
-POSTPONE DROP
-0 DO 
-    POSTPONE THEN 
-LOOP 
-; IMMEDIATE 
-[THEN]
-
-VARIABLE nn1
-VARIABLE nn2
-T{ :NONAME 1234 ; nn1 ! -> }T
-T{ :NONAME 9876 ; nn2 ! -> }T
-T{ nn1 @ EXECUTE -> 1234 }T
-T{ nn2 @ EXECUTE -> 9876 }T
-
-T{ :NONAME ( n -- 0,1,..n ) DUP IF DUP >R 1- RECURSE R> THEN ;
-   CONSTANT RN1 -> }T
-T{ 0 RN1 EXECUTE -> 0 }T
-T{ 4 RN1 EXECUTE -> 0 1 2 3 4 }T
-
-:NONAME  ( n -- n1 )    \ Multiple RECURSEs in one definition
-   1- DUP
-   CASE 0 OF EXIT ENDOF
-        1 OF 11 SWAP RECURSE ENDOF
-        2 OF 22 SWAP RECURSE ENDOF
-        3 OF 33 SWAP RECURSE ENDOF
-        DROP ABS RECURSE EXIT
-   ENDCASE
-; CONSTANT RN2
+CR .( End of Core word set tests) \ "
 
-T{  1 RN2 EXECUTE -> 0 }T
-T{  2 RN2 EXECUTE -> 11 0 }T
-T{  4 RN2 EXECUTE -> 33 22 11 0 }T
-T{ 25 RN2 EXECUTE -> 33 22 11 0 }T
-
-[THEN]
-
-[DEFINED] IS [IF]
-T{ DEFER defer5 -> }T
-T{ : is-defer5 IS defer5 ; -> }T
-T{ ' * IS defer5 -> }T
-T{ 2 3 defer5 -> 6 }T
-T{ ' + is-defer5 -> }T
-T{ 1 2 defer5 -> 3 }T
-[THEN]
-
-\ ==============================================================================
+\ =============================================================================
 \ COREPLUSTEST
-\ ==============================================================================
+\ =============================================================================
 \ Additional tests on the the ANS Forth Core word set
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 \ https://raw.githubusercontent.com/gerryjackson/forth2012-test-suite/master/src/coreplustest.fth
 
 \ This program was written by Gerry Jackson in 2007, with contributions from
@@ -1204,9 +1170,9 @@ T{ 1 2 defer5 -> 3 }T
 \ but WITHOUT ANY WARRANTY; without even the implied warranty of
 \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
-\ The tests are not claimed to be comprehensive or correct 
+\ The tests are not claimed to be comprehensive or correct
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 \ The tests are based on John Hayes test program for the core word set
 \
 \ This file provides some more tests on Core words where the original Hayes
@@ -1218,12 +1184,12 @@ T{ 1 2 defer5 -> 3 }T
 \     Parsing behaviour
 \     Number prefixes # $ % and 'A' character input
 \     Definition names
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 \ Assumptions and dependencies:
 \     - tester.fr or ttester.fs has been loaded prior to this file
 \     - core.fr has been loaded so that constants <TRUE> MAX-INT, MIN-INT and
 \       MAX-UINT are defined
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 
 DECIMAL
 
@@ -1262,7 +1228,7 @@ T{ -20 30 -10 GD7 -> 30 20 10 0 -10 -20 6 }T
 T{ -20 31 -10 GD7 -> 31 21 11 1 -9 -19 6 }T
 T{ -20 29 -10 GD7 -> 29 19 9 -1 -11 5 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING DO +LOOP with large and small increments
 
 \ Contributed by Andrew Haley
@@ -1300,7 +1266,7 @@ T{ 0 0 0 -USTEP -UWRAP?   1 GD9
 T{ 0 MIN-INT MAX-INT  STEP +WRAP? 1 GD9
 T{ 0 MAX-INT MIN-INT -STEP -WRAP? 1 GD9
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING DO +LOOP with maximum and minimum increments
 
 : (-MI) MAX-INT DUP NEGATE + 0= IF MAX-INT NEGATE ELSE -32767 THEN ;
@@ -1319,7 +1285,7 @@ T{ 0 MIN-INT 1+  -1 MIN-INT GD8  -> 1 }T
 T{ 0 MIN-INT 1+   1 MIN-INT GD8  -> 2 }T
 T{ 0 MIN-INT 1+ DUP MIN-INT GD8  -> 1 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 \ TESTING +LOOP setting I to an arbitrary value
 
 \ The specification for +LOOP permits the loop index I to be set to any value
@@ -1329,7 +1295,7 @@ T{ 0 MIN-INT 1+ DUP MIN-INT GD8  -> 1 }T
 \ n2 is the value of I in a DO ... +LOOP
 \ n3 is a test value
 \ If n2=n3 then return n1-n2 else return 1
-: SET-I  ( n1 n2 n3 -- n1-n2 | 1 ) 
+: SET-I  ( n1 n2 n3 -- n1-n2 | 1 )
    OVER = IF - ELSE 2DROP 1 THEN
 ;
 
@@ -1354,7 +1320,7 @@ T{ PL7 -> -1 -2 -3 -4 -5 }T
 : PL8 -20 -5 DO I -20 I -2 -SET-I DUP -1 = IF DROP 0 I -6 -SET-I THEN +LOOP ;
 T{ PL8 -> -5 -6 0 -1 -2 -20 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING multiple RECURSEs in one colon definition
 
 : ACK ( m n -- u )    \ Ackermann function, from Rosetta Code
@@ -1368,7 +1334,7 @@ T{ 0 0 ACK ->  1 }T
 T{ 3 0 ACK ->  5 }T
 T{ 2 4 ACK -> 11 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING multiple ELSE's in an IF statement
 \ Discussed on comp.lang.forth and accepted as valid ANS Forth
 
@@ -1376,22 +1342,22 @@ TESTING multiple ELSE's in an IF statement
 T{ 0 MELSE -> 2 4 }T
 T{ -1 MELSE -> 1 3 5 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING manipulation of >IN in interpreter mode
 
 T{ 12345 DEPTH OVER 9 < 34 AND + 3 + >IN ! -> 12345 2345 345 45 5 }T
 T{ 14145 8115 ?DUP 0= 34 AND >IN +! TUCK MOD 14 >IN ! GCD CALCULATION -> 15 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING IMMEDIATE with CONSTANT  VARIABLE and CREATE [ ... DOES> ]
 
 T{ 123 CONSTANT IW1 IMMEDIATE IW1 -> 123 }T
 T{ : IW2 IW1 LITERAL ; IW2 -> 123 }T
 T{ VARIABLE IW3 IMMEDIATE 234 IW3 ! IW3 @ -> 234 }T
 T{ : IW4 IW3 [ @ ] LITERAL ; IW4 -> 234 }T
-T{ :NONAME [ 345 ] IW3 [ ! ] ; DROP IW3 @ -> 345 }T
+T{ :NONAME [ 345 ] IW3 [ ! ] ; DROP IW3 @ -> 345 }T
 T{ CREATE IW5 456 , IMMEDIATE -> }T
-T{ :NONAME IW5 [ @ IW3 ! ] ; DROP IW3 @ -> 456 }T
+T{ :NONAME IW5 [ @ IW3 ! ] ; DROP IW3 @ -> 456 }T
 T{ : IW6 CREATE , IMMEDIATE DOES> @ 1+ ; -> }T
 T{ 111 IW6 IW7 IW7 -> 112 }T
 T{ : IW8 IW7 LITERAL 1+ ; IW8 -> 113 }T
@@ -1400,27 +1366,22 @@ T{ : IW9 CREATE , DOES> @ 2 + IMMEDIATE ; -> }T
 T{ 222 IW9 IW10 FIND-IW IW10 -> -1 }T   \ IW10 is not immediate
 T{ IW10 FIND-IW IW10 -> 224 1 }T        \ IW10 becomes immediate
 
-[DEFINED] :NONAME [IF]
-T{ :NONAME [ 345 ] IW3 [ ! ] ; DROP IW3 @ -> 345 }T
-T{ :NONAME IW5 [ @ IW3 ! ] ; DROP IW3 @ -> 456 }T
-[THEN]
-
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING that IMMEDIATE doesn't toggle a flag
 
 VARIABLE IT1 0 IT1 !
 : IT2 1234 IT1 ! ; IMMEDIATE IMMEDIATE
 T{ : IT3 IT2 ; IT1 @ -> 1234 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING parsing behaviour of S" ." and (
 \ which should parse to just beyond the terminating character no space needed
 
 T{ : GC5 S" A string"2DROP ; GC5 -> }T
 T{ ( A comment)1234 -> 1234 }T
 T{ : PB1 CR ." You should see 2345: "." 2345"( A comment) CR ; PB1 -> }T
-\ ------------------------------------------------------------------------------
+
+\ -----------------------------------------------------------------------------
 TESTING number prefixes # $ % and 'c' character input
 \ Adapted from the Forth 200X Draft 14.5 document
 
@@ -1454,7 +1415,7 @@ DECIMAL
 \ Check number prefixes in compile mode
 T{ : nmp  #8327 $-2cbe %011010111 ''' ; nmp -> 8327 -11454 215 39 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING definition names
 \ should support {1..31} graphical characters
 : !"#$%&'()*+,-./0123456789:;<=>? 1 ;
@@ -1467,7 +1428,7 @@ T{ _`abcdefghijklmnopqrstuvwxyz{|} -> 3 }T
 T{ _`abcdefghijklmnopqrstuvwxyz{|~ -> 4 }T
 T{ _`abcdefghijklmnopqrstuvwxyz{|} -> 3 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING FIND with a zero length string and a non-existent word
 
 CREATE EMPTYSTRING 0 C,
@@ -1482,37 +1443,83 @@ CREATE NON-EXISTENT-WORD   \ Same as in exceptiontest.fth
    CHAR $ C, CHAR $ C,
 T{ NON-EXISTENT-WORD FIND -> NON-EXISTENT-WORD 0 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING IF ... BEGIN ... REPEAT (unstructured)
 
 T{ : UNS1 DUP 0 > IF 9 SWAP BEGIN 1+ DUP 3 > IF EXIT THEN REPEAT ; -> }T
 T{ -6 UNS1 -> -6 }T
 T{  1 UNS1 -> 9 4 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING DOES> doesn't cause a problem with a CREATEd address
 
 : MAKE-2CONST DOES> 2@ ;
 T{ CREATE 2K 3 , 2K , MAKE-2CONST 2K -> ' 2K >BODY 3 }T
 
-\ ------------------------------------------------------------------------------
+\ -----------------------------------------------------------------------------
 TESTING ALLOT ( n -- ) where n <= 0
 
 T{ HERE 5 ALLOT -5 ALLOT HERE = -> <TRUE> }T
 T{ HERE 0 ALLOT HERE = -> <TRUE> }T
+
 \ -----------------------------------------------------------------------------
-TESTING MARKER   (contributed by James Bowman)
 
-[DEFINED] MARKER [IF]
+CR .( End of additional Core tests) \ "
+
+\ -----------------------------------------------------------------------------
+TESTING TO VALUE :NONAME IS DEFER
+
+T{  111 VALUE v1 -> }T
+T{ -999 VALUE v2 -> }T
+T{ v1 ->  111 }T
+T{ v2 -> -999 }T
+T{ 222 TO v1 -> }T
+T{ v1 -> 222 }T
+T{ : vd1 v1 ; -> }T
+T{ vd1 -> 222 }T
+T{ : vd2 TO v2 ; -> }T
+T{ v2 -> -999 }T
+T{ -333 vd2 -> }T
+T{ v2 -> -333 }T
+T{ v1 ->  222 }T
+
+VARIABLE nn1
+VARIABLE nn2
+T{ :NONAME 1234 ; nn1 ! -> }T
+T{ :NONAME 9876 ; nn2 ! -> }T
+T{ nn1 @ EXECUTE -> 1234 }T
+T{ nn2 @ EXECUTE -> 9876 }T
+
+T{ :NONAME ( n -- 0,1,..n ) DUP IF DUP >R 1- RECURSE R> THEN ;
+   CONSTANT RN1 -> }T
+T{ 0 RN1 EXECUTE -> 0 }T
+T{ 4 RN1 EXECUTE -> 0 1 2 3 4 }T
 
-    [UNDEFINED] 0<> [IF]
-    CODE 0<>
-    CMP #0,R14
-    0<> IF MOV #-1,R14 THEN
-    MOV @R13+,R0
-    ENDCODE
-    [THEN]
+:NONAME  ( n -- n1 )    \ Multiple RECURSEs in one definition
+   1- DUP
+   CASE 0 OF EXIT ENDOF
+        1 OF 11 SWAP RECURSE ENDOF
+        2 OF 22 SWAP RECURSE ENDOF
+        3 OF 33 SWAP RECURSE ENDOF
+        DROP ABS RECURSE EXIT
+   ENDCASE
+; CONSTANT RN2
+
+T{  1 RN2 EXECUTE -> 0 }T
+T{  2 RN2 EXECUTE -> 11 0 }T
+T{  4 RN2 EXECUTE -> 33 22 11 0 }T
+T{ 25 RN2 EXECUTE -> 33 22 11 0 }T
+
+
+T{ DEFER defer5 -> }T
+T{ : is-defer5 IS defer5 ; -> }T
+T{ ' * IS defer5 -> }T
+T{ 2 3 defer5 -> 6 }T
+T{ ' + is-defer5 -> }T
+T{ 1 2 defer5 -> 3 }T
+
+\ -----------------------------------------------------------------------------
+TESTING MARKER   (contributed by James Bowman)
 
 T{ : MA? BL WORD FIND NIP 0<> ; -> }T
 T{ MARKER MA0 -> }T
@@ -1525,9 +1532,4 @@ T{ MA? MA0 MA? MA1 MA? MA2 -> TRUE TRUE FALSE }T
 T{ MA0 -> }T
 T{ MA? MA0 MA? MA1 MA? MA2 -> FALSE FALSE FALSE }T
 
-[THEN]
-
-
-CR .( End of Core word set tests)
-
 CORETESTSUCCESS
index 57013a6..67f5e5e 100644 (file)
@@ -1,8 +1,5 @@
 \ -*- coding: utf-8 -*-
 \
-\ FastForth kernel options: MSP430ASSEMBLER, CONDCOMP
-\ to see FastForth kernel options, download FF_SPECS.f
-\
 \ TARGET SELECTION ( = the name of \INC\target.pat file without the extension)
 \ (used by preprocessor GEMA to load the pattern: \inc\TARGET.pat)
 \ MSP_EXP430FR5739  MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
 \ ASSEMBLER conditionnal usage with IF UNTIL WHILE  S<  S>=  U<   U>=  0=  0<>  0>=
 \ ASSEMBLER conditionnal usage with ?GOTO           S<  S>=  U<   U>=  0=  0<>  0<
 
-CODE ABORT_CORE_ANS
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-$0D EMIT            \ return to column 1 without CR
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_UARTI2CS before CORE_ANS downloading
-;
+    CODE ABORT_CORE_ANS
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \ FastForth V3.9
+    COLON
+    $0D EMIT            \ return to column 1 without CR
+    ABORT" FastForth V3.9 please!"
+    ;
+
+    ABORT_CORE_ANS
+
+\  BC!     pattern @ --            Bits Clear in @
+    [UNDEFINED] BC!
+    [IF]
+    CODE BC!
+    BIC @PSP+,0(TOS)
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\  BS!     pattern @ --            Bits Set in @
+    [UNDEFINED] BS!
+    [IF]
+    CODE BS!
+    BIS @PSP+,0(TOS)
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ =============================================================================
+\    $8000 KERNEL_ADDON BS! \ uncomment to select FLOORED division
+    $8000 KERNEL_ADDON BC! \ uncomment to select SYMMETRIC division
+\ =============================================================================
 
-ABORT_CORE_ANS
+    RST_RET           \ remove all above before CORE_ANS downloading
 
-; ---------------------------------
+; ----------------------------------
 ; CORE_ANS.f
-; ---------------------------------
+; ----------------------------------
 \
-; words complement to pass CORETEST.4TH
-
-[DEFINED] {CORE_ANS} [IF]  {CORE_ANS} [THEN] \ remove it if defined out of kernel 
+\ words complement to pass CORETEST.4TH
 
-[UNDEFINED] {CORE_ANS} [IF] \
+    MARKER {CORE_ANS}   \ if already defined removes it before.
 
-MARKER {CORE_ANS}
+    [UNDEFINED] HERE
+    [IF]
+    CODE HERE
+    MOV #HEREXEC,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]
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] - [IF]
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DUP
 \ DUP      x -- x x      duplicate top of stack
-CODE DUP
+    [UNDEFINED] DUP
+    [IF]
+    CODE DUP
 BW1 SUB #2,PSP      \ 2  push old TOS..
     MOV TOS,0(PSP)  \ 3  ..onto stack
     MOV @IP+,PC     \ 4
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/qDUP
 \ ?DUP     x -- 0 | x x    DUP if nonzero
-CODE ?DUP
-CMP #0,TOS      \ 2  test for TOS nonzero
-0<> ?GOTO BW1    \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] EXIT [IF]
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1    \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/EXIT
 \ EXIT     --      exit a colon definition
-CODE EXIT
-MOV @RSP+,IP    \ 2 pop previous IP (or next PC) from return stack
-MOV @IP+,PC     \ 4 = NEXT
-\               \ 6 (ITC-2)
-ENDCODE
-[THEN]
-
-[UNDEFINED] DEPTH [IF]
+    [UNDEFINED] EXIT
+    [IF]
+    CODE EXIT
+    MOV @RSP+,IP    \ 2 pop previous IP (or next PC) from return stack
+    MOV @IP+,PC     \ 4 = NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DEPTH
 \ DEPTH    -- +n        number of items on stack, must leave 0 if stack empty
-CODE DEPTH
-MOV TOS,-2(PSP)
-MOV #PSTACK,TOS
-SUB PSP,TOS     \ PSP-S0--> TOS
-RRA TOS         \ TOS/2   --> TOS
-SUB #2,PSP      \ post decrement stack...
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
+    [UNDEFINED] DEPTH
+    [IF]
+    CODE DEPTH
+    MOV TOS,-2(PSP)
+    MOV #PSTACK,TOS
+    SUB PSP,TOS     \ PSP-S0--> TOS
+    RRA TOS         \ TOS/2   --> TOS
+    SUB #2,PSP      \ post decrement stack...
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    PUSH TOS            \ 3
+    MOV @PSP,TOS        \ 2
+    MOV @RSP+,0(PSP)    \ 4
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DROP
 \ DROP     x --          drop top of stack
-CODE DROP
-MOV @PSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] DROP
+    [IF]
+    CODE DROP
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/OVER
+\ OVER    x1 x2 -- x1 x2 x1
+    [UNDEFINED] OVER
+    [IF]
+    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] 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] NIP
+    [IF]
+    CODE NIP
+    ADD #2,PSP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] >R [IF]
 \ https://forth-standard.org/standard/core/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
-\ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] @ [IF]
+\ R>    -- x    R: x --   pop from return stack
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Fetch
-\ @     c-addr -- char   fetch char from memory
-CODE @
-MOV @TOS,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] ! [IF]
+\ @     c-addr -- word   fetch word from memory
+    [UNDEFINED] @
+    [IF]
+    CODE @
+    MOV @TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Store
-\ !        x a-addr --   store cell in memory
-CODE !
-MOV @PSP+,0(TOS)    \ 4
-MOV @PSP+,TOS       \ 2
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] C@ [IF]
-\ https://forth-standard.org/standard/core/CFetch
+\ !      word c-addr --    store word in memory
+    [UNDEFINED] !
+    [IF]
+    CODE !
+    MOV @PSP+,0(TOS)    \ 4
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Fetch
 \ C@     c-addr -- char   fetch char from memory
-CODE C@
-MOV.B @TOS,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] C@
+    [IF]
+    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]
+    [UNDEFINED] C!
+    [IF]
+    CODE C!
+    MOV.B @PSP+,0(TOS)  \ 4
+    ADD #1,PSP          \ 1
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ 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] 0= [IF]
+    [UNDEFINED] C,
+    [IF]
+    CODE C,
+    MOV &DP,W
+    MOV.B TOS,0(W)
+    ADD #1,&DP
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ZeroEqual
 \ 0=     n/u -- flag    return true if TOS=0
-CODE 0=
-SUB #1,TOS      \ borrow (clear cy) if TOS was 0
-SUBC TOS,TOS    \ TOS=-1 if borrow was set
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0< [IF]
+    [UNDEFINED] 0=
+    [IF]
+    CODE 0=
+    SUB #1,TOS      \ 1 borrow (clear cy) if TOS was 0
+    SUBC TOS,TOS    \ 1 TOS=-1 if borrow was set
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Zerone
+\ 0<>     n/u -- flag    return true if TOS<>0
+    [UNDEFINED] 0<>
+    [IF]
+    CODE 0<>
+    SUB #1,TOS      \ 1 borrow (clear cy) if TOS was 0
+    SUBC TOS,TOS    \ 1 TOS=-1 if borrow was set
+    XOR #-1,TOS     \ 1
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Zeroless
 \ 0<     n -- flag      true if TOS negative
-CODE 0<
-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
-MOV @IP+,PC     \ 
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
+    [UNDEFINED] 0<
+    [IF]
+    CODE 0<
+BW1 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
+    MOV @IP+,PC     \
+    ENDCODE
+    [THEN]
+
+\ HERE
+
+\ https://forth-standard.org/standard/core/StoD
+\ S>D    n -- d          single -> double prec.
+    [UNDEFINED] S>D
+    [IF]
+    : S>D
+    DUP 0<
+    ;
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Equal
 \ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    SUB #1,TOS      \ 1 borrow (clear cy) if TOS was 0
+    SUBC TOS,TOS    \ 1 TOS=-1 if borrow was set
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
 \ https://forth-standard.org/standard/core/Uless
 \ U<    u1 u2 -- flag       test u1<u2, unsigned
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @PSP+,TOS   \ 2 u2-u1
-0<> IF
-    MOV #-1,TOS     \ 1
-    U< IF           \ 2 flag 
-        AND #0,TOS  \ 1 flag Z = 1
+    [UNDEFINED] U<
+    [IF]
+
+    CODE U<
+    SUB @PSP+,TOS   \ 2 u2-u1
+    U< ?GOTO FW1
+    0<> IF
+BW1 MOV #-1,TOS     \ 1
     THEN
-THEN
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    MOV @IP+,PC     \ 4
+    ENDCODE
+
+\ https://forth-standard.org/standard/core/Umore
+\ U>     n1 n2 -- flag
+    CODE U>
+    SUB @PSP+,TOS   \ 2
+    U< ?GOTO BW1    \ 2 flag = true, Z = 0
+FW1 AND #0,TOS      \ 1 Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] < [IF]      \ define < and >
 \ 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
+    [UNDEFINED] <
+    [IF]  \ define < and >
+
+    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
-[THEN]
+    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]
 
 \ ------------------------------------------------------------------------------
 \ CONTROL STRUCTURES
@@ -299,52 +385,57 @@ ENDCODE
 \ IF, ELSE, AGAIN, UNTIL, WHILE, REPEAT, LOOP & +LOOP compile two words
 \ LEAVE compile three words
 \
-[UNDEFINED] IF [IF]     \ define IF THEN
 \ https://forth-standard.org/standard/core/IF
 \ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] IF
+    [IF]     \ define IF THEN
+
+    CODE IF
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP            \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/THEN
 \ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
+    CODE THEN
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ELSE
 \ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/BEGIN
 \ BEGIN    -- BEGINadr             initialize backward branch
-CODE BEGIN
+    [UNDEFINED] BEGIN
+    [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+
+    CODE BEGIN
     MOV #HEREXEC,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/UNTIL
 \ UNTIL    BEGINadr --             resolve conditional backward branch
-CODE UNTIL              \ immediate
+    CODE UNTIL
     MOV #QFBRAN,X
 BW1 ADD #4,&DP          \ compile two words
     MOV &DP,W           \ W = HERE
@@ -352,977 +443,1138 @@ BW1 ADD #4,&DP          \ compile two words
     MOV TOS,-2(W)       \ compile bakcward adr at HERE+2
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/AGAIN
 \ AGAIN    BEGINadr --             resolve uncondionnal backward branch
-CODE AGAIN     \ immediate
-MOV #BRAN,X
-GOTO BW1
-ENDCODE IMMEDIATE
+    CODE AGAIN
+    MOV #BRAN,X
+    GOTO BW1
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/WHILE
 \ WHILE    BEGINadr -- WHILEadr BEGINadr
-: WHILE     \ immediate
-POSTPONE IF SWAP
-; IMMEDIATE
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/REPEAT
 \ REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]     \ define DO LOOP +LOOP
 
-[UNDEFINED] DO [IF]     \ define DO LOOP +LOOP
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO                 \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP          \
+    MOV TOS,0(PSP)      \
+    ADD #2,&DP          \   make room to compile xdo
+    MOV &DP,TOS         \ -- HERE+2
+    MOV #XDO,-2(TOS)    \   compile xdo
+    ADD #2,&LEAVEPTR    \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W     \
+    MOV #0,0(W)         \ -- HERE+2     L-- 0, init
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP               \ immediate
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP          \ make room to compile two words
     MOV &DP,W
     MOV X,-4(W)         \ xloop --> HERE
     MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP              \ immediate
-MOV #XPLOOP,X
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] I [IF]
 \ https://forth-standard.org/standard/core/I
 \ I        -- n   R: sys1 sys2 -- sys1 sys2
 \                  get the innermost loop index
-CODE I
-SUB #2,PSP              \ 1 make room in TOS
-MOV TOS,0(PSP)          \ 3
-MOV @RSP,TOS            \ 2 index = loopctr - fudge
-SUB 2(RSP),TOS          \ 3
-MOV @IP+,PC             \ 4 13~
-ENDCODE
-[THEN]
-
-[UNDEFINED] J [IF]
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,PSP              \ 1 make room in TOS
+    MOV TOS,0(PSP)          \ 3
+    MOV @RSP,TOS            \ 2 index = loopctr - fudge
+    SUB 2(RSP),TOS          \ 3
+    MOV @IP+,PC             \ 4 13~
+    ENDCODE
+    [THEN]
+
 \ 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
-[THEN]
-
-[UNDEFINED] UNLOOP [IF]
+    [UNDEFINED] J
+    [IF]
+    CODE J
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV 4(RSP),TOS
+    SUB 6(RSP),TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/UNLOOP
 \ UNLOOP   --   R: sys1 sys2 --  drop loop parms
-CODE UNLOOP
-ADD #4,RSP
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] UNLOOP
+    [IF]
+    CODE UNLOOP
+    ADD #4,RSP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] LEAVE [IF]
 \ 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 #BRAN,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
-[THEN]
-
-[UNDEFINED] AND [IF]
+    [UNDEFINED] LEAVE
+    [IF]
+    CODE LEAVE
+    MOV &DP,W               \ compile three words
+    MOV #UNLOOP,0(W)        \ [HERE] = UNLOOP
+    MOV #BRAN,2(W)          \ [HERE+2] = BRAN
+    ADD #6,&DP              \ [HERE+4] = at adr After LOOP
+    ADD #2,&LEAVEPTR
+    ADD #4,W
+    MOV &LEAVEPTR,X
+    MOV W,0(X)              \ leave HERE+4 on LEAVEPTR stack
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ 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] AND
+    [IF]
+    CODE AND
+    AND @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[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]
-
-[UNDEFINED] XOR [IF]
+\ C OR     x1 x2 -- x3           logical OR (BIS, BIts Set)
+    [UNDEFINED] OR
+    [IF]
+    CODE OR
+    BIS @PSP+,TOS
+    AND #-1,TOS \ to set flags
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/XOR
 \ C XOR    x1 x2 -- x3           logical XOR
-CODE XOR
-XOR @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] S>D [IF]
-\ https://forth-standard.org/standard/core/StoD
-\ S>D    n -- d          single -> double prec.
-: S>D
-    DUP 0<
-;
-[THEN]
+    [UNDEFINED] XOR
+    [IF]
+    CODE XOR
+    XOR @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] + [IF]
-\ https://forth-standard.org/standard/core/Plus
-\ +       n1/u1 n2/u2 -- n3/u3
-CODE +
-ADD @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-\ https://forth-standard.org/standard/core/Minus
-\ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
 \ https://forth-standard.org/standard/core/OnePlus
 \ 1+      n1/u1 -- n2/u2       add 1 to TOS
-CODE 1+
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 1+
+    [IF]
+    CODE 1+
+    ADD #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 1- [IF]
 \ https://forth-standard.org/standard/core/OneMinus
 \ 1-      n1/u1 -- n2/u2     subtract 1 from TOS
-CODE 1-
-SUB #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 1-
+    [IF]
+    CODE 1-
+    SUB #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] INVERT [IF]
 \ https://forth-standard.org/standard/core/INVERT
 \ INVERT   x1 -- x2            bitwise inversion
-CODE INVERT
-XOR #-1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] INVERT
+    [IF]
+    CODE INVERT
+    XOR #-1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] NEGATE [IF]
 \ https://forth-standard.org/standard/core/NEGATE
 \ C NEGATE   x1 -- x2            two's complement
-CODE NEGATE
-XOR #-1,TOS
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] ABS [IF]
+    [UNDEFINED] NEGATE
+    [IF]
+    CODE NEGATE
+    XOR #-1,TOS
+    ADD #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ABS
 \ C ABS     n1 -- +n2     absolute value
-CODE ABS
-CMP #0,TOS       \  1
-0>= IF
-    MOV @IP+,PC
-THEN
-MOV #NEGATE,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] ABS
+    [IF]
+    CODE ABS
+    CMP #0,TOS       \  1
+    0>= IF
+        MOV @IP+,PC
+    THEN
+    MOV #NEGATE,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] LSHIFT [IF]
 \ https://forth-standard.org/standard/core/LSHIFT
 \ LSHIFT  x1 u -- x2    logical L shift u places
-CODE LSHIFT
-            MOV @PSP+,W
-            AND #$1F,TOS        \ no need to shift more than 16
-0<> IF
-    BEGIN   ADD W,W
+    [UNDEFINED] LSHIFT
+    [IF]
+    CODE LSHIFT
+    MOV @PSP+,W
+    AND #$1F,TOS        \ no need to shift more than 16
+    0<> IF
+        BEGIN
+            ADD W,W
             SUB #1,TOS
-    0= UNTIL
-THEN        MOV W,TOS
-            MOV @IP+,PC
-ENDCODE
-[THEN]
+        0= UNTIL
+    THEN
+    MOV W,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] RSHIFT [IF]
 \ https://forth-standard.org/standard/core/RSHIFT
 \ RSHIFT  x1 u -- x2    logical R7 shift u places
-CODE RSHIFT
-            MOV @PSP+,W
-            AND #$1F,TOS       \ no need to shift more than 16
-0<> IF
-    BEGIN   BIC #C,SR           \ Clr Carry
+    [UNDEFINED] RSHIFT
+    [IF]
+    CODE RSHIFT
+    MOV @PSP+,W
+    AND #$1F,TOS       \ no need to shift more than 16
+    0<> IF
+        BEGIN
+            BIC #C,SR           \ Clr Carry
             RRC W
             SUB #1,TOS
-    0= UNTIL
-THEN        MOV W,TOS
-            MOV @IP+,PC
-ENDCODE
-[THEN]
+        0= UNTIL
+    THEN
+    MOV W,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] MAX [IF]
 \ https://forth-standard.org/standard/core/MAX
 \ MAX    n1 n2 -- n3       signed maximum
-CODE MAX
+    [UNDEFINED] MAX
+    [IF]
+
+    CODE MAX
     CMP @PSP,TOS    \ n2-n1
     S<  ?GOTO FW1   \ n2<n1
 BW1 ADD #2,PSP
     MOV @IP+,PC
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/MIN
 \ MIN    n1 n2 -- n3       signed minimum
-CODE MIN
+    CODE MIN
     CMP @PSP,TOS    \ n2-n1
     S< ?GOTO BW1    \ n2<n1
 FW1 MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[THEN]
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 2* [IF]
 \ https://forth-standard.org/standard/core/TwoTimes
 \ 2*      x1 -- x2         arithmetic left shift
-CODE 2*
-ADD TOS,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 2*
+    [IF]
+    CODE 2*
+    ADD TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 2/ [IF]
 \ https://forth-standard.org/standard/core/TwoDiv
 \ 2/      x1 -- x2        arithmetic right shift
-CODE 2/
-RRA TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 2/
+    [IF]
+    CODE 2/
+    RRA TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
 \ --------------------
 \ ARITHMETIC OPERATORS
 \ --------------------
-[UNDEFINED] UM* [IF]    ; case of hardware_MPY
+    RST_SET
 
-\ https://forth-standard.org/standard/core/UMTimes
-\ UM*     u1 u2 -- udlo udhi   unsigned 16x16->32 mult.
-CODE UM*
+    CODE TSTBIT         \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+
+\    $81EF DEVICEID @ U<
+\    DEVICEID @ $81F3 U<
+\    = [IF]   ; MSP430FR413x subfamily without hardware_MPY
+    KERNEL_ADDON HMPY TSTBIT    \   KERNEL_ADDON(BIT0) = hardware MPY flag
+    RST_RET
+
+    [IF]
+\ https://forth-standard.org/standard/core/MTimes
+\ M*     n1 n2 -- dlo dhi  signed 16*16->32 multiply
+    CODE UM*
     MOV @PSP,&MPY       \ Load 1st operand for unsigned multiplication
 BW1 MOV TOS,&OP2        \ Load 2nd operand
     MOV &RES0,0(PSP)    \ low result on stack
     MOV &RES1,TOS       \ high result in TOS
     MOV @IP+,PC
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/MTimes
 \ M*     n1 n2 -- dlo dhi  signed 16*16->32 multiply
-CODE M*
+    CODE M*
     MOV @PSP,&MPYS      \ Load 1st operand for signed multiplication
     GOTO BW1
-ENDCODE
-
-[ELSE]  ; MSP430FRxxxx without hardware_MPY
+    ENDCODE
 
-[UNDEFINED] M* [IF]
-
-\ https://forth-standard.org/standard/core/MTimes
-\ M*     n1 n2 -- dlo dhi  signed 16*16->32 multiply
-CODE M*
-MOV @PSP,S          \ S= n1
-CMP #0,S            \ n1 > -1 ?
-S< IF
-    XOR #-1,0(PSP)  \ n1 --> u1
-    ADD #1,0(PSP)   \
-THEN
-XOR TOS,S           \ S contains sign of result
-CMP #0,TOS          \ n2 > -1 ?
-S< IF
-    XOR #-1,TOS     \ n2 --> u2 
-    ADD #1,TOS      \
-THEN
-PUSHM #2,IP         \ UMSTAR use S,T,W,X,Y
-LO2HI               \ -- ud1 u2
-UM*       
-HI2LO
-POPM #2,IP           \ pop S,IP
-CMP #0,S            \ sign of result > -1 ?
-S< IF
-    XOR #-1,0(PSP)  \ ud --> d
-    XOR #-1,TOS
-    ADD #1,0(PSP)
-    ADDC #0,TOS
-THEN
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [ELSE]  ; MSP430FRxxxx with hardware_MPY
+\ https://forth-standard.org/standard/core/UMTimes
+\ UM*     u1 u2 -- udlo udhi   unsigned 16x16->32 mult.
+        [UNDEFINED] M* [IF]
+    CODE M*
+    MOV @PSP,S          \ S= n1
+    CMP #0,S            \ n1 > -1 ?
+    S< IF
+        XOR #-1,0(PSP)  \ n1 --> u1
+        ADD #1,0(PSP)   \
+    THEN
+    XOR TOS,S           \ S contains sign of result
+    CMP #0,TOS          \ n2 > -1 ?
+    S< IF
+        XOR #-1,TOS     \ n2 --> u2
+        ADD #1,TOS      \
+    THEN
+    PUSHM #2,IP         \ UMSTAR use S,T,W,X,Y
+    LO2HI               \ -- ud1 u2
+    UM*
+    HI2LO
+    POPM #2,IP           \ pop S,IP
+    CMP #0,S            \ sign of result > -1 ?
+    S< IF
+        XOR #-1,0(PSP)  \ ud --> d
+        XOR #-1,TOS
+        ADD #1,0(PSP)
+        ADDC #0,TOS
+    THEN
+    MOV @IP+,PC
+    ENDCODE
+        [THEN]
+    [THEN]  ;  endof hardware_MPY
 
-[THEN]  \  endof hardware MPY
+\ HERE
 
-[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
+    [UNDEFINED] UM/MOD
+    [IF]
+    CODE UM/MOD
     PUSH #DROP      \
     MOV #MUSMOD,PC  \ execute MUSMOD then return to DROP
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
+
+\ HERE OVER - DUMP
 
-[UNDEFINED] SM/REM [IF]
-\ https://forth-standard.org/standard/core/SMDivREM
-\ SM/REM   DVDlo DVDhi DIV -- r3 q4  symmetric signed div
-CODE SM/REM
-MOV TOS,S           \           S=DIV
-MOV @PSP,T          \           T=DVDhi
-CMP #0,TOS          \           n2 >= 0 ?
-S< IF               \
-    XOR #-1,TOS
-    ADD #1,TOS      \ -- d1 u2
-THEN
-CMP #0,0(PSP)       \           d1hi >= 0 ?
-S< IF               \
-    XOR #-1,2(PSP)  \           d1lo
-    XOR #-1,0(PSP)  \           d1hi
-    ADD #1,2(PSP)   \           d1lo+1
-    ADDC #0,0(PSP)  \           d1hi+C
-THEN                \ -- uDVDlo uDVDhi uDIVlo
-PUSHM #3,IP         \           save IP,S,T
-LO2HI
-    UM/MOD          \ -- uREMlo uQUOTlo
-HI2LO
-POPM #3,IP          \           restore T,S,IP
-CMP #0,T            \           T=DVDhi --> REM_sign 
-S< IF
-    XOR #-1,0(PSP)
-    ADD #1,0(PSP)
-THEN
-XOR S,T             \           S=DIV XOR T=DVDhi = Quot_sign
-CMP #0,T            \ -- n3 u4  T=quot_sign
-S< IF
-    XOR #-1,TOS
-    ADD #1,TOS
-THEN                \ -- n3 n4  S=divisor
-MOV @IP+,PC
-ENDCODE
-[THEN]
 
-[UNDEFINED] FM/MOD [IF]
+    KERNEL_ADDON @ 0<  ; test the switch: FLOORED / SYMETRIC DIVISION
+    [IF]
 \ https://forth-standard.org/standard/core/FMDivMOD
 \ FM/MOD   d1 n1 -- r q   floored signed div'n
-: FM/MOD
-SM/REM
-HI2LO               \ -- remainder quotient       S=divisor
-CMP #0,0(PSP)       \ remainder <> 0 ?
-0<> IF
-    CMP #1,TOS      \ quotient < 1 ?
-    S< IF
-      ADD S,0(PSP)  \ add divisor to remainder
-      SUB #1,TOS    \ decrement quotient
-    THEN
-THEN
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
+        [UNDEFINED] FM/MOD
+        [IF]
+        CODE FM/MOD
+        MOV TOS,S           \           S=DIV
+        MOV @PSP,T          \           T=DVDhi
+        CMP #0,TOS          \           n2 >= 0 ?
+        S< IF               \
+            XOR #-1,TOS
+            ADD #1,TOS      \ -- d1 u2
+        THEN
+        CMP #0,0(PSP)       \           d1hi >= 0 ?
+        S< IF               \
+            XOR #-1,2(PSP)  \           d1lo
+            XOR #-1,0(PSP)  \           d1hi
+            ADD #1,2(PSP)   \           d1lo+1
+            ADDC #0,0(PSP)  \           d1hi+C
+        THEN                \ -- uDVDlo uDVDhi uDIVlo
+        PUSHM  #2,S         \ 4         PUSHM S,T
+        CALL #MUSMOD
+        MOV @PSP+,TOS
+        POPM  #2,S          \ 4         POPM T,S
+        CMP #0,T            \           T=DVDhi --> REM_sign
+        S< IF
+            XOR #-1,0(PSP)
+            ADD #1,0(PSP)
+        THEN
+        XOR S,T             \           S=DIV XOR T=DVDhi = Quot_sign
+        CMP #0,T            \ -- n3 u4  T=quot_sign
+        S< IF
+            XOR #-1,TOS
+            ADD #1,TOS
+        THEN                \ -- n3 n4  S=divisor
+
+        CMP #0,0(PSP)       \ remainder <> 0 ?
+        0<> IF
+            CMP #1,TOS      \ quotient < 1 ?
+            S< IF
+            ADD S,0(PSP)  \ add divisor to remainder
+            SUB #1,TOS    \ decrement quotient
+            THEN
+        THEN
+        MOV @IP+,PC
+        ENDCODE
+        [THEN]
+    [ELSE]
+\ https://forth-standard.org/standard/core/SMDivREM
+\ SM/REM   DVDlo DVDhi DIV -- r3 q4  symmetric signed div
+        [UNDEFINED] SM/REM
+        [IF]
+        CODE SM/REM
+        MOV TOS,S           \           S=DIV
+        MOV @PSP,T          \           T=DVDhi
+        CMP #0,TOS          \           n2 >= 0 ?
+        S< IF               \
+            XOR #-1,TOS
+            ADD #1,TOS      \ -- d1 u2
+        THEN
+        CMP #0,0(PSP)       \           d1hi >= 0 ?
+        S< IF               \
+            XOR #-1,2(PSP)  \           d1lo
+            XOR #-1,0(PSP)  \           d1hi
+            ADD #1,2(PSP)   \           d1lo+1
+            ADDC #0,0(PSP)  \           d1hi+C
+        THEN                \ -- uDVDlo uDVDhi uDIVlo
+        PUSHM  #2,S         \ 4         PUSHM S,T
+        CALL #MUSMOD
+        MOV @PSP+,TOS
+        POPM  #2,S          \ 4         POPM T,S
+        CMP #0,T            \           T=DVDhi --> REM_sign
+        S< IF
+            XOR #-1,0(PSP)
+            ADD #1,0(PSP)
+        THEN
+        XOR S,T             \           S=DIV XOR T=DVDhi = Quot_sign
+        CMP #0,T            \ -- n3 u4  T=quot_sign
+        S< IF
+            XOR #-1,TOS
+            ADD #1,TOS
+        THEN                \ -- n3 n4  S=divisor
+        MOV @IP+,PC
+        ENDCODE
+        [THEN]
+    [THEN]
 
-[UNDEFINED] * [IF]
 \ https://forth-standard.org/standard/core/Times
 \ *      n1 n2 -- n3       signed multiply
-: *
-M* DROP
-;
-[THEN]
+    [UNDEFINED] *
+    [IF]
+    : *
+    M* DROP
+    ;
+    [THEN]
 
-[UNDEFINED] /MOD [IF]
 \ https://forth-standard.org/standard/core/DivMOD
 \ /MOD   n1 n2 -- r3 q4     signed division
-: /MOD
->R DUP 0< R> FM/MOD
-;
-[THEN]
+    [UNDEFINED] /MOD
+    [IF]
+    : /MOD
+    >R DUP 0< R>
+        [ KERNEL_ADDON @ 0< ]   \ test the switch: FLOORED / SYMETRIC DIVISION
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    ;
+    [THEN]
 
-[UNDEFINED] / [IF]
 \ https://forth-standard.org/standard/core/Div
 \ /      n1 n2 -- n3       signed quotient
-: /
->R DUP 0< R> FM/MOD NIP
-;
-[THEN]
+    [UNDEFINED] /
+    [IF]
+    : /
+    >R DUP 0< R>
+        [ KERNEL_ADDON @ 0< ]   \ test the switch: FLOORED / SYMETRIC DIVISION
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    NIP
+    ;
+    [THEN]
 
-[UNDEFINED] MOD [IF]
 \ https://forth-standard.org/standard/core/MOD
 \ MOD    n1 n2 -- n3       signed remainder
-: MOD
->R DUP 0< R> FM/MOD DROP
-;
-[THEN]
+    [UNDEFINED] MOD
+    [IF]
+    : MOD
+    >R DUP 0< R>
+        [ KERNEL_ADDON @ 0< ]   \ test the switch: FLOORED / SYMETRIC DIVISION
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    DROP
+    ;
+    [THEN]
 
-[UNDEFINED] */MOD [IF]
 \ https://forth-standard.org/standard/core/TimesDivMOD
 \ */MOD  n1 n2 n3 -- r4 q5    signed mult/div
-: */MOD
->R M* R> FM/MOD
-;
-[THEN]
+    [UNDEFINED] */MOD
+    [IF]
+    : */MOD
+    >R M* R>
+        [ KERNEL_ADDON @ 0< ]   \ test the switch: FLOORED / SYMETRIC DIVISION
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    ;
+    [THEN]
 
-[UNDEFINED] */ [IF]
 \ https://forth-standard.org/standard/core/TimesDiv
 \ */     n1 n2 n3 -- n4        n1*n2/q3
-: */
->R M* R> FM/MOD NIP
-;
-[THEN]
+    [UNDEFINED] */
+    [IF]
+    : */
+    >R M* R>
+        [ KERNEL_ADDON @ 0< ]   \ test the switch: FLOORED / SYMETRIC DIVISION
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    NIP
+    ;
+    [THEN]
 
 \ -------------------------------------------------------------------------------
 \  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]
-
-[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] R@ [IF]
+    [UNDEFINED] ROT
+    [IF]
+    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]
+
 \ 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] TUCK [IF]
+    [UNDEFINED] R@
+    [IF]
+    CODE R@
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV @RSP,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TUCK
 \ TUCK  ( x1 x2 -- x2 x1 x2 )
-: TUCK SWAP OVER ;
-[THEN]
+    [UNDEFINED] TUCK
+    [IF]
+    : TUCK SWAP OVER ;
+    [THEN]
 
 \ ----------------------------------------------------------------------
 \ DOUBLE OPERATORS
 \ ----------------------------------------------------------------------
-[UNDEFINED] 2@ [IF]
 \ 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@
-BW1 SUB #2,PSP
+    [UNDEFINED] 2@
+    [IF]
+    CODE 2@
+    SUB #2,PSP
     MOV 2(TOS),0(PSP)
     MOV @TOS,TOS
     MOV @IP+,PC
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 2! [IF]
 \ 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!
-BW2 MOV @PSP+,0(TOS)
+    [UNDEFINED] 2!
+    [IF]
+    CODE 2!
+    MOV @PSP+,0(TOS)
     MOV @PSP+,2(TOS)
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 2DUP [IF]
 \ https://forth-standard.org/standard/core/TwoDUP
 \ 2DUP   x1 x2 -- x1 x2 x1 x2   dup top 2 cells
-CODE 2DUP
-MOV TOS,-2(PSP)     \ 3
-MOV @PSP,-4(PSP)    \ 4
-SUB #4,PSP          \ 1
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DROP [IF]
+    [UNDEFINED] 2DUP
+    [IF]
+    CODE 2DUP
+    MOV TOS,-2(PSP)     \ 3
+    MOV @PSP,-4(PSP)    \ 4
+    SUB #4,PSP          \ 1
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoDROP
 \ 2DROP  x1 x2 --          drop 2 cells
-CODE 2DROP
-ADD #2,PSP
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2SWAP [IF]
+    [UNDEFINED] 2DROP
+    [IF]
+    CODE 2DROP
+    ADD #2,PSP
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoSWAP
 \ 2SWAP  x1 x2 x3 x4 -- x3 x4 x1 x2
-CODE 2SWAP
-MOV @PSP,W          \ -- x1 x2 x3 x4    W=x3
-MOV 4(PSP),0(PSP)   \ -- x1 x2 x1 x4
-MOV W,4(PSP)        \ -- x3 x2 x1 x4
-MOV TOS,W           \ -- x3 x2 x1 x4    W=x4
-MOV 2(PSP),TOS      \ -- x3 x2 x1 x2    W=x4
-MOV W,2(PSP)        \ -- x3 x4 x1 x2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2OVER [IF]
+    [UNDEFINED] 2SWAP
+    [IF]
+    CODE 2SWAP
+    MOV @PSP,W          \ -- x1 x2 x3 x4    W=x3
+    MOV 4(PSP),0(PSP)   \ -- x1 x2 x1 x4
+    MOV W,4(PSP)        \ -- x3 x2 x1 x4
+    MOV TOS,W           \ -- x3 x2 x1 x4    W=x4
+    MOV 2(PSP),TOS      \ -- x3 x2 x1 x2    W=x4
+    MOV W,2(PSP)        \ -- x3 x4 x1 x2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoOVER
 \ 2OVER  x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2
-CODE 2OVER
-SUB #4,PSP          \ -- x1 x2 x3 x x x4
-MOV TOS,2(PSP)      \ -- x1 x2 x3 x4 x x4
-MOV 8(PSP),0(PSP)   \ -- x1 x2 x3 x4 x1 x4
-MOV 6(PSP),TOS      \ -- x1 x2 x3 x4 x1 x2
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 2OVER
+    [IF]
+    CODE 2OVER
+    SUB #4,PSP          \ -- x1 x2 x3 x x x4
+    MOV TOS,2(PSP)      \ -- x1 x2 x3 x4 x x4
+    MOV 8(PSP),0(PSP)   \ -- x1 x2 x3 x4 x1 x4
+    MOV 6(PSP),TOS      \ -- x1 x2 x3 x4 x1 x2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
 \ ----------------------------------------------------------------------
 \ ALIGNMENT OPERATORS
 \ ----------------------------------------------------------------------
-
-[UNDEFINED] ALIGNED [IF]
 \ https://forth-standard.org/standard/core/ALIGNED
 \ ALIGNED  addr -- a-addr       align given addr
-CODE ALIGNED
-BIT #1,TOS
-ADDC #0,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] ALIGN [IF]
+    [UNDEFINED] ALIGNED
+    [IF]
+    CODE ALIGNED
+    BIT #1,TOS
+    ADDC #0,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ALIGN
 \ ALIGN    --                         align HERE
-CODE ALIGN
-BIT #1,&DP  \ 3
-ADDC #0,&DP \ 4
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] ALIGN
+    [IF]
+    CODE ALIGN
+    BIT #1,&DP  \ 3
+    ADDC #0,&DP \ 4
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
 \ ---------------------
 \ PORTABILITY OPERATORS
 \ ---------------------
-
-[UNDEFINED] CHARS [IF]
 \ https://forth-standard.org/standard/core/CHARS
 \ CHARS    n1 -- n2            chars->adrs units
-CODE CHARS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] CHARS
+    [IF]
+    CODE CHARS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] CHAR+ [IF]
 \ https://forth-standard.org/standard/core/CHARPlus
 \ CHAR+    c-addr1 -- c-addr2   add char size
-CODE CHAR+
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] CHAR+
+    [IF]
+    CODE CHAR+
+    ADD #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] CELLS [IF]
 \ https://forth-standard.org/standard/core/CELLS
 \ CELLS    n1 -- n2            cells->adrs units
-CODE CELLS
-ADD TOS,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] CELLS
+    [IF]
+    CODE CELLS
+    ADD TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] CELL+ [IF]
 \ https://forth-standard.org/standard/core/CELLPlus
 \ CELL+    a-addr1 -- a-addr2      add cell size
-CODE CELL+
-ADD #2,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] CELL+
+    [IF]
+    CODE CELL+
+    ADD #2,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
 \ ---------------------------
 \ BLOCK AND STRING COMPLEMENT
 \ ---------------------------
-
-[UNDEFINED] CHAR [IF]
 \ https://forth-standard.org/standard/core/CHAR
 \ CHAR   -- char           parse ASCII character
-: CHAR
+    [UNDEFINED] CHAR
+    [IF]
+    : CHAR
     $20 WORD 1+ C@
-;
-[THEN]
+    ;
+    [THEN]
 
-[UNDEFINED] [CHAR] [IF]
 \ https://forth-standard.org/standard/core/BracketCHAR
 \ [CHAR]   --          compile character literal
-: [CHAR]
+    [UNDEFINED] [CHAR]
+    [IF]
+    : [CHAR]
     CHAR POSTPONE LITERAL
-; IMMEDIATE
-[THEN]
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] +! [IF]
 \ https://forth-standard.org/standard/core/PlusStore
 \ +!     n/u a-addr --       add n/u to memory
-CODE +!
-ADD @PSP+,0(TOS)
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] MOVE [IF]
+    [UNDEFINED] +!
+    [IF]
+    CODE +!
+    ADD @PSP+,0(TOS)
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/MOVE
 \ MOVE    addr1 addr2 u --     smart move
 \             VERSION FOR 1 ADDRESS UNIT = 1 CHAR
-CODE MOVE
-MOV TOS,W           \ W = cnt
-MOV @PSP+,Y         \ Y = addr2 = dst
-MOV @PSP+,X         \ X = addr1 = src
-MOV @PSP+,TOS       \ pop new TOS
-CMP #0,W            \ count = 0 ?
-0<> IF              \ if 0, already done !
-    CMP X,Y         \ dst = src ?
-    0<> IF          \ else already done !
-        U< IF       \ U< if src > dst
-            BEGIN   \ copy W bytes
-                MOV.B @X+,0(Y)
-                ADD #1,Y
+    [UNDEFINED] MOVE
+    [IF]
+    CODE MOVE
+    MOV TOS,W           \ W = cnt
+    MOV @PSP+,Y         \ Y = addr2 = dst
+    MOV @PSP+,X         \ X = addr1 = src
+    MOV @PSP+,TOS       \ pop new TOS
+    CMP #0,W            \ count = 0 ?
+    0<> IF              \ if 0, already done !
+        CMP X,Y         \ dst = src ?
+        0<> IF          \ if 0, already done !
+            U< IF       \ U< if src > dst
+                BEGIN   \ copy W bytes
+                    MOV.B @X+,0(Y)
+                    ADD #1,Y
+                    SUB #1,W
+                0= UNTIL
+                MOV @IP+,PC \ out 1 of MOVE ====>
+            THEN        \ U>= if dst > src
+            ADD W,Y     \ copy W bytes beginning with the end
+            ADD W,X
+            BEGIN
+                SUB #1,X
+                SUB #1,Y
+                MOV.B @X,0(Y)
                 SUB #1,W
             0= UNTIL
-            MOV @IP+,PC \ out 1 of MOVE ====>
-        THEN        \ U>= if dst > src
-        ADD W,Y     \ copy W bytes beginning with the end
-        ADD W,X
-        BEGIN
-            SUB #1,X
-            SUB #1,Y
-            MOV.B @X,0(Y)
-            SUB #1,W
-        0= UNTIL
+        THEN
     THEN
-THEN
-MOV @IP+,PC \ out 2 of MOVE ====>
-ENDCODE
-[THEN]
+    MOV @IP+,PC \ out 2 of MOVE ====>
+    ENDCODE
+    [THEN]
 
-
-[UNDEFINED] FILL [IF]
 \ https://forth-standard.org/standard/core/FILL
 \ FILL   c-addr u char --  fill memory with char
-CODE FILL
-MOV @PSP+,X     \ count
-MOV @PSP+,W     \ address
-CMP #0,X
-0<> IF
-    BEGIN
-        MOV.B TOS,0(W)    \ store char in memory
-        ADD #1,W
-        SUB #1,X
-    0= UNTIL
-THEN
-MOV @PSP+,TOS     \ empties stack
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #HEREXEC,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] FILL
+    [IF]
+    CODE FILL
+    MOV @PSP+,X     \ count
+    MOV @PSP+,W     \ address
+    CMP #0,X
+    0<> IF
+        BEGIN
+            MOV.B TOS,0(W)    \ store char in memory
+            ADD #1,W
+            SUB #1,X
+        0= UNTIL
+    THEN
+    MOV @PSP+,TOS     \ empties stack
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
 \ --------------------
 \ INTERPRET COMPLEMENT
 \ --------------------
-
-[UNDEFINED] HEX [IF]
 \ https://forth-standard.org/standard/core/HEX
-CODE HEX
-MOV #$10,&BASEADR
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] DECIMAL [IF]
-\ https://forth-standard.org/standard/core/DECIMAL
-CODE DECIMAL
-MOV #$0A,&BASEADR
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] ( [IF]
+    [UNDEFINED] HEX
+    [IF]
+    CODE HEX
+    MOV #$10,&BASEADR
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    \ https://forth-standard.org/standard/core/DECIMAL
+    [UNDEFINED] DECIMAL
+    [IF]
+    CODE DECIMAL
+    MOV #$0A,&BASEADR
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/p
 \ (         --          skip input until char ) or EOL
-: ( 
-')' WORD DROP
-; IMMEDIATE
-[THEN]
+    [UNDEFINED] (   ; )
+    [IF]
+    : (
+    ')' WORD DROP
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] .( [IF] \ "
 \ https://forth-standard.org/standard/core/Dotp
 \ .(        --          type comment immediatly.
-CODE .(         \ "
-MOV #0,&CAPS    \ CAPS OFF
-COLON
-')' WORD
-COUNT TYPE
-$20 CAPS !       \ CAPS ON
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
+    [UNDEFINED] .(  ; "
+    [IF]
+    CODE .(         ; "
+    MOV #0,&CAPS    \ CAPS OFF
+    COLON
+    ')' WORD
+    COUNT TYPE
+    HI2LO
+    MOV #$20,&CAPS   \ CAPS ON
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/toBODY
 \ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] EXECUTE [IF] \ "
 \ https://forth-standard.org/standard/core/EXECUTE
 \ EXECUTE   i*x xt -- j*x   execute Forth word at 'xt'
-CODE EXECUTE
-PUSH TOS                \ 3 push xt
-MOV @PSP+,TOS           \ 2 
-MOV @RSP+,PC            \ 4 xt --> PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] EVALUATE [IF]
+    [UNDEFINED] EXECUTE
+    [IF]
+    CODE EXECUTE
+    PUSH TOS                \ 3 push xt
+    MOV @PSP+,TOS           \ 2
+    MOV @RSP+,PC            \ 4 xt --> PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/EVALUATE
 \ EVALUATE          \ i*x c-addr u -- j*x  interpret string
-CODE EVALUATE
-MOV #SOURCE_LEN,X       \ 2
-MOV @X+,S               \ 2 S = SOURCE_LEN
-MOV @X+,T               \ 2 T = SOURCE_ORG
-MOV @X+,W               \ 2 W = TOIN
-PUSHM #4,IP             \ 6 PUSHM IP,S,T,W
-LO2HI
-INTERPRET
-HI2LO
-MOV @RSP+,&TOIN         \ 4
-MOV @RSP+,&SOURCE_ORG   \ 4
-MOV @RSP+,&SOURCE_LEN   \ 4
-MOV @RSP+,IP 
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] RECURSE [IF]
+    [UNDEFINED] EVALUATE
+    [IF]
+    CODE EVALUATE
+    MOV #SOURCE_LEN,X       \ 2
+    MOV @X+,S               \ 2 S = SOURCE_LEN
+    MOV @X+,T               \ 2 T = SOURCE_ORG
+    MOV @X+,W               \ 2 W = TOIN
+    PUSHM #4,IP             \ 6 PUSHM IP,S,T,W
+    LO2HI
+    [ ' \ 8 + , ]           \ compile INTERPRET
+    HI2LO
+    MOV @RSP+,&TOIN         \ 4
+    MOV @RSP+,&SOURCE_ORG   \ 4
+    MOV @RSP+,&SOURCE_LEN   \ 4
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/RECURSE
 \ C RECURSE  --      recurse to current definition
-CODE RECURSE
-MOV &DP,X
-MOV &LAST_CFA,0(X)
-ADD #2,&DP
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] SOURCE [IF]
+    [UNDEFINED] RECURSE
+    [IF]
+    CODE RECURSE
+    MOV &DP,X
+    MOV &LAST_CFA,0(X)
+    ADD #2,&DP
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/SOURCE
 \ SOURCE    -- adr u    of current input buffer
-CODE SOURCE
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV &SOURCE_LEN,TOS
-MOV &SOURCE_ORG,0(PSP)
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] DOES> [IF]
-\ https://forth-standard.org/standard/core/DOES
-\ DOES>    --          set action for the latest CREATEd definition
-CODE DOES> 
-MOV &LAST_CFA,W         \ W = CFA of CREATEd word
-MOV #$1285,0(W)         \ replace CFA (CALL rDOCON) by new CFA (CALL rDODOES)
-MOV IP,2(W)             \ replace PFA by the address after DOES> as execution address
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] VARIABLE [IF]
+    [UNDEFINED] SOURCE
+    [IF]
+    CODE SOURCE
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV &SOURCE_LEN,TOS
+    MOV &SOURCE_ORG,0(PSP)
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/VARIABLE
 \ VARIABLE <name>       --                      define a Forth VARIABLE
-: VARIABLE 
-CREATE
-HI2LO
-MOV #$1287,-4(W)        \   CFA = CALL rDOVAR
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
+    [UNDEFINED] VARIABLE
+    [IF]
+    : VARIABLE
+    CREATE
+    HI2LO
+    MOV #DOVAR,-4(W)        \   CFA = CALL rDOVAR
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
+\ CONSTANT <name>     n --                      define a Forth CONSTANT
+    [UNDEFINED] CONSTANT
+    [IF]
+    : CONSTANT
+    CREATE
+    HI2LO
+    MOV TOS,-2(W)           \   PFA = n
+    MOV @PSP+,TOS
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/STATE
 \ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
+    [UNDEFINED] STATE
+    [IF]
+    STATEADR CONSTANT STATE
+    [THEN]
 
-[UNDEFINED] BASE [IF]
 \ https://forth-standard.org/standard/core/BASE
 \ BASE    -- a-addr       holds conversion radix
-BASEADR CONSTANT BASE
-[THEN]
+    [UNDEFINED] BASE
+    [IF]
+    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] >IN
+    [IF]
+    TOIN CONSTANT >IN
+    [THEN]
 
-[UNDEFINED] PAD [IF]
 \ https://forth-standard.org/standard/core/PAD
 \  PAD           --  addr
-PAD_ORG CONSTANT PAD
-[THEN]
+    [UNDEFINED] PAD
+    [IF]
+    PAD_ORG CONSTANT PAD
+    [THEN]
 
-[UNDEFINED] BL [IF]
 \ https://forth-standard.org/standard/core/BL
 \ BL      -- char            an ASCII space
-'SP' CONSTANT BL
-[THEN]
+    [UNDEFINED] BL
+    [IF]
+    'SP' CONSTANT BL
+    [THEN]
 
-[UNDEFINED] SPACE [IF]
 \ https://forth-standard.org/standard/core/SPACE
 \ SPACE   --               output a space
-: SPACE
-'SP' EMIT ;
-[THEN]
+    [UNDEFINED] SPACE
+    [IF]
+    : SPACE
+    'SP' 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
+    [UNDEFINED] SPACES
+    [IF]
+    : SPACES
     BEGIN
-        LO2HI
+        ?DUP
+    WHILE
         'SP' EMIT
-        HI2LO
-        SUB #2,IP 
-        SUB #1,TOS
-    0= UNTIL
+        1-
+    REPEAT
+    ;
+    [THEN]
+
+    [UNDEFINED] DEFER
+    [IF]
+\ https://forth-standard.org/standard/core/DEFER
+\ 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.
+    : DEFER
+    CREATE
+    HI2LO
+    MOV #$4030,-4(W)        \4 first CELL = MOV @PC+,PC = BR #addr
+    MOV #NEXT_ADR,-2(W)     \3 second CELL              =   ...mNEXT : do nothing by default
     MOV @RSP+,IP
-THEN
-MOV @PSP+,TOS           \ --         drop n
-NEXT              
-ENDCODE
-[THEN]
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\    DEFER CR       \ DEFERed definition, by default executes :NONAME part
+    CODE CR         \ replaced by this CODE definition
+    MOV #NEXT_ADR,PC
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
 
-[UNDEFINED] TO [IF]
 \ https://forth-standard.org/standard/core/TO
 \ TO name Run-time: ( x -- )
 \ Assign the value x to named VALUE.
-CODE TO
-BIS #UF9,SR
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] TO
+    [IF]
+    CODE TO
+    BIS #UF9,SR
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] VALUE [IF]
 \ https://forth-standard.org/standard/core/VALUE
 \ ( x "<spaces>name" -- )                      define a Forth VALUE
 \ Skip leading space delimiters. Parse name delimited by a space.
 \ Create a definition for name with the execution semantics defined below,
 \ with an initial value equal to x.
-\ 
+\
 \ name Execution: ( -- x )
 \ Place x on the stack. The value of x is that given when name was created,
 \ until the phrase x TO name is executed, causing a new value of x to be assigned to name.
-\ 
-: VALUE                 \ x "<spaces>name" -- 
-CREATE ,
-DOES> 
-HI2LO
-MOV @RSP+,IP
-BIT #UF9,SR         \ 2 see TO
-0= IF               \ 2 execute FETCH
-    MOV @TOS,TOS    \ 2
-    MOV @IP+,PC     \ 4
-THEN 
-BIC #UF9,SR         \ 2 clear 'TO' flag
-MOV @PSP+,0(TOS)    \ 4 execute STORE
-MOV @PSP+,TOS       \ 2
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-RST_HERE
-
-[THEN]              \ end of [UNDEFINED] {CORE_ANS}
-
-ECHO
+    [UNDEFINED] VALUE
+    [IF]
+    : VALUE                 \ x "<spaces>name" --
+    CREATE ,
+    DOES>
+    HI2LO
+    MOV @RSP+,IP
+    BIT #UF9,SR         \ 2 see TO
+    0= IF               \ 2 if UF9 is not set
+        MOV @TOS,TOS    \ 2     execute FETCH
+        MOV @IP+,PC     \ 4
+    THEN                \   else
+    BIC #UF9,SR         \ 2     clear UF9 flag
+    MOV #!,PC           \ 4     execute STORE
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CASE
+    [UNDEFINED] CASE
+    [IF]
+
+    : CASE 0
+    ; IMMEDIATE \ -- #of-1
+
+\ https://forth-standard.org/standard/core/OF
+    : OF \ #of-1 -- orgOF #of
+    1+                     \ count OFs
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE OVER POSTPONE = \ copy and test case value
+    POSTPONE IF                    \ add orig to control flow stack
+    POSTPONE DROP              \ discards case value if =
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
+
+\ https://forth-standard.org/standard/core/ENDOF
+    : ENDOF \ orgOF #of -- orgENDOF #of
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE ELSE
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
+
+\ https://forth-standard.org/standard/core/ENDCASE
+    : ENDCASE \ orgENDOF1..orgENDOFn #of --
+    POSTPONE DROP
+    0 DO POSTPONE THEN
+    LOOP
+    ; IMMEDIATE
+    [THEN]
+
+    RST_SET
+
+    ECHO
 ; CORE_ANS.f is loaded
+
index 636c0bf..9e9e532 100644 (file)
Binary files a/MSP430-FORTH/CopySourceFileToTarget_SD_Card.bat.lnk and b/MSP430-FORTH/CopySourceFileToTarget_SD_Card.bat.lnk differ
index d565105..a7bf3d9 100644 (file)
 \ ASSEMBLER conditionnal usage with ?GOTO      S<  S>=  U<   U>=  0=  0<>  0<
 \
 
-CODE ABORT_DOUBLE
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV &KERNEL_ADDON,TOS
-BIT #BIT9,TOS
-0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (DOUBLE input), set TOS = 0  
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS            \ FastForth V3.8
-COLON
-$0D EMIT    \ return to column 1 without CR
-ABORT" FastForth V3.8 please!"
-ABORT" build FastForth with DOUBLE_INPUT addon !"
-PWR_STATE           \ if no abort remove this word
-;
+    CODE ABORT_DOUBLE
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV &KERNEL_ADDON,TOS
+    BIT #BIT7,TOS
+    0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (DOUBLE input), set TOS = 0
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    $0D EMIT    \ return to column 1 without CR
+    ABORT" FastForth V3.9 please!"
+    ABORT" build FastForth with DOUBLE_INPUT addon !"
+    RST_RET           \ if no abort remove this word
+    ;
 
-ABORT_DOUBLE
+    ABORT_DOUBLE
 
 ; -----------------------------------------------------
 ; DOUBLE.f
 ; -----------------------------------------------------
 
-[DEFINED] {DOUBLE} [IF]  {DOUBLE} [THEN]
-
-MARKER {DOUBLE}
+    MARKER {DOUBLE}
 
-[UNDEFINED] >R [IF]
 \ https://forth-standard.org/standard/core/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] @ [IF]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Zeroless
+\ 0<     n -- flag      true if TOS negative
+    [UNDEFINED] 0<
+    [IF]
+    CODE 0<
+    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
+    MOV @IP+,PC     \
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/DROP
+\ DROP     x --          drop top of stack
+    [UNDEFINED] DROP
+    [IF]
+    CODE DROP
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/DUP
+\ DUP      x -- x x      duplicate top of stack
+    [UNDEFINED] DUP
+    [IF]
+    CODE DUP
+BW1 SUB #2,PSP      \ 2  push old TOS..
+    MOV TOS,0(PSP)  \ 3  ..onto stack
+    MOV @IP+,PC     \ 4
+    ENDCODE
+
+\ https://forth-standard.org/standard/core/qDUP
+\ ?DUP     x -- 0 | x x    DUP if nonzero
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1    \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/NIP
+\ NIP      x1 x2 -- x2         Drop the first item below the top of stack
+    [UNDEFINED] NIP
+    [IF]
+    CODE NIP
+    ADD #2,PSP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/UMDivMOD
+\ UM/MOD   udlo|udhi u1 -- r q   unsigned 32/16->r16 q16
+    [UNDEFINED] UM/MOD
+    [IF]
+    CODE UM/MOD
+        PUSH #DROP      \
+        MOV #MUSMOD,PC  \ execute MUSMOD then return to DROP
+    ENDCODE
+    [THEN]
+
+    KERNEL_ADDON @ 0<   ; test the switch: FLOORED / SYMETRIC DIVISION
+    [IF]                ; FLOORED DIVISION
+\ https://forth-standard.org/standard/core/FMDivMOD
+\ FM/MOD   d1 n1 -- r q   floored signed div'n
+    [UNDEFINED] FM/MOD
+    [IF]
+    CODE FM/MOD
+    MOV TOS,S           \           S=DIV
+    MOV @PSP,T          \           T=DVDhi
+    CMP #0,TOS          \           n2 >= 0 ?
+    S< IF               \
+        XOR #-1,TOS
+        ADD #1,TOS      \ -- d1 u2
+    THEN
+    CMP #0,0(PSP)       \           d1hi >= 0 ?
+    S< IF               \
+        XOR #-1,2(PSP)  \           d1lo
+        XOR #-1,0(PSP)  \           d1hi
+        ADD #1,2(PSP)   \           d1lo+1
+        ADDC #0,0(PSP)  \           d1hi+C
+    THEN                \ -- uDVDlo uDVDhi uDIVlo
+    PUSHM #3,IP         \           save IP,S,T
+    LO2HI
+        UM/MOD          \ -- uREMlo uQUOTlo
+    HI2LO
+    POPM #3,IP          \           restore T,S,IP
+    CMP #0,T            \           T=DVDhi --> REM_sign
+    S< IF
+        XOR #-1,0(PSP)
+        ADD #1,0(PSP)
+    THEN
+    XOR S,T             \           S=DIV XOR T=DVDhi = Quot_sign
+    CMP #0,T            \ -- n3 u4  T=quot_sign
+    S< IF
+        XOR #-1,TOS
+        ADD #1,TOS
+    THEN                \ -- n3 n4  S=divisor
+
+    CMP #0,0(PSP)       \ remainder <> 0 ?
+    0<> IF
+        CMP #1,TOS      \ quotient < 1 ?
+        S< IF
+        ADD S,0(PSP)  \ add divisor to remainder
+        SUB #1,TOS    \ decrement quotient
+        THEN
+    THEN
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    [ELSE]              ; SYMETRIC DIVISION
+\ https://forth-standard.org/standard/core/SMDivREM
+\ SM/REM   DVDlo DVDhi DIV -- r3 q4  symmetric signed div
+    [UNDEFINED] SM/REM
+    [IF]
+    CODE SM/REM
+    MOV TOS,S           \           S=DIV
+    MOV @PSP,T          \           T=DVDhi
+    CMP #0,TOS          \           n2 >= 0 ?
+    S< IF               \
+        XOR #-1,TOS
+        ADD #1,TOS      \ -- d1 u2
+    THEN
+    CMP #0,0(PSP)       \           d1hi >= 0 ?
+    S< IF               \
+        XOR #-1,2(PSP)  \           d1lo
+        XOR #-1,0(PSP)  \           d1hi
+        ADD #1,2(PSP)   \           d1lo+1
+        ADDC #0,0(PSP)  \           d1hi+C
+    THEN                \ -- uDVDlo uDVDhi uDIVlo
+    PUSHM #3,IP         \           save IP,S,T
+    LO2HI
+        UM/MOD          \ -- uREMlo uQUOTlo
+    HI2LO
+    POPM #3,IP          \           restore T,S,IP
+    CMP #0,T            \           T=DVDhi --> REM_sign
+    S< IF
+        XOR #-1,0(PSP)
+        ADD #1,0(PSP)
+    THEN
+    XOR S,T             \           S=DIV XOR T=DVDhi = Quot_sign
+    CMP #0,T            \ -- n3 u4  T=quot_sign
+    S< IF
+        XOR #-1,TOS
+        ADD #1,TOS
+    THEN                \ -- n3 n4  S=divisor
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Div
+\ /      n1 n2 -- n3       signed quotient
+    [UNDEFINED] /
+    [IF]
+    : /
+    >R DUP 0< R>
+    [ KERNEL_ADDON @ 0< ] [IF]
+        FM/MOD
+    [ELSE]
+        SM/REM
+    [THEN]
+    NIP
+    ;
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Fetch
 \ @     c-addr -- char   fetch char from memory
-CODE @
-MOV @TOS,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] @
+    [IF]
+    CODE @
+    MOV @TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] ! [IF]
 \ https://forth-standard.org/standard/core/Store
 \ !        x a-addr --   store cell in memory
-CODE !
-MOV @PSP+,0(TOS)    \ 4
-MOV @PSP+,TOS       \ 2
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] C@ [IF]
+    [UNDEFINED] !
+    [IF]
+    CODE !
+    MOV @PSP+,0(TOS)    \ 4
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ 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]
+    CODE C@
+    MOV.B @TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] SWAP [IF]
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] OVER [IF]
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ 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] ROT [IF]
+    [UNDEFINED] OVER
+    [IF]
+    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
-[THEN]
-
-[UNDEFINED] - [IF]
+    [UNDEFINED] ROT
+    [IF]
+    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]
+
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] < [IF]      \ define < and >
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ 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
+    [UNDEFINED] <
+    [IF]      \ define < and >
+    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
-[THEN]
+    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] IF [IF]     \ define IF THEN
 \ https://forth-standard.org/standard/core/IF
 \ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] IF
+    [IF]     \ define IF THEN
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP            \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/THEN
 \ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ELSE
 \ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] TO [IF]
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TO
-CODE TO
-BIS #UF9,SR
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] TO
+    [IF]
+    CODE TO
+    BIS #UF9,SR
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] DOES> [IF]
 \ https://forth-standard.org/standard/core/DOES
 \ DOES>    --          set action for the latest CREATEd definition
-CODE DOES> 
-MOV &LAST_CFA,W         \ W = CFA of CREATEd word
-MOV #DODOES,0(W)        \ replace CFA (DOCON) by new CFA (DODOES)
-MOV IP,2(W)             \ replace PFA by the address after DOES> as execution address
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] SPACES [IF]
+    [UNDEFINED] DOES>
+    [IF]
+    CODE DOES>
+    MOV &LAST_CFA,W         \ W = CFA of CREATEd word
+    MOV #DODOES,0(W)         \ replace CFA (CALL rDOCON) by new CFA (CALL rDODOES)
+    MOV IP,2(W)             \ replace PFA by the address after DOES> as execution address
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ 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
-MOV @IP+,PC       
-ENDCODE
-[THEN]
+    [UNDEFINED] SPACES
+    [IF]
+    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
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 2@ [IF]
 \ 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
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2! [IF]
+    [UNDEFINED] 2@
+    [IF]
+    CODE 2@
+    SUB #2,PSP
+    MOV 2(TOS),0(PSP)
+    MOV @TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ 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
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DUP [IF]
+    [UNDEFINED] 2!
+    [IF]
+    CODE 2!
+    MOV @PSP+,0(TOS)
+    MOV @PSP+,2(TOS)
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ 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
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DROP [IF]
+    [UNDEFINED] 2DUP
+    [IF]
+    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
+    NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoDROP
 \ 2DROP  x1 x2 --          drop 2 cells
-CODE 2DROP
-ADD #2,PSP
-MOV @PSP+,TOS
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2SWAP [IF]
+    [UNDEFINED] 2DROP
+    [IF]
+    CODE 2DROP
+    ADD #2,PSP
+    MOV @PSP+,TOS
+    NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoSWAP
 \ 2SWAP  x1 x2 x3 x4 -- x3 x4 x1 x2
-CODE 2SWAP
-MOV @PSP,W          \ -- x1 x2 x3 x4    W=x3
-MOV 4(PSP),0(PSP)   \ -- x1 x2 x1 x4
-MOV W,4(PSP)        \ -- x3 x2 x1 x4
-MOV TOS,W           \ -- x3 x2 x1 x4    W=x4
-MOV 2(PSP),TOS      \ -- x3 x2 x1 x2    W=x4
-MOV W,2(PSP)        \ -- x3 x4 x1 x2
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2OVER [IF]
+    [UNDEFINED] 2SWAP
+    [IF]
+    CODE 2SWAP
+    MOV @PSP,W          \ -- x1 x2 x3 x4    W=x3
+    MOV 4(PSP),0(PSP)   \ -- x1 x2 x1 x4
+    MOV W,4(PSP)        \ -- x3 x2 x1 x4
+    MOV TOS,W           \ -- x3 x2 x1 x4    W=x4
+    MOV 2(PSP),TOS      \ -- x3 x2 x1 x2    W=x4
+    MOV W,2(PSP)        \ -- x3 x4 x1 x2
+    NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoOVER
 \ 2OVER  x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2
-CODE 2OVER
-SUB #4,PSP          \ -- x1 x2 x3 x x x4
-MOV TOS,2(PSP)      \ -- x1 x2 x3 x4 x x4
-MOV 8(PSP),0(PSP)   \ -- x1 x2 x3 x4 x1 x4
-MOV 6(PSP),TOS      \ -- x1 x2 x3 x4 x1 x2
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2>R [IF]
+    [UNDEFINED] 2OVER
+    [IF]
+    CODE 2OVER
+    SUB #4,PSP          \ -- x1 x2 x3 x x x4
+    MOV TOS,2(PSP)      \ -- x1 x2 x3 x4 x x4
+    MOV 8(PSP),0(PSP)   \ -- x1 x2 x3 x4 x1 x4
+    MOV 6(PSP),TOS      \ -- x1 x2 x3 x4 x1 x2
+    NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwotoR
 \ ( x1 x2 -- ) ( R: -- x1 x2 )   Transfer cell pair x1 x2 to the return stack.
-CODE 2>R
-PUSH @PSP+
-PUSH TOS
-MOV @PSP+,TOS
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2R@ [IF]
+    [UNDEFINED] 2>R
+    [IF]
+    CODE 2>R
+    PUSH @PSP+
+    PUSH TOS
+    MOV @PSP+,TOS
+    NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoRFetch
 \ ( -- x1 x2 ) ( R: x1 x2 -- x1 x2 ) Copy cell pair x1 x2 from the return stack.
-CODE 2R@
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV @RSP,TOS
-MOV 2(RSP),0(PSP)
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2R> [IF]
+    [UNDEFINED] 2R@
+    [IF]
+    CODE 2R@
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV @RSP,TOS
+    MOV 2(RSP),0(PSP)
+    NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoRfrom
 \ ( -- x1 x2 ) ( R: x1 x2 -- )  Transfer cell pair x1 x2 from the return stack
-CODE 2R>
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV @RSP+,TOS
-MOV @RSP+,0(PSP)
-NEXT
-ENDCODE
-[THEN]
+    [UNDEFINED] 2R>
+    [IF]
+    CODE 2R>
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV @RSP+,TOS
+    MOV @RSP+,0(PSP)
+    NEXT
+    ENDCODE
+    [THEN]
 
 \ ===============================================
 \ DOUBLE word set
 \ ===============================================
 
-[UNDEFINED] D. [IF]
 \ https://forth-standard.org/standard/double/Dd
 \ D.     dlo dhi --           display d (signed)
-CODE D.
-MOV #U.,W   \ U. + 10 = D.
-ADD #10,W
-MOV W,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2ROT [IF]
+    [UNDEFINED] D.
+    [IF]
+    CODE D.
+    MOV TOS,S       \ S will be pushed as sign
+    MOV #U.+10,PC   \ U. + 10 = D.
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/double/TwoROT
 \ Rotate the top three cell pairs on the stack bringing cell pair x1 x2 to the top of the stack.
-CODE 2ROT
-MOV 8(PSP),X        \ 3
-MOV 6(PSP),Y        \ 3
-MOV 4(PSP),8(PSP)   \ 5
-MOV 2(PSP),6(PSP)   \ 5
-MOV @PSP,4(PSP)     \ 4
-MOV TOS,2(PSP)      \ 3
-MOV X,0(PSP)        \ 3
-MOV Y,TOS           \ 1
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] D>S [IF]
+    [UNDEFINED] 2ROT
+    [IF]
+    CODE 2ROT
+    MOV 8(PSP),X        \ 3
+    MOV 6(PSP),Y        \ 3
+    MOV 4(PSP),8(PSP)   \ 5
+    MOV 2(PSP),6(PSP)   \ 5
+    MOV @PSP,4(PSP)     \ 4
+    MOV TOS,2(PSP)      \ 3
+    MOV X,0(PSP)        \ 3
+    MOV Y,TOS           \ 1
+    NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/double/DtoS
 \ D>S    d -- n          double prec -> single.
-CODE D>S
-MOV @PSP+,TOS
-NEXT
-ENDCODE
-[THEN]
+    [UNDEFINED] D>S
+    [IF]
+    CODE D>S
+    MOV @PSP+,TOS
+    NEXT
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] D0= [IF]
 \ https://forth-standard.org/standard/double/DZeroEqual
-CODE D0=
-CMP #0,TOS
-MOV #0,TOS
-0= IF
-    CMP #0,0(PSP)
+    [UNDEFINED] D0=
+    [IF]
+    CODE D0=
+    CMP #0,TOS
+    MOV #0,TOS
     0= IF
-        MOV #-1,TOS
+        CMP #0,0(PSP)
+        0= IF
+            MOV #-1,TOS
+        THEN
     THEN
-THEN
-ADD #2,PSP
-NEXT
-ENDCODE
-[THEN]
+    ADD #2,PSP
+    NEXT
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] D0< [IF]
 \ https://forth-standard.org/standard/double/DZeroless
-CODE D0<
-CMP #0,TOS
-MOV #0,TOS
-S< IF
-    MOV #-1,TOS
-THEN
-ADD #2,PSP
-NEXT
-ENDCODE
-[THEN]
+    [UNDEFINED] D0<
+    [IF]
+    CODE D0<
+    CMP #0,TOS
+    MOV #0,TOS
+    S< IF
+        MOV #-1,TOS
+    THEN
+    ADD #2,PSP
+    AND #-1,TOS         \  to set N, Z flags
+    NEXT
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] D= [IF]
 \ https://forth-standard.org/standard/double/DEqual
-CODE D=
-CMP TOS,2(PSP)      \ 3 ud1H - ud2H
-MOV #0,TOS          \ 1
-0= IF               \ 2
-    CMP @PSP,4(PSP) \ 4 ud1L - ud2L
-    0= IF           \ 2
-    MOV #-1,TOS     \ 1
+    [UNDEFINED] D=
+    [IF]
+    CODE D=
+    CMP TOS,2(PSP)      \ 3 ud1H - ud2H
+    MOV #0,TOS          \ 1
+    0= IF               \ 2
+        CMP @PSP,4(PSP) \ 4 ud1L - ud2L
+        0= IF           \ 2
+        MOV #-1,TOS     \ 1
+        THEN
     THEN
-THEN
-ADD #6,PSP          \ 2
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
+    ADD #6,PSP          \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] D< [IF]
 \ https://forth-standard.org/standard/double/Dless
 \ flag is true if and only if d1 is less than d2
-CODE D<
-CMP TOS,2(PSP)      \ 3 d1H - d2H
-MOV #0,TOS          \ 1
-S< IF               \ 2
-    MOV #-1,TOS     \ 1
-THEN
-0= IF               \ 2
-    CMP @PSP,4(PSP) \ 4 d1L - d2L
-    U< IF           \ 2
-        MOV #-1,TOS \ 1
+    [UNDEFINED] D<
+    [IF]
+    CODE D<
+    CMP TOS,2(PSP)      \ 3 d1H - d2H
+    MOV #0,TOS          \ 1
+    S< IF               \ 2
+        MOV #-1,TOS     \ 1
+    THEN
+    0= IF               \ 2
+        CMP @PSP,4(PSP) \ 4 d1L - d2L
+        U< IF           \ 2
+            MOV #-1,TOS \ 1
+        THEN
     THEN
-THEN
-ADD #6,PSP          \ 2
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
+    ADD #6,PSP          \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] DU< [IF]
 \ https://forth-standard.org/standard/double/DUless
 \ flag is true if and only if ud1 is less than ud2
-CODE DU<
-CMP TOS,2(PSP)      \ 3 ud1H - ud2H
-MOV #0,TOS          \ 1
-U< IF               \ 2
-    MOV #-1,TOS     \ 1
-THEN
-0= IF               \ 2
-    CMP @PSP,4(PSP) \ 4 ud1L - ud2L
-    U< IF           \ 2
-        MOV #-1,TOS \ 1
+    [UNDEFINED] DU<
+    [IF]
+    CODE DU<
+    CMP TOS,2(PSP)      \ 3 ud1H - ud2H
+    MOV #0,TOS          \ 1
+    U< IF               \ 2
+        MOV #-1,TOS     \ 1
+    THEN
+    0= IF               \ 2
+        CMP @PSP,4(PSP) \ 4 ud1L - ud2L
+        U< IF           \ 2
+            MOV #-1,TOS \ 1
+        THEN
     THEN
-THEN
-ADD #6,PSP          \ 2
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
+    ADD #6,PSP          \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] D+ [IF]
 \ https://forth-standard.org/standard/double/DPlus
-CODE D+
+    [UNDEFINED] D+
+    [IF]
+    CODE D+
 BW1 ADD @PSP+,2(PSP)
     ADDC @PSP+,TOS
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
+    MOV @IP+,PC         \ 4
+    ENDCODE
 
-[UNDEFINED] M+ [IF]
 \ https://forth-standard.org/standard/double/MPlus
-CODE M+
-SUB #2,PSP
-CMP #0,TOS
-MOV TOS,0(PSP)
-MOV #-1,TOS
-0>= IF
-    MOV #0,TOS
-THEN
-GOTO BW1
-ENDCODE
-[THEN]
+    CODE M+
+    SUB #2,PSP
+    CMP #0,TOS
+    MOV TOS,0(PSP)
+    MOV #-1,TOS
+    0>= IF
+        MOV #0,TOS
+    THEN
+    GOTO BW1
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] D- [IF]
 \ https://forth-standard.org/standard/double/DMinus
-CODE D-
-SUB @PSP+,2(PSP)
-SUBC TOS,0(PSP)
-MOV @PSP+,TOS
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DNEGATE [IF]
+    [UNDEFINED] D-
+    [IF]
+    CODE D-
+    SUB @PSP+,2(PSP)
+    SUBC TOS,0(PSP)
+    MOV @PSP+,TOS
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/double/DNEGATE
-CODE DNEGATE
-XOR #-1,0(PSP)
-XOR #-1,TOS
-ADD #1,0(PSP)
-ADDC #0,TOS
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DABS [IF]
+    [UNDEFINED] DNEGATE
+    [IF]
+    CODE DNEGATE
+    XOR #-1,0(PSP)
+    XOR #-1,TOS
+    ADD #1,0(PSP)
+    ADDC #0,TOS
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/double/DABS
 \ DABS     d1 -- |d1|     absolute value
-CODE DABS
-CMP #0,TOS       \  1
-0>= IF
-    MOV @IP+,PC
-THEN
-MOV #DNEGATE,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] DABS
+    [IF]
+    CODE DABS
+    CMP #0,TOS       \  1
+    0>= IF
+        MOV @IP+,PC
+    THEN
+    MOV #DNEGATE,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] D2/ [IF]
 \ https://forth-standard.org/standard/double/DTwoDiv
-CODE D2/
-RRA TOS
-RRC 0(PSP)
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] D2* [IF]
+    [UNDEFINED] D2/
+    [IF]
+    CODE D2/
+    RRA TOS
+    RRC 0(PSP)
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/double/DTwoTimes
-CODE D2*
-ADD @PSP,0(PSP)
-ADDC TOS,TOS
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DMAX [IF]
+    [UNDEFINED] D2*
+    [IF]
+    CODE D2*
+    ADD @PSP,0(PSP)
+    ADDC TOS,TOS
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/double/DMAX
-: DMAX              \ -- d1 d2
-2OVER 2OVER         \ -- d1 d2 d1 d2
-D< IF               \ -- d1 d2
-    2>R 2DROP 2R>   \ -- d2
-ELSE                \ -- d1 d2
-    2DROP           \ -- d1 
-THEN
-;
-[THEN]
+    [UNDEFINED] DMAX
+    [IF]
+    : DMAX              \ -- d1 d2
+    2OVER 2OVER         \ -- d1 d2 d1 d2
+    D< IF               \ -- d1 d2
+        2>R 2DROP 2R>   \ -- d2
+    ELSE                \ -- d1 d2
+        2DROP           \ -- d1
+    THEN
+    ;
+    [THEN]
 
-[UNDEFINED] DMIN [IF]
 \ https://forth-standard.org/standard/double/DMIN
-: DMIN              \ -- d1 d2
-2OVER 2OVER         \ -- d1 d2 d1 d2
-D< IF               \ -- d1 d2
-    2DROP           \ -- d1
-ELSE 2>R 2DROP 2R>  \ -- d1 d2
-THEN                \ -- d2 
-;
-
-DEVICEID C@ $EF > [IF] ; test for MSP430FR413x devices without hardware_MPY 
+    [UNDEFINED] DMIN
+    [IF]
+    : DMIN              \ -- d1 d2
+    2OVER 2OVER         \ -- d1 d2 d1 d2
+    D< IF               \ -- d1 d2
+        2DROP           \ -- d1
+    ELSE
+        2>R 2DROP 2R>   \ -- d1 d2
+    THEN                \ -- d2
+    ;
+    [THEN]
+
+    RST_SET
+\ \ https://forth-standard.org/standard/core/Equal
+\ \ =      x1 x2 -- flag         test x1=x2
+\     [UNDEFINED] =
+\     [IF]
+\     CODE =
+\     SUB @PSP+,TOS   \ 2
+\     0<> IF          \ 2
+\         AND #0,TOS  \ 1
+\         MOV @IP+,PC \ 4
+\     THEN
+\     XOR #-1,TOS     \ 1 flag Z = 1
+\     MOV @IP+,PC     \ 4
+\     ENDCODE
+\     [THEN]
+\
+\ \ https://forth-standard.org/standard/core/Uless
+\ \ U<    u1 u2 -- flag       test u1<u2, unsigned
+\     [UNDEFINED] U<
+\     [IF]
+\     CODE U<
+\     SUB @PSP+,TOS   \ 2 u2-u1
+\     0<> IF
+\         MOV #-1,TOS     \ 1
+\         U< IF           \ 2 flag
+\             AND #0,TOS  \ 1 flag Z = 1
+\         THEN
+\     THEN
+\     MOV @IP+,PC     \ 4
+\     ENDCODE
+\     [THEN]
+\
+\     $81EF DEVICEID @ U<
+\     DEVICEID @ $81F3 U<
+\     =
 
-[UNDEFINED] M*/ [IF]
-\ https://forth-standard.org/standard/double/MTimesDiv
-CODE M*/    \ d1lo d1hi n1 +n2 -- d2lo d2hi
-BIC #UF9,SR                 \ clear RES sign flag
-CMP #0,2(PSP)               \ d1 < 0 ? 
-S< IF
-    XOR #-1,4(PSP)
-    XOR #-1,2(PSP)
-    ADD #1,4(PSP)
-    ADDC #0,2(PSP)
-    BIS #UF9,SR             \ set RES sign flag
-THEN                        \ ud1
-CMP #0,0(PSP)               \ n1 < 0 ?
-S< IF
-    XOR #-1,0(PSP)
-    ADD #1,0(PSP)           \ u1
-    XOR #UF9,SR
-THEN                        \ let's process UM*     -- ud1lo ud1hi u1 +n2
-            MOV 4(PSP),Y            \ 3 uMDlo
-            MOV 2(PSP),T            \ 3 uMDhi
-            MOV @PSP+,S             \ 2 uMRlo        -- ud1lo ud1hi +n2
-            MOV #0,rDODOES          \ 1 uMDlo=0
-            MOV #0,2(PSP)           \ 3 uRESlo=0
-            MOV #0,0(PSP)           \ 3 uRESmi=0     -- uRESlo uRESmi +n2 
-            MOV #0,W                \ 1 uREShi=0
-            MOV #1,X                \ 1 BIT TEST REGlo
-BEGIN       BIT X,S                 \ 1 test actual bit in uMRlo
-    0<> IF  ADD Y,2(PSP)            \ 3 IF 1: ADD uMDlo TO uRESlo
-            ADDC T,0(PSP)           \ 3      ADDC uMDmi TO uRESmi
-            ADDC rDODOES,W          \ 1      ADDC uMRlo TO uREShi        
-    THEN    ADD Y,Y                 \ 1 (RLA LSBs) uMDlo *2
-            ADDC T,T                \ 1 (RLC MSBs) uMDhi *2
-            ADDC rDODOES,rDODOES    \ 1 (RLA LSBs) uMDlo *2
-            ADD X,X                 \ 1 (RLA) NEXT BIT TO TEST
-U>= UNTIL                           \ 1 IF BIT IN CARRY: FINISHED   W=uREShi
-\ TOS     +n2
-\ W       REShi
-\ 0(PSP)  RESmi
-\ 2(PSP)  RESlo
-MOV TOS,T
-MOV @PSP,TOS
-MOV 2(PSP),S
-\ process division
-\ reg     input         output     
-\ ----------------------------
-\ S     = DVD(15-0)         
-\ TOS   = DVD(31-16)        
-\ W     = DVD(47-32)    REM    
-\ T     = DIV(15-0)         
-\ X     = Don't care    QUOTlo            
-\ Y     = Don't care    QUOThi 
-\ rDODOES = count
-\ 2(PSP)                REM
-\ 0(PSP)                QUOTlo
-\ TOS                   QUOThi
-MOV #32,rDODOES         \ 2  init loop count
-CMP #0,W                \ DVDhi = 0 ?
-0= IF                   \ if yes
-    MOV TOS,W           \ DVDmi --> DVDhi
-    CALL #MDIV1DIV2     \ with loop count / 2
-ELSE
-    CALL #MDIV1         \ -- urem ud2lo ud2hi
-THEN
-MOV @PSP+,0(PSP)        \ -- ud2lo ud2hi
-BIT #UF9,SR             \ sign is set ?
-0<> IF                  \ DNEGATE Quot
-    XOR #-1,0(PSP)
-    XOR #-1,TOS
-    ADD #1,0(PSP)
-    ADDC #0,TOS
-    BIC #UF9,SR         \ clear sign flag
-\ now, make floored division, only used if rem<>0 and quot<0 :  
-    CMP #0,W            \ remainder <> 0 ?
-    0<> IF
-        SUB #1,0(PSP)   \ decrement quotient
-        SUBC #0,TOS 
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+
+    KERNEL_ADDON HMPY TSTBIT \ hardware MPY ?
+
+    RST_RET
+
+    [IF]   ; MSP430FRxxxx with hardware_MPY
+
+\   https://forth-standard.org/standard/double/MTimesDiv
+        [UNDEFINED] M*/
+        [IF]
+    CODE M*/                \ d1 * n1 / +n2 -- d2
+    MOV 4(PSP),&MPYS32L     \ 5             Load 1st operand    d1lo
+    MOV 2(PSP),&MPYS32H     \ 5                                 d1hi
+    MOV @PSP+,&OP2          \ 4 -- d1 n2    load 2nd operand    n1
+    MOV TOS,T               \ T = DIV
+    NOP3
+    MOV &RES0,S             \ 3 S = RESlo
+    MOV &RES1,TOS           \ 3 TOS = RESmi
+    MOV &RES2,W             \ 3 W = REShi
+    MOV #0,rDOCON           \ clear sign flag
+    CMP #0,W                \ negative product ?
+    S< IF                   \ compute ABS value if yes
+        XOR #-1,S
+        XOR #-1,TOS
+        XOR #-1,W
+        ADD #1,S
+        ADDC #0,TOS
+        ADDC #0,W
+        MOV #-1,rDOCON       \ set sign flag
     THEN
-THEN                
-MOV @IP+,PC             \ 4
-ENDCODE
-[THEN]
-
-[ELSE]  \ hardware multiplier
 
-[UNDEFINED] M*/ [IF]
+    [ELSE]  ; no hardware multiplier
 \ https://forth-standard.org/standard/double/MTimesDiv
-CODE M*/                \ d1 * n1 / +n2 -- d2
-MOV 4(PSP),&MPYS32L     \ 5             Load 1st operand    d1lo    
-MOV 2(PSP),&MPYS32H     \ 5                                 d1hi
-MOV @PSP+,&OP2          \ 4 -- d1 n2    load 2nd operand    n1     
-MOV TOS,T               \ T = DIV
-NOP3
-MOV &RES0,S             \ 3 S = RESlo
-MOV &RES1,TOS           \ 3 TOS = RESmi
-MOV &RES2,W             \ 3 W = REShi
-BIC #UF9,SR             \ clear sign flag
-CMP #0,W                \ negative product ?
-S< IF                   \ compute ABS value if yes
-    XOR #-1,S
-    XOR #-1,TOS
-    XOR #-1,W
-    ADD #1,S
-    ADDC #0,TOS
-    ADDC #0,W
-    BIS #UF9,SR         \ set sign flag
-THEN
-\ process division
-\ reg     input         output     
-\ ----------------------------
-\ S     = DVD(15-0)         
-\ TOS   = DVD(31-16)        
-\ W     = DVD(47-32)    REM    
-\ T     = DIV(15-0)         
-\ X     = Don't care    QUOTlo            
-\ Y     = Don't care    QUOThi 
-\ rDODOES = count
-\ 2(PSP)                REM
-\ 0(PSP)                QUOTlo
-\ TOS                   QUOThi
-MOV #32,rDODOES         \ 2  init loop count
-CMP #0,W                \ DVDhi = 0 ?
-0= IF                   \ if yes
-    MOV TOS,W           \ DVDmi --> DVDhi
-    CALL #MDIV1DIV2     \ with loop count / 2
-ELSE
-    CALL #MDIV1         \ -- urem ud2lo ud2hi
-THEN
-MOV @PSP+,0(PSP)        \ -- d2lo d2hi
-BIT #UF9,SR             \ RES sign is set ?
-0<> IF                  \ DNEGATE
-    XOR #-1,0(PSP)
-    XOR #-1,TOS
-    ADD #1,0(PSP)
-    ADDC #0,TOS
-    BIC #UF9,SR         \ clear sign flag
-\ now, make floored division, only used if rem<>0 and quot<0 :  
-    CMP #0,W            \ remainder <> 0 ?
-    0<> IF
-        SUB #1,0(PSP)   \ decrement quotient
-        SUBC #0,TOS 
+        [UNDEFINED] M*/
+        [IF]
+    CODE M*/    \ d1lo d1hi n1 +n2 -- d2lo d2hi
+    MOV #0,rDOCON               \ rDOCON = sign
+    CMP #0,2(PSP)               \ d1 < 0 ?
+    S< IF
+        XOR #-1,4(PSP)
+        XOR #-1,2(PSP)
+        ADD #1,4(PSP)
+        ADDC #0,2(PSP)
+        MOV #-1,rDOCON
+    THEN                        \ ud1
+    CMP #0,0(PSP)               \ n1 < 0 ?
+    S< IF
+        XOR #-1,0(PSP)
+        ADD #1,0(PSP)           \ u1
+        XOR #-1,rDOCON
+    THEN                        \ let's process UM*     -- ud1lo ud1hi u1 +n2
+                MOV 4(PSP),Y            \ 3 uMDlo
+                MOV 2(PSP),T            \ 3 uMDhi
+                MOV @PSP+,S             \ 2 uMRlo        -- ud1lo ud1hi +n2
+                MOV #0,rDODOES          \ 1 uMDlo=0
+                MOV #0,2(PSP)           \ 3 uRESlo=0
+                MOV #0,0(PSP)           \ 3 uRESmi=0     -- uRESlo uRESmi +n2
+                MOV #0,W                \ 1 uREShi=0
+                MOV #1,X                \ 1 BIT TEST REGlo
+    BEGIN       BIT X,S                 \ 1 test actual bit in uMRlo
+        0<> IF  ADD Y,2(PSP)            \ 3 IF 1: ADD uMDlo TO uRESlo
+                ADDC T,0(PSP)           \ 3      ADDC uMDmi TO uRESmi
+                ADDC rDODOES,W          \ 1      ADDC uMRlo TO uREShi
+        THEN    ADD Y,Y                 \ 1 (RLA LSBs) uMDlo *2
+                ADDC T,T                \ 1 (RLC MSBs) uMDhi *2
+                ADDC rDODOES,rDODOES    \ 1 (RLA LSBs) uMDlo *2
+                ADD X,X                 \ 1 (RLA) NEXT BIT TO TEST
+    U>= UNTIL                           \ 1 IF BIT IN CARRY: FINISHED   W=uREShi
+\   TOS     +n2
+\   W       REShi
+\   0(PSP)  RESmi
+\   2(PSP)  RESlo
+    MOV TOS,T
+    MOV @PSP,TOS
+    MOV 2(PSP),S
+        [THEN]
+
+        [THEN]  ; endcase of software/hardware_MPY
+
+\   process division
+\   reg     input           output
+\   ------------------------------
+\   S       = DVD(15-0)
+\   TOS     = DVD(31-16)
+\   W       = DVD(47-32)    REM
+\   T       = DIV(15-0)
+\   X       = Don't care    QUOTlo
+\   Y       = Don't care    QUOThi
+\   rDODOES = count
+\   rDOCON  = sign
+\   2(PSP)                  REM
+\   0(PSP)                  QUOTlo
+\   TOS                     QUOThi
+    MOV #32,rDODOES         \ 2  init loop count
+    CMP #0,W                \ DVDhi = 0 ?
+    0= IF                   \ if yes
+        MOV TOS,W           \ DVDmi --> DVDhi
+        CALL #MDIV1DIV2     \ with loop count / 2
+    ELSE
+        CALL #MDIV1         \ -- urem ud2lo ud2hi
     THEN
-THEN                
-MOV @IP+,PC             \ 52 words
-ENDCODE
-[THEN]
-
-[THEN]  ; end of software/hardware_MPY
+    MOV @PSP+,0(PSP)        \ -- d2lo d2hi
+    CMP #0,rDOCON           \ RES sign is set ?
+    0<> IF                  \ DNEGATE quot
+        XOR #-1,0(PSP)
+        XOR #-1,TOS
+        ADD #1,0(PSP)
+        ADDC #0,TOS
+        CMP #0,&KERNEL_ADDON    \ floored/symetric division flag test
+        S< IF                   \ if floored division and quot<0
+            CMP #0,W            \ remainder <> 0 ?
+            0<> IF              \ if floored division, quot<0 and remainder <>0
+                SUB #1,0(PSP)   \ decrement quotient
+                SUBC #0,TOS
+            THEN
+        THEN
+    THEN
+    MOV #XDODOES,rDODOES
+    MOV #XDOCON,rDOCON
+    MOV @IP+,PC             \ 52 words
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 2VARIABLE [IF]
 \ https://forth-standard.org/standard/double/TwoVARIABLE
-: 2VARIABLE \  --
-CREATE 
-HI2LO
-ADD #4,&DP
-MOV @RSP+,IP
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2CONSTANT [IF]
+    [UNDEFINED] 2VARIABLE
+    [IF]
+    : 2VARIABLE \  --
+    CREATE
+    HI2LO
+    ADD #4,&DP
+    MOV @RSP+,IP
+    NEXT
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/double/TwoCONSTANT
-: 2CONSTANT \  udlo/dlo/Flo udhi/dhi/Shi --         to create double or s15q16 CONSTANT
-CREATE
-, ,             \ compile Shi then Flo
-DOES>
-2@              \ execution part
-;
-[THEN]
+    [UNDEFINED] 2CONSTANT
+    [IF]
+    : 2CONSTANT \  udlo/dlo/Flo udhi/dhi/Shi --         to create double or s15q16 CONSTANT
+    CREATE
+    , ,             \ compile Shi then Flo
+    DOES>
+    2@              \ execution part
+    ;
+    [THEN]
 
-[UNDEFINED] 2VALUE [IF]
 \ https://forth-standard.org/standard/double/TwoVALUE
-: 2VALUE        \ x1 x2 "<spaces>name" --
-CREATE , ,      \ compile Shi then Flo
-DOES>
-HI2LO
-MOV @RSP+,IP
-BIT #UF9,SR     \ flag set by TO
-0= IF
-   MOV #2@,PC   \ execute TwoFetch
-THEN 
-BIC #UF9,SR     \ clear flag
-MOV #2!,PC      \ execute TwoStore
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2LITERAL [IF]
+    [UNDEFINED] 2VALUE
+    [IF]
+    : 2VALUE        \ x1 x2 "<spaces>name" --
+    CREATE , ,      \ compile Shi then Flo
+    DOES>
+    HI2LO
+    MOV @RSP+,IP
+    BIT #UF9,SR     \ flag set by TO
+    0= IF
+        MOV #2@,PC  \ execute TwoFetch
+    THEN
+    BIC #UF9,SR     \ clear flag
+    MOV #2!,PC      \ execute TwoStore
+    ENDCODE
+    [THEN]
+
+
 \ https://forth-standard.org/standard/double/TwoLITERAL
-CODE 2LITERAL
-BIS #UF9,SR     \ see LITERAL
-MOV #LITERAL,PC
-ENDCODE IMMEDIATE
-[THEN]
+    [UNDEFINED] 2LITERAL
+    [IF]
+        CODE 2LITERAL
+        BIS #UF9,SR     \ see LITERAL
+        MOV #LITERAL,PC
+        ENDCODE IMMEDIATE
+    [THEN]
+
 
-[UNDEFINED] D.R [IF]
 \ https://forth-standard.org/standard/double/DDotR
 \ D.R       d n --
-: D.R
->R SWAP OVER DABS <# #S ROT SIGN #> 
-R> OVER - SPACES TYPE 
-;
-[THEN]
+    [UNDEFINED] D.R
+    [IF]
+    : D.R
+    >R SWAP OVER DABS <# #S ROT SIGN #>
+    R> OVER - SPACES TYPE
+    ;
+    [THEN]
 
-RST_HERE
+    RST_SET
 
 \ ==============================================================================
-\ Complement to pass DOUBLETEST.4TH
+; Complement to pass DOUBLE TESTS
 \ ==============================================================================
-\
-[UNDEFINED] VARIABLE [IF]
+
 \ https://forth-standard.org/standard/core/VARIABLE
-: VARIABLE \  --
-CREATE 
-HI2LO
-MOV @RSP+,IP
-ADD #2,&DP
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
+\ VARIABLE <name>       --                      define a Forth VARIABLE
+    [UNDEFINED] VARIABLE
+    [IF]
+    : VARIABLE
+    CREATE
+    HI2LO
+    MOV #DOVAR,-4(W)        \   CFA = CALL rDOVAR
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] CELLS [IF]
+\ CONSTANT <name>     n --                      define a Forth CONSTANT
+    [UNDEFINED] CONSTANT
+    [IF]
+    : CONSTANT
+    CREATE
+    HI2LO
+    MOV TOS,-2(W)           \   PFA = n
+    MOV @PSP+,TOS
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/CELLS
 \ CELLS    n1 -- n2            cells->adrs units
-CODE CELLS
-ADD TOS,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] ALLOT [IF]
-\ https://forth-standard.org/standard/core/ALLOT
-\ ALLOT   n --         allocate n bytes
-CODE ALLOT
-ADD TOS,&DP
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] DEPTH [IF]
+    [UNDEFINED] CELLS
+    [IF]
+    CODE CELLS
+    ADD TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DEPTH
 \ DEPTH    -- +n        number of items on stack, must leave 0 if stack empty
-CODE DEPTH
-MOV TOS,-2(PSP)
-MOV #PSTACK,TOS
-SUB PSP,TOS     \ PSP-S0--> TOS
-RRA TOS         \ TOS/2   --> TOS
-SUB #2,PSP      \ post decrement stack...
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]
-\ https://forth-standard.org/standard/core/DUP
-\ DUP      x -- x x      duplicate top of stack
-CODE DUP
-BW1 SUB #2,PSP      \ 2  push old TOS..
-    MOV TOS,0(PSP)  \ 3  ..onto stack
-    MOV @IP+,PC     \ 4
-ENDCODE
+    [UNDEFINED] DEPTH
+    [IF]
+    CODE DEPTH
+    MOV TOS,-2(PSP)
+    MOV #PSTACK,TOS
+    SUB PSP,TOS     \ PSP-S0--> TOS
+    RRA TOS         \ TOS/2   --> TOS
+    SUB #2,PSP      \ post decrement stack...
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]     \ define DO LOOP +LOOP
 
-\ https://forth-standard.org/standard/core/qDUP
-\ ?DUP     x -- 0 | x x    DUP if nonzero
-CODE ?DUP
-CMP #0,TOS      \ 2  test for TOS nonzero
-0<> ?GOTO BW1    \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DO [IF]     \ define DO LOOP +LOOP
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO                 \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP          \
+    MOV TOS,0(PSP)      \
+    ADD #2,&DP          \   make room to compile xdo
+    MOV &DP,TOS         \ -- HERE+2
+    MOV #XDO,-2(TOS)    \   compile xdo
+    ADD #2,&LEAVEPTR    \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W     \
+    MOV #0,0(W)         \ -- HERE+2     L-- 0, init
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP               \ immediate
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP          \ make room to compile two words
     MOV &DP,W
     MOV X,-4(W)         \ xloop --> HERE
     MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP              \ immediate
-MOV #XPLOOP,X
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] I [IF]
 \ https://forth-standard.org/standard/core/I
 \ I        -- n   R: sys1 sys2 -- sys1 sys2
 \                  get the innermost loop index
-CODE I
-SUB #2,PSP              \ 1 make room in TOS
-MOV TOS,0(PSP)          \ 3
-MOV @RSP,TOS            \ 2 index = loopctr - fudge
-SUB 2(RSP),TOS          \ 3
-MOV @IP+,PC             \ 4 13~
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,PSP              \ 1 make room in TOS
+    MOV TOS,0(PSP)          \ 3
+    MOV @RSP,TOS            \ 2 index = loopctr - fudge
+    SUB 2(RSP),TOS          \ 3
+    MOV @IP+,PC             \ 4 13~
+    ENDCODE
+    [THEN]
+
 \ 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] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] = [IF]
 \ https://forth-standard.org/standard/core/Equal
 \ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0= [IF]
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ZeroEqual
 \ 0=     n/u -- flag    return true if TOS=0
-CODE 0=
-SUB #1,TOS      \ borrow (clear cy) if TOS was 0
-SUBC TOS,TOS    \ TOS=-1 if borrow was set
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] SOURCE [IF]
+    [UNDEFINED] 0=
+    [IF]
+    CODE 0=
+    SUB #1,TOS      \ borrow (clear cy) if TOS was 0
+    SUBC TOS,TOS    \ TOS=-1 if borrow was set
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/SOURCE
 \ SOURCE    -- adr u    of current input buffer
-CODE SOURCE
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV &SOURCE_LEN,TOS
-MOV &SOURCE_ORG,0(PSP)
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] >IN [IF]
+    [UNDEFINED] SOURCE
+    [IF]
+    CODE SOURCE
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV &SOURCE_LEN,TOS
+    MOV &SOURCE_ORG,0(PSP)
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/toIN
 \ C >IN     -- a-addr       holds offset in input stream
-TOIN CONSTANT >IN
-[THEN]
+    [UNDEFINED] >IN
+    [IF]
+    TOIN CONSTANT >IN
+    [THEN]
 
-[UNDEFINED] SWAP [IF]
-\ https://forth-standard.org/standard/core/SWAP
-\ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
-\ https://forth-standard.org/standard/core/DROP
-\ DROP     x --          drop top of stack
-CODE DROP
-MOV @PSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
 \ https://forth-standard.org/standard/core/OnePlus
 \ 1+      n1/u1 -- n2/u2       add 1 to TOS
-CODE 1+
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 1+
+    [IF]
+    CODE 1+
+    ADD #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] CHAR [IF]
 \ https://forth-standard.org/standard/core/CHAR
 \ CHAR   -- char           parse ASCII character
-: CHAR
-    $20 WORD 1+ C@
-;
-[THEN]
+    [UNDEFINED] CHAR
+    [IF]
+    : CHAR
+        $20 WORD 1+ C@
+    ;
+    [THEN]
 
-[UNDEFINED] [CHAR] [IF]
 \ https://forth-standard.org/standard/core/BracketCHAR
 \ [CHAR]   --          compile character literal
-: [CHAR]
-    CHAR POSTPONE LITERAL
-; IMMEDIATE
-[THEN]
+    [UNDEFINED] [CHAR]
+    [IF]
+    : [CHAR]
+        CHAR POSTPONE LITERAL
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] 2/ [IF]
 \ https://forth-standard.org/standard/core/TwoDiv
 \ 2/      x1 -- x2        arithmetic right shift
-CODE 2/
-RRA TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 2/
+    [IF]
+    CODE 2/
+    RRA TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] INVERT [IF]
 \ https://forth-standard.org/standard/core/INVERT
 \ INVERT   x1 -- x2            bitwise inversion
-CODE INVERT
-XOR #-1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] INVERT
+    [IF]
+    CODE INVERT
+    XOR #-1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] RSHIFT [IF]
 \ https://forth-standard.org/standard/core/RSHIFT
 \ RSHIFT  x1 u -- x2    logical R7 shift u places
-CODE RSHIFT
-            MOV @PSP+,W
-            AND #$1F,TOS       \ no need to shift more than 16
-0<> IF
-    BEGIN   BIC #C,SR           \ Clr Carry
+    [UNDEFINED] RSHIFT
+    [IF]
+    CODE RSHIFT
+    MOV @PSP+,W
+    AND #$1F,TOS       \ no need to shift more than 16
+    0<> IF
+        BEGIN
+            BIC #C,SR   \ Clr Carry
             RRC W
             SUB #1,TOS
-    0= UNTIL
-THEN        MOV W,TOS
-            MOV @IP+,PC
-ENDCODE
-[THEN]
+        0= UNTIL
+    THEN
+    MOV W,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 0< [IF]
-\ https://forth-standard.org/standard/core/Zeroless
-\ 0<     n -- flag      true if TOS negative
-CODE 0<
-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
-MOV @IP+,PC     \ 
-ENDCODE
-[THEN]
-
-[UNDEFINED] S>D [IF]
 \ https://forth-standard.org/standard/core/StoD
 \ S>D    n -- d          single -> double prec.
-: S>D
-    DUP 0<
-;
-[THEN]
+    [UNDEFINED] S>D
+    [IF]
+    : S>D
+        DUP 0<
+    ;
+    [THEN]
 
-[UNDEFINED] 1- [IF]
 \ https://forth-standard.org/standard/core/OneMinus
 \ 1-      n1/u1 -- n2/u2     subtract 1 from TOS
-CODE 1-
-SUB #1,TOS
-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 #MUSMOD,PC  \ execute MUSMOD then return to DROP
-ENDCODE
-[THEN]
+    [UNDEFINED] 1-
+    [IF]
+    CODE 1-
+    SUB #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] SM/REM [IF]
-\ https://forth-standard.org/standard/core/SMDivREM
-\ SM/REM   DVDlo DVDhi DIVlo -- r3 q4  symmetric signed div
-CODE SM/REM
-MOV TOS,S           \           S=DIVlo
-MOV @PSP,T          \           T=DVD_sign==>rem_sign
-CMP #0,TOS          \           n2 >= 0 ?
-S< IF               \
-    XOR #-1,TOS
-    ADD #1,TOS      \ -- d1 u2
-THEN
-CMP #0,0(PSP)       \           d1hi >= 0 ?
-S< IF               \
-    XOR #-1,2(PSP)  \           d1lo
-    XOR #-1,0(PSP)  \           d1hi
-    ADD #1,2(PSP)   \           d1lo+1
-    ADDC #0,0(PSP)  \           d1hi+C
-THEN                \ -- uDVDlo uDVDhi uDIVlo
-PUSHM #3,IP         \           save IP,S,T
-LO2HI
-    UM/MOD          \ -- uREMlo uQUOTlo
-HI2LO
-POPM #3,IP          \           restore T,S,IP
-CMP #0,T            \           T=rem_sign
-S< IF
-    XOR #-1,0(PSP)
-    ADD #1,0(PSP)
-THEN
-XOR S,T             \           S=divisor T=quot_sign
-CMP #0,T            \ -- n3 u4  T=quot_sign
-S< IF
+\ https://forth-standard.org/standard/core/NEGATE
+\ C NEGATE   x1 -- x2            two's complement
+    [UNDEFINED] NEGATE
+    [IF]
+    CODE NEGATE
     XOR #-1,TOS
     ADD #1,TOS
-THEN                \ -- n3 n4  S=divisor
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] FM/MOD [IF]
-\ https://forth-standard.org/standard/core/FMDivMOD
-\ FM/MOD   d1 n1 -- r q   floored signed div'n
-: FM/MOD
-SM/REM
-HI2LO               \ -- remainder quotient       S=divisor
-CMP #0,0(PSP)       \ remainder <> 0 ?
-0<> IF
-    CMP #1,TOS      \ quotient < 1 ?
-    S< IF
-      ADD S,0(PSP)  \ add divisor to remainder
-      SUB #1,TOS    \ decrement quotient
-    THEN
-THEN
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[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] HERE
+    [IF]
+    CODE HERE
+    MOV #HEREXEC,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] / [IF]
-\ https://forth-standard.org/standard/core/Div
-\ /      n1 n2 -- n3       signed quotient
-: /
->R DUP 0< R> FM/MOD NIP
-;
-[THEN]
-
-[UNDEFINED] NEGATE [IF]
-\ https://forth-standard.org/standard/core/NEGATE
-\ C NEGATE   x1 -- x2            two's complement
-CODE NEGATE
-XOR #-1,TOS
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #HEREXEC,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] CHARS [IF]
 \ https://forth-standard.org/standard/core/CHARS
 \ CHARS    n1 -- n2            chars->adrs units
-CODE CHARS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] CHARS
+    [IF]
+    CODE CHARS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] MOVE [IF]
 \ https://forth-standard.org/standard/core/MOVE
 \ MOVE    addr1 addr2 u --     smart move
 \             VERSION FOR 1 ADDRESS UNIT = 1 CHAR
-CODE MOVE
-MOV TOS,W           \ W = cnt
-MOV @PSP+,Y         \ Y = addr2 = dst
-MOV @PSP+,X         \ X = addr1 = src
-MOV @PSP+,TOS       \ pop new TOS
-CMP #0,W            \ count = 0 ?
-0<> IF              \ if 0, already done !
-    CMP X,Y         \ Y-X \ dst - src
-    0<> IF          \ else already done !
-        U< IF       \ U< if src > dst
-            BEGIN   \ copy W bytes
-                MOV.B @X+,0(Y)
-                ADD #1,Y
+    [UNDEFINED] MOVE
+    [IF]
+    CODE MOVE
+    MOV TOS,W           \ W = cnt
+    MOV @PSP+,Y         \ Y = addr2 = dst
+    MOV @PSP+,X         \ X = addr1 = src
+    MOV @PSP+,TOS       \ pop new TOS
+    CMP #0,W            \ count = 0 ?
+    0<> IF              \ if 0, already done !
+        CMP X,Y         \ Y-X \ dst - src
+        0<> IF          \ else already done !
+            U< IF       \ U< if src > dst
+                BEGIN   \ copy W bytes
+                    MOV.B @X+,0(Y)
+                    ADD #1,Y
+                    SUB #1,W
+                0= UNTIL
+                MOV @IP+,PC \ out 1 of MOVE ====>
+            THEN        \ U>= if dst > src
+            ADD W,Y     \ copy W bytes beginning with the end
+            ADD W,X
+            BEGIN
+                SUB #1,X
+                SUB #1,Y
+                MOV.B @X,0(Y)
                 SUB #1,W
             0= UNTIL
-            MOV @IP+,PC \ out 1 of MOVE ====>
-        THEN        \ U>= if dst > src
-        ADD W,Y     \ copy W bytes beginning with the end
-        ADD W,X
-        BEGIN
-            SUB #1,X
-            SUB #1,Y
-            MOV.B @X,0(Y)
-            SUB #1,W
-        0= UNTIL
+        THEN
     THEN
-THEN
-MOV @IP+,PC \ out 2 of MOVE ====>
-ENDCODE
-[THEN]
+    MOV @IP+,PC \ out 2 of MOVE ====>
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] DECIMAL [IF]
 \ https://forth-standard.org/standard/core/DECIMAL
-CODE DECIMAL
-MOV #$0A,&BASEADR
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] DECIMAL
+    [IF]
+    CODE DECIMAL
+    MOV #$0A,&BASEADR
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] BASE [IF]
 \ https://forth-standard.org/standard/core/BASE
 \ BASE    -- a-addr       holds conversion radix
-BASEADR CONSTANT BASE
-[THEN]
+    [UNDEFINED] BASE
+    [IF]
+    BASEADR CONSTANT BASE
+    [THEN]
 
-[UNDEFINED] ( [IF]
 \ https://forth-standard.org/standard/core/p
 \ (         --          skip input until char ) or EOL
-: ( 
-')' WORD DROP
-; IMMEDIATE
-[THEN]
+    [UNDEFINED] ( ; )
+    [IF]
+    : (
+    ')' WORD DROP
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] .( [IF] \ "
 \ https://forth-standard.org/standard/core/Dotp
 \ .(        --          type comment immediatly.
-CODE .(         \ "
-MOV #0,&CAPS    \ CAPS OFF
-COLON
-')' WORD
-COUNT TYPE
-$20 CAPS !       \ CAPS ON
-; IMMEDIATE
-[THEN]
-
+    [UNDEFINED] .( ; "
+    [IF]
+    CODE .(        ; "
+    MOV #0,&CAPS    \ CAPS OFF
+    COLON
+    ')' WORD
+    COUNT TYPE
+    $20 CAPS !       \ CAPS ON
+    ; IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+    DEFER CR    \ DEFERed definition, by default executes that of :NONAME
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
 
 \ ==============================================================================
 \ TESTER
 \ ==============================================================================
-
+\
 \ From: John Hayes S1I
 \ Subject: tester.fr
 \ Date: Mon, 27 Nov 95 13:10:09 PST
-
+\
 \ (C) 1995 JOHNS HOPKINS UNIVERSITY / APPLIED PHYSICS LABORATORY
 \ MAY BE DISTRIBUTED FREELY AS LONG AS THIS COPYRIGHT NOTICE REMAINS.
 \ VERSION 1.1
-
+\
 \ 22/1/09 The words { and } have been changed to T{ and }T respectively to
 \ agree with the Forth 200X file ttester.fs. This avoids clashes with
 \ locals using { ... } and the FSL use of }
-
+\
 
 \ 13/05/14 jmt. added colorised error messages.
  0 CONSTANT FALSE
@@ -1272,14 +1425,14 @@ $20 CAPS !       \ CAPS ON
 VARIABLE VERBOSE
     FALSE VERBOSE !
 \   TRUE VERBOSE !
-
+\
 \ : EMPTY-STACK ( ... -- )  \ EMPTY STACK: HANDLES UNDERFLOWED STACK TOO.
 \     DEPTH ?DUP
 \             IF DUP 0< IF NEGATE 0
 \             DO 0 LOOP
 \             ELSE 0 DO DROP LOOP THEN
 \             THEN ;
-\ 
+\
 \ : ERROR     \ ( C-ADDR U -- ) DISPLAY AN ERROR MESSAGE FOLLOWED BY
 \         \ THE LINE THAT HAD THE ERROR.
 \     TYPE SOURCE TYPE CR          \ DISPLAY LINE CORRESPONDING TO ERROR
@@ -1320,6 +1473,22 @@ CREATE ACTUAL-RESULTS 20 CELLS ALLOT
     ELSE >IN ! DROP [CHAR] * EMIT
     THEN ;
 
+\ Constant definitions
+
+DECIMAL
+
+0 INVERT        CONSTANT 1SD
+1SD 1 RSHIFT    CONSTANT MAX-INTD   \ 01...1
+MAX-INTD INVERT CONSTANT MIN-INTD   \ 10...0
+MAX-INTD 2/     CONSTANT HI-INT     \ 001...1
+MIN-INTD 2/     CONSTANT LO-INT     \ 110...1
+
+\ 1SD .
+\ MAX-INTD .
+\ MIN-INTD .
+\ HI-INT .
+\ LO-INT .
+
 ECHO
 
 \ ==============================================================================
@@ -1337,7 +1506,7 @@ ECHO
 \ but WITHOUT ANY WARRANTY; without even the implied warranty of
 \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 \
-\ The tests are not claimed to be comprehensive or correct 
+\ The tests are not claimed to be comprehensive or correct
 \ ------------------------------------------------------------------------------
 \ Version 0.13  Assumptions and dependencies changed
 \         0.12  1 August 2015 test D< acts on MS cells of double word
@@ -1367,23 +1536,6 @@ ECHO
 \       included prior to this file
 \     - the Core word set is available and tested
 \ ------------------------------------------------------------------------------
-\ Constant definitions
-
-DECIMAL
-
-0 INVERT        CONSTANT 1SD
-1SD 1 RSHIFT    CONSTANT MAX-INTD   \ 01...1
-MAX-INTD INVERT CONSTANT MIN-INTD   \ 10...0
-MAX-INTD 2/     CONSTANT HI-INT     \ 001...1
-MIN-INTD 2/     CONSTANT LO-INT     \ 110...1
-
-\ 1SD .
-\ MAX-INTD .
-\ MIN-INTD .
-\ HI-INT .  
-\ LO-INT .  
-
-\ ------------------------------------------------------------------------------
 TESTING interpreter and compiler reading double numbers, with/without prefixes
 
 T{ 1. -> 1 0 }T
@@ -1571,7 +1723,7 @@ T{ MAX-2INT -1. D< -> FALSE }T
 T{ MAX-2INT MIN-2INT D< -> FALSE }T
 T{ MAX-2INT 2DUP -1. D+ D< -> FALSE }T
 T{ MIN-2INT 2DUP  1. D+ D< -> TRUE  }T
-T{ MAX-INTD S>D 2DUP 1. D+ D< -> TRUE }T \ Ensure D< acts on MS cells 
+T{ MAX-INTD S>D 2DUP 1. D+ D< -> TRUE }T \ Ensure D< acts on MS cells
 
 T{ -1. -1. D= -> TRUE  }T
 T{ -1.  0. D= -> FALSE }T
index 01ed51d..aef700e 100644 (file)
 ; FF_SPECS.f
 ; ---------------------------------
 
-\ first, we test for downloading driver only if good FastForth version
-CODE ABORT_FF_SPECS
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-'CR' EMIT            \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_FF_SPECS definition before resuming
-;
-
-ABORT_FF_SPECS
-
-[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] DUP [IF]    \ define DUP and DUP?
+\ first, we do some tests allowing the download
+    CODE ABORT_FF_SPECS
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS        \ ARG
+    SUB #309,TOS            \ FastForth V3.9
+    COLON
+    'CR' EMIT               \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    RST_RET                 \ remove ABORT_FF_SPECS definition before resuming
+    ;
+
+    ABORT_FF_SPECS
+
 \ https://forth-standard.org/standard/core/DUP
 \ DUP      x -- x x      duplicate top of stack
-CODE DUP
+    [UNDEFINED] DUP
+    [IF]            \ define DUP and DUP?
+    CODE DUP
 BW1 SUB #2,PSP      \ 2  push old TOS..
     MOV TOS,0(PSP)  \ 3  ..onto stack
     MOV @IP+,PC     \ 4
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/qDUP
 \ ?DUP     x -- 0 | x x    DUP if nonzero
-CODE ?DUP
-CMP #0,TOS      \ 2  test for TOS nonzero
-0<> ?GOTO BW1   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] OVER [IF]
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ 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] DROP [IF]
+    [UNDEFINED] OVER
+    [IF]
+    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/DROP
 \ DROP     x --          drop top of stack
-CODE DROP
-MOV @PSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] DROP
+    [IF]
+    CODE DROP
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] SWAP [IF]
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] ROT [IF]
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    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
-[THEN]
-
-[UNDEFINED] >R [IF]
+    [UNDEFINED] ROT
+    [IF]
+    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]
+
 \ https://forth-standard.org/standard/core/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0= [IF]
-\ https://forth-standard.org/standard/core/ZeroEqual
-\ 0=     n/u -- flag    return true if TOS=0
-CODE 0=
-SUB #1,TOS      \ borrow (clear cy) if TOS was 0
-SUBC TOS,TOS    \ TOS=-1 if borrow was set
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0< [IF]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Zeroless
 \ 0<     n -- flag      true if TOS negative
-CODE 0<
-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
-MOV @IP+,PC     \ 
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
+    [UNDEFINED] 0<
+    [IF]
+    CODE 0<
+    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
+    MOV @IP+,PC     \
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Equal
 \ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1 flag Z = 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1 flag Z = 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
 \ https://forth-standard.org/standard/core/Uless
 \ U<    u1 u2 -- flag       test u1<u2, unsigned
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @PSP+,TOS   \ 2 u2-u1
-0<> IF
-    MOV #-1,TOS     \ 1
-    U< IF           \ 2 flag 
-        AND #0,TOS  \ 1 flag Z = 1
+    [UNDEFINED] U<
+    [IF]
+    CODE U<
+    SUB @PSP+,TOS   \ 2 u2-u1
+    U< ?GOTO FW1
+    0<> IF
+BW1 MOV #-1,TOS     \ 1
     THEN
-THEN
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    MOV @IP+,PC     \ 4
+    ENDCODE
+
+\ https://forth-standard.org/standard/core/Umore
+\ U>     n1 n2 -- flag
+    CODE U>
+    SUB @PSP+,TOS   \ 2
+    U< ?GOTO BW1    \ 2 flag = true, Z = 0
+FW1 AND #0,TOS      \ 1 Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] IF [IF]     \ define IF and THEN
 \ https://forth-standard.org/standard/core/IF
 \ IF       -- IFadr    initialize conditional forward branch
-CODE IF
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP              \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+    CODE IF
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/THEN
 \ THEN     IFadr --                resolve forward branch
-CODE THEN
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
+    CODE THEN
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ELSE
 \ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/BEGIN
 \ BEGIN    -- BEGINadr             initialize backward branch
-CODE BEGIN
+    [UNDEFINED] BEGIN
+    [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+    CODE BEGIN
     MOV #HEREXEC,PC
-ENDCODE IMMEDIATE
-[THEN]
+    ENDCODE IMMEDIATE
 
-[UNDEFINED] UNTIL [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
 \ https://forth-standard.org/standard/core/UNTIL
 \ UNTIL    BEGINadr --             resolve conditional backward branch
-CODE UNTIL
+    CODE UNTIL              \ immediate
     MOV #QFBRAN,X
 BW1 ADD #4,&DP          \ compile two words
     MOV &DP,W           \ W = HERE
@@ -235,329 +234,423 @@ BW1 ADD #4,&DP          \ compile two words
     MOV TOS,-2(W)       \ compile bakcward adr at HERE+2
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/AGAIN
 \ AGAIN    BEGINadr --             resolve uncondionnal backward branch
-CODE AGAIN
-MOV #BRAN,X
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
+    CODE AGAIN
+    MOV #BRAN,X
+    GOTO BW1
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] WHILE [IF]     \ define DO LOOP +LOOP
+    [UNDEFINED] WHILE
+    [IF]     \
 \ https://forth-standard.org/standard/core/WHILE
 \ WHILE    BEGINadr -- WHILEadr BEGINadr
-: WHILE
-POSTPONE IF SWAP
-; IMMEDIATE
-[THEN]
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] REPEAT [IF]     \ define DO LOOP +LOOP
+    [UNDEFINED] REPEAT
+    [IF]
 \ https://forth-standard.org/standard/core/REPEAT
 \ REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] DO [IF]     \ define DO LOOP +LOOP
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] DO
+    [IF]                \ define DO LOOP +LOOP
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    ADD #2,&DP              \   make room to compile xdo
+    MOV &DP,TOS             \ -- HERE+2
+    MOV #XDO,-2(TOS)        \   compile xdo
+    ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W         \
+    MOV #0,0(W)             \ -- HERE+2     L-- 0
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP              \ make room to compile two words
     MOV &DP,W
-    MOV X,-4(W)         \ xloop --> HERE
-    MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    MOV X,-4(W)             \ xloop --> HERE
+    MOV TOS,-2(W)           \ DOadr --> HERE+2
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP
-MOV #XPLOOP,X
-GOTO BW1        \ goto BW1 LOOP
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] I [IF]
 \ https://forth-standard.org/standard/core/I
 \ I        -- n   R: sys1 sys2 -- sys1 sys2
 \                  get the innermost loop index
-CODE I
-SUB #2,PSP              \ 1 make room in TOS
-MOV TOS,0(PSP)          \ 3
-MOV @RSP,TOS            \ 2 index = loopctr - fudge
-SUB 2(RSP),TOS          \ 3
-MOV @IP+,PC             \ 4 13~
-ENDCODE
-[THEN]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #HEREXEC,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] C@ [IF]
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,PSP              \ 1 make room in TOS
+    MOV TOS,0(PSP)          \ 3
+    MOV @RSP,TOS            \ 2 index = loopctr - fudge
+    SUB 2(RSP),TOS          \ 3
+    MOV @IP+,PC             \ 4 13~
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] HERE
+    [IF]
+    CODE HERE
+    MOV #HEREXEC,PC
+    ENDCODE
+    [THEN]
+
 \ 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]
+    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
-        'SP' EMIT
-        HI2LO
-        SUB #2,IP 
-        SUB #1,TOS
-    0= UNTIL
-    MOV @RSP+,IP
-THEN
-MOV @PSP+,TOS           \ --         drop n
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
+    [UNDEFINED] SPACES
+    [IF]
+    CODE SPACES
+    CMP #0,TOS
+    0<> IF
+        PUSH IP
+        BEGIN
+            LO2HI
+            'SP' EMIT
+            HI2LO
+            SUB #1,TOS
+        0= UNTIL
+        MOV @RSP+,IP
+    THEN
+    MOV @PSP+,TOS           \ --         drop n
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/OnePlus
 \ 1+      n1/u1 -- n2/u2       add 1 to TOS
-CODE 1+
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 1+
+    [IF]
+    CODE 1+
+    ADD #1,TOS
+    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]
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] - [IF]
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2* [IF]
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/TwoTimes
 \ 2*      x1 -- x2         arithmetic left shift
-CODE 2*
-ADD TOS,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 2*
+    [IF]
+    CODE 2*
+    ADD TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/TwoDiv
+\ 2/      x1 -- x2        arithmetic right shift
+    [UNDEFINED] 2/
+    [IF]
+    CODE 2/
+    RRA TOS
+    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
+    [UNDEFINED] UM/MOD
+    [IF]
+    CODE UM/MOD
     PUSH #DROP      \
     MOV #MUSMOD,PC  \ execute MUSMOD then return to DROP
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] MOVE [IF]
 \ https://forth-standard.org/standard/core/MOVE
 \ MOVE    addr1 addr2 u --     smart move
 \             VERSION FOR 1 ADDRESS UNIT = 1 CHAR
-CODE MOVE
-MOV TOS,W           \ W = cnt
-MOV @PSP+,Y         \ Y = addr2 = dst
-MOV @PSP+,X         \ X = addr1 = src
-MOV @PSP+,TOS       \ pop new TOS
-CMP #0,W            \ count = 0 ?
-0<> IF              \ if 0, already done !
-    CMP X,Y         \ Y-X \ dst - src
-    0<> IF          \ if dst = src, already done !
-        U< IF       \ U< if src > dst
-            BEGIN   \ copy W bytes
-                MOV.B @X+,0(Y)
-                ADD #1,Y
+    [UNDEFINED] MOVE
+    [IF]
+    CODE MOVE
+    MOV TOS,W           \ W = cnt
+    MOV @PSP+,Y         \ Y = addr2 = dst
+    MOV @PSP+,X         \ X = addr1 = src
+    MOV @PSP+,TOS       \ pop new TOS
+    CMP #0,W            \ count = 0 ?
+    0<> IF              \ if 0, already done !
+        CMP X,Y         \ Y-X \ dst - src
+        0<> IF          \ if dst = src, already done !
+            U< IF       \ U< if src > dst
+                BEGIN   \ copy W bytes
+                    MOV.B @X+,0(Y)
+                    ADD #1,Y
+                    SUB #1,W
+                0= UNTIL
+                MOV @IP+,PC
+            THEN        \ U>= if dst > src
+            ADD W,Y     \ copy W bytes beginning with the end
+            ADD W,X
+            BEGIN
+                SUB #1,X
+                SUB #1,Y
+                MOV.B @X,0(Y)
                 SUB #1,W
             0= UNTIL
-            MOV @IP+,PC
-        THEN        \ U>= if dst > src
-        ADD W,Y     \ copy W bytes beginning with the end
-        ADD W,X
-        BEGIN
-            SUB #1,X
-            SUB #1,Y
-            MOV.B @X,0(Y)
-            SUB #1,W
-        0= UNTIL
+        THEN
     THEN
-THEN
-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_ORG               \ -- VOC_BODY PAD                  MOVE all threads of VOC_BODY in PAD_ORG
-THREADS @ 2*                    \ -- VOC_BODY PAD THREADS*2
-MOVE                            \ -- vocabulary entries are copied in PAD_ORG
-BEGIN                           \ -- 
-    0 DUP                       \ -- ptr=0 MAX=0                
-    THREADS @ 2* 0              \ -- ptr=0 MAX=0 THREADS*2 0
-        DO                      \ -- ptr MAX            I =  PAD_ptr = thread*2
-        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_ORG + @   \ -- new_ptr new_MAX
-            THEN                \ 
-        2 +LOOP                 \ -- ptr MAX
-    ?DUP                        \ -- ptr MAX MAX | -- ptr 0 (all threads in PAD = 0)
-WHILE                           \ -- ptr MAX                    replace it by its LFA
-    DUP                         \ -- ptr MAX MAX
-    2 - @                       \ -- ptr MAX [LFA]
-    ROT                         \ -- MAX [LFA] ptr
-    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)
-    TYPE                        \ -- MAX
-    C@ $0F AND                  \ -- count_of_chars
-    $10 SWAP - SPACES           \ --                    complete with spaces modulo 16 chars
-REPEAT                          \ --
-DROP                            \ ptr --
-;                               \ all threads in PAD are filled with 0
-[THEN]
-
-[UNDEFINED] CASE [IF]
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME     \ part II : :NONAME part as default runtime of CR
+    'CR' EMIT 'LF' EMIT
+    ; IS CR                         \ set [PFA] of CR = >BODY addr of CR = CFA of :NONAME part
+
+    [THEN]
+
+\ customised WORD
+    : WORDS                         \ VOC_BODY --
+    PAD_ORG                         \ -- VOC_BODY PAD                  MOVE all threads of VOC_BODY in PAD_ORG
+    THREADS @ 2*                    \ -- VOC_BODY PAD THREADS*2
+    MOVE                            \ -- vocabulary entries are copied in PAD_ORG
+    BEGIN                           \ --
+        0 DUP                       \ -- ptr=0 MAX=0
+        THREADS @ 2* 0              \ -- ptr=0 MAX=0 THREADS*2 0
+            DO                      \ -- ptr MAX            I =  PAD_ptr = thread*2
+            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_ORG + @   \ -- new_ptr new_MAX
+                THEN                \
+            2 +LOOP                 \ -- ptr MAX
+        ?DUP                        \ -- ptr MAX MAX | -- ptr 0 (all threads in PAD = 0)
+    WHILE                           \ -- ptr MAX                    replace it by its LFA
+        DUP                         \ -- ptr MAX MAX
+        2 - @                       \ -- ptr MAX [LFA]
+        ROT                         \ -- MAX [LFA] ptr
+        PAD_ORG +                   \ -- MAX [LFA] thread
+        !                           \ -- MAX                MAX=highest_NFA [LFA]=new_NFA updates PAD_ORG+ptr
+        COUNT 2/                    \ -- addr name_count    2/ to hide Immediate flag
+        DUP >R TYPE                 \ --      R-- count
+        $10 R> - SPACES             \ --      R--           complete with spaces modulo 16 chars
+    REPEAT                          \ --
+    DROP                            \ ptr --
+    ;                               \ all threads in PAD are filled with 0
+
 \ https://forth-standard.org/standard/core/CASE
-: CASE 0 ; IMMEDIATE \ -- #of-1 
+    [UNDEFINED] CASE
+    [IF]
+    : CASE
+    0
+    ; IMMEDIATE \ -- #of-1
 
 \ https://forth-standard.org/standard/core/OF
-: OF \ #of-1 -- orgOF #of 
-1+                         \ count OFs 
->R                         \ move off the stack in case the control-flow stack is the data stack. 
-POSTPONE OVER POSTPONE = \ copy and test case value
-POSTPONE IF                \ add orig to control flow stack 
-POSTPONE DROP          \ discards case value if = 
-R>                         \ we can bring count back now 
-; IMMEDIATE 
+    : OF \ #of-1 -- orgOF #of
+    1+                     \ count OFs
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE OVER
+    POSTPONE =              \ copy and test case value
+    POSTPONE IF                    \ add orig to control flow stack
+    POSTPONE DROP              \ discards case value if =
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/ENDOF
-: ENDOF \ orgOF #of -- orgENDOF #of 
->R                         \ move off the stack in case the control-flow stack is the data stack. 
-POSTPONE ELSE 
-R>                         \ we can bring count back now 
-; IMMEDIATE 
+    : ENDOF \ orgOF #of -- orgENDOF #of
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE ELSE
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/ENDCASE
-: ENDCASE \ orgENDOF1..orgENDOFn #of -- 
-POSTPONE DROP
-0 DO 
-    POSTPONE THEN 
-LOOP 
-; IMMEDIATE 
-[THEN]
-
-[UNDEFINED] S_ [IF]
-CODE S_             \           Squote alias with blank instead quote separator
-MOV #0,&CAPS        \           turn CAPS OFF
-COLON
-XSQUOTE ,           \           compile run-time code
-'SP' WORD           \ -- c-addr (= HERE)
-HI2LO
-MOV.B @TOS,TOS      \ -- len    compile string
-ADD #1,TOS          \ -- len+1
-BIT #1,TOS          \           C = ~Z
-ADDC TOS,&DP        \           store aligned DP
-MOV @PSP+,TOS       \ --
-MOV @RSP+,IP        \           pop paired with push COLON
-MOV #$20,&CAPS      \           turn CAPS ON (default state)
-MOV @IP+,PC         \ NEXT
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ESC [IF]
-CODE ESC
-CMP #0,&STATEADR
-0= IF MOV @IP+,PC   \ interpret time usage disallowed
-THEN
-COLON          
-'ESC'               \ -- char escape
-POSTPONE LITERAL    \ compile-time code : lit 'ESC'  
-POSTPONE EMIT       \ compile-time code : EMIT
-POSTPONE S_         \ compile-time code : S_ <escape_sequence>
-POSTPONE TYPE       \ compile-time code : TYPE
-; IMMEDIATE
-[THEN]
+    : ENDCASE \ orgENDOF1..orgENDOFn #of --
+    POSTPONE DROP
+    0 DO
+        POSTPONE THEN
+    LOOP
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] S_
+    [IF]
+    CODE S_             \           Squote alias with blank instead quote separator
+    MOV #0,&CAPS        \           turn CAPS OFF
+    COLON
+    XSQUOTE ,           \           compile run-time code
+    'SP' WORD           \ -- c-addr (= HERE)
+    HI2LO
+    MOV.B @TOS,TOS      \ -- len    compile string
+    ADD #1,TOS          \ -- len+1
+    BIT #1,TOS          \           C = ~Z
+    ADDC TOS,&DP        \           store aligned DP
+    MOV @PSP+,TOS       \ --
+    MOV @RSP+,IP        \           pop paired with push COLON
+    MOV #$20,&CAPS      \           turn CAPS ON (default state)
+    MOV @IP+,PC         \ NEXT
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ESC
+    [IF]
+    CODE ESC
+    CMP #0,&STATEADR
+    0= IF MOV @IP+,PC   \ interpret time usage disallowed
+    THEN
+    COLON
+    'ESC'               \ -- char escape
+    POSTPONE LITERAL    \ compile-time code : lit 'ESC'
+    POSTPONE EMIT       \ compile-time code : EMIT
+    POSTPONE S_         \ compile-time code : S_ <escape_sequence>
+    POSTPONE TYPE       \ compile-time code : TYPE
+    ; IMMEDIATE
+    [THEN]
+
+    [DEFINED] FORTH     \   word-set addon ?
+    [IF]
+    CODE BODY>SQNFA     \ BODY -- ADR cnt             BODY > SQuoteNFA
+    SUB #2,PSP
+    SUB #4,TOS
+    MOV TOS,Y           \ Y = CFA
+    MOV Y,X             \ X = CFA
+    BEGIN
+        SUB #2,X
+        MOV X,0(PSP)    \ -- string_test_address CFA
+        MOV.B @X+,TOS   \ -- string_test_address cnt_test
+        RRA TOS         \ -- string_test_address cnt_test/2
+        MOV TOS,W
+        BIT #1,W        \           cnt_test even ?
+        0= IF
+            ADD #1,W    \           if yes add #1,TOS
+        THEN
+        ADD X,W         \           string_test_address + cnt_test
+        CMP W,Y         \           string_test_address + cnt_test = CFA ?
+    0<> WHILE           \           out of loop if yes
+        MOV @PSP,X      \           loop back to test with X - one_word
+    REPEAT
+    MOV X,0(PSP)        \ -- string_addr string_cnt
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
 \ -------------------------------------------------------
-: SPECS             \ to see all FastForth specifications
+    : SPECS             \ to see all FastForth specifications
 \ -------------------------------------------------------
-PWR_STATE           \ before computing free bytes, remove all created words 
-ECHO
-ESC [8;40;80t       \ set 40L * 80C terminal display
-39 0 DO CR LOOP     \ to avoid erasing any line of source, create 42-1 empty lines
-ESC [H              \ then cursor home
-ESC [7m             \ Turn reverse video on
-$0D EMIT ." FastForth V"  \ title line in reverse video 
-VERSION @         
-0 <# # 'BS' HOLD # '.' HOLD #S #> TYPE
-."  for MSP430FR"
-HERE                \ HERE - MAIN_ORG = bytes code
-DEVICEID @          \ value kept in TLV area
-CASE
+    RST_RET             \ before computing free bytes, remove all FF_SPECS definitions
+    ECHO
+    ESC [8;42;80t       \ set 42L * 80C terminal display
+
+\   title in reverse video
+    ESC [7m             \ Turn reverse video on
+    CR ." FastForth V"
+    VERSION @
+    0 <# # 'BS' HOLD # '.' HOLD #S #> TYPE
+    ."  for MSP430FR"
+    HERE                \ HERE - MAIN_ORG = bytes code
+    DEVICEID @          \ value kept in TLV area
+    CASE
+
 \ device_ID OF  ." xxxx," $MAIN_ORG ENDOF \ <-- add here your device
-    $8102   OF  ." 5738,"   $C200   ENDOF 
+    $8102   OF  ." 5738,"   $C200   ENDOF
     $8103   OF  ." 5739,"   $C200   ENDOF
+    $810D   OF  ." 5986,"   $4400   ENDOF
     $8160   OF  ." 5948,"   $4400   ENDOF
     $8169   OF  ." 5969,"   $4400   ENDOF
-    $825D   OF  ." 5972,"   $4400   ENDOF
     $81A8   OF  ." 6989,"   $4400   ENDOF
-    $810D   OF  ." 5986,"   $4400   ENDOF
     $81F0   OF  ." 4133,"   $C400   ENDOF
     $8240   OF  ." 2433,"   $C400   ENDOF
+    $825D   OF  ." 5972,"   $4400   ENDOF
     $82A1   OF  ." 5994,"   $4000   ENDOF
     $82A6   OF  ." 5962,"   $4000   ENDOF
     $830C   OF  ." 2355,"   $8000   ENDOF
@@ -569,94 +662,120 @@ CASE
     $833C   OF  ." 2633,"   $C400   ENDOF
     $833D   OF  ." 2533,"   $C400   ENDOF
     ABORT" xxxx <-- unrecognized device!"
-ENDCASE                     \ -- HERE MAIN_ORG
-['] ['] DUP @ $1284 =       \ DOCOL = CALL rDOCOL opcode
-IF ."  DTC=1," DROP         \ [CFA] = CALL rDOCOL
-ELSE 2 + @ $1284 =          \ 
-    IF ."  DTC=2,"          \ [CFA] = PUSH IP, [CFA+2] = CALL rDOCOL 
-    ELSE ."  DTC=3,"        \ [CFA] = PUSH IP, [CFA+2] = MOV PC,IP
+    ENDCASE                             \ -- HERE MAIN_ORG
+    ['] ['] DUP @ $1284 =               \ DOCOL = CALL rDOCOL opcode
+    IF ."  DTC=1," DROP                 \ [CFA] = CALL rDOCOL
+    ELSE 2 + @ $1284 =                  \
+        IF ."  DTC=2,"                  \ [CFA] = PUSH IP, [CFA+2] = CALL rDOCOL
+        ELSE ."  DTC=3,"                \ [CFA] = PUSH IP, [CFA+2] = MOV PC,IP
+        THEN
     THEN
-THEN
-$20 EMIT 
-THREADS @ U. 'BS' EMIT ." -Entry word set, "   \ number of Entry word set,
-FREQ_KHZ @ 0 1000 UM/MOD U.                     \ frequency,
-?DUP IF 'BS' EMIT ',' EMIT U.   \ if remainder
-THEN ." MHz, "                  \ MCLK
-- U. ." bytes"                  \ HERE - MAIN_ORG = number of bytes code,
-ESC [0m                         \ Turn off character attributes
-CR
-." /COUNTED-STRING   = 255" CR 
-." /HOLD             = 34" CR
-." /PAD              = 84" CR
-." ADDRESS-UNIT-BITS = 16" CR
-." FLOORED           = true" CR
-." MAX-CHAR          = 255" CR
-." MAX-N             = 32767" CR
-." MAX-U             = 65535" CR
-." MAX-D             = 2147483647" CR
-." MAX-UD            = 4294967295" CR
-." STACK-CELLS       = 48" CR
-." RETURN-STACK-CELLS= 48" CR
-." DeFiNiTiOnS aRe CaSe-InSeNsItIvE" CR
-CR 
-ESC [7m ." KERNEL SPECS" ESC [0m   \ subtitle in reverse video
-CR
-KERNEL_ADDON @
-    DUP 0< IF ." 32.768kHz XTAL" CR THEN            \ BIT15
-2*  DUP 0< IF ." (RTS/CTS) UART TERMINAL" CR 2*     \ BIT14 BIT13
-        ELSE  2* DUP                                \       BIT13
-            0< IF ." (RTS) UART TERMINAL" CR
+    'SP' EMIT
+    THREADS @ U. 'BS' EMIT
+    ." -Entry word set, "               \ number of Entry word set,
+    FREQ_KHZ @ 0 1000 UM/MOD U.         \ frequency
+    ?DUP IF 'BS' EMIT ',' EMIT U.       \ if remainder
+    THEN ." MHz, "                      \ MCLK
+    - U. ." bytes"                      \ HERE - MAIN_ORG = number of bytes code,
+    ESC [0m                             \ Turn off character attributes
+
+\   general
+    CR
+    ." /COUNTED-STRING   = 255" CR
+    ." /HOLD             = 34" CR
+    ." /PAD              = 84" CR
+    ." ADDRESS-UNIT-BITS = 16" CR
+    ." FLOORED DIVISION  = "
+    KERNEL_ADDON @                      \ negative value if FLOORED DIVISION
+    0< IF ." true"
+    ELSE  ." false"
+    THEN    CR
+    ." MAX-CHAR          = 255" CR
+    ." MAX-N             = 32767" CR
+    ." MAX-U             = 65535" CR
+    ." MAX-D             = 2147483647" CR
+    ." MAX-UD            = 4294967295" CR
+    ." STACK-CELLS       = 48" CR
+    ." RETURN-STACK-CELLS= 48" CR
+    ." Definitions are forced to UPPERCASE." CR
+
+\   kernel specs
+    CR ESC [7m ." Kernel add-ons" ESC [0m CR  \ subtitle in reverse video
+    KERNEL_ADDON @
+    2*  DUP 0< IF ." 32.768kHz LF XTAL" CR THEN             \ BIT14
+    2*  DUP 0< IF ." /RTS /CTS " 2*                         \ BIT13
+            ELSE  2* DUP                                    \ /BIT13
+                0< IF ." /RTS " THEN                        \ /BIT13 & BIT12
             THEN
-        THEN
-2*  DUP 0< IF ." (XON/XOFF) UART TERMINAL" CR       \ BIT12
-        THEN
-2*  DUP 0< IF ." Half-Duplex TERMINAL" CR THEN      \ BIT11
-2*  DUP 0< IF ." I2C_Master TERMINAL" CR THEN       \ BIT10
-2*  DUP 0< IF ." Q15.16 input" CR THEN              \ BIT9
-2*  DUP 0< IF ." DOUBLE input" CR THEN              \ BIT8
-2*  DUP 0< IF ." MSP430_X assembler" CR 2* 2*       \ BIT7 BIT6 BIT5
-        ELSE 2*  DUP                                \      BIT6
-            0< IF ." MSP430 Assembler"
-                2*  DUP 0< IF ."  with 20bits address"  \       BIT5
-                    THEN CR
-            ELSE 2*                                     \       BIT5
+    2*  DUP 0< IF ." XON/XOFF "  THEN                       \ BIT11
+    2*  DUP 0< IF ." Half-Duplex "  THEN                    \ BIT10
+    2*  DUP 0< IF ." I2C_Master TERMINAL"                   \ BIT9
+            ELSE  ." UART TERMINAL" THEN CR                 \ /BIT9
+    2*  DUP 0< IF 2* DUP 0< IF ." DOUBLE and "                  \  BIT8 + BIT7
+                         THEN  ." Q15.16 numbers handling" CR
+            ELSE  2* DUP 0< IF ." DOUBLE numbers handling" CR   \ /BIT8 + BIT7
+                         THEN
             THEN
-        THEN
-2*              \ BIT4 free flags
-2*              \ BIT3 free flags
-2*              \ BIT2 free flags
-2*              \ BIT1 free flags
-2* 0< IF        \ BIT0 true if COND. COMPILATION
-    [DEFINED] DEFER [IF] ." DEFER word set" CR [THEN]
-    [DEFINED] ALSO  [IF] ." VOCABULARY word set" CR [THEN]
-    [DEFINED] LOAD" [IF] ." SD_CARD Loader" CR [THEN]
-    [DEFINED] BOOT  [IF] ." bootloader" CR [THEN]
-    [DEFINED] READ" [IF] ." SD_CARD Read/Write" CR [THEN]
-    CR 
-    ESC [7m ." OPTIONS" ESC [0m \ subtitle in reverse video
+    2*  DUP 0< IF ." MSP430_X assembler with TI's syntax"
+                    CR 2* 2*                                \ BIT6 BIT5 BIT4
+            ELSE                                            \ /BIT6
+                2*  DUP
+                0< IF ." MSP430 Assembler"                  \       BIT5
+                    2*  DUP
+                    0< IF ." , 20bits extended addresses,"  \               BIT4
+                    THEN
+                ELSE 2*                                     \               BIT4
+                THEN
+                ."  with TI's syntax" CR
+            THEN DROP                                       \ BIT2 to BIT0 are free
+    [DEFINED] FORTH [IF] ." word-set management" CR
+    [THEN]
+    [DEFINED] LOAD" [IF] ." SD_CARD Load" CR
+    [THEN]
+    [DEFINED] BOOT  [IF] ." SD_CARD Bootloader" CR
+    [THEN]
+    [DEFINED] READ" [IF] ." SD_CARD Read/Write" CR
+    [THEN]
+
+\   word-set
+    LASTVOC                             \ -- VOCLINK addr.
+    BEGIN
+        @ ?DUP                          \ -- VOCLINK            word-set here ?
+    WHILE                               \ -- VLK
+        DUP THREADS @ 2* -              \ -- VLK WORDSET_BODY
+        CR ESC [7m
+        [DEFINED] FORTH                 \                       word-set addon ?
+        [IF] DUP BODY>SQNFA             \ -- VLK WRDST_BODY addr cnt
+        [ELSE]  OVER @                  \ -- VLK WRDST_BODY NEXT_VLINK
+                IF S" hidden"           \                       if next_vlink <>0
+                ELSE S" FORTH"          \                       if next_vlink = 0
+                THEN                    \ -- VLK WRDST_BODY addr cnt
+        [THEN]
+        TYPE ."  word-set"              \ -- VLK WRDST_BODY     subtitle in reverse video
+        ESC [0m CR
+        WORDS CR                        \ -- VLINK              definitions display
+    REPEAT
+
+\   extensions
+    CR ESC [7m ." EXTENSIONS" ESC [0m   \ subtitle in reverse video
+    [DEFINED] {CORE_ANS} [IF] CR  ." core ANS94"
+    [THEN]
+    [DEFINED] {DOUBLE}   [IF] CR  ." DOUBLE word set"
+    [THEN]
+    [DEFINED] {UTILITY}  [IF] CR ." UTILITY"
+    [THEN]
+    [DEFINED] {FIXPOINT} [IF] CR ." Q15.16 ADD SUB MUL DIV"
+    [THEN]
+    [DEFINED] {CORDIC}   [IF] CR ." CORDIC engine"
+    [THEN]
+    [DEFINED] {SD_TOOLS} [IF] CR ." SD_TOOLS"
+    [THEN]
+    [DEFINED] {RTC}      [IF] CR ." RTC utility"
+    [THEN]
+    [DEFINED] {UARTI2CS} [IF] CR ." UART to I2C_FastForth bridge"
+    [THEN]
     CR
-    [DEFINED] {CORE_ANS}  [IF] ." ANS94 core" CR [THEN]
-    [DEFINED] {DOUBLE}    [IF] ." DOUBLE word set" CR [THEN]
-    [DEFINED] {TOOLS}     [IF] ." UTILITY" CR [THEN]
-    [DEFINED] {FIXPOINT}  [IF] ." Q15.16 ADD SUB MUL DIV" CR [THEN]
-    [DEFINED] {CORDIC}    [IF] ." CORDIC engine" CR [THEN]
-    [DEFINED] {SD_TOOLS}  [IF] ." SD_TOOLS" CR [THEN]
-    [DEFINED] {RTC}       [IF] ." RTC utility" CR [THEN]
-    [DEFINED] {UARTI2CS}  [IF] ." UART to I2C_FastForth bridge" CR [THEN]
-    [DEFINED] ALSO
-    [IF] 
-        CR 
-        ESC [7m ." ASSEMBLER word set" ESC [0m  \ subtitle in reverse video 
-        ALSO ASSEMBLER WORDS PREVIOUS           \ type ASSEMBLER word set
-        CR
-    [THEN]
-THEN
-CR
-ESC [7m ." FORTH word set"  ESC [0m \ subtitle in reverse video 
-WORDS                               \ type FORTH word set 
-CR
-HI2LO
-MOV #WARM+4,PC  \ type count of bytes free without re-executing INI_APP, no return
-ENDCODE
-
-SPECS \ here FastForth displays a message with some informations
+    0 SYS                                 \ WARM
+    ;
+
+SPECS \ performs RST_RET and displays FastForth specs
index a8a3956..69cdf6d 100644 (file)
@@ -20,7 +20,7 @@
 \ rDODOES to rEXIT must be saved before use and restored after
 \ scratch registers Y to S are free for use
 \ under interrupt, IP is free for use
-\ 
+\
 \ PUSHM order : PSP,TOS, IP,  S,  T,  W,  X,  Y, rEXIT,rDOVAR,rDOCON, rDODOES, R3, SR,RSP, PC
 \ PUSHM order : PSP,TOS,IP,S,T,W, X, Y,  rDOCOL  ,  rDOVAR  ,  rDOCON  ,   rDODOES   , R3, SR, RSP, PC
 \
 \ ASSEMBLER conditionnal usage with ?JMP ?GOTO      S<  S>=  U<   U>=  0=  0<>  0<
 \
 
-CODE ABORT_FIXPOINT
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV &KERNEL_ADDON,TOS
-BIT #BIT10,TOS
-0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (FIXPOINT input), set TOS = 0  
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS            \ FastForth V3.8
-COLON
-$0D EMIT    \ return to column 1 without CR
-ABORT" FastForth V3.8 please!"
-ABORT" buil FastForth with FIXPOINT_INPUT addon !"
-PWR_STATE           \ if no abort remove this word
-$1B EMIT $63 EMIT   \ send 'ESC c' (clear screen)
-;
-
-ABORT_FIXPOINT
+    CODE ABORT_FIXPOINT
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV &KERNEL_ADDON,TOS
+    BIT #BIT8,TOS
+    0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (FIXPOINT input), set TOS = 0
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    $0D EMIT    \ return to column 1 without CR
+    ABORT" FastForth V3.9 please!"
+    ABORT" build FastForth with Q15.16_INPUT addon !"
+    RST_RET             \ if no abort remove this word
+    $1B EMIT $63 EMIT   \ send 'ESC c' (clear screen)
+    ;
+
+    ABORT_FIXPOINT
 
 ; -----------------------------------------------------
-; FIXPOINT.f 
+; FIXPOINT.f
 ; -----------------------------------------------------
 
-[DEFINED] {FIXPOINT} [IF]  {FIXPOINT} [THEN]
-
-MARKER {FIXPOINT}
+    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] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] R> [IF]
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Equal
 \ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
 \ https://forth-standard.org/standard/core/Uless
 \ U<    u1 u2 -- flag       test u1<u2, unsigned
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @PSP+,TOS   \ 2 u2-u1
-0<> IF
-    MOV #-1,TOS     \ 1
-    U< IF           \ 2 flag 
-        AND #0,TOS  \ 1 flag Z = 1
+    [UNDEFINED] U<
+    [IF]
+    CODE U<
+    SUB @PSP+,TOS   \ 2 u2-u1
+    0<> IF
+        MOV #-1,TOS     \ 1
+        U< IF           \ 2 flag
+            AND #0,TOS  \ 1 flag Z = 1
+        THEN
     THEN
-THEN
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] DABS [IF]
 \ https://forth-standard.org/standard/double/DABS
 \ DABS     d1 -- |d1|     absolute value
-CODE DABS
-AND #-1,TOS         \ clear V, set N
-S< IF               \
-    XOR #-1,0(PSP)  \ 4
-    XOR #-1,TOS     \ 1
-    ADD #1,0(PSP)   \ 4
-    ADDC #0,TOS     \ 1
-THEN
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] HOLDS [IF]
+    [UNDEFINED] DABS
+    [IF]
+    CODE DABS
+    AND #-1,TOS         \ clear V, set N
+    S< IF               \
+        XOR #-1,0(PSP)  \ 4
+        XOR #-1,TOS     \ 1
+        ADD #1,0(PSP)   \ 4
+        ADDC #0,TOS     \ 1
+    THEN
+    MOV @IP+,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 #>
 \ free chars area in the 32+2 bytes HOLD buffer = {26,23,2} chars with a 32 bits sized {hexa,decimal,binary} number.
 \ (2 supplementary bytes are room for sign - and decimal point)
 \ C HOLDS    addr u --
-CODE HOLDS
-            MOV @PSP+,X         \ 2     X=src
-BW3         ADD TOS,X           \ 1     X=src_end
-            MOV &HP,Y           \ 3     Y=dst
-BEGIN       SUB #1,X            \ 1     src-1
-            SUB #1,TOS          \ 1     cnt-1
-U>= WHILE   SUB #1,Y            \ 1     dst-1
-            MOV.B @X,0(Y)       \ 4     
-REPEAT      MOV Y,&HP           \ 3
-            MOV @PSP+,TOS       \ 2
-            MOV @IP+,PC         \ 4  15 words
-ENDCODE
-[THEN]
-
-CODE F+ \ add Q15.16|double numbers
-            ADD @PSP+,2(PSP)    \ -- sumlo  d1hi d2hi
-            ADDC @PSP+,TOS      \ -- sumlo sumhi
-            MOV @IP+,PC
-ENDCODE
-
-CODE F- \ substract Q15.16|double numbers
-            SUB @PSP+,2(PSP)    \ -- diflo d1hi d2hi
-            SUBC TOS,0(PSP)     \ -- diflo difhi d2hi
-            MOV @PSP+,TOS
-            MOV @IP+,PC
-ENDCODE
-
-TLV_ORG 4 + @ $81F3 U<
-$81EF TLV_ORG 4 + @ U< 
-= [IF]   ; MSP430FR413x subfamily without hardware_MPY
+    [UNDEFINED] HOLDS
+    [IF]
+    CODE HOLDS
+    MOV @PSP+,X         \ 2     X=src
+BW3 ADD TOS,X           \ 1     X=src_end
+    MOV &HP,Y           \ 3     Y=dst
+    BEGIN
+        SUB #1,X        \ 1     src-1
+        SUB #1,TOS      \ 1     cnt-1
+    U>= WHILE
+        SUB #1,Y        \ 1     dst-1
+        MOV.B @X,0(Y)   \ 4
+    REPEAT
+    MOV Y,&HP           \ 3
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4  15 words
+    ENDCODE
+    [THEN]
+
+    CODE F+ \ add Q15.16|double numbers
+    ADD @PSP+,2(PSP)    \ -- sumlo  d1hi d2hi
+    ADDC @PSP+,TOS      \ -- sumlo sumhi
+    MOV @IP+,PC
+    ENDCODE
+
+    CODE F- \ substract Q15.16|double numbers
+    SUB @PSP+,2(PSP)    \ -- diflo d1hi d2hi
+    SUBC TOS,0(PSP)     \ -- diflo difhi d2hi
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+
+    TLV_ORG 4 + @ $81F3 U<
+    $81EF TLV_ORG 4 + @ U<
+    = [IF]              ; MSP430FR413x subfamily without hardware_MPY
 
 \ unsigned multiply 32*32 = 64
 \ don't use S reg (keep sign)
-CODE UDM*
-            PUSH IP             \ 3
-            PUSHM #4,rDOVAR     \ 6 save rDOVAR to rDOCOL regs to use M to R alias
-            MOV 4(PSP),IP       \ 3 MDlo
-            MOV 2(PSP),T        \ 3 MDhi
-            MOV @PSP,W          \ 2 MRlo
-            MOV #0,M            \ 1 MDLO=0
-            MOV #0,P            \ 1 MDHI=0
-            MOV #0,4(PSP)       \ 3 RESlo=0
-            MOV #0,2(PSP)       \ 3 REShi=0
-            MOV #0,Q            \ 1 RESLO=0
-            MOV #0,R            \ 1 RESHI=0
-            MOV #1,X            \ 1 BIT TEST REGlo
-            MOV #0,Y            \ 1 BIT TEST2 REGhi
-BEGIN       CMP #0,X    
-    0<> IF  BIT X,W             \ 2+1 TEST ACTUAL BIT MRlo
-    ELSE    BIT Y,TOS           \ 2+1 TEST ACTUAL BIT MRhi
+    CODE UDM*
+    PUSH IP                 \ 3
+    PUSHM #4,rDOVAR         \ 6 save rDOVAR to rDOCOL regs to use M to R alias
+    MOV 4(PSP),IP           \ 3 MDlo
+    MOV 2(PSP),T            \ 3 MDhi
+    MOV @PSP,W              \ 2 MRlo
+    MOV #0,M                \ 1 MDLO=0
+    MOV #0,P                \ 1 MDHI=0
+    MOV #0,4(PSP)           \ 3 RESlo=0
+    MOV #0,2(PSP)           \ 3 REShi=0
+    MOV #0,Q                \ 1 RESLO=0
+    MOV #0,R                \ 1 RESHI=0
+    MOV #1,X                \ 1 BIT TEST REGlo
+    MOV #0,Y                \ 1 BIT TEST2 REGhi
+    BEGIN
+        CMP #0,X
+        0<> IF
+            BIT X,W         \ 2+1 TEST ACTUAL BIT MRlo
+        ELSE
+            BIT Y,TOS       \ 2+1 TEST ACTUAL BIT MRhi
+        THEN
+        0<> IF
+            ADD IP,4(PSP)   \ 2+3 IF 1: ADD MDlo TO RESlo
+            ADDC T,2(PSP)   \ 3      ADDC MDhi TO REShi
+            ADDC M,Q        \ 1      ADDC MDLO TO RESLO
+            ADDC P,R        \ 1      ADDC MDHI TO RESHI
+        THEN
+        ADD IP,IP           \ 1 (RLA LSBs) MDlo *2
+        ADDC T,T            \ 1 (RLC MSBs) MDhi *2
+        ADDC M,M            \ 1 (RLC LSBs) MDLO *2
+        ADDC P,P            \ 1 (RLC MSBs) MDHI *2
+        ADD X,X             \ 1 (RLA) NEXT BIT TO TEST
+        ADDC Y,Y            \ 1 (RLC) NEXT BIT TO TEST
+    U>= UNTIL
+    MOV Q,0(PSP)            \ 2+2 IF BIT IN CARRY: FINISHED    32 * 16~ (average loop)
+    MOV R,TOS               \ 1 high result in TOS
+    POPM #4,rDOVAR          \ 6 restore rDOCOL to rDOVAR
+    MOV @RSP+,IP            \ 2
+    MOV @IP+,PC
+    ENDCODE
+
+    CODE F*                         \ s15.16 * s15.16 --> s15.16 result
+    MOV 2(PSP),S        \
+    XOR TOS,S           \ 1s15 XOR 2s15 --> S keep sign of result
+    BIT #$8000,2(PSP)   \ MD < 0 ?
+    0<> IF
+        XOR #-1,2(PSP)
+        XOR #-1,4(PSP)
+        ADD #1,4(PSP)
+        ADDC #0,2(PSP)
+    THEN
+    COLON
+    DABS UDM*           \ -- RES0 RES1 RES2 RES3
+    HI2LO
+    MOV @RSP+,IP
+    MOV @PSP+,TOS       \ -- RES0 RES1 RES2
+    MOV @PSP+,0(PSP)    \ -- RES1 RES2
+    AND #-1,S           \ clear V, set N; process S sign
+    S< IF
+        XOR #-1,0(PSP)      \ INV(QUOTlo)
+        XOR #-1,TOS         \ INV(QUOThi)
+        ADD #1,0(PSP)       \ INV(QUOTlo)+1
+        ADDC #0,TOS         \ INV(QUOThi)+C
     THEN
-    0<> IF  ADD IP,4(PSP)       \ 2+3 IF 1: ADD MDlo TO RESlo
-            ADDC T,2(PSP)       \ 3      ADDC MDhi TO REShi
-            ADDC M,Q            \ 1      ADDC MDLO TO RESLO        
-            ADDC P,R            \ 1      ADDC MDHI TO RESHI
-    THEN    ADD IP,IP           \ 1 (RLA LSBs) MDlo *2
-            ADDC T,T            \ 1 (RLC MSBs) MDhi *2
-            ADDC M,M            \ 1 (RLC LSBs) MDLO *2
-            ADDC P,P            \ 1 (RLC MSBs) MDHI *2
-            ADD X,X             \ 1 (RLA) NEXT BIT TO TEST
-            ADDC Y,Y            \ 1 (RLC) NEXT BIT TO TEST
-U>= UNTIL   MOV Q,0(PSP)        \ 2+2 IF BIT IN CARRY: FINISHED    32 * 16~ (average loop)
-            MOV R,TOS           \ 1 high result in TOS
-            POPM #4,rDOVAR      \ 6 restore rDOCOL to rDOVAR
-            MOV @RSP+,IP        \ 2
-            MOV @IP+,PC
-ENDCODE
-
-CODE F*                         \ s15.16 * s15.16 --> s15.16 result
-            MOV 2(PSP),S        \
-            XOR TOS,S           \ 1s15 XOR 2s15 --> S keep sign of result
-            BIT #$8000,2(PSP)   \ MD < 0 ? 
-0<> IF      XOR #-1,2(PSP)
-            XOR #-1,4(PSP)
-            ADD #1,4(PSP)
-            ADDC #0,2(PSP)
-THEN        COLON
-            DABS UDM*           \ -- RES0 RES1 RES2 RES3
-            HI2LO
-            MOV @RSP+,IP
-            MOV @PSP+,TOS       \ -- RES0 RES1 RES2
-            MOV @PSP+,0(PSP)    \ -- RES1 RES2
-            AND #-1,S           \ clear V, set N; process S sign
-S< IF       XOR #-1,0(PSP)      \ INV(QUOTlo)
-            XOR #-1,TOS         \ INV(QUOThi)
-            ADD #1,0(PSP)       \ INV(QUOTlo)+1
-            ADDC #0,TOS         \ INV(QUOThi)+C
-THEN        MOV @IP+,PC
-ENDCODE
-
-[UNDEFINED] F#S [IF]
+    MOV @IP+,PC
+    ENDCODE
+
 \ F#S    Qlo Qhi len -- Qhi 0   convert fractional part Qlo of Q15.16 fixed point number
 \                               with len digits
-CODE F#S
-            MOV @PSP,S          \ -- Qlo Qhi len        S = Qhi
-            MOV #0,T            \                       T = count
-            PUSHM #3,IP         \                       R-- IP Qhi count
-            MOV 2(PSP),0(PSP)   \ -- Qlo Qlo len
-            MOV TOS,2(PSP)      \ -- len Qlo len
-BEGIN       MOV &BASEADR,TOS    \ -- len Qlo base
-            LO2HI
-            UM*                 \                       u1 u2 -- RESlo REShi
-            HI2LO               \ -- len RESlo digit
-            CMP #10,TOS         \                       digit to char
-    U>= IF  ADD #7,TOS
-    THEN    ADD #$30,TOS        \ -- len RESlo char 
-            MOV @RSP,T          \                       T=count
-            MOV.B TOS,HOLDS_ORG(T)  \                   char to string_org(T)
-            ADD #1,T            \                       count+1
-            MOV T,0(RSP)        \
-            CMP 2(PSP),T        \ -- len RESlo char     count=len ?
-U>= UNTIL   POPM #3,IP          \                       S=Qhi, T=len
-            MOV T,TOS           \ -- len RESlo len
-            MOV S,2(PSP)        \ -- Qhi RESlo len
-            MOV #0,0(PSP)       \ -- Qhi 0 len
-            MOV #HOLDS_ORG,X    \ -- Qhi 0 len          X=HOLDS_ORG
-            GOTO BW3            \ 36~ JMP HOLDS
-ENDCODE
-[THEN]
-
-[ELSE] ; hardware multiplier
-
-CODE F* \ signed s15.16 multiplication --> s15.16 result
-            MOV 4(PSP),&MPYS32L \ 5 Load 1st operand
-            MOV 2(PSP),&MPYS32H \ 5
-            MOV @PSP,&OP2L      \ 4 load 2nd operand
-            MOV TOS,&OP2H       \ 3
-            ADD #4,PSP          \ 1 remove 2 cells
-            MOV &RES1,0(PSP)    \ 5
-            MOV &RES2,TOS       \ 5
-            MOV @IP+,PC
-ENDCODE
-
-[UNDEFINED] F#S [IF]
+    CODE F#S
+    MOV @PSP,S          \ -- Qlo Qhi len        S = Qhi
+    MOV #0,T            \                       T = count
+    PUSHM #3,IP         \                       R-- IP Qhi count
+    MOV 2(PSP),0(PSP)   \ -- Qlo Qlo len
+    MOV TOS,2(PSP)      \ -- len Qlo len
+    BEGIN
+        MOV &BASEADR,TOS    \ -- len Qlo base
+        LO2HI
+        UM*                 \                       u1 u2 -- RESlo REShi
+        HI2LO               \ -- len RESlo digit
+        CMP #10,TOS         \                       digit to char
+        U>= IF
+            ADD #7,TOS
+        THEN
+        ADD #$30,TOS        \ -- len RESlo char
+        MOV @RSP,T          \                       T=count
+        MOV.B TOS,HOLDS_ORG(T)  \                   char to string_org(T)
+        ADD #1,T            \                       count+1
+        MOV T,0(RSP)        \
+        CMP 2(PSP),T        \ -- len RESlo char     count=len ?
+    U>= UNTIL
+    POPM #3,IP          \                       S=Qhi, T=len
+    MOV T,TOS           \ -- len RESlo len
+    MOV S,2(PSP)        \ -- Qhi RESlo len
+    MOV #0,0(PSP)       \ -- Qhi 0 len
+    MOV #HOLDS_ORG,X    \ -- Qhi 0 len          X=HOLDS_ORG
+    GOTO BW3            \ 36~ JMP HOLDS
+    ENDCODE
+
+    [ELSE] ; hardware multiplier
+
+    CODE F* \ signed s15.16 multiplication --> s15.16 result
+    MOV 4(PSP),&MPYS32L \ 5 Load 1st operand
+    MOV 2(PSP),&MPYS32H \ 5
+    MOV @PSP,&OP2L      \ 4 load 2nd operand
+    MOV TOS,&OP2H       \ 3
+    ADD #4,PSP          \ 1 remove 2 cells
+    MOV &RES1,0(PSP)    \ 5
+    MOV &RES2,TOS       \ 5
+    MOV @IP+,PC
+    ENDCODE
+
+
 \ F#S    Qlo Qhi len -- Qhi 0   convert fractionnal part of Q15.16 fixed point number
 \                             with len digits
-CODE F#S
-            MOV 2(PSP),X        \ -- Qlo Qhi len    X = Qlo
-            MOV @PSP,2(PSP)     \ -- Qhi Qhi len
-            MOV X,0(PSP)        \ -- Qhi Qlo len
-            MOV TOS,T           \                   T = len
-            MOV #0,S            \                   S = count
-BEGIN       MOV @PSP,&MPY       \                   Load 1st 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
-    U>= IF  ADD #7,TOS
-    THEN    ADD #$30,TOS
-            MOV.B TOS,HOLDS_ORG(S)  \ -- Qhi RESlo char     char to string
-            ADD #1,S            \                   count+1
-            CMP T,S             \                   count=len ?
-0= UNTIL    MOV T,TOS           \ -- len RESlo len
-            MOV #0,0(PSP)       \ -- Qhi 0 len
-            MOV #HOLDS_ORG,X    \ -- Qhi 0 len          X=HOLDS_ORG
-            GOTO BW3            \ 35~ JMP HOLDS+2
-ENDCODE
-[THEN]
-
-[THEN]  \ end of hardware/software multiplier
-
-CODE F/                         \ Q15.16 / Q15.16 --> Q15.16 result
-            MOV TOS,Y           \ 1 Y=DVRhi
-            MOV @PSP+,W         \ 2 W=DVRlo
-            MOV @PSP+,X         \ 2 X=DVDhi
-            MOV @PSP,T          \ 2 T=DVDlo
-            PUSHM #5,X          \ 7 PUSHM DVDhi,DVRhi, M, P, Q
-            AND #-1,Y           \ 1 Y=DVRhi < 0 ?
-S< IF       XOR #-1,W           \ 1 W=INV(DVRlo)
-            XOR #-1,Y           \ 1 Y=INV(DVRhi)
-            ADD #1,W            \ 1 W=INV(DVRlo)+1
-            ADDC #0,Y           \ 1 Y=INV(DVRhi)+C
-THEN    
-            AND #-1,X           \ 1 X=DVDhi < 0 ? 
-S< IF       XOR #-1,T           \ 1 T=INV(DVDlo)
-            XOR #-1,X           \ 1 X=INV(DVDhi)
-            ADD #1,T            \ 1 T=INV(DVDlo)+1
-            ADDC #0,X           \ 1 X=INV(DVDhi)+C
-THEN        
-            MOV X,M             \ 1 DVDhi --> REMlo     to adjust Q15.16 division
-            MOV T,X             \ 1 DVDlo --> DVDhi
-            MOV #0,T            \ 1     0 --> DVDlo
+    CODE F#S
+    MOV 2(PSP),X        \ -- Qlo Qhi len    X = Qlo
+    MOV @PSP,2(PSP)     \ -- Qhi Qhi len
+    MOV X,0(PSP)        \ -- Qhi Qlo len
+    MOV TOS,T           \                   T = len
+    MOV #0,S            \                   S = count
+    BEGIN
+        MOV @PSP,&MPY       \                   Load 1st 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
+        U>= IF
+            ADD #7,TOS
+        THEN
+        ADD #$30,TOS
+        MOV.B TOS,HOLDS_ORG(S)  \ -- Qhi RESlo char     char to string
+        ADD #1,S            \                   count+1
+        CMP T,S             \                   count=len ?
+    0= UNTIL
+    MOV T,TOS           \ -- len RESlo len
+    MOV #0,0(PSP)       \ -- Qhi 0 len
+    MOV #HOLDS_ORG,X    \ -- Qhi 0 len          X=HOLDS_ORG
+    GOTO BW3            \ 35~ JMP HOLDS+2
+    ENDCODE
+
+    [THEN]  ; end of hardware/software multiplier
+
+    CODE F/             \ Q15.16 / Q15.16 --> Q15.16 result
+    MOV TOS,Y           \ 1 Y=DVRhi
+    MOV @PSP+,W         \ 2 W=DVRlo
+    MOV @PSP+,X         \ 2 X=DVDhi
+    MOV @PSP,T          \ 2 T=DVDlo
+    PUSHM #5,X          \ 7 PUSHM DVDhi,DVRhi, M, P, Q
+    AND #-1,Y           \ 1 Y=DVRhi < 0 ?
+    S< IF
+        XOR #-1,W       \ 1 W=INV(DVRlo)
+        XOR #-1,Y       \ 1 Y=INV(DVRhi)
+        ADD #1,W        \ 1 W=INV(DVRlo)+1
+        ADDC #0,Y       \ 1 Y=INV(DVRhi)+C
+    THEN
+    AND #-1,X           \ 1 X=DVDhi < 0 ?
+    S< IF
+        XOR #-1,T       \ 1 T=INV(DVDlo)
+        XOR #-1,X       \ 1 X=INV(DVDhi)
+        ADD #1,T        \ 1 T=INV(DVDlo)+1
+        ADDC #0,X       \ 1 X=INV(DVDhi)+C
+    THEN
+    MOV X,M             \ 1 DVDhi --> REMlo     to adjust Q15.16 division
+    MOV T,X             \ 1 DVDlo --> DVDhi
+    MOV #0,T            \ 1     0 --> DVDlo
 \ ------------------------------------------------------------------------
 \ don't uncomment lines below, don't rub out, please !
 \ ------------------------------------------------------------------------
@@ -328,153 +352,161 @@ THEN
 \            MOV @PSP,T          \ 2 T=DVDlo
 \            PUSHM #5,X          \ 7 PUSHM DVDhi,DVRhi, M, P, Q
 \            MOV #0,M            \ 1 M=REMlo = 0
-            MOV #0,P            \ 1 P=REMhi = 0
-            MOV #32,Q           \ 2 Q=count
-BW1         CMP Y,P             \ 1 REMhi = DVRhi ?
-    0= IF   CMP W,M             \ 1 REMlo U< DVRlo ?
+    MOV #0,P            \ 1 P=REMhi = 0
+    MOV #32,Q           \ 2 Q=count
+BW1 CMP Y,P             \ 1 REMhi = DVRhi ?
+    0= IF
+        CMP W,M             \ 1 REMlo U< DVRlo ?
     THEN
-    U>= IF  SUB W,M             \ 1 no:  REMlo - DVRlo  (carry is set)
-            SUBC Y,P            \ 1      REMhi - DVRhi
+    U>= IF
+        SUB W,M             \ 1 no:  REMlo - DVRlo  (carry is set)
+        SUBC Y,P            \ 1      REMhi - DVRhi
     THEN
-    BEGIN   ADDC S,S            \ 1 RLC quotLO
-            ADDC TOS,TOS        \ 1 RLC quotHI
-            SUB #1,Q            \ 1 Decrement loop counter
-    U>= WHILE                   \ 2 out of loop if count<0    
-            ADD T,T             \ 1 RLA DVDlo
-            ADDC X,X            \ 1 RLC DVDhi
-            ADDC M,M            \ 1 RLC REMlo
-            ADDC P,P            \ 1 RLC REMhi
-            U< ?GOTO BW1        \ 2 19~ loop 
-            SUB W,M             \ 1 REMlo - DVRlo
-            SUBC Y,P            \ 1 REMhi - DVRhi
-            BIS #1,SR           \ 1
-    REPEAT                      \ 2 16~ loop
-\            MOV M,T             \ 1 T=REMlo
-\            MOV P,W             \ 1 W=REMhi
-            POPM #5,X           \ 7 X=DVDhi, Y=DVRhi, system regs M,P,Q restored
-\            CMP #0,X            \ 1 sign of Rem ?
-\    S< IF   XOR #-1,T           \ 1 INV(REMlo)
-\            XOR #-1,W           \ 1 INV(REMhi)
-\            ADD #1,T            \ 1 INV(REMlo)+1 
-\            ADDC #0,W           \ 1 INV(REMhi)+C
+    BEGIN
+        ADDC S,S            \ 1 RLC quotLO
+        ADDC TOS,TOS        \ 1 RLC quotHI
+        SUB #1,Q            \ 1 Decrement loop counter
+    U>= WHILE                   \ 2 out of loop if count<0
+        ADD T,T             \ 1 RLA DVDlo
+        ADDC X,X            \ 1 RLC DVDhi
+        ADDC M,M            \ 1 RLC REMlo
+        ADDC P,P            \ 1 RLC REMhi
+        U< ?GOTO BW1        \ 2 19~ loop
+        SUB W,M             \ 1 REMlo - DVRlo
+        SUBC Y,P            \ 1 REMhi - DVRhi
+        BIS #1,SR           \ 1
+    REPEAT                  \ 2 16~ loop
+\            MOV M,T         \ 1 T=REMlo
+\            MOV P,W         \ 1 W=REMhi
+    POPM #5,X               \ 7 X=DVDhi, Y=DVRhi, system regs M,P,Q restored
+\            CMP #0,X        \ 1 sign of Rem ?
+\    S< IF   XOR #-1,T       \ 1 INV(REMlo)
+\            XOR #-1,W       \ 1 INV(REMhi)
+\            ADD #1,T        \ 1 INV(REMlo)+1
+\            ADDC #0,W       \ 1 INV(REMhi)+C
 \    THEN
-\           SUB #4,PSP          \
-\           MOV T,4(PSP)        \   REMlo
-\           MOV W,2(PSP)        \   REMhi
-            XOR X,Y             \ Y = sign of Quot
-            CMP #0,Y            \ sign of Quot ?
-S< IF       XOR #-1,S           \ 1 INV(QUOTlo)
-            XOR #-1,TOS         \ 1 INV(QUOThi)
-            ADD #1,S            \ 1 INV(QUOTlo)+1
-            ADDC #0,TOS         \ 1 INV(QUOThi)+C
-THEN
-            MOV S,0(PSP)        \ 3 QUOTlo
-            MOV @IP+,PC         \ 4
-ENDCODE
-
-[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 &BASEADR,W
-CMP #$0A,W
-0= IF               \           if base 10
-    ADD #1,T        \ T = 5     set 5 digits
-ELSE
-    CMP #2,W
-    0= IF           \           if base 2
-        MOV #$10,T  \ T = 16    set 16 digits
+\           SUB #4,PSP      \
+\           MOV T,4(PSP)    \   REMlo
+\           MOV W,2(PSP)    \   REMhi
+    XOR X,Y                 \ Y = sign of Quot
+    CMP #0,Y                \ sign of Quot ?
+    S< IF
+        XOR #-1,S           \ 1 INV(QUOTlo)
+    XOR #-1,TOS             \ 1 INV(QUOThi)
+    ADD #1,S                \ 1 INV(QUOTlo)+1
+    ADDC #0,TOS             \ 1 INV(QUOThi)+C
+    THEN
+    MOV S,0(PSP)            \ 3 QUOTlo
+    MOV @IP+,PC             \ 4
+    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 &BASEADR,W
+    CMP #$0A,W
+    0= IF               \           if base 10
+        ADD #1,T        \ T = 5     set 5 digits
+    ELSE
+        CMP #2,W
+        0= IF           \           if base 2
+            MOV #$10,T  \ T = 16    set 16 digits
+        THEN
     THEN
-THEN
-PUSHM #3,IP         \                   R-- IP sign #digit
-LO2HI
+    PUSHM #3,IP         \                   R-- IP sign #digit
+    LO2HI
     <# DABS         \ -- uQlo uQhi      R-- IP sign #digit
     R> F#S          \ -- uQhi 0         R-- IP sign
     $2C HOLD        \                   $2C = char ','
     #S              \ -- 0 0
     R> SIGN #>      \ -- addr len       R-- IP
-    TYPE $20 EMIT   \ --         
-;
+    TYPE $20 EMIT   \ --
+    ;
 
-CODE S>F    \ convert a signed number to a Q15.16 (signed) number
+    CODE S>F    \ convert a signed number to a Q15.16 (signed) number
     SUB #2,PSP
     MOV #0,0(PSP)
     MOV @IP+,PC
-ENDCODE
-[THEN]
+    ENDCODE
 
-RST_HERE
+    RST_SET
 
 ; -----------------------
 ; complement (volatile) for tests below
 ; -----------------------
 
-[UNDEFINED] ! [IF]
 \ https://forth-standard.org/standard/core/Store
 \ !        x a-addr --   store cell in memory
-CODE !
-MOV @PSP+,0(TOS)    \ 4
-MOV @PSP+,TOS       \ 2
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DOES> [IF]
+    [UNDEFINED] !
+    [IF]
+    CODE !
+    MOV @PSP+,0(TOS)    \ 4
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DOES
 \ DOES>    --          set action for the latest CREATEd definition
-CODE DOES> 
-MOV &LAST_CFA,W         \ W = CFA of CREATEd word
-MOV #DODOES,0(W)        \ replace CFA (DOCON) by new CFA (DODOES)
-MOV IP,2(W)             \ replace PFA by the address after DOES> as execution address
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
+    [UNDEFINED] DOES>
+    [IF]
+    CODE DOES>
+    MOV &LAST_CFA,W         \ W = CFA of CREATEd word
+    MOV #DODOES,0(W)        \ replace CFA (DOCON) by new CFA (DODOES)
+    MOV IP,2(W)             \ replace PFA by the address after DOES> as execution address
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2CONSTANT [IF]
+\ CONSTANT <name>     n --                      define a Forth CONSTANT
+    [UNDEFINED] CONSTANT
+    [IF]
+    : CONSTANT
+    CREATE
+    HI2LO
+    MOV TOS,-2(W)           \   PFA = n
+    MOV @PSP+,TOS
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ 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>       \ execution part    addr -- Qhi Qlo
-HI2LO
-SUB #2,PSP
-MOV 2(TOS),0(PSP)
-MOV @TOS,TOS
-MOV @RSP+,IP
-NEXT
-ENDCODE
-[THEN]
-
-[UNDEFINED] D. [IF]
+    [UNDEFINED] 2CONSTANT
+    [IF]
+    : 2CONSTANT \  udlo/dlo/Qlo udhi/dhi/Qhi --         to create double or Q15.16 CONSTANT
+    CREATE , ,  \ compile Qhi then 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]
+
 \ https://forth-standard.org/standard/double/Dd
 \ D.     dlo dhi --           display d (signed)
-CODE D.
-MOV #U.,W   \ U. + 10 = D.
-ADD #10,W
-MOV W,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] BASE [IF]
+    [UNDEFINED] D.
+    [IF]
+    CODE D.
+    MOV #U.,W   \ U. + 10 = D.
+    ADD #10,W
+    MOV W,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/BASE
 \ BASE    -- a-addr       holds conversion radix
-BASEADR CONSTANT BASE
-[THEN]
+    [UNDEFINED] BASE
+    [IF]
+    BASEADR CONSTANT BASE
+    [THEN]
 
-ECHO
+    ECHO
 
 ; -----------------------
 ; (volatile) tests for FIXPOINT.asm|FIXPOINT.f
@@ -483,58 +515,58 @@ ECHO
 3,14159 2CONSTANT PI
 PI -1,0 F* 2CONSTANT -PI
 
-PI D.   ; D. is not appropriate --> 
+PI D.   ; D. is not appropriate -->
 -PI D.  ; D. is not appropriate -->
 
-PI F.   ; F. is a good choice! ---> 
+PI F.   ; F. is a good choice! --->
 -PI F.  ; F. is a good choice! --->
 
-$10 BASE !   PI F. 
+$10 BASE !   PI F.
             -PI F.
-%10 BASE !   PI F. 
+%10 BASE !   PI F.
             -PI F.
-#10 BASE !   PI F. 
+#10 BASE !   PI F.
             -PI F.
 
- PI  2,0 F* F.     
- PI -2,0 F* F.    
--PI  2,0 F* F.    
--PI -2,0 F* F.     
+ PI  2,0 F* F.
+ PI -2,0 F* F.
+-PI  2,0 F* F.
+-PI -2,0 F* F.
 
- PI  2,0 F/ F.     
- PI -2,0 F/ F.    
--PI  2,0 F/ F.    
--PI -2,0 F/ F.     
+ PI  2,0 F/ F.
+ PI -2,0 F/ F.
+-PI  2,0 F/ F.
+-PI -2,0 F/ F.
 
  32768,0  1,0 F* F. ; overflow! -->
  32768,0  1,0 F/ F. ; overflow! -->
 -32768,0 -1,0 F* F. ; overflow! -->
 -32768,0 -1,0 F/ F. ; overflow! -->
 
-32767,99999 1,0  F* F. 
-32767,99999 1,0  F/ F. 
-32767,99999 2,0  F/ F. 
-32767,99999 4,0  F/ F. 
-32767,99999 8,0  F/ F. 
-32767,99999 16,0 F/ F. 
-
--32768,0 -2,0    F/ F. 
--32768,0 -4,0    F/ F. 
--32768,0 -8,0    F/ F. 
--32768,0 -16,0   F/ F. 
--32768,0 -32,0   F/ F. 
--32768,0 -64,0   F/ F. 
-
--3276,80 -1,0    F/ F. 
--327,680 -1,0    F/ F. 
--32,7680 -1,0    F/ F. 
--3,27680 -1,0    F/ F. 
--0,32768 -1,0    F/ F. 
+32767,99999 1,0  F* F.
+32767,99999 1,0  F/ F.
+32767,99999 2,0  F/ F.
+32767,99999 4,0  F/ F.
+32767,99999 8,0  F/ F.
+32767,99999 16,0 F/ F.
+
+-32768,0 -2,0    F/ F.
+-32768,0 -4,0    F/ F.
+-32768,0 -8,0    F/ F.
+-32768,0 -16,0   F/ F.
+-32768,0 -32,0   F/ F.
+-32768,0 -64,0   F/ F.
+
+-3276,80 -1,0    F/ F.
+-327,680 -1,0    F/ F.
+-32,7680 -1,0    F/ F.
+-3,27680 -1,0    F/ F.
+-0,32768 -1,0    F/ F.
 
 ; SQRT(32768)^2 = 32768
- 181,01933598375  181,01933598375 F* F. 
+ 181,01933598375  181,01933598375 F* F.
  181,01933598375 -181,01933598375 F* F.
 -181,01933598375  181,01933598375 F* F.
 -181,01933598375 -181,01933598375 F* F.
-RST_STATE
+
+RST_RET
diff --git a/MSP430-FORTH/LAST.4TH b/MSP430-FORTH/LAST.4TH
deleted file mode 100644 (file)
index 358d913..0000000
+++ /dev/null
@@ -1,562 +0,0 @@
-
-; ---------------------------------
-; FF_SPECS.4th for MSP_EXP430FR5994
-; ---------------------------------
-
-CODE ABORT_FF_SPECS
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_FF_SPECS
-
-[UNDEFINED] AND [IF]
-CODE AND
-AND @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-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] DROP [IF]
-CODE DROP
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-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] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0= [IF]
-CODE 0=
-SUB #1,R14
-SUBC R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0< [IF]
-CODE 0<
-ADD R14,R14
-SUBC R14,R14
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @R15+,R14
-0<> IF
-    MOV #-1,R14
-    U< IF
-        AND #0,R14
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]
-CODE BEGIN
-    MOV #$4028,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] UNTIL [IF]
-CODE UNTIL
-    MOV #$4034,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE AGAIN
-MOV #$403A,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] WHILE [IF]
-: WHILE
-POSTPONE IF SWAP
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] REPEAT [IF]
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #$4028,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] C@ [IF]
-CODE C@
-MOV.B @R14,R14
-MOV @R13+,R0
-ENDCODE
-[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] 1+ [IF]
-CODE 1+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2* [IF]
-CODE 2*
-ADD R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] UM/MOD [IF]
-CODE UM/MOD
-    PUSH #DROP
-    MOV #$4066,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] MOVE [IF]
-CODE MOVE
-MOV R14,R10
-MOV @R15+,R8
-MOV @R15+,R9
-MOV @R15+,R14
-CMP #0,R10
-0<> IF
-    CMP R9,R8
-    0<> IF
-        U< IF
-            BEGIN
-                MOV.B @R9+,0(R8)
-                ADD #1,R8
-                SUB #1,R10
-            0= UNTIL
-            MOV @R13+,R0
-        THEN
-        ADD R10,R8
-        ADD R10,R9
-        BEGIN
-            SUB #1,R9
-            SUB #1,R8
-            MOV.B @R9,0(R8)
-            SUB #1,R10
-        0= UNTIL
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] WORDS [IF]
-: WORDS
-CR 
-$1DCA @ $1CE4
-$1810 @ 2*
-MOVE
-BEGIN
-    0 DUP
-    $1810 @ 2* 0
-        DO
-        DUP I $1CE4 + @
-            U< IF
-                DROP DROP
-                I DUP $1CE4 + @
-            THEN
-        2 +LOOP
-    ?DUP
-WHILE
-    DUP
-    2 - @
-    ROT
-    $1CE4 +
-    !
-    DUP
-    COUNT $7F AND
-    TYPE
-    C@ $0F AND
-    $10 SWAP - SPACES
-REPEAT
-DROP
-;
-[THEN]
-
-[UNDEFINED] CASE [IF]
-: CASE 0 ; 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 
-[THEN]
-
-[UNDEFINED] S_ [IF]
-CODE S_
-MOV #0,&$1DB4
-COLON
-$4014 ,
-$20 WORD
-HI2LO
-MOV.B @R14,R14
-ADD #1,R14
-BIT #1,R14
-ADDC R14,&$1DC6
-MOV @R15+,R14
-MOV @R1+,R13
-MOV #$20,&$1DB4
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ESC [IF]
-CODE ESC
-CMP #0,&$1DBE
-0= IF MOV @R13+,R0
-THEN
-COLON          
-$1B
-POSTPONE LITERAL
-POSTPONE EMIT
-POSTPONE S_
-POSTPONE TYPE
-; IMMEDIATE
-[THEN]
-
-: SPECS
-PWR_STATE
-ECHO
-ESC [8;40;80t
-39 0 DO CR LOOP
-ESC [H
-ESC [7m
-$0D EMIT ." FastForth V"
-$180E @         
-0 <# # $08 HOLD # '.' HOLD #S #> TYPE
-."  for MSP430FR"
-HERE
-$1A04 @
-CASE
-    $8102   OF  ." 5738,"   $C200   ENDOF 
-    $8103   OF  ." 5739,"   $C200   ENDOF
-    $8160   OF  ." 5948,"   $4400   ENDOF
-    $8169   OF  ." 5969,"   $4400   ENDOF
-    $825D   OF  ." 5972,"   $4400   ENDOF
-    $81A8   OF  ." 6989,"   $4400   ENDOF
-    $810D   OF  ." 5986,"   $4400   ENDOF
-    $81F0   OF  ." 4133,"   $C400   ENDOF
-    $8240   OF  ." 2433,"   $C400   ENDOF
-    $82A1   OF  ." 5994,"   $4000   ENDOF
-    $82A6   OF  ." 5962,"   $4000   ENDOF
-    $830C   OF  ." 2355,"   $8000   ENDOF
-    $830D   OF  ." 2353,"   $C000   ENDOF
-    $831E   OF  ." 2155,"   $8000   ENDOF
-    $831D   OF  ." 2153,"   $C000   ENDOF
-    $832A   OF  ." 2476,"   $8000   ENDOF
-    $832B   OF  ." 2475,"   $8000   ENDOF
-    $833C   OF  ." 2633,"   $C400   ENDOF
-    $833D   OF  ." 2533,"   $C400   ENDOF
-    ABORT" xxxx <-- unrecognized device!"
-ENDCASE
-['] ['] DUP @ $1284 =
-IF ."  DTC=1," DROP
-ELSE 2 + @ $1284 =
-    IF ."  DTC=2,"
-    ELSE ."  DTC=3,"
-    THEN
-THEN
-$20 EMIT 
-$1810 @ U. $08 EMIT ." -Entry word set, "
-$1800 @ 0 1000 UM/MOD U.
-?DUP IF $08 EMIT ',' EMIT U.
-THEN ." MHz, "
-- U. ." bytes"
-ESC [0m
-CR
-." /COUNTED-STRING   = 255" CR 
-." /HOLD             = 34" CR
-." /PAD              = 84" CR
-." ADDRESS-UNIT-BITS = 16" CR
-." FLOORED           = true" CR
-." MAX-CHAR          = 255" CR
-." MAX-N             = 32767" CR
-." MAX-U             = 65535" CR
-." MAX-D             = 2147483647" CR
-." MAX-UD            = 4294967295" CR
-." STACK-CELLS       = 48" CR
-." RETURN-STACK-CELLS= 48" CR
-." DeFiNiTiOnS aRe CaSe-InSeNsItIvE" CR
-CR 
-ESC [7m ." KERNEL SPECS" ESC [0m
-CR
-$1812 @
-    DUP 0< IF ." 32.768kHz XTAL" CR THEN
-2*  DUP 0< IF ." (4/2) UART TERMINAL" CR 2*
-        ELSE  2* DUP
-            0< IF ." (RTS) UART TERMINAL" CR
-            THEN
-        THEN
-2*  DUP 0< IF ." (XON/XOFF) UART TERMINAL" CR
-        THEN
-2*  DUP 0< IF ." Half-Duplex TERMINAL" CR THEN
-2*  DUP 0< IF ." I2C_Master TERMINAL" CR THEN
-2*  DUP 0< IF ." Q15.16 input" CR THEN
-2*  DUP 0< IF ." DOUBLE input" CR THEN
-2*  DUP 0< IF ." MSP430_X assembler" CR 2* 2*
-        ELSE 2*  DUP
-            0< IF ." MSP430 Assembler"
-                2*  DUP 0< IF ."  with 20bits address"
-                    THEN CR
-            ELSE 2*
-            THEN
-        THEN
-2*
-2*
-2*
-2*
-2* 0< IF
-    [DEFINED] DEFER [IF] ." DEFER word set" CR [THEN]
-    [DEFINED] ALSO  [IF] ." VOCABULARY word set" CR [THEN]
-    [DEFINED] LOAD" [IF] ." SD_CARD Loader" CR [THEN]
-    [DEFINED] BOOT  [IF] ." bootloader" CR [THEN]
-    [DEFINED] READ" [IF] ." SD_CARD Read/Write" CR [THEN]
-    CR 
-    ESC [7m ." OPTIONS" ESC [0m
-    CR
-    [DEFINED] {CORE_ANS}  [IF] ." ANS94 core" CR [THEN]
-    [DEFINED] {DOUBLE}    [IF] ." DOUBLE word set" CR [THEN]
-    [DEFINED] {TOOLS}     [IF] ." UTILITY" CR [THEN]
-    [DEFINED] {FIXPOINT}  [IF] ." Q15.16 ADD SUB MUL DIV" CR [THEN]
-    [DEFINED] {CORDIC}    [IF] ." CORDIC engine" CR [THEN]
-    [DEFINED] {SD_TOOLS}  [IF] ." SD_TOOLS" CR [THEN]
-    [DEFINED] {RTC}       [IF] ." RTC utility" CR [THEN]
-    [DEFINED] {UARTI2CS}  [IF] ." UART to I2C_FastForth bridge" CR [THEN]
-    [DEFINED] ALSO
-    [IF] 
-        CR 
-        ESC [7m ." ASSEMBLER word set" ESC [0m
-        ALSO ASSEMBLER WORDS PREVIOUS
-        CR
-    [THEN]
-THEN
-CR
-ESC [7m ." FORTH word set"  ESC [0m
-WORDS
-CR
-HI2LO
-MOV #WARM+4,R0
-ENDCODE
-
-SPECS
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/BOOT.4th b/MSP430-FORTH/MSP_EXP430FR5994/BOOT.4th
deleted file mode 100644 (file)
index 62208c3..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-
-; --------
-; BOOT.4th for MSP_EXP430FR5994
-; --------
-
-CODE ABORT_BOOTSTRAP
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_BOOTSTRAP
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-
-$04 = [IF]
-    LOAD" SD_TEST.4TH"
-[THEN]
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/CHNGBAUD.4TH b/MSP430-FORTH/MSP_EXP430FR5994/CHNGBAUD.4TH
deleted file mode 100644 (file)
index e519753..0000000
+++ /dev/null
@@ -1,429 +0,0 @@
-
-CODE I2CTERM_ABORT
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1812,R14
-BIT #$7800,R14
-0<> IF MOV #0,R14 THEN
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-ABORT" <-- Ouch! unexpected I2C_FastForth target!"
-PWR_STATE
-;
-
-I2CTERM_ABORT
-
-; ------------
-; CHNGBAUD.4th for MSP_EXP430FR5994
-; ------------
-
-[UNDEFINED] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
-CODE DROP
-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] 1+ [IF]
-CODE 1+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U/ [IF]
-CODE U/
-SUB #2,R15
-MOV #0,0(R15)
-CALL #$4066
-MOV @R15,R14
-ADD #4,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[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
-0<> IF
-    AND #0,R14
-ELSE
-    XOR #-1,R14
-THEN
-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] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] CASE [IF]
-: CASE 0 ; 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 
-[THEN]
-
-[UNDEFINED] S_ [IF]
-CODE S_
-MOV #0,&$1DB4
-COLON
-$4014 ,
-$20 WORD
-HI2LO
-MOV.B @R14,R14
-ADD #1,R14
-BIT #1,R14
-ADDC R14,&$1DC6
-MOV @R15+,R14
-MOV @R1+,R13
-MOV #$20,&$1DB4
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ESC [IF]
-CODE ESC
-CMP #0,&$1DBE
-0= IF MOV @R13+,R0
-THEN
-COLON          
-$1B
-POSTPONE LITERAL
-POSTPONE EMIT
-POSTPONE S_
-POSTPONE TYPE
-; IMMEDIATE
-[THEN]
-
-: BAD_MHz
-$20 DUP EMIT 
-        ABORT" only for 1,4,8,16,24 MHz MCLK!"
-;
-
-: OVR_BAUDS
-$20 DUP EMIT ESC [7m
-        ." with MCLK = " $1800 @ 1000 U/ .
-        ABORT" MHz? don't dream!"
-;
-
-: CHNGBAUD
-PWR_STATE
-ECHO
-ESC [8;42;128t
-41 0 DO CR LOOP
-ESC [H
-
-$1800 @ DUP >R
-." target MCLK = " 1000 U/ . ." MHz" CR
-." choose your baudrate:" CR
-."  0 --> 6 MBds" CR
-."  1 --> 5 MBds" CR
-."  2 --> 4 MBds" CR
-."  3 --> 3 MBds" CR
-."  4 --> 1843200 Bds" CR
-."  5 --> 921600 Bds" CR
-."  6 --> 460800 Bds" CR
-."  7 --> 230400 Bds" CR
-."  8 --> 115200 Bds" CR
-."  9 --> 38400 Bds" CR
-."  A --> 19200 Bds" CR
-."  B --> 9600 Bds" CR
-." other --> abort" CR
-." your choice: "
-KEY
-
-CASE
-#48 OF  ." 6 MBds"
-        R> CASE
-            #24000 OF $4 $0
-                   ENDOF
-            24000 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#49 OF  ." 5 MBds"
-        R> CASE
-            #24000 OF $4 $EE00  ENDOF
-            #20000 OF $4 $0     ENDOF
-            20000 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#50 OF  ." 4 MBds"
-        R> CASE
-            #24000 OF $6 $0     ENDOF
-            #20000 OF $5 $0     ENDOF
-            #16000 OF $4 $0     ENDOF
-            16000 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#51 OF  ." 3 MBds"
-        R> CASE
-            #24000 OF $8 $0     ENDOF
-            #20000 OF $6 $D600  ENDOF
-            #16000 OF $5 $4900  ENDOF
-            #12000 OF $4 $0     ENDOF
-            12000 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#52 OF  ." 1843200 Bds"
-        R> CASE
-            #24000 OF $0D $0200 ENDOF
-            #20000 OF $0A $DF00 ENDOF
-            #16000 OF $8 $D600  ENDOF
-            #12000 OF $6 $AA00  ENDOF
-            #8000  OF $5 $9200  ENDOF
-            8000 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#53 OF  ." 921600 Bds"
-        R> CASE
-            #24000 OF $1 $00A1  ENDOF
-            #20000 OF $1 $B751  ENDOF
-            #16000 OF $11 $4A00 ENDOF
-            #12000 OF $0D $0200  ENDOF
-            #8000  OF $8 $D600  ENDOF
-            #4000  OF $4 $4900  ENDOF
-            4000 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#54 OF  ." 460800 Bds"
-        R> CASE
-            #24000 OF $3 $0241  ENDOF
-            #20000 OF $2 $92B1  ENDOF
-            #16000 OF $2 $BB21  ENDOF
-            #12000 OF $1 $00A1  ENDOF
-            #8000  OF $11 $4A00 ENDOF
-            #4000  OF $8 $D600  ENDOF
-            #2000  OF $4 $4900  ENDOF
-            2000 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#55 OF  ." 230400 Bds"
-        R> CASE
-            #24000 OF $6 $2081  ENDOF
-            #20000 OF $5 $EE61  ENDOF
-            #16000 OF $4 $5551  ENDOF
-            #12000 OF $3 $0241  ENDOF
-            #8000  OF $2 $BB21  ENDOF
-            #4000  OF $11 $4A00 ENDOF
-            #2000  OF $8 $D600  ENDOF
-            #1000  OF $4 $4900  ENDOF
-            1000 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#56 OF  ." 115200 Bds"
-        R> CASE
-            #24000 OF $0D $4901 ENDOF
-            #20000 OF $0A $AD01 ENDOF
-            #16000 OF $8 $F7A1  ENDOF
-            #12000 OF $6 $2081  ENDOF
-            #8000  OF $4 $5551  ENDOF
-            #4000  OF $2 $BB21  ENDOF
-            #2000  OF $11 $4A00 ENDOF
-            #1000  OF $8 $D600  ENDOF
-            #500   OF $4 $4900  ENDOF
-            500 <   
-            IF OVR_BAUDS
-            THEN BAD_MHz
-        ENDCASE
-    ENDOF
-#57 OF  ." 38400 Bds"
-        R> CASE
-            #24000  OF $27 $0011    ENDOF
-            #16000  OF $1A $D601    ENDOF
-            #8000   OF $0D $4901    ENDOF
-            #4000   OF $6 $2081     ENDOF
-            #1000   OF $1 $00A1     ENDOF
-            BAD_MHz
-        ENDCASE
-    ENDOF
-#65 OF  ." 19200 Bds"
-        R> CASE
-            #24000  OF $4E $0021    ENDOF
-            #16000  OF $34 $4911    ENDOF
-            #8000   OF $1A $D601    ENDOF
-            #4000   OF $0D $4901    ENDOF
-            #1000   OF $3 $0241     ENDOF
-            BAD_MHz
-        ENDCASE
-    ENDOF
-#66 OF  ." 9600 Bds"
-        R> CASE
-            #24000  OF $9C $0041    ENDOF
-            #16000  OF $68 $D621    ENDOF
-            #8000   OF $34 $4911    ENDOF
-            #4000   OF $1A $D601    ENDOF
-            #1000   OF $6 $2081     ENDOF
-            BAD_MHz
-        ENDCASE
-    ENDOF
-    ." abort" ABORT" "
-ENDCASE
-$1804 !
-$1802 !
-CR ESC [7m
-." Change baudrate in Teraterm, save its setup, then reset target."
-;
-
-CHNGBAUD 
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/CORDIC.4TH b/MSP430-FORTH/MSP_EXP430FR5994/CORDIC.4TH
deleted file mode 100644 (file)
index 8c042b2..0000000
+++ /dev/null
@@ -1,505 +0,0 @@
-
-CODE ABORT_CORDIC
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1812,R14
-BIT #$400,R14
-0<> IF MOV #0,R14 THEN
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-ABORT" build FastForth with FIXPOINT_INPUT addon !"
-PWR_STATE
-;
-
-ABORT_CORDIC
-
-; ----------
-; CORDIC.4th for MSP_EXP430FR5994
-; ----------
-
-[DEFINED] {CORDIC} [IF] {CORDIC} [THEN]
-
-MARKER {CORDIC}
-
-
-
-CREATE T_ARCTAN
-12870 ,
-7598 ,
-4014 ,
-2038 ,
-1023 ,
-512 ,
-256 ,
-128 ,
-64 ,
-32 ,
-16 ,
-8 ,
-4 ,
-2 ,
-1 ,
-
-CREATE T_SCALE
-46340 ,
-41448 ,
-40211 ,
-39900 ,
-39822 ,
-39803 ,
-39798 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-39797 ,
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @R15+,R14
-0<> IF
-    MOV #-1,R14
-    U< IF
-        AND #0,R14
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DABS [IF]
-CODE DABS
-AND #-1,R14
-S< IF
-    XOR #-1,0(R15)
-    XOR #-1,R14
-    ADD #1,0(R15)
-    ADDC #0,R14
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] HOLDS [IF]
-CODE HOLDS
-            MOV @R15+,R9
-BW3         ADD R14,R9
-            MOV &$1DB2,R8
-BEGIN       SUB #1,R9
-            SUB #1,R14
-U>= WHILE   SUB #1,R8
-            MOV.B @R9,0(R8)
-REPEAT      MOV R8,&$1DB2
-            MOV @R15+,R14
-            MOV @R13+,R0
-ENDCODE
-[THEN]
-
-$81EF $1A04 @ U< 
-$1A04 @ $81F3 U<
-= [IF]   ; MSP430FR413x subfamily without hardware_MPY
-
-[UNDEFINED] F#S [IF]
-CODE F#S
-            MOV @R15,R12
-            MOV #0,R11
-            PUSHM #3,R13
-            MOV 2(R15),0(R15)
-            MOV R14,2(R15)
-BEGIN       MOV &$1DDC,R14
-            LO2HI
-            UM*
-            HI2LO
-            CMP #10,R14
-    U>= IF  ADD #7,R14
-    THEN    ADD #$30,R14
-            MOV @R1,R11
-            MOV.B R14,$1D90(R11)
-            ADD #1,R11
-            MOV R11,0(R1)
-            CMP 2(R15),R11
-U>= UNTIL   POPM #3,R13
-            MOV R11,R14
-            MOV R12,2(R15)
-            MOV #0,0(R15)
-            MOV #$1D90,R9
-            GOTO BW3
-ENDCODE
-[THEN]
-
-HDNCODE XSCALE
-            MOV T_SCALE(R10),R6
-UMSTAR1     MOV #0,R8
-            MOV #0,R12
-            MOV #0,R11
-            MOV #1,R10
-BEGIN       BIT R10,R6
-    0<> IF  ADD R9,R12
-            ADDC R8,R11
-    THEN    ADD R9,R9
-            ADDC R8,R8
-            ADD R10,R10
-U>= UNTIL
-            MOV R11,R9
-            MOV #$40E2,R6
-            MOV @R1+,R0
-ENDCODE
-
-[ELSE] ; hardware multiplier
-
-[UNDEFINED] F#S [IF]
-CODE F#S
-            MOV 2(R15),R9
-            MOV @R15,2(R15)
-            MOV R9,0(R15)
-            MOV R14,R11
-            MOV #0,R12
-BEGIN       MOV @R15,&$4C0
-            MOV &$1DDC,&$4C8
-            MOV &$4E4,0(R15)
-            MOV &$4E6,R14
-            CMP #10,R14
-    U>= IF  ADD #7,R14
-    THEN    ADD #$30,R14
-            MOV.B R14,$1D90(R12)
-            ADD #1,R12
-            CMP R11,R12
-0= UNTIL    MOV R11,R14
-            MOV #0,0(R15)
-            MOV #$1D90,R9
-            GOTO BW3
-ENDCODE
-[THEN]
-
-HDNCODE XSCALE
-MOV T_SCALE(R10),&$4D4
-MOV #0,&$4D6
-MOV R9,&$4C8
-MOV &$4E6,R9
-MOV @R1+,R0
-ENDCODE
-
-[THEN]  ; end of hardware multiplier
-
-CODE POL2REC
-PUSH R13
-MOV @R15+,&$4D0
-MOV R14,&$4D2
-MOV #286,&$4C8
-MOV &$4E4,R8
-MOV &$4E6,R14
-MOV #-1,R13
-MOV @R15,R9
-MOV #0,R8
-BEGIN
-    ADD #1,R13
-    MOV R9,R12
-    MOV R8,R11
-    MOV #0,R10
-    GOTO FW1
-    BEGIN
-        RRA R12
-        RRA R11
-        ADD #1,R10
-FW1     CMP R13,R10
-    0= UNTIL
-    ADD R10,R10
-    CMP #0,R14
-    0>= IF
-        SUB R11,R9
-        ADD R12,R8
-        SUB T_ARCTAN(R10),R14
-    ELSE
-        ADD R11,R9
-        SUB R12,R8
-        ADD T_ARCTAN(R10),R14
-    THEN
-    CMP #0,R14
-    0<> WHILE
-        CMP #14,R13
-0= UNTIL 
-    THEN
-CALL #XSCALE
-MOV R9,0(R15)
-MOV R8,R9
-CALL #XSCALE
-MOV R9,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-
-
-CODE REC2POL
-MOV @R15,R9
-MOV R14,R8
-MOV R8,R11
-CMP #0,R11
-S< IF
-    XOR #-1,R11
-    ADD #1,R11
-THEN
-MOV R9,R12
-CMP #0,R12
-S< IF 
-    XOR #-1,R12
-    ADD #1,R12
-THEN
-MOV #-1,R14
-CMP #0,R9
-0= IF
-    CMP #0,R8
-    0= IF
-        LO2HI 
-            ABORT" null inputs!"
-        HI2LO
-    THEN
-THEN
-CMP R12,R11
-U< IF
-    MOV R12,R11
-THEN
-CMP #16384,R11
-    U>= IF
-    LO2HI
-        ABORT" |x| or |y| >= 16384"
-    HI2LO
-    THEN
-MOV #1,R12
-RLAM #3,R11
-GOTO FW1
-BEGIN
-    ADD R9,R9
-    ADD R8,R8
-    ADD R12,R12
-    ADD R11,R11
-FW1
-U>= UNTIL
-PUSHM #2,R13
-MOV #-1,R13
-MOV #0,R14
- BEGIN
-    ADD #1,R13
-    MOV R9,R12
-    MOV R8,R11
-    MOV #0,R10
-    GOTO FW1
-    BEGIN
-        RRA R12
-        RRA R11
-        ADD #1,R10
-FW1     CMP R13,R10
-    0= UNTIL
-    ADD R10,R10
-    CMP #0,R8
-    S>= IF
-        ADD R11,R9
-        SUB R12,R8
-        ADD T_ARCTAN(R10),R14
-    ELSE
-        SUB R11,R9
-        ADD R12,R8
-        SUB T_ARCTAN(R10),R14
-    THEN
-    CMP #0,R8
-    0<> WHILE
-    CMP #14,R13
- 0= UNTIL
-    THEN
-CALL #XSCALE
-POPM #2,R13
-GOTO FW1                
-BEGIN
-    RRA R9
-FW1 RRA R12
-U>= UNTIL
-MOV R9,0(R15)
-
-SUB #4,R15
-MOV R14,R6
-CMP #0,R6
-S< IF
-    XOR #-1,R14
-    ADD #1,R14
-THEN
-MOV #0,2(R15)
-MOV R14,0(R15)
-MOV #286,R14
-CALL #$4066
-MOV @R15+,0(R15)
-CMP #0,R6
-S< IF
-    XOR #-1,0(R15)
-    XOR #-1,R14
-    ADD #1,0(R15)
-    ADDC #0,R14
-THEN
-MOV #$40E2,R6
-MOV @R13+,R0
-ENDCODE
-
-
-[UNDEFINED] F. [IF]
-CODE F.
-MOV R14,R12
-MOV #4,R11
-MOV &$1DDC,R10
-CMP ##10,R10
-0= IF
-    ADD #1,R11
-ELSE
-    CMP #%10,R10
-    0= IF
-        MOV #16,R11
-    THEN
-THEN
-PUSHM #3,R13
-LO2HI
-    <# DABS
-    R> F#S
-    $2C HOLD
-    #S
-    R> SIGN #>
-    TYPE $20 EMIT
-;
-
-[THEN]
-
-PWR_HERE
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-ECHO
-
-[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]
-
-; -----------------------------------------------------------
-; requires FIXPOINT_INPUT kernel addon, see forthMSP430FR.asm
-; -----------------------------------------------------------
-
-
-10000 89,0 POL2REC . .  ; sin, cos --> 
-10000 75,0 POL2REC . .  ; sin, cos --> 
-10000 60,0 POL2REC . .  ; sin, cos --> 
-10000 45,0 POL2REC . .  ; sin, cos --> 
-10000 30,0 POL2REC . .  ; sin, cos --> 
-10000 15,0 POL2REC . .  ; sin, cos --> 
-10000 1,0 POL2REC . .   ; sin, cos --> 
-16384 30,0 POL2REC SWAP . . ; x, y --> 
-16384 45,0 POL2REC SWAP . . ; x, y --> 
-16384 60,0 POL2REC SWAP . . ; x, y --> 
-
-10000 -89,0 POL2REC . .  ; sin, cos --> 
-10000 -75,0 POL2REC . .  ; sin, cos --> 
-10000 -60,0 POL2REC . .  ; sin, cos --> 
-10000 -45,0 POL2REC . .  ; sin, cos --> 
-10000 -30,0 POL2REC . .  ; sin, cos --> 
-10000 -15,0 POL2REC . .  ; sin, cos --> 
-10000 -1,0 POL2REC . .   ; sin, cos --> 
-16384 -30,0 POL2REC SWAP . . ; x, y --> 
-16384 -45,0 POL2REC SWAP . . ; x, y --> 
-16384 -60,0 POL2REC SWAP . . ; x, y --> 
-
--10000 89,0 POL2REC . .  ; sin, cos --> 
--10000 75,0 POL2REC . .  ; sin, cos --> 
--10000 60,0 POL2REC . .  ; sin, cos --> 
--10000 45,0 POL2REC . .  ; sin, cos --> 
--10000 30,0 POL2REC . .  ; sin, cos --> 
--10000 15,0 POL2REC . .  ; sin, cos --> 
--10000 1,0 POL2REC . .   ; sin, cos --> 
--16384 30,0 POL2REC SWAP . . ; x, y --> 
--16384 45,0 POL2REC SWAP . . ; x, y --> 
--16384 60,0 POL2REC SWAP . . ; x, y --> 
-
--10000 -89,0 POL2REC . .  ; sin, cos --> 
--10000 -75,0 POL2REC . .  ; sin, cos --> 
--10000 -60,0 POL2REC . .  ; sin, cos --> 
--10000 -45,0 POL2REC . .  ; sin, cos --> 
--10000 -30,0 POL2REC . .  ; sin, cos --> 
--10000 -15,0 POL2REC . .  ; sin, cos --> 
--10000 -1,0 POL2REC . .   ; sin, cos --> 
--16384 -30,0 POL2REC SWAP . . ; x, y --> 
--16384 -45,0 POL2REC SWAP . . ; x, y --> 
--16384 -60,0 POL2REC SWAP . . ; x, y --> 
-
-
-2  1  REC2POL F. .          ; phase module --> 
-2 -1  REC2POL F. .          ; phase module --> 
-20  10  REC2POL F. .        ; phase module --> 
-20 -10  REC2POL F. .        ; phase module --> 
-200 100 REC2POL F. .        ; phase module --> 
-100 -100 REC2POL F. .       ; phase module --> 
-2000 1000 REC2POL F. .      ; phase module --> 
-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 --> 
-
--2  1  REC2POL F. .          ; phase module --> 
--2 -1  REC2POL F. .          ; phase module --> 
--20  10  REC2POL F. .        ; phase module --> 
--20 -10  REC2POL F. .        ; phase module --> 
--200 100 REC2POL F. .        ; phase module --> 
--100 -100 REC2POL F. .       ; phase module --> 
--2000 1000 REC2POL F. .      ; phase module --> 
--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 --> 
-
-10000 89,0 POL2REC REC2POL   ROT . F. 
-10000 75,0 POL2REC REC2POL   ROT . F. 
-10000 60,0 POL2REC REC2POL   ROT . F. 
-10000 45,0 POL2REC REC2POL   ROT . F. 
-10000 30,0 POL2REC REC2POL   ROT . F. 
-10000 26,565 POL2REC REC2POL ROT . F. 
-10000 15,0 POL2REC REC2POL   ROT . F. 
-10000 14,036 POL2REC REC2POL ROT . F. 
-10000 7,125 POL2REC REC2POL  ROT . F. 
-10000 1,0 POL2REC REC2POL    ROT . F. 
-
-
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/CORE_ANS.4TH b/MSP430-FORTH/MSP_EXP430FR5994/CORE_ANS.4TH
deleted file mode 100644 (file)
index b8f35fd..0000000
+++ /dev/null
@@ -1,1046 +0,0 @@
-
-CODE ABORT_CORE_ANS
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_CORE_ANS
-
-; ---------------------------------
-; CORE_ANS.4th for MSP_EXP430FR5994
-; ---------------------------------
-; words complement to pass CORETEST.4TH
-
-[DEFINED] {CORE_ANS} [IF]  {CORE_ANS} [THEN]
-
-[UNDEFINED] {CORE_ANS} [IF]
-
-MARKER {CORE_ANS}
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] EXIT [IF]
-CODE EXIT
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DEPTH [IF]
-CODE DEPTH
-MOV R14,-2(R15)
-MOV #$1C80,R14
-SUB R15,R14
-RRA R14
-SUB #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
-CODE DROP
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] NIP [IF]
-CODE NIP
-ADD #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] @ [IF]
-CODE @
-MOV @R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] ! [IF]
-CODE !
-MOV @R15+,0(R14)
-MOV @R15+,R14
-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] 0= [IF]
-CODE 0=
-SUB #1,R14
-SUBC R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0< [IF]
-CODE 0<
-ADD R14,R14
-SUBC R14,R14
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @R15+,R14
-0<> IF
-    MOV #-1,R14
-    U< IF
-        AND #0,R14
-    THEN
-THEN
-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] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]
-CODE BEGIN
-    MOV #$4028,R0
-ENDCODE IMMEDIATE
-
-CODE UNTIL
-    MOV #$4034,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE AGAIN
-MOV #$403A,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-
-: WHILE
-POSTPONE IF SWAP
-; IMMEDIATE
-
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] J [IF]
-CODE J
-SUB #2,R15      
-MOV R14,0(R15)
-MOV 4(R1),R14
-SUB 6(R1),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] UNLOOP [IF]
-CODE UNLOOP
-ADD #4,R1
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] LEAVE [IF]
-CODE LEAVE
-MOV &$1DC6,R10
-MOV #UNLOOP,0(R10)
-MOV #$403A,2(R10)
-ADD #6,&$1DC6
-ADD #2,&$1C00
-ADD #4,R10
-MOV &$1C00,R9
-MOV R10,0(R9)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] AND [IF]
-CODE AND
-AND @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] OR [IF]
-CODE OR
-BIS @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] XOR [IF]
-CODE XOR
-XOR @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] S>D [IF]
-: S>D
-    DUP 0<
-;
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
-CODE 1+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1- [IF]
-CODE 1-
-SUB #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] INVERT [IF]
-CODE INVERT
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] NEGATE [IF]
-CODE NEGATE
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] ABS [IF]
-CODE ABS
-CMP #0,R14
-0>= IF
-    MOV @R13+,R0
-THEN
-MOV #NEGATE,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] LSHIFT [IF]
-CODE LSHIFT
-            MOV @R15+,R10
-            AND #$1F,R14
-0<> IF
-    BEGIN   ADD R10,R10
-            SUB #1,R14
-    0= UNTIL
-THEN        MOV R10,R14
-            MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] RSHIFT [IF]
-CODE RSHIFT
-            MOV @R15+,R10
-            AND #$1F,R14
-0<> IF
-    BEGIN   BIC #1,R2
-            RRC R10
-            SUB #1,R14
-    0= UNTIL
-THEN        MOV R10,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]
-
-[THEN]
-
-[UNDEFINED] 2* [IF]
-CODE 2*
-ADD R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2/ [IF]
-CODE 2/
-RRA R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-$1A00 4 + @ $81F3 U<
-$81EF $1A00 4 + @ U< 
-= [IF]   ; MSP430FR2xxx|MSP430FR4xxx subfamilies without hardware_MPY
-
-    [UNDEFINED] M* [IF]
-    
-
-
-    CODE M*
-    MOV @R15,R12
-    CMP #0,R12
-    S< IF
-        XOR #-1,0(R15)
-        ADD #1,0(R15)
-    THEN
-    XOR R14,R12
-    CMP #0,R14
-    S< IF
-        XOR #-1,R14
-        ADD #1,R14
-    THEN
-    PUSHM #2,R13
-    LO2HI
-    UM*       
-    HI2LO
-    POPM #2,R13
-    CMP #0,R12
-    S< IF
-        XOR #-1,0(R15)
-        XOR #-1,R14
-        ADD #1,0(R15)
-        ADDC #0,R14
-    THEN
-    MOV @R13+,R0
-    ENDCODE
-    [THEN]
-
-[ELSE]  ; MSP430FRxxxx with hardware_MPY
-
-[UNDEFINED] UM* [IF]
-CODE UM*
-    MOV @R15,&$4C0
-BW1 MOV R14,&$4C8
-    MOV &$4E4,0(R15)
-    MOV &$4E6,R14
-    MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] M* [IF]
-CODE M*
-    MOV @R15,&$4C2
-    GOTO BW1
-ENDCODE
-[THEN]
-
-[THEN]
-
-[UNDEFINED] UM/MOD [IF]
-CODE UM/MOD
-    PUSH #DROP
-    MOV #$4066,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SM/REM [IF]
-CODE SM/REM
-MOV R14,R12
-MOV @R15,R11
-CMP #0,R14
-S< IF
-    XOR #-1,R14
-    ADD #1,R14
-THEN
-CMP #0,0(R15)
-S< IF
-    XOR #-1,2(R15)
-    XOR #-1,0(R15)
-    ADD #1,2(R15)
-    ADDC #0,0(R15)
-THEN
-PUSHM #3,R13
-LO2HI
-    UM/MOD
-HI2LO
-POPM #3,R13
-CMP #0,R11
-S< IF
-    XOR #-1,0(R15)
-    ADD #1,0(R15)
-THEN
-XOR R12,R11
-CMP #0,R11
-S< IF
-    XOR #-1,R14
-    ADD #1,R14
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] FM/MOD [IF]
-: FM/MOD
-SM/REM
-HI2LO
-CMP #0,0(R15)
-0<> IF
-    CMP #1,R14
-    S< IF
-      ADD R12,0(R15)
-      SUB #1,R14
-    THEN
-THEN
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] * [IF]
-: *
-M* DROP
-;
-[THEN]
-
-[UNDEFINED] /MOD [IF]
-: /MOD
->R DUP 0< R> FM/MOD
-;
-[THEN]
-
-[UNDEFINED] / [IF]
-: /
->R DUP 0< R> FM/MOD NIP
-;
-[THEN]
-
-[UNDEFINED] MOD [IF]
-: MOD
->R DUP 0< R> FM/MOD DROP
-;
-[THEN]
-
-[UNDEFINED] */MOD [IF]
-: */MOD
->R M* R> FM/MOD
-;
-[THEN]
-
-[UNDEFINED] */ [IF]
-: */
->R M* R> FM/MOD NIP
-;
-[THEN]
-
-[UNDEFINED] OVER [IF]
-CODE OVER
-MOV R14,-2(R15)
-MOV @R15,R14
-SUB #2,R15
-MOV @R13+,R0
-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] R@ [IF]
-CODE R@
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] TUCK [IF]
-: TUCK SWAP OVER ;
-[THEN]
-
-[UNDEFINED] 2@ [IF]
-CODE 2@
-BW1 SUB #2,R15
-    MOV 2(R14),0(R15)
-    MOV @R14,R14
-    MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2! [IF]
-CODE 2!
-BW2 MOV @R15+,0(R14)
-    MOV @R15+,2(R14)
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DUP [IF]
-CODE 2DUP
-MOV R14,-2(R15)
-MOV @R15,-4(R15)
-SUB #4,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DROP [IF]
-CODE 2DROP
-ADD #2,R15
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2SWAP [IF]
-CODE 2SWAP
-MOV @R15,R10
-MOV 4(R15),0(R15)
-MOV R10,4(R15)
-MOV R14,R10
-MOV 2(R15),R14
-MOV R10,2(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2OVER [IF]
-CODE 2OVER
-SUB #4,R15
-MOV R14,2(R15)
-MOV 8(R15),0(R15)
-MOV 6(R15),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-
-[UNDEFINED] ALIGNED [IF]
-CODE ALIGNED
-BIT #1,R14
-ADDC #0,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] ALIGN [IF]
-CODE ALIGN
-BIT #1,&$1DC6
-ADDC #0,&$1DC6
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-
-[UNDEFINED] CHARS [IF]
-CODE CHARS
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CHAR+ [IF]
-CODE CHAR+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CELLS [IF]
-CODE CELLS
-ADD R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CELL+ [IF]
-CODE CELL+
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-
-[UNDEFINED] CHAR [IF]
-: CHAR
-    $20 WORD 1+ C@
-;
-[THEN]
-
-[UNDEFINED] [CHAR] [IF]
-: [CHAR]
-    CHAR POSTPONE LITERAL
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] +! [IF]
-CODE +!
-ADD @R15+,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] MOVE [IF]
-CODE MOVE
-MOV R14,R10
-MOV @R15+,R8
-MOV @R15+,R9
-MOV @R15+,R14
-CMP #0,R10
-0<> IF
-    CMP R9,R8
-    0<> IF
-        U< IF
-            BEGIN
-                MOV.B @R9+,0(R8)
-                ADD #1,R8
-                SUB #1,R10
-            0= UNTIL
-            MOV @R13+,R0
-        THEN
-        ADD R10,R8
-        ADD R10,R9
-        BEGIN
-            SUB #1,R9
-            SUB #1,R8
-            MOV.B @R9,0(R8)
-            SUB #1,R10
-        0= UNTIL
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-
-[UNDEFINED] FILL [IF]
-CODE FILL
-MOV @R15+,R9
-MOV @R15+,R10
-CMP #0,R9
-0<> IF
-    BEGIN
-        MOV.B R14,0(R10)
-        ADD #1,R10
-        SUB #1,R9
-    0= UNTIL
-THEN
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #$4028,R0
-ENDCODE
-[THEN]
-
-
-[UNDEFINED] HEX [IF]
-CODE HEX
-MOV #$10,&$1DDC
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DECIMAL [IF]
-CODE DECIMAL
-MOV #$0A,&$1DDC
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] ( [IF]
-: ( 
-')' WORD DROP
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] .( [IF]
-CODE .(
-MOV #0,&$1DB4
-COLON
-')' WORD
-COUNT TYPE
-$20 $1DB4 !
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] EXECUTE [IF]
-CODE EXECUTE
-PUSH R14
-MOV @R15+,R14
-MOV @R1+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] EVALUATE [IF]
-CODE EVALUATE
-MOV #$1DC0,R9
-MOV @R9+,R12
-MOV @R9+,R11
-MOV @R9+,R10
-PUSHM #4,R13
-LO2HI
-INTERPRET
-HI2LO
-MOV @R1+,&$1DC4
-MOV @R1+,&$1DC2
-MOV @R1+,&$1DC0
-MOV @R1+,R13 
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] RECURSE [IF]
-CODE RECURSE
-MOV &$1DC6,R9
-MOV &$1DBA,0(R9)
-ADD #2,&$1DC6
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] SOURCE [IF]
-CODE SOURCE
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1DC0,R14
-MOV &$1DC2,0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DOES> [IF]
-CODE DOES> 
-MOV &$1DBA,R10
-MOV #$1285,0(R10)
-MOV R13,2(R10)
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] VARIABLE [IF]
-: VARIABLE 
-CREATE
-HI2LO
-MOV #$1287,-4(R10)
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] BASE [IF]
-$1DDC CONSTANT BASE
-[THEN]
-
-[UNDEFINED] >IN [IF]
-$1DC4 CONSTANT >IN
-[THEN]
-
-[UNDEFINED] PAD [IF]
-$1CE4 CONSTANT PAD
-[THEN]
-
-[UNDEFINED] BL [IF]
-$20 CONSTANT BL
-[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] TO [IF]
-CODE TO
-BIS #$200,R2
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] VALUE [IF]
-: VALUE
-CREATE ,
-DOES> 
-HI2LO
-MOV @R1+,R13
-BIT #$200,R2
-0= IF
-    MOV @R14,R14
-    MOV @R13+,R0
-THEN 
-BIC #$200,R2
-MOV @R15+,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-RST_HERE
-
-[THEN]
-
-ECHO
-; CORE_ANS.4th for MSP_EXP430FR5994 is loaded
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/DOUBLE.4TH b/MSP430-FORTH/MSP_EXP430FR5994/DOUBLE.4TH
deleted file mode 100644 (file)
index b7f7c4b..0000000
+++ /dev/null
@@ -1,1435 +0,0 @@
-
-CODE ABORT_DOUBLE
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1812,R14
-BIT #$200,R14
-0<> IF MOV #0,R14 THEN
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-ABORT" build FastForth with DOUBLE_INPUT addon !"
-PWR_STATE
-;
-
-ABORT_DOUBLE
-
-; -----------------------------------------------------
-; DOUBLE.4th for MSP_EXP430FR5994
-; -----------------------------------------------------
-
-[DEFINED] {DOUBLE} [IF]  {DOUBLE} [THEN]
-
-MARKER {DOUBLE}
-
-[UNDEFINED] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] @ [IF]
-CODE @
-MOV @R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] ! [IF]
-CODE !
-MOV @R15+,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] C@ [IF]
-CODE C@
-MOV.B @R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,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] 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] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,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] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] TO [IF]
-CODE TO
-BIS #$200,R2
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DOES> [IF]
-CODE DOES> 
-MOV &$1DBA,R10
-MOV #DODOES,0(R10)
-MOV R13,2(R10)
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[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] 2@ [IF]
-CODE 2@
-SUB #2,R15
-MOV 2(R14),0(R15)
-MOV @R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2! [IF]
-CODE 2!
-MOV @R15+,0(R14)
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DUP [IF]
-CODE 2DUP
-SUB #4,R15
-MOV R14,2(R15)
-MOV 4(R15),0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DROP [IF]
-CODE 2DROP
-ADD #2,R15
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2SWAP [IF]
-CODE 2SWAP
-MOV @R15,R10
-MOV 4(R15),0(R15)
-MOV R10,4(R15)
-MOV R14,R10
-MOV 2(R15),R14
-MOV R10,2(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2OVER [IF]
-CODE 2OVER
-SUB #4,R15
-MOV R14,2(R15)
-MOV 8(R15),0(R15)
-MOV 6(R15),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2>R [IF]
-CODE 2>R
-PUSH @R15+
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2R@ [IF]
-CODE 2R@
-SUB #4,R15
-MOV R14,2(R15)
-MOV @R1,R14
-MOV 2(R1),0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2R> [IF]
-CODE 2R>
-SUB #4,R15
-MOV R14,2(R15)
-MOV @R1+,R14
-MOV @R1+,0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-
-[UNDEFINED] D. [IF]
-CODE D.
-MOV #U.,R10
-ADD #10,R10
-MOV R10,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2ROT [IF]
-CODE 2ROT
-MOV 8(R15),R9
-MOV 6(R15),R8
-MOV 4(R15),8(R15)
-MOV 2(R15),6(R15)
-MOV @R15,4(R15)
-MOV R14,2(R15)
-MOV R9,0(R15)
-MOV R8,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D>S [IF]
-CODE D>S
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D0= [IF]
-CODE D0=
-CMP #0,R14
-MOV #0,R14
-0= IF
-    CMP #0,0(R15)
-    0= IF
-        MOV #-1,R14
-    THEN
-THEN
-ADD #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D0< [IF]
-CODE D0<
-CMP #0,R14
-MOV #0,R14
-S< IF
-    MOV #-1,R14
-THEN
-ADD #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D= [IF]
-CODE D=
-CMP R14,2(R15)
-MOV #0,R14
-0= IF
-    CMP @R15,4(R15)
-    0= IF
-    MOV #-1,R14
-    THEN
-THEN
-ADD #6,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D< [IF]
-CODE D<
-CMP R14,2(R15)
-MOV #0,R14
-S< IF
-    MOV #-1,R14
-THEN
-0= IF
-    CMP @R15,4(R15)
-    U< IF
-        MOV #-1,R14
-    THEN
-THEN
-ADD #6,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DU< [IF]
-CODE DU<
-CMP R14,2(R15)
-MOV #0,R14
-U< IF
-    MOV #-1,R14
-THEN
-0= IF
-    CMP @R15,4(R15)
-    U< IF
-        MOV #-1,R14
-    THEN
-THEN
-ADD #6,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D+ [IF]
-CODE D+
-BW1 ADD @R15+,2(R15)
-    ADDC @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] M+ [IF]
-CODE M+
-SUB #2,R15
-CMP #0,R14
-MOV R14,0(R15)
-MOV #-1,R14
-0>= IF
-    MOV #0,R14
-THEN
-GOTO BW1
-ENDCODE
-[THEN]
-
-[UNDEFINED] D- [IF]
-CODE D-
-SUB @R15+,2(R15)
-SUBC R14,0(R15)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DNEGATE [IF]
-CODE DNEGATE
-XOR #-1,0(R15)
-XOR #-1,R14
-ADD #1,0(R15)
-ADDC #0,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DABS [IF]
-CODE DABS
-CMP #0,R14
-0>= IF
-    MOV @R13+,R0
-THEN
-MOV #DNEGATE,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D2/ [IF]
-CODE D2/
-RRA R14
-RRC 0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D2* [IF]
-CODE D2*
-ADD @R15,0(R15)
-ADDC R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DMAX [IF]
-: DMAX
-2OVER 2OVER
-D< IF
-    2>R 2DROP 2R>
-ELSE
-    2DROP
-THEN
-;
-[THEN]
-
-[UNDEFINED] DMIN [IF]
-: DMIN
-2OVER 2OVER
-D< IF
-    2DROP
-ELSE 2>R 2DROP 2R>
-THEN
-;
-
-$1A04 C@ $EF > [IF] ; test for MSP430FR413x devices without hardware_MPY 
-
-[UNDEFINED] M*/ [IF]
-CODE M*/
-BIC #$200,R2
-CMP #0,2(R15)
-S< IF
-    XOR #-1,4(R15)
-    XOR #-1,2(R15)
-    ADD #1,4(R15)
-    ADDC #0,2(R15)
-    BIS #$200,R2
-THEN
-CMP #0,0(R15)
-S< IF
-    XOR #-1,0(R15)
-    ADD #1,0(R15)
-    XOR #$200,R2
-THEN
-            MOV 4(R15),R8
-            MOV 2(R15),R11
-            MOV @R15+,R12
-            MOV #0,R5
-            MOV #0,2(R15)
-            MOV #0,0(R15)
-            MOV #0,R10
-            MOV #1,R9
-BEGIN       BIT R9,R12
-    0<> IF  ADD R8,2(R15)
-            ADDC R11,0(R15)
-            ADDC R5,R10
-    THEN    ADD R8,R8
-            ADDC R11,R11
-            ADDC R5,R5
-            ADD R9,R9
-U>= UNTIL
-MOV R14,R11
-MOV @R15,R14
-MOV 2(R15),R12
-MOV #32,R5
-CMP #0,R10
-0= IF
-    MOV R14,R10
-    CALL #$4078
-ELSE
-    CALL #$4080
-THEN
-MOV @R15+,0(R15)
-BIT #$200,R2
-0<> IF
-    XOR #-1,0(R15)
-    XOR #-1,R14
-    ADD #1,0(R15)
-    ADDC #0,R14
-    BIC #$200,R2
-    CMP #0,R10
-    0<> IF
-        SUB #1,0(R15)
-        SUBC #0,R14 
-    THEN
-THEN                
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[ELSE]
-
-[UNDEFINED] M*/ [IF]
-CODE M*/
-MOV 4(R15),&$4D4
-MOV 2(R15),&$4D6
-MOV @R15+,&$4C8
-MOV R14,R11
-MOV R0,R0
-MOV &$4E4,R12
-MOV &$4E6,R14
-MOV &$4E8,R10
-BIC #$200,R2
-CMP #0,R10
-S< IF
-    XOR #-1,R12
-    XOR #-1,R14
-    XOR #-1,R10
-    ADD #1,R12
-    ADDC #0,R14
-    ADDC #0,R10
-    BIS #$200,R2
-THEN
-MOV #32,R5
-CMP #0,R10
-0= IF
-    MOV R14,R10
-    CALL #$4078
-ELSE
-    CALL #$4080
-THEN
-MOV @R15+,0(R15)
-BIT #$200,R2
-0<> IF
-    XOR #-1,0(R15)
-    XOR #-1,R14
-    ADD #1,0(R15)
-    ADDC #0,R14
-    BIC #$200,R2
-    CMP #0,R10
-    0<> IF
-        SUB #1,0(R15)
-        SUBC #0,R14 
-    THEN
-THEN                
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[THEN]  ; end of software/hardware_MPY
-
-[UNDEFINED] 2VARIABLE [IF]
-: 2VARIABLE
-CREATE 
-HI2LO
-ADD #4,&$1DC6
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2CONSTANT [IF]
-: 2CONSTANT
-CREATE
-, ,
-DOES>
-2@
-;
-[THEN]
-
-[UNDEFINED] 2VALUE [IF]
-: 2VALUE
-CREATE , ,
-DOES>
-HI2LO
-MOV @R1+,R13
-BIT #$200,R2
-0= IF
-   MOV #2@,R0
-THEN 
-BIC #$200,R2
-MOV #2!,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2LITERAL [IF]
-CODE 2LITERAL
-BIS #$200,R2
-MOV #LITERAL,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] D.R [IF]
-: D.R
->R SWAP OVER DABS <# #S ROT SIGN #> 
-R> OVER - SPACES TYPE 
-;
-[THEN]
-
-RST_HERE
-
-[UNDEFINED] VARIABLE [IF]
-: VARIABLE
-CREATE 
-HI2LO
-MOV @R1+,R13
-ADD #2,&$1DC6
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CELLS [IF]
-CODE CELLS
-ADD R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] ALLOT [IF]
-CODE ALLOT
-ADD R14,&$1DC6
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DEPTH [IF]
-CODE DEPTH
-MOV R14,-2(R15)
-MOV #$1C80,R14
-SUB R15,R14
-RRA R14
-SUB #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0= [IF]
-CODE 0=
-SUB #1,R14
-SUBC R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SOURCE [IF]
-CODE SOURCE
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1DC0,R14
-MOV &$1DC2,0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >IN [IF]
-$1DC4 CONSTANT >IN
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
-CODE DROP
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
-CODE 1+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CHAR [IF]
-: CHAR
-    $20 WORD 1+ C@
-;
-[THEN]
-
-[UNDEFINED] [CHAR] [IF]
-: [CHAR]
-    CHAR POSTPONE LITERAL
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] 2/ [IF]
-CODE 2/
-RRA R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] INVERT [IF]
-CODE INVERT
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] RSHIFT [IF]
-CODE RSHIFT
-            MOV @R15+,R10
-            AND #$1F,R14
-0<> IF
-    BEGIN   BIC #1,R2
-            RRC R10
-            SUB #1,R14
-    0= UNTIL
-THEN        MOV R10,R14
-            MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0< [IF]
-CODE 0<
-ADD R14,R14
-SUBC R14,R14
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] S>D [IF]
-: S>D
-    DUP 0<
-;
-[THEN]
-
-[UNDEFINED] 1- [IF]
-CODE 1-
-SUB #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] UM/MOD [IF]
-CODE UM/MOD
-    PUSH #DROP
-    MOV #$4066,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SM/REM [IF]
-CODE SM/REM
-MOV R14,R12
-MOV @R15,R11
-CMP #0,R14
-S< IF
-    XOR #-1,R14
-    ADD #1,R14
-THEN
-CMP #0,0(R15)
-S< IF
-    XOR #-1,2(R15)
-    XOR #-1,0(R15)
-    ADD #1,2(R15)
-    ADDC #0,0(R15)
-THEN
-PUSHM #3,R13
-LO2HI
-    UM/MOD
-HI2LO
-POPM #3,R13
-CMP #0,R11
-S< IF
-    XOR #-1,0(R15)
-    ADD #1,0(R15)
-THEN
-XOR R12,R11
-CMP #0,R11
-S< IF
-    XOR #-1,R14
-    ADD #1,R14
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] FM/MOD [IF]
-: FM/MOD
-SM/REM
-HI2LO
-CMP #0,0(R15)
-0<> IF
-    CMP #1,R14
-    S< IF
-      ADD R12,0(R15)
-      SUB #1,R14
-    THEN
-THEN
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] NIP [IF]
-CODE NIP
-ADD #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] / [IF]
-: /
->R DUP 0< R> FM/MOD NIP
-;
-[THEN]
-
-[UNDEFINED] NEGATE [IF]
-CODE NEGATE
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #$4028,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CHARS [IF]
-CODE CHARS
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] MOVE [IF]
-CODE MOVE
-MOV R14,R10
-MOV @R15+,R8
-MOV @R15+,R9
-MOV @R15+,R14
-CMP #0,R10
-0<> IF
-    CMP R9,R8
-    0<> IF
-        U< IF
-            BEGIN
-                MOV.B @R9+,0(R8)
-                ADD #1,R8
-                SUB #1,R10
-            0= UNTIL
-            MOV @R13+,R0
-        THEN
-        ADD R10,R8
-        ADD R10,R9
-        BEGIN
-            SUB #1,R9
-            SUB #1,R8
-            MOV.B @R9,0(R8)
-            SUB #1,R10
-        0= UNTIL
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DECIMAL [IF]
-CODE DECIMAL
-MOV #$0A,&$1DDC
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] BASE [IF]
-$1DDC CONSTANT BASE
-[THEN]
-
-[UNDEFINED] ( [IF]
-: ( 
-')' WORD DROP
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] .( [IF]
-CODE .(
-MOV #0,&$1DB4
-COLON
-')' WORD
-COUNT TYPE
-$20 $1DB4 !
-; IMMEDIATE
-[THEN]
-
-
-
-
-
-
-
- 0 CONSTANT FALSE
--1 CONSTANT TRUE
-
-VARIABLE VERBOSE
-    FALSE VERBOSE !
-
-
-VARIABLE ACTUAL-DEPTH
-CREATE ACTUAL-RESULTS 20 CELLS ALLOT
-
-: T{
-    ;
-
-: ->
-    DEPTH DUP ACTUAL-DEPTH !
-    ?DUP IF
-        0 DO ACTUAL-RESULTS I CELLS + ! LOOP
-    THEN ;
-
-: }T
-
-    DEPTH ACTUAL-DEPTH @ = IF
-        DEPTH ?DUP IF
-        0 DO
-            ACTUAL-RESULTS I CELLS + @
-            = 0= IF TRUE ABORT" INCORRECT RESULT" THEN
-        LOOP
-        THEN
-    ELSE
-        TRUE ABORT" WRONG NUMBER OF RESULTS"
-    THEN ;
-
-: TESTING
-    SOURCE VERBOSE @
-    IF DUP >R TYPE CR R> >IN !
-    ELSE >IN ! DROP [CHAR] * EMIT
-    THEN ;
-
-ECHO
-
-
-DECIMAL
-
-0 INVERT        CONSTANT 1SD
-1SD 1 RSHIFT    CONSTANT MAX-INTD
-MAX-INTD INVERT CONSTANT MIN-INTD
-MAX-INTD 2/     CONSTANT HI-INT
-MIN-INTD 2/     CONSTANT LO-INT
-
-
-TESTING interpreter and compiler reading double numbers, with/without prefixes
-
-T{ 1. -> 1 0 }T
-T{ -2. -> -2 -1 }T
-T{ : RDL1 3. ; RDL1 -> 3 0 }T
-T{ : RDL2 -4. ; RDL2 -> -4 -1 }T
-
-VARIABLE OLD-DBASE
-DECIMAL BASE @ OLD-DBASE !
-T{ #12346789. -> 12346789. }T
-T{ #-12346789. -> -12346789. }T
-T{ $12aBcDeF. -> 313249263. }T
-T{ $-12AbCdEf. -> -313249263. }T
-T{ %10010110. -> 150. }T
-T{ %-10010110. -> -150. }T
-T{ BASE @ OLD-DBASE @ = -> TRUE }T
-
-16 OLD-DBASE ! 16 BASE !
-T{ #12346789. -> BC65A5. }T
-T{ #-12346789. -> -BC65A5. }T
-T{ $12aBcDeF. -> 12AbCdeF. }T
-T{ $-12AbCdEf. -> -12ABCDef. }T
-T{ %10010110. -> 96. }T
-T{ %-10010110. -> -96. }T
-T{ BASE @ OLD-DBASE @ = -> TRUE }T
-
-DECIMAL
-T{ : dnmp  #8327. $-2cbe. %011010111. ; dnmp -> 8327. -11454. 215. }T
-
-TESTING 2CONSTANT
-
-T{ 1 2 2CONSTANT 2C1 -> }T
-T{ 2C1 -> 1 2 }T
-T{ : CD1 2C1 ; -> }T
-T{ CD1 -> 1 2 }T
-T{ : CD2 2CONSTANT ; -> }T
-T{ -1 -2 CD2 2C2 -> }T
-T{ 2C2 -> -1 -2 }T
-T{ 4 5 2CONSTANT 2C3 IMMEDIATE 2C3 -> 4 5 }T
-T{ : CD6 2C3 2LITERAL ; CD6 -> 4 5 }T
-
-
-1SD MAX-INTD 2CONSTANT MAX-2INT
-0   MIN-INTD 2CONSTANT MIN-2INT
-MAX-2INT 2/  2CONSTANT HI-2INT
-MIN-2INT 2/  2CONSTANT LO-2INT
-
-TESTING DNEGATE
-
-T{ 0. DNEGATE -> 0. }T
-T{ 1. DNEGATE -> -1. }T
-T{ -1. DNEGATE -> 1. }T
-T{ MAX-2INT DNEGATE -> MIN-2INT SWAP 1+ SWAP }T
-T{ MIN-2INT SWAP 1+ SWAP DNEGATE -> MAX-2INT }T
-
-TESTING D+ with small integers
-
-T{  0.  5. D+ ->  5. }T
-T{ -5.  0. D+ -> -5. }T
-T{  1.  2. D+ ->  3. }T
-T{  1. -2. D+ -> -1. }T
-T{ -1.  2. D+ ->  1. }T
-T{ -1. -2. D+ -> -3. }T
-T{ -1.  1. D+ ->  0. }T
-
-TESTING D+ with mid range integers
-
-T{  0  0  0  5 D+ ->  0  5 }T
-T{ -1  5  0  0 D+ -> -1  5 }T
-T{  0  0  0 -5 D+ ->  0 -5 }T
-T{  0 -5 -1  0 D+ -> -1 -5 }T
-T{  0  1  0  2 D+ ->  0  3 }T
-T{ -1  1  0 -2 D+ -> -1 -1 }T
-T{  0 -1  0  2 D+ ->  0  1 }T
-T{  0 -1 -1 -2 D+ -> -1 -3 }T
-T{ -1 -1  0  1 D+ -> -1  0 }T
-T{ MIN-INTD 0 2DUP D+ -> 0 1 }T
-T{ MIN-INTD S>D MIN-INTD 0 D+ -> 0 0 }T
-
-TESTING D+ with large double integers
-
-T{ HI-2INT 1. D+ -> 0 HI-INT 1+ }T
-T{ HI-2INT 2DUP D+ -> 1SD 1- MAX-INTD }T
-T{ MAX-2INT MIN-2INT D+ -> -1. }T
-T{ MAX-2INT LO-2INT D+ -> HI-2INT }T
-T{ HI-2INT MIN-2INT D+ 1. D+ -> LO-2INT }T
-T{ LO-2INT 2DUP D+ -> MIN-2INT }T
-
-TESTING D- with small integers
-
-T{  0.  5. D- -> -5. }T
-T{  5.  0. D- ->  5. }T
-T{  0. -5. D- ->  5. }T
-T{  1.  2. D- -> -1. }T
-T{  1. -2. D- ->  3. }T
-T{ -1.  2. D- -> -3. }T
-T{ -1. -2. D- ->  1. }T
-T{ -1. -1. D- ->  0. }T
-
-TESTING D- with mid-range integers
-
-T{  0  0  0  5 D- ->  0 -5 }T
-T{ -1  5  0  0 D- -> -1  5 }T
-T{  0  0 -1 -5 D- ->  1  4 }T
-T{  0 -5  0  0 D- ->  0 -5 }T
-T{ -1  1  0  2 D- -> -1 -1 }T
-T{  0  1 -1 -2 D- ->  1  2 }T
-T{  0 -1  0  2 D- ->  0 -3 }T
-T{  0 -1  0 -2 D- ->  0  1 }T
-T{  0  0  0  1 D- ->  0 -1 }T
-T{ MIN-INTD 0 2DUP D- -> 0. }T
-T{ MIN-INTD S>D MAX-INTD 0 D- -> 1 1SD }T
-
-TESTING D- with large integers
-
-T{ MAX-2INT MAX-2INT D- -> 0. }T
-T{ MIN-2INT MIN-2INT D- -> 0. }T
-T{ MAX-2INT HI-2INT  D- -> LO-2INT DNEGATE }T
-T{ HI-2INT  LO-2INT  D- -> MAX-2INT }T
-T{ LO-2INT  HI-2INT  D- -> MIN-2INT 1. D+ }T
-T{ MIN-2INT MIN-2INT D- -> 0. }T
-T{ MIN-2INT LO-2INT  D- -> LO-2INT }T
-
-TESTING D0< D0=
-
-T{ 0. D0< -> FALSE }T
-T{ 1. D0< -> FALSE }T
-T{ MIN-INTD 0 D0< -> FALSE }T
-T{ 0 MAX-INTD D0< -> FALSE }T
-T{ MAX-2INT  D0< -> FALSE }T
-T{ -1. D0< -> TRUE }T
-T{ MIN-2INT D0< -> TRUE }T
-
-T{ 1. D0= -> FALSE }T
-T{ MIN-INTD 0 D0= -> FALSE }T
-T{ MAX-2INT  D0= -> FALSE }T
-T{ -1 MAX-INTD D0= -> FALSE }T
-T{ 0. D0= -> TRUE }T
-T{ -1. D0= -> FALSE }T
-T{ 0 MIN-INTD D0= -> FALSE }T
-
-TESTING D2* D2/
-
-T{ 0. D2* -> 0. D2* }T
-T{ MIN-INTD 0 D2* -> 0 1 }T
-T{ HI-2INT D2* -> MAX-2INT 1. D- }T
-T{ LO-2INT D2* -> MIN-2INT }T
-
-T{ 0. D2/ -> 0. }T
-T{ 1. D2/ -> 0. }T
-T{ 0 1 D2/ -> MIN-INTD 0 }T
-T{ MAX-2INT D2/ -> HI-2INT }T
-T{ -1. D2/ -> -1. }T
-T{ MIN-2INT D2/ -> LO-2INT }T
-
-TESTING D< D=
-
-T{  0.  1. D< -> TRUE  }T
-T{  0.  0. D< -> FALSE }T
-T{  1.  0. D< -> FALSE }T
-T{ -1.  1. D< -> TRUE  }T
-T{ -1.  0. D< -> TRUE  }T
-T{ -2. -1. D< -> TRUE  }T
-T{ -1. -2. D< -> FALSE }T
-T{ 0 1   1. D< -> FALSE }T
-T{ 1.  0 1  D< -> TRUE  }T
-T{ 0 -1 1 -2 D< -> FALSE }T
-T{ 1 -2 0 -1 D< -> TRUE  }T
-T{ -1. MAX-2INT D< -> TRUE }T
-T{ MIN-2INT MAX-2INT D< -> TRUE }T
-T{ MAX-2INT -1. D< -> FALSE }T
-T{ MAX-2INT MIN-2INT D< -> FALSE }T
-T{ MAX-2INT 2DUP -1. D+ D< -> FALSE }T
-T{ MIN-2INT 2DUP  1. D+ D< -> TRUE  }T
-T{ MAX-INTD S>D 2DUP 1. D+ D< -> TRUE }T
-
-T{ -1. -1. D= -> TRUE  }T
-T{ -1.  0. D= -> FALSE }T
-T{ -1.  1. D= -> FALSE }T
-T{  0. -1. D= -> FALSE }T
-T{  0.  0. D= -> TRUE  }T
-T{  0.  1. D= -> FALSE }T
-T{  1. -1. D= -> FALSE }T
-T{  1.  0. D= -> FALSE }T
-T{  1.  1. D= -> TRUE  }T
-
-T{ 0 -1 0 -1 D= -> TRUE  }T
-T{ 0 -1 0  0 D= -> FALSE }T
-T{ 0 -1 0  1 D= -> FALSE }T
-T{ 0  0 0 -1 D= -> FALSE }T
-T{ 0  0 0  0 D= -> TRUE  }T
-T{ 0  0 0  1 D= -> FALSE }T
-T{ 0  1 0 -1 D= -> FALSE }T
-T{ 0  1 0  0 D= -> FALSE }T
-T{ 0  1 0  1 D= -> TRUE  }T
-
-T{ MAX-2INT MIN-2INT D= -> FALSE }T
-T{ MAX-2INT 0. D= -> FALSE }T
-T{ MAX-2INT MAX-2INT D= -> TRUE }T
-T{ MAX-2INT HI-2INT  D= -> FALSE }T
-T{ MAX-2INT MIN-2INT D= -> FALSE }T
-T{ MIN-2INT MIN-2INT D= -> TRUE }T
-T{ MIN-2INT LO-2INT  D=  -> FALSE }T
-T{ MIN-2INT MAX-2INT D= -> FALSE }T
-
-TESTING 2LITERAL 2VARIABLE
-
-T{ : CD3 [ MAX-2INT ] 2LITERAL ; -> }T
-T{ CD3 -> MAX-2INT }T
-T{ 2VARIABLE 2V1 -> }T
-T{ 0. 2V1 2! -> }T
-T{ 2V1 2@ -> 0. }T
-T{ -1 -2 2V1 2! -> }T
-T{ 2V1 2@ -> -1 -2 }T
-T{ : CD4 2VARIABLE ; -> }T
-T{ CD4 2V2 -> }T
-T{ : CD5 2V2 2! ; -> }T
-T{ -2 -1 CD5 -> }T
-T{ 2V2 2@ -> -2 -1 }T
-T{ 2VARIABLE 2V3 IMMEDIATE 5 6 2V3 2! -> }T
-T{ 2V3 2@ -> 5 6 }T
-T{ : CD7 2V3 [ 2@ ] 2LITERAL ; CD7 -> 5 6 }T
-T{ : CD8 [ 6 7 ] 2V3 [ 2! ] ; 2V3 2@ -> 6 7 }T
-
-TESTING DMAX DMIN
-
-T{  1.  2. DMAX -> 2. }T
-T{  1.  0. DMAX -> 1. }T
-T{  1. -1. DMAX -> 1. }T
-T{  1.  1. DMAX -> 1. }T
-T{  0.  1. DMAX -> 1. }T
-T{  0. -1. DMAX -> 0. }T
-T{ -1.  1. DMAX -> 1. }T
-T{ -1. -2. DMAX -> -1. }T
-
-T{ MAX-2INT HI-2INT  DMAX -> MAX-2INT }T
-T{ MAX-2INT MIN-2INT DMAX -> MAX-2INT }T
-T{ MIN-2INT MAX-2INT DMAX -> MAX-2INT }T
-T{ MIN-2INT LO-2INT  DMAX -> LO-2INT  }T
-
-T{ MAX-2INT  1. DMAX -> MAX-2INT }T
-T{ MAX-2INT -1. DMAX -> MAX-2INT }T
-T{ MIN-2INT  1. DMAX ->  1. }T
-T{ MIN-2INT -1. DMAX -> -1. }T
-
-
-T{  1.  2. DMIN ->  1. }T
-T{  1.  0. DMIN ->  0. }T
-T{  1. -1. DMIN -> -1. }T
-T{  1.  1. DMIN ->  1. }T
-T{  0.  1. DMIN ->  0. }T
-T{  0. -1. DMIN -> -1. }T
-T{ -1.  1. DMIN -> -1. }T
-T{ -1. -2. DMIN -> -2. }T
-
-T{ MAX-2INT HI-2INT  DMIN -> HI-2INT  }T
-T{ MAX-2INT MIN-2INT DMIN -> MIN-2INT }T
-T{ MIN-2INT MAX-2INT DMIN -> MIN-2INT }T
-T{ MIN-2INT LO-2INT  DMIN -> MIN-2INT }T
-
-T{ MAX-2INT  1. DMIN ->  1. }T
-T{ MAX-2INT -1. DMIN -> -1. }T
-T{ MIN-2INT  1. DMIN -> MIN-2INT }T
-T{ MIN-2INT -1. DMIN -> MIN-2INT }T
-
-TESTING D>S DABS
-
-T{  1234  0 D>S ->  1234 }T
-T{ -1234 -1 D>S -> -1234 }T
-T{ MAX-INTD  0 D>S -> MAX-INTD }T
-T{ MIN-INTD -1 D>S -> MIN-INTD }T
-
-T{  1. DABS -> 1. }T
-T{ -1. DABS -> 1. }T
-T{ MAX-2INT DABS -> MAX-2INT }T
-T{ MIN-2INT 1. D+ DABS -> MAX-2INT }T
-
-TESTING M+ M*/
-
-T{ HI-2INT   1 M+ -> HI-2INT   1. D+ }T
-T{ MAX-2INT -1 M+ -> MAX-2INT -1. D+ }T
-T{ MIN-2INT  1 M+ -> MIN-2INT  1. D+ }T
-T{ LO-2INT  -1 M+ -> LO-2INT  -1. D+ }T
-
-
-: ?FLOORED [ -3 2 / -2 = ] LITERAL IF 1. D- THEN ;
-
-T{  5.  7 11 M*/ ->  3. }T
-T{  5. -7 11 M*/ -> -3. ?FLOORED }T
-T{ -5.  7 11 M*/ -> -3. ?FLOORED }T
-T{ -5. -7 11 M*/ ->  3. }T
-T{ MAX-2INT  8 16 M*/ -> HI-2INT }T
-T{ MAX-2INT -8 16 M*/ -> HI-2INT DNEGATE ?FLOORED }T
-T{ MIN-2INT  8 16 M*/ -> LO-2INT }T
-T{ MIN-2INT -8 16 M*/ -> LO-2INT DNEGATE }T
-T{ MAX-2INT MAX-INTD MAX-INTD M*/ -> MAX-2INT }T
-T{ MAX-2INT MAX-INTD 2/ MAX-INTD M*/ -> MAX-INTD 1- HI-2INT NIP }T
-T{ MIN-2INT LO-2INT NIP 1+ DUP 1- NEGATE M*/ -> 0 MAX-INTD 1- }T
-T{ MIN-2INT LO-2INT NIP 1- MAX-INTD M*/ -> MIN-INTD 3 + HI-2INT NIP 2 + }T
-T{ MAX-2INT LO-2INT NIP DUP NEGATE M*/ -> MAX-2INT DNEGATE }T
-T{ MIN-2INT MAX-INTD DUP M*/ -> MIN-2INT }T
-
-TESTING D. D.R
-
-MAX-2INT 71 73 M*/ 2CONSTANT DBL1
-MIN-2INT 73 79 M*/ 2CONSTANT DBL2
-
-: D>ASCII  ( D -- CADDR U )
-   DUP >R <# DABS #S R> SIGN #>    ( -- CADDR1 U )
-   HERE SWAP 2DUP 2>R CHARS DUP ALLOT MOVE 2R>
-;
-
-DBL1 D>ASCII 2CONSTANT "DBL1"
-DBL2 D>ASCII 2CONSTANT "DBL2"
-
-: DOUBLEOUTPUT
-   CR ." You should see lines duplicated:" CR
-   5 SPACES "DBL1" TYPE CR
-   5 SPACES DBL1 D. CR
-   8 SPACES "DBL1" DUP >R TYPE CR
-   5 SPACES DBL1 R> 3 + D.R CR
-   5 SPACES "DBL2" TYPE CR
-   5 SPACES DBL2 D. CR
-   10 SPACES "DBL2" DUP >R TYPE CR
-   5 SPACES DBL2 R> 5 + D.R CR
-;
-
-T{ DOUBLEOUTPUT -> }T
-
-TESTING 2ROT DU< (Double Number extension words)
-
-T{ 1. 2. 3. 2ROT -> 2. 3. 1. }T
-T{ MAX-2INT MIN-2INT 1. 2ROT -> MIN-2INT 1. MAX-2INT }T
-
-T{  1.  1. DU< -> FALSE }T
-T{  1. -1. DU< -> TRUE  }T
-T{ -1.  1. DU< -> FALSE }T
-T{ -1. -2. DU< -> FALSE }T
-T{ 0 1   1. DU< -> FALSE }T
-T{ 1.  0 1  DU< -> TRUE  }T
-T{ 0 -1 1 -2 DU< -> FALSE }T
-T{ 1 -2 0 -1 DU< -> TRUE  }T
-
-T{ MAX-2INT HI-2INT  DU< -> FALSE }T
-T{ HI-2INT  MAX-2INT DU< -> TRUE  }T
-T{ MAX-2INT MIN-2INT DU< -> TRUE }T
-T{ MIN-2INT MAX-2INT DU< -> FALSE }T
-T{ MIN-2INT LO-2INT  DU< -> TRUE }T
-
-TESTING 2VALUE
-
-T{ 1111 2222 2VALUE 2VAL -> }T
-T{ 2VAL -> 1111 2222 }T
-T{ 3333 4444 TO 2VAL -> }T
-T{ 2VAL -> 3333 4444 }T
-T{ : TO-2VAL TO 2VAL ; 5555 6666 TO-2VAL -> }T
-T{ 2VAL -> 5555 6666 }T
-
-
-CR .( End of Double-Number word tests) CR
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/FF_SPECS.4TH b/MSP430-FORTH/MSP_EXP430FR5994/FF_SPECS.4TH
deleted file mode 100644 (file)
index 37a909d..0000000
+++ /dev/null
@@ -1,563 +0,0 @@
-
-; ---------------------------------
-; FF_SPECS.4th for MSP_EXP430FR5994
-; ---------------------------------
-
-CODE ABORT_FF_SPECS
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_FF_SPECS
-
-[UNDEFINED] AND [IF]
-CODE AND
-AND @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-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] DROP [IF]
-CODE DROP
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-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] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0= [IF]
-CODE 0=
-SUB #1,R14
-SUBC R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0< [IF]
-CODE 0<
-ADD R14,R14
-SUBC R14,R14
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @R15+,R14
-0<> IF
-    MOV #-1,R14
-    U< IF
-        AND #0,R14
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]
-CODE BEGIN
-    MOV #$4028,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] UNTIL [IF]
-CODE UNTIL
-    MOV #$4034,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE AGAIN
-MOV #$403A,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] WHILE [IF]
-: WHILE
-POSTPONE IF SWAP
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] REPEAT [IF]
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #$4028,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] C@ [IF]
-CODE C@
-MOV.B @R14,R14
-MOV @R13+,R0
-ENDCODE
-[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] 1+ [IF]
-CODE 1+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2* [IF]
-CODE 2*
-ADD R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] UM/MOD [IF]
-CODE UM/MOD
-    PUSH #DROP
-    MOV #$4066,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] MOVE [IF]
-CODE MOVE
-MOV R14,R10
-MOV @R15+,R8
-MOV @R15+,R9
-MOV @R15+,R14
-CMP #0,R10
-0<> IF
-    CMP R9,R8
-    0<> IF
-        U< IF
-            BEGIN
-                MOV.B @R9+,0(R8)
-                ADD #1,R8
-                SUB #1,R10
-            0= UNTIL
-            MOV @R13+,R0
-        THEN
-        ADD R10,R8
-        ADD R10,R9
-        BEGIN
-            SUB #1,R9
-            SUB #1,R8
-            MOV.B @R9,0(R8)
-            SUB #1,R10
-        0= UNTIL
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] WORDS [IF]
-: WORDS
-CR 
-$1DCA @ $1CE4
-$1810 @ 2*
-MOVE
-BEGIN
-    0 DUP
-    $1810 @ 2* 0
-        DO
-        DUP I $1CE4 + @
-            U< IF
-                DROP DROP
-                I DUP $1CE4 + @
-            THEN
-        2 +LOOP
-    ?DUP
-WHILE
-    DUP
-    2 - @
-    ROT
-    $1CE4 +
-    !
-    DUP
-    COUNT $7F AND
-    TYPE
-    C@ $0F AND
-    $10 SWAP - SPACES
-REPEAT
-DROP
-;
-[THEN]
-
-[UNDEFINED] CASE [IF]
-: CASE 0 ; 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 
-[THEN]
-
-[UNDEFINED] S_ [IF]
-CODE S_
-MOV #0,&$1DB4
-COLON
-$4014 ,
-$20 WORD
-HI2LO
-MOV.B @R14,R14
-ADD #1,R14
-BIT #1,R14
-ADDC R14,&$1DC6
-MOV @R15+,R14
-MOV @R1+,R13
-MOV #$20,&$1DB4
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ESC [IF]
-CODE ESC
-CMP #0,&$1DBE
-0= IF MOV @R13+,R0
-THEN
-COLON          
-$1B
-POSTPONE LITERAL
-POSTPONE EMIT
-POSTPONE S_
-POSTPONE TYPE
-; IMMEDIATE
-[THEN]
-
-: SPECS
-PWR_STATE
-ECHO
-ESC [8;40;80t
-39 0 DO CR LOOP
-ESC [H
-ESC [7m
-$0D EMIT ." FastForth V"
-$180E @         
-0 <# # $08 HOLD # '.' HOLD #S #> TYPE
-."  for MSP430FR"
-HERE
-$1A04 @
-CASE
-    $8102   OF  ." 5738,"   $C200   ENDOF 
-    $8103   OF  ." 5739,"   $C200   ENDOF
-    $8160   OF  ." 5948,"   $4400   ENDOF
-    $8169   OF  ." 5969,"   $4400   ENDOF
-    $825D   OF  ." 5972,"   $4400   ENDOF
-    $81A8   OF  ." 6989,"   $4400   ENDOF
-    $810D   OF  ." 5986,"   $4400   ENDOF
-    $81F0   OF  ." 4133,"   $C400   ENDOF
-    $8240   OF  ." 2433,"   $C400   ENDOF
-    $82A1   OF  ." 5994,"   $4000   ENDOF
-    $82A6   OF  ." 5962,"   $4000   ENDOF
-    $830C   OF  ." 2355,"   $8000   ENDOF
-    $830D   OF  ." 2353,"   $C000   ENDOF
-    $831E   OF  ." 2155,"   $8000   ENDOF
-    $831D   OF  ." 2153,"   $C000   ENDOF
-    $832A   OF  ." 2476,"   $8000   ENDOF
-    $832B   OF  ." 2475,"   $8000   ENDOF
-    $833C   OF  ." 2633,"   $C400   ENDOF
-    $833D   OF  ." 2533,"   $C400   ENDOF
-    ABORT" xxxx <-- unrecognized device!"
-ENDCASE
-['] ['] DUP @ $1284 =
-IF ."  DTC=1," DROP
-ELSE 2 + @ $1284 =
-    IF ."  DTC=2,"
-    ELSE ."  DTC=3,"
-    THEN
-THEN
-$20 EMIT 
-$1810 @ U. $08 EMIT ." -Entry word set, "
-$1800 @ 0 1000 UM/MOD U.
-?DUP IF $08 EMIT ',' EMIT U.
-THEN ." MHz, "
-- U. ." bytes"
-ESC [0m
-CR
-." /COUNTED-STRING   = 255" CR 
-." /HOLD             = 34" CR
-." /PAD              = 84" CR
-." ADDRESS-UNIT-BITS = 16" CR
-." FLOORED           = true" CR
-." MAX-CHAR          = 255" CR
-." MAX-N             = 32767" CR
-." MAX-U             = 65535" CR
-." MAX-D             = 2147483647" CR
-." MAX-UD            = 4294967295" CR
-." STACK-CELLS       = 48" CR
-." RETURN-STACK-CELLS= 48" CR
-." DeFiNiTiOnS aRe CaSe-InSeNsItIvE" CR
-." Strings are case-sensitive" CR
-CR 
-ESC [7m ." KERNEL SPECS" ESC [0m
-CR
-$1812 @
-    DUP 0< IF ." 32.768kHz XTAL" CR THEN
-2*  DUP 0< IF ." (4/2) UART TERMINAL" CR 2*
-        ELSE  2* DUP
-            0< IF ." (RTS) UART TERMINAL" CR
-            THEN
-        THEN
-2*  DUP 0< IF ." (XON/XOFF) UART TERMINAL" CR
-        THEN
-2*  DUP 0< IF ." Half-Duplex TERMINAL" CR THEN
-2*  DUP 0< IF ." I2C_Master TERMINAL" CR THEN
-2*  DUP 0< IF ." Q15.16 input" CR THEN
-2*  DUP 0< IF ." DOUBLE input" CR THEN
-2*  DUP 0< IF ." MSP430_X assembler" CR 2* 2*
-        ELSE 2*  DUP
-            0< IF ." MSP430 Assembler"
-                2*  DUP 0< IF ."  with 20bits address"
-                    THEN CR
-            ELSE 2*
-            THEN
-        THEN
-2*
-2*
-2*
-2*
-2* 0< IF
-    [DEFINED] DEFER [IF] ." DEFER word set" CR [THEN]
-    [DEFINED] ALSO  [IF] ." VOCABULARY word set" CR [THEN]
-    [DEFINED] LOAD" [IF] ." SD_CARD Loader" CR [THEN]
-    [DEFINED] BOOT  [IF] ." bootloader" CR [THEN]
-    [DEFINED] READ" [IF] ." SD_CARD Read/Write" CR [THEN]
-    CR 
-    ESC [7m ." OPTIONS" ESC [0m
-    CR
-    [DEFINED] {CORE_ANS}  [IF] ." ANS94 core" CR [THEN]
-    [DEFINED] {DOUBLE}    [IF] ." DOUBLE word set" CR [THEN]
-    [DEFINED] {TOOLS}     [IF] ." UTILITY" CR [THEN]
-    [DEFINED] {FIXPOINT}  [IF] ." Q15.16 ADD SUB MUL DIV" CR [THEN]
-    [DEFINED] {CORDIC}    [IF] ." CORDIC engine" CR [THEN]
-    [DEFINED] {SD_TOOLS}  [IF] ." SD_TOOLS" CR [THEN]
-    [DEFINED] {RTC}       [IF] ." RTC utility" CR [THEN]
-    [DEFINED] {UARTI2CS}  [IF] ." UART to I2C_FastForth bridge" CR [THEN]
-    [DEFINED] ALSO
-    [IF] 
-        CR 
-        ESC [7m ." ASSEMBLER word set" ESC [0m
-        ALSO ASSEMBLER WORDS PREVIOUS
-        CR
-    [THEN]
-THEN
-CR
-ESC [7m ." FORTH word set"  ESC [0m
-WORDS
-CR
-HI2LO
-MOV #WARM+4,R0
-ENDCODE
-
-SPECS
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/FIXPOINT.4TH b/MSP430-FORTH/MSP_EXP430FR5994/FIXPOINT.4TH
deleted file mode 100644 (file)
index 529288d..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-
-CODE ABORT_FIXPOINT
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1812,R14
-BIT #$400,R14
-0<> IF MOV #0,R14 THEN
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-ABORT" buil FastForth with FIXPOINT_INPUT addon !"
-PWR_STATE
-$1B EMIT $63 EMIT
-;
-
-ABORT_FIXPOINT
-
-; -----------------------------------------------------
-; FIXPOINT.4th for MSP_EXP430FR5994 
-; -----------------------------------------------------
-
-[DEFINED] {FIXPOINT} [IF]  {FIXPOINT} [THEN]
-
-MARKER {FIXPOINT}
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[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
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @R15+,R14
-0<> IF
-    MOV #-1,R14
-    U< IF
-        AND #0,R14
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DABS [IF]
-CODE DABS
-AND #-1,R14
-S< IF
-    XOR #-1,0(R15)
-    XOR #-1,R14
-    ADD #1,0(R15)
-    ADDC #0,R14
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] HOLDS [IF]
-CODE HOLDS
-            MOV @R15+,R9
-BW3         ADD R14,R9
-            MOV &$1DB2,R8
-BEGIN       SUB #1,R9
-            SUB #1,R14
-U>= WHILE   SUB #1,R8
-            MOV.B @R9,0(R8)
-REPEAT      MOV R8,&$1DB2
-            MOV @R15+,R14
-            MOV @R13+,R0
-ENDCODE
-[THEN]
-
-CODE F+
-            ADD @R15+,2(R15)
-            ADDC @R15+,R14
-            MOV @R13+,R0
-ENDCODE
-
-CODE F-
-            SUB @R15+,2(R15)
-            SUBC R14,0(R15)
-            MOV @R15+,R14
-            MOV @R13+,R0
-ENDCODE
-
-$1A00 4 + @ $81F3 U<
-$81EF $1A00 4 + @ U< 
-= [IF]   ; MSP430FR413x subfamily without hardware_MPY
-
-CODE UDM*
-            PUSH R13
-            PUSHM #4,R7
-            MOV 4(R15),R13
-            MOV 2(R15),R11
-            MOV @R15,R10
-            MOV #0,R7
-            MOV #0,R6
-            MOV #0,4(R15)
-            MOV #0,2(R15)
-            MOV #0,R5
-            MOV #0,R4
-            MOV #1,R9
-            MOV #0,R8
-BEGIN       CMP #0,R9    
-    0<> IF  BIT R9,R10
-    ELSE    BIT R8,R14
-    THEN
-    0<> IF  ADD R13,4(R15)
-            ADDC R11,2(R15)
-            ADDC R7,R5
-            ADDC R6,R4
-    THEN    ADD R13,R13
-            ADDC R11,R11
-            ADDC R7,R7
-            ADDC R6,R6
-            ADD R9,R9
-            ADDC R8,R8
-U>= UNTIL   MOV R5,0(R15)
-            MOV R4,R14
-            POPM #4,R7
-            MOV @R1+,R13
-            MOV @R13+,R0
-ENDCODE
-
-CODE F*
-            MOV 2(R15),R12
-            XOR R14,R12
-            BIT #$8000,2(R15)
-0<> IF      XOR #-1,2(R15)
-            XOR #-1,4(R15)
-            ADD #1,4(R15)
-            ADDC #0,2(R15)
-THEN        COLON
-            DABS UDM*
-            HI2LO
-            MOV @R1+,R13
-            MOV @R15+,R14
-            MOV @R15+,0(R15)
-            AND #-1,R12
-S< IF       XOR #-1,0(R15)
-            XOR #-1,R14
-            ADD #1,0(R15)
-            ADDC #0,R14
-THEN        MOV @R13+,R0
-ENDCODE
-
-[UNDEFINED] F#S [IF]
-CODE F#S
-            MOV @R15,R12
-            MOV #0,R11
-            PUSHM #3,R13
-            MOV 2(R15),0(R15)
-            MOV R14,2(R15)
-BEGIN       MOV &$1DDC,R14
-            LO2HI
-            UM*
-            HI2LO
-            CMP #10,R14
-    U>= IF  ADD #7,R14
-    THEN    ADD #$30,R14
-            MOV @R1,R11
-            MOV.B R14,$1D90(R11)
-            ADD #1,R11
-            MOV R11,0(R1)
-            CMP 2(R15),R11
-U>= UNTIL   POPM #3,R13
-            MOV R11,R14
-            MOV R12,2(R15)
-            MOV #0,0(R15)
-            MOV #$1D90,R9
-            GOTO BW3
-ENDCODE
-[THEN]
-
-[ELSE] ; hardware multiplier
-
-CODE F*
-            MOV 4(R15),&$4D4
-            MOV 2(R15),&$4D6
-            MOV @R15,&$4E0
-            MOV R14,&$4E2
-            ADD #4,R15
-            MOV &$4E6,0(R15)
-            MOV &$4E8,R14
-            MOV @R13+,R0
-ENDCODE
-
-[UNDEFINED] F#S [IF]
-CODE F#S
-            MOV 2(R15),R9
-            MOV @R15,2(R15)
-            MOV R9,0(R15)
-            MOV R14,R11
-            MOV #0,R12
-BEGIN       MOV @R15,&$4C0
-            MOV &$1DDC,&$4C8
-            MOV &$4E4,0(R15)
-            MOV &$4E6,R14
-            CMP #10,R14
-    U>= IF  ADD #7,R14
-    THEN    ADD #$30,R14
-            MOV.B R14,$1D90(R12)
-            ADD #1,R12
-            CMP R11,R12
-0= UNTIL    MOV R11,R14
-            MOV #0,0(R15)
-            MOV #$1D90,R9
-            GOTO BW3
-ENDCODE
-[THEN]
-
-[THEN]
-
-CODE F/
-            MOV R14,R8
-            MOV @R15+,R10
-            MOV @R15+,R9
-            MOV @R15,R11
-            PUSHM #5,R9
-            AND #-1,R8
-S< IF       XOR #-1,R10
-            XOR #-1,R8
-            ADD #1,R10
-            ADDC #0,R8
-THEN    
-            AND #-1,R9
-S< IF       XOR #-1,R11
-            XOR #-1,R9
-            ADD #1,R11
-            ADDC #0,R9
-THEN        
-            MOV R9,R7
-            MOV R11,R9
-            MOV #0,R11
-            MOV #0,R6
-            MOV #32,R5
-BW1         CMP R8,R6
-    0= IF   CMP R10,R7
-    THEN
-    U>= IF  SUB R10,R7
-            SUBC R8,R6
-    THEN
-    BEGIN   ADDC R12,R12
-            ADDC R14,R14
-            SUB #1,R5
-    U>= WHILE
-            ADD R11,R11
-            ADDC R9,R9
-            ADDC R7,R7
-            ADDC R6,R6
-            U< ?GOTO BW1
-            SUB R10,R7
-            SUBC R8,R6
-            BIS #1,R2
-    REPEAT
-            POPM #5,R9
-            XOR R9,R8
-            CMP #0,R8
-S< IF       XOR #-1,R12
-            XOR #-1,R14
-            ADD #1,R12
-            ADDC #0,R14
-THEN
-            MOV R12,0(R15)
-            MOV @R13+,R0
-ENDCODE
-
-[UNDEFINED] F. [IF]
-CODE F.
-MOV R14,R12
-MOV #4,R11
-MOV &$1DDC,R10
-CMP #$0A,R10
-0= IF
-    ADD #1,R11
-ELSE
-    CMP #2,R10
-    0= IF
-        MOV #$10,R11
-    THEN
-THEN
-PUSHM #3,R13
-LO2HI
-    <# DABS
-    R> F#S
-    $2C HOLD
-    #S
-    R> SIGN #>
-    TYPE $20 EMIT
-;
-
-CODE S>F
-    SUB #2,R15
-    MOV #0,0(R15)
-    MOV @R13+,R0
-ENDCODE
-[THEN]
-
-RST_HERE
-
-; -----------------------
-; complement (volatile) for tests below
-; -----------------------
-
-[UNDEFINED] ! [IF]
-CODE !
-MOV @R15+,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DOES> [IF]
-CODE DOES> 
-MOV &$1DBA,R10
-MOV #DODOES,0(R10)
-MOV R13,2(R10)
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[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] D. [IF]
-CODE D.
-MOV #U.,R10
-ADD #10,R10
-MOV R10,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] BASE [IF]
-$1DDC CONSTANT BASE
-[THEN]
-
-ECHO
-
-; -----------------------
-; (volatile) tests for FIXPOINT.asm|FIXPOINT.4th for MSP_EXP430FR5994
-; -----------------------
-
-3,14159 2CONSTANT PI
-PI -1,0 F* 2CONSTANT -PI
-
-PI D.   ; D. is not appropriate --> 
--PI D.  ; D. is not appropriate -->
-
-PI F.   ; F. is a good choice! ---> 
--PI F.  ; F. is a good choice! --->
-
-$10 BASE !   PI F. 
-            -PI F.
-%10 BASE !   PI F. 
-            -PI F.
-#10 BASE !   PI F. 
-            -PI F.
-
- PI  2,0 F* F.     
- PI -2,0 F* F.    
--PI  2,0 F* F.    
--PI -2,0 F* F.     
-
- PI  2,0 F/ F.     
- PI -2,0 F/ F.    
--PI  2,0 F/ F.    
--PI -2,0 F/ F.     
-
- 32768,0  1,0 F* F. ; overflow! -->
- 32768,0  1,0 F/ F. ; overflow! -->
--32768,0 -1,0 F* F. ; overflow! -->
--32768,0 -1,0 F/ F. ; overflow! -->
-
-32767,99999 1,0  F* F. 
-32767,99999 1,0  F/ F. 
-32767,99999 2,0  F/ F. 
-32767,99999 4,0  F/ F. 
-32767,99999 8,0  F/ F. 
-32767,99999 16,0 F/ F. 
-
--32768,0 -2,0    F/ F. 
--32768,0 -4,0    F/ F. 
--32768,0 -8,0    F/ F. 
--32768,0 -16,0   F/ F. 
--32768,0 -32,0   F/ F. 
--32768,0 -64,0   F/ F. 
-
--3276,80 -1,0    F/ F. 
--327,680 -1,0    F/ F. 
--32,7680 -1,0    F/ F. 
--3,27680 -1,0    F/ F. 
--0,32768 -1,0    F/ F. 
-
-; SQRT(32768)^2 = 32768
- 181,01933598375  181,01933598375 F* F. 
- 181,01933598375 -181,01933598375 F* F.
--181,01933598375  181,01933598375 F* F.
--181,01933598375 -181,01933598375 F* F.
-RST_STATE
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/LAST.4TH b/MSP430-FORTH/MSP_EXP430FR5994/LAST.4TH
deleted file mode 100644 (file)
index b7f7c4b..0000000
+++ /dev/null
@@ -1,1435 +0,0 @@
-
-CODE ABORT_DOUBLE
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1812,R14
-BIT #$200,R14
-0<> IF MOV #0,R14 THEN
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-ABORT" build FastForth with DOUBLE_INPUT addon !"
-PWR_STATE
-;
-
-ABORT_DOUBLE
-
-; -----------------------------------------------------
-; DOUBLE.4th for MSP_EXP430FR5994
-; -----------------------------------------------------
-
-[DEFINED] {DOUBLE} [IF]  {DOUBLE} [THEN]
-
-MARKER {DOUBLE}
-
-[UNDEFINED] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] @ [IF]
-CODE @
-MOV @R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] ! [IF]
-CODE !
-MOV @R15+,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] C@ [IF]
-CODE C@
-MOV.B @R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,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] 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] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,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] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] TO [IF]
-CODE TO
-BIS #$200,R2
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DOES> [IF]
-CODE DOES> 
-MOV &$1DBA,R10
-MOV #DODOES,0(R10)
-MOV R13,2(R10)
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[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] 2@ [IF]
-CODE 2@
-SUB #2,R15
-MOV 2(R14),0(R15)
-MOV @R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2! [IF]
-CODE 2!
-MOV @R15+,0(R14)
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DUP [IF]
-CODE 2DUP
-SUB #4,R15
-MOV R14,2(R15)
-MOV 4(R15),0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2DROP [IF]
-CODE 2DROP
-ADD #2,R15
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2SWAP [IF]
-CODE 2SWAP
-MOV @R15,R10
-MOV 4(R15),0(R15)
-MOV R10,4(R15)
-MOV R14,R10
-MOV 2(R15),R14
-MOV R10,2(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2OVER [IF]
-CODE 2OVER
-SUB #4,R15
-MOV R14,2(R15)
-MOV 8(R15),0(R15)
-MOV 6(R15),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2>R [IF]
-CODE 2>R
-PUSH @R15+
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2R@ [IF]
-CODE 2R@
-SUB #4,R15
-MOV R14,2(R15)
-MOV @R1,R14
-MOV 2(R1),0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2R> [IF]
-CODE 2R>
-SUB #4,R15
-MOV R14,2(R15)
-MOV @R1+,R14
-MOV @R1+,0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-
-[UNDEFINED] D. [IF]
-CODE D.
-MOV #U.,R10
-ADD #10,R10
-MOV R10,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2ROT [IF]
-CODE 2ROT
-MOV 8(R15),R9
-MOV 6(R15),R8
-MOV 4(R15),8(R15)
-MOV 2(R15),6(R15)
-MOV @R15,4(R15)
-MOV R14,2(R15)
-MOV R9,0(R15)
-MOV R8,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D>S [IF]
-CODE D>S
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D0= [IF]
-CODE D0=
-CMP #0,R14
-MOV #0,R14
-0= IF
-    CMP #0,0(R15)
-    0= IF
-        MOV #-1,R14
-    THEN
-THEN
-ADD #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D0< [IF]
-CODE D0<
-CMP #0,R14
-MOV #0,R14
-S< IF
-    MOV #-1,R14
-THEN
-ADD #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D= [IF]
-CODE D=
-CMP R14,2(R15)
-MOV #0,R14
-0= IF
-    CMP @R15,4(R15)
-    0= IF
-    MOV #-1,R14
-    THEN
-THEN
-ADD #6,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D< [IF]
-CODE D<
-CMP R14,2(R15)
-MOV #0,R14
-S< IF
-    MOV #-1,R14
-THEN
-0= IF
-    CMP @R15,4(R15)
-    U< IF
-        MOV #-1,R14
-    THEN
-THEN
-ADD #6,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DU< [IF]
-CODE DU<
-CMP R14,2(R15)
-MOV #0,R14
-U< IF
-    MOV #-1,R14
-THEN
-0= IF
-    CMP @R15,4(R15)
-    U< IF
-        MOV #-1,R14
-    THEN
-THEN
-ADD #6,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D+ [IF]
-CODE D+
-BW1 ADD @R15+,2(R15)
-    ADDC @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] M+ [IF]
-CODE M+
-SUB #2,R15
-CMP #0,R14
-MOV R14,0(R15)
-MOV #-1,R14
-0>= IF
-    MOV #0,R14
-THEN
-GOTO BW1
-ENDCODE
-[THEN]
-
-[UNDEFINED] D- [IF]
-CODE D-
-SUB @R15+,2(R15)
-SUBC R14,0(R15)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DNEGATE [IF]
-CODE DNEGATE
-XOR #-1,0(R15)
-XOR #-1,R14
-ADD #1,0(R15)
-ADDC #0,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DABS [IF]
-CODE DABS
-CMP #0,R14
-0>= IF
-    MOV @R13+,R0
-THEN
-MOV #DNEGATE,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D2/ [IF]
-CODE D2/
-RRA R14
-RRC 0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] D2* [IF]
-CODE D2*
-ADD @R15,0(R15)
-ADDC R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DMAX [IF]
-: DMAX
-2OVER 2OVER
-D< IF
-    2>R 2DROP 2R>
-ELSE
-    2DROP
-THEN
-;
-[THEN]
-
-[UNDEFINED] DMIN [IF]
-: DMIN
-2OVER 2OVER
-D< IF
-    2DROP
-ELSE 2>R 2DROP 2R>
-THEN
-;
-
-$1A04 C@ $EF > [IF] ; test for MSP430FR413x devices without hardware_MPY 
-
-[UNDEFINED] M*/ [IF]
-CODE M*/
-BIC #$200,R2
-CMP #0,2(R15)
-S< IF
-    XOR #-1,4(R15)
-    XOR #-1,2(R15)
-    ADD #1,4(R15)
-    ADDC #0,2(R15)
-    BIS #$200,R2
-THEN
-CMP #0,0(R15)
-S< IF
-    XOR #-1,0(R15)
-    ADD #1,0(R15)
-    XOR #$200,R2
-THEN
-            MOV 4(R15),R8
-            MOV 2(R15),R11
-            MOV @R15+,R12
-            MOV #0,R5
-            MOV #0,2(R15)
-            MOV #0,0(R15)
-            MOV #0,R10
-            MOV #1,R9
-BEGIN       BIT R9,R12
-    0<> IF  ADD R8,2(R15)
-            ADDC R11,0(R15)
-            ADDC R5,R10
-    THEN    ADD R8,R8
-            ADDC R11,R11
-            ADDC R5,R5
-            ADD R9,R9
-U>= UNTIL
-MOV R14,R11
-MOV @R15,R14
-MOV 2(R15),R12
-MOV #32,R5
-CMP #0,R10
-0= IF
-    MOV R14,R10
-    CALL #$4078
-ELSE
-    CALL #$4080
-THEN
-MOV @R15+,0(R15)
-BIT #$200,R2
-0<> IF
-    XOR #-1,0(R15)
-    XOR #-1,R14
-    ADD #1,0(R15)
-    ADDC #0,R14
-    BIC #$200,R2
-    CMP #0,R10
-    0<> IF
-        SUB #1,0(R15)
-        SUBC #0,R14 
-    THEN
-THEN                
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[ELSE]
-
-[UNDEFINED] M*/ [IF]
-CODE M*/
-MOV 4(R15),&$4D4
-MOV 2(R15),&$4D6
-MOV @R15+,&$4C8
-MOV R14,R11
-MOV R0,R0
-MOV &$4E4,R12
-MOV &$4E6,R14
-MOV &$4E8,R10
-BIC #$200,R2
-CMP #0,R10
-S< IF
-    XOR #-1,R12
-    XOR #-1,R14
-    XOR #-1,R10
-    ADD #1,R12
-    ADDC #0,R14
-    ADDC #0,R10
-    BIS #$200,R2
-THEN
-MOV #32,R5
-CMP #0,R10
-0= IF
-    MOV R14,R10
-    CALL #$4078
-ELSE
-    CALL #$4080
-THEN
-MOV @R15+,0(R15)
-BIT #$200,R2
-0<> IF
-    XOR #-1,0(R15)
-    XOR #-1,R14
-    ADD #1,0(R15)
-    ADDC #0,R14
-    BIC #$200,R2
-    CMP #0,R10
-    0<> IF
-        SUB #1,0(R15)
-        SUBC #0,R14 
-    THEN
-THEN                
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[THEN]  ; end of software/hardware_MPY
-
-[UNDEFINED] 2VARIABLE [IF]
-: 2VARIABLE
-CREATE 
-HI2LO
-ADD #4,&$1DC6
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2CONSTANT [IF]
-: 2CONSTANT
-CREATE
-, ,
-DOES>
-2@
-;
-[THEN]
-
-[UNDEFINED] 2VALUE [IF]
-: 2VALUE
-CREATE , ,
-DOES>
-HI2LO
-MOV @R1+,R13
-BIT #$200,R2
-0= IF
-   MOV #2@,R0
-THEN 
-BIC #$200,R2
-MOV #2!,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 2LITERAL [IF]
-CODE 2LITERAL
-BIS #$200,R2
-MOV #LITERAL,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] D.R [IF]
-: D.R
->R SWAP OVER DABS <# #S ROT SIGN #> 
-R> OVER - SPACES TYPE 
-;
-[THEN]
-
-RST_HERE
-
-[UNDEFINED] VARIABLE [IF]
-: VARIABLE
-CREATE 
-HI2LO
-MOV @R1+,R13
-ADD #2,&$1DC6
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CELLS [IF]
-CODE CELLS
-ADD R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] ALLOT [IF]
-CODE ALLOT
-ADD R14,&$1DC6
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DEPTH [IF]
-CODE DEPTH
-MOV R14,-2(R15)
-MOV #$1C80,R14
-SUB R15,R14
-RRA R14
-SUB #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0= [IF]
-CODE 0=
-SUB #1,R14
-SUBC R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SOURCE [IF]
-CODE SOURCE
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1DC0,R14
-MOV &$1DC2,0(R15)
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >IN [IF]
-$1DC4 CONSTANT >IN
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
-CODE DROP
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
-CODE 1+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CHAR [IF]
-: CHAR
-    $20 WORD 1+ C@
-;
-[THEN]
-
-[UNDEFINED] [CHAR] [IF]
-: [CHAR]
-    CHAR POSTPONE LITERAL
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] 2/ [IF]
-CODE 2/
-RRA R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] INVERT [IF]
-CODE INVERT
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] RSHIFT [IF]
-CODE RSHIFT
-            MOV @R15+,R10
-            AND #$1F,R14
-0<> IF
-    BEGIN   BIC #1,R2
-            RRC R10
-            SUB #1,R14
-    0= UNTIL
-THEN        MOV R10,R14
-            MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0< [IF]
-CODE 0<
-ADD R14,R14
-SUBC R14,R14
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] S>D [IF]
-: S>D
-    DUP 0<
-;
-[THEN]
-
-[UNDEFINED] 1- [IF]
-CODE 1-
-SUB #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] UM/MOD [IF]
-CODE UM/MOD
-    PUSH #DROP
-    MOV #$4066,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SM/REM [IF]
-CODE SM/REM
-MOV R14,R12
-MOV @R15,R11
-CMP #0,R14
-S< IF
-    XOR #-1,R14
-    ADD #1,R14
-THEN
-CMP #0,0(R15)
-S< IF
-    XOR #-1,2(R15)
-    XOR #-1,0(R15)
-    ADD #1,2(R15)
-    ADDC #0,0(R15)
-THEN
-PUSHM #3,R13
-LO2HI
-    UM/MOD
-HI2LO
-POPM #3,R13
-CMP #0,R11
-S< IF
-    XOR #-1,0(R15)
-    ADD #1,0(R15)
-THEN
-XOR R12,R11
-CMP #0,R11
-S< IF
-    XOR #-1,R14
-    ADD #1,R14
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] FM/MOD [IF]
-: FM/MOD
-SM/REM
-HI2LO
-CMP #0,0(R15)
-0<> IF
-    CMP #1,R14
-    S< IF
-      ADD R12,0(R15)
-      SUB #1,R14
-    THEN
-THEN
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] NIP [IF]
-CODE NIP
-ADD #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] / [IF]
-: /
->R DUP 0< R> FM/MOD NIP
-;
-[THEN]
-
-[UNDEFINED] NEGATE [IF]
-CODE NEGATE
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #$4028,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CHARS [IF]
-CODE CHARS
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] MOVE [IF]
-CODE MOVE
-MOV R14,R10
-MOV @R15+,R8
-MOV @R15+,R9
-MOV @R15+,R14
-CMP #0,R10
-0<> IF
-    CMP R9,R8
-    0<> IF
-        U< IF
-            BEGIN
-                MOV.B @R9+,0(R8)
-                ADD #1,R8
-                SUB #1,R10
-            0= UNTIL
-            MOV @R13+,R0
-        THEN
-        ADD R10,R8
-        ADD R10,R9
-        BEGIN
-            SUB #1,R9
-            SUB #1,R8
-            MOV.B @R9,0(R8)
-            SUB #1,R10
-        0= UNTIL
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DECIMAL [IF]
-CODE DECIMAL
-MOV #$0A,&$1DDC
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] BASE [IF]
-$1DDC CONSTANT BASE
-[THEN]
-
-[UNDEFINED] ( [IF]
-: ( 
-')' WORD DROP
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] .( [IF]
-CODE .(
-MOV #0,&$1DB4
-COLON
-')' WORD
-COUNT TYPE
-$20 $1DB4 !
-; IMMEDIATE
-[THEN]
-
-
-
-
-
-
-
- 0 CONSTANT FALSE
--1 CONSTANT TRUE
-
-VARIABLE VERBOSE
-    FALSE VERBOSE !
-
-
-VARIABLE ACTUAL-DEPTH
-CREATE ACTUAL-RESULTS 20 CELLS ALLOT
-
-: T{
-    ;
-
-: ->
-    DEPTH DUP ACTUAL-DEPTH !
-    ?DUP IF
-        0 DO ACTUAL-RESULTS I CELLS + ! LOOP
-    THEN ;
-
-: }T
-
-    DEPTH ACTUAL-DEPTH @ = IF
-        DEPTH ?DUP IF
-        0 DO
-            ACTUAL-RESULTS I CELLS + @
-            = 0= IF TRUE ABORT" INCORRECT RESULT" THEN
-        LOOP
-        THEN
-    ELSE
-        TRUE ABORT" WRONG NUMBER OF RESULTS"
-    THEN ;
-
-: TESTING
-    SOURCE VERBOSE @
-    IF DUP >R TYPE CR R> >IN !
-    ELSE >IN ! DROP [CHAR] * EMIT
-    THEN ;
-
-ECHO
-
-
-DECIMAL
-
-0 INVERT        CONSTANT 1SD
-1SD 1 RSHIFT    CONSTANT MAX-INTD
-MAX-INTD INVERT CONSTANT MIN-INTD
-MAX-INTD 2/     CONSTANT HI-INT
-MIN-INTD 2/     CONSTANT LO-INT
-
-
-TESTING interpreter and compiler reading double numbers, with/without prefixes
-
-T{ 1. -> 1 0 }T
-T{ -2. -> -2 -1 }T
-T{ : RDL1 3. ; RDL1 -> 3 0 }T
-T{ : RDL2 -4. ; RDL2 -> -4 -1 }T
-
-VARIABLE OLD-DBASE
-DECIMAL BASE @ OLD-DBASE !
-T{ #12346789. -> 12346789. }T
-T{ #-12346789. -> -12346789. }T
-T{ $12aBcDeF. -> 313249263. }T
-T{ $-12AbCdEf. -> -313249263. }T
-T{ %10010110. -> 150. }T
-T{ %-10010110. -> -150. }T
-T{ BASE @ OLD-DBASE @ = -> TRUE }T
-
-16 OLD-DBASE ! 16 BASE !
-T{ #12346789. -> BC65A5. }T
-T{ #-12346789. -> -BC65A5. }T
-T{ $12aBcDeF. -> 12AbCdeF. }T
-T{ $-12AbCdEf. -> -12ABCDef. }T
-T{ %10010110. -> 96. }T
-T{ %-10010110. -> -96. }T
-T{ BASE @ OLD-DBASE @ = -> TRUE }T
-
-DECIMAL
-T{ : dnmp  #8327. $-2cbe. %011010111. ; dnmp -> 8327. -11454. 215. }T
-
-TESTING 2CONSTANT
-
-T{ 1 2 2CONSTANT 2C1 -> }T
-T{ 2C1 -> 1 2 }T
-T{ : CD1 2C1 ; -> }T
-T{ CD1 -> 1 2 }T
-T{ : CD2 2CONSTANT ; -> }T
-T{ -1 -2 CD2 2C2 -> }T
-T{ 2C2 -> -1 -2 }T
-T{ 4 5 2CONSTANT 2C3 IMMEDIATE 2C3 -> 4 5 }T
-T{ : CD6 2C3 2LITERAL ; CD6 -> 4 5 }T
-
-
-1SD MAX-INTD 2CONSTANT MAX-2INT
-0   MIN-INTD 2CONSTANT MIN-2INT
-MAX-2INT 2/  2CONSTANT HI-2INT
-MIN-2INT 2/  2CONSTANT LO-2INT
-
-TESTING DNEGATE
-
-T{ 0. DNEGATE -> 0. }T
-T{ 1. DNEGATE -> -1. }T
-T{ -1. DNEGATE -> 1. }T
-T{ MAX-2INT DNEGATE -> MIN-2INT SWAP 1+ SWAP }T
-T{ MIN-2INT SWAP 1+ SWAP DNEGATE -> MAX-2INT }T
-
-TESTING D+ with small integers
-
-T{  0.  5. D+ ->  5. }T
-T{ -5.  0. D+ -> -5. }T
-T{  1.  2. D+ ->  3. }T
-T{  1. -2. D+ -> -1. }T
-T{ -1.  2. D+ ->  1. }T
-T{ -1. -2. D+ -> -3. }T
-T{ -1.  1. D+ ->  0. }T
-
-TESTING D+ with mid range integers
-
-T{  0  0  0  5 D+ ->  0  5 }T
-T{ -1  5  0  0 D+ -> -1  5 }T
-T{  0  0  0 -5 D+ ->  0 -5 }T
-T{  0 -5 -1  0 D+ -> -1 -5 }T
-T{  0  1  0  2 D+ ->  0  3 }T
-T{ -1  1  0 -2 D+ -> -1 -1 }T
-T{  0 -1  0  2 D+ ->  0  1 }T
-T{  0 -1 -1 -2 D+ -> -1 -3 }T
-T{ -1 -1  0  1 D+ -> -1  0 }T
-T{ MIN-INTD 0 2DUP D+ -> 0 1 }T
-T{ MIN-INTD S>D MIN-INTD 0 D+ -> 0 0 }T
-
-TESTING D+ with large double integers
-
-T{ HI-2INT 1. D+ -> 0 HI-INT 1+ }T
-T{ HI-2INT 2DUP D+ -> 1SD 1- MAX-INTD }T
-T{ MAX-2INT MIN-2INT D+ -> -1. }T
-T{ MAX-2INT LO-2INT D+ -> HI-2INT }T
-T{ HI-2INT MIN-2INT D+ 1. D+ -> LO-2INT }T
-T{ LO-2INT 2DUP D+ -> MIN-2INT }T
-
-TESTING D- with small integers
-
-T{  0.  5. D- -> -5. }T
-T{  5.  0. D- ->  5. }T
-T{  0. -5. D- ->  5. }T
-T{  1.  2. D- -> -1. }T
-T{  1. -2. D- ->  3. }T
-T{ -1.  2. D- -> -3. }T
-T{ -1. -2. D- ->  1. }T
-T{ -1. -1. D- ->  0. }T
-
-TESTING D- with mid-range integers
-
-T{  0  0  0  5 D- ->  0 -5 }T
-T{ -1  5  0  0 D- -> -1  5 }T
-T{  0  0 -1 -5 D- ->  1  4 }T
-T{  0 -5  0  0 D- ->  0 -5 }T
-T{ -1  1  0  2 D- -> -1 -1 }T
-T{  0  1 -1 -2 D- ->  1  2 }T
-T{  0 -1  0  2 D- ->  0 -3 }T
-T{  0 -1  0 -2 D- ->  0  1 }T
-T{  0  0  0  1 D- ->  0 -1 }T
-T{ MIN-INTD 0 2DUP D- -> 0. }T
-T{ MIN-INTD S>D MAX-INTD 0 D- -> 1 1SD }T
-
-TESTING D- with large integers
-
-T{ MAX-2INT MAX-2INT D- -> 0. }T
-T{ MIN-2INT MIN-2INT D- -> 0. }T
-T{ MAX-2INT HI-2INT  D- -> LO-2INT DNEGATE }T
-T{ HI-2INT  LO-2INT  D- -> MAX-2INT }T
-T{ LO-2INT  HI-2INT  D- -> MIN-2INT 1. D+ }T
-T{ MIN-2INT MIN-2INT D- -> 0. }T
-T{ MIN-2INT LO-2INT  D- -> LO-2INT }T
-
-TESTING D0< D0=
-
-T{ 0. D0< -> FALSE }T
-T{ 1. D0< -> FALSE }T
-T{ MIN-INTD 0 D0< -> FALSE }T
-T{ 0 MAX-INTD D0< -> FALSE }T
-T{ MAX-2INT  D0< -> FALSE }T
-T{ -1. D0< -> TRUE }T
-T{ MIN-2INT D0< -> TRUE }T
-
-T{ 1. D0= -> FALSE }T
-T{ MIN-INTD 0 D0= -> FALSE }T
-T{ MAX-2INT  D0= -> FALSE }T
-T{ -1 MAX-INTD D0= -> FALSE }T
-T{ 0. D0= -> TRUE }T
-T{ -1. D0= -> FALSE }T
-T{ 0 MIN-INTD D0= -> FALSE }T
-
-TESTING D2* D2/
-
-T{ 0. D2* -> 0. D2* }T
-T{ MIN-INTD 0 D2* -> 0 1 }T
-T{ HI-2INT D2* -> MAX-2INT 1. D- }T
-T{ LO-2INT D2* -> MIN-2INT }T
-
-T{ 0. D2/ -> 0. }T
-T{ 1. D2/ -> 0. }T
-T{ 0 1 D2/ -> MIN-INTD 0 }T
-T{ MAX-2INT D2/ -> HI-2INT }T
-T{ -1. D2/ -> -1. }T
-T{ MIN-2INT D2/ -> LO-2INT }T
-
-TESTING D< D=
-
-T{  0.  1. D< -> TRUE  }T
-T{  0.  0. D< -> FALSE }T
-T{  1.  0. D< -> FALSE }T
-T{ -1.  1. D< -> TRUE  }T
-T{ -1.  0. D< -> TRUE  }T
-T{ -2. -1. D< -> TRUE  }T
-T{ -1. -2. D< -> FALSE }T
-T{ 0 1   1. D< -> FALSE }T
-T{ 1.  0 1  D< -> TRUE  }T
-T{ 0 -1 1 -2 D< -> FALSE }T
-T{ 1 -2 0 -1 D< -> TRUE  }T
-T{ -1. MAX-2INT D< -> TRUE }T
-T{ MIN-2INT MAX-2INT D< -> TRUE }T
-T{ MAX-2INT -1. D< -> FALSE }T
-T{ MAX-2INT MIN-2INT D< -> FALSE }T
-T{ MAX-2INT 2DUP -1. D+ D< -> FALSE }T
-T{ MIN-2INT 2DUP  1. D+ D< -> TRUE  }T
-T{ MAX-INTD S>D 2DUP 1. D+ D< -> TRUE }T
-
-T{ -1. -1. D= -> TRUE  }T
-T{ -1.  0. D= -> FALSE }T
-T{ -1.  1. D= -> FALSE }T
-T{  0. -1. D= -> FALSE }T
-T{  0.  0. D= -> TRUE  }T
-T{  0.  1. D= -> FALSE }T
-T{  1. -1. D= -> FALSE }T
-T{  1.  0. D= -> FALSE }T
-T{  1.  1. D= -> TRUE  }T
-
-T{ 0 -1 0 -1 D= -> TRUE  }T
-T{ 0 -1 0  0 D= -> FALSE }T
-T{ 0 -1 0  1 D= -> FALSE }T
-T{ 0  0 0 -1 D= -> FALSE }T
-T{ 0  0 0  0 D= -> TRUE  }T
-T{ 0  0 0  1 D= -> FALSE }T
-T{ 0  1 0 -1 D= -> FALSE }T
-T{ 0  1 0  0 D= -> FALSE }T
-T{ 0  1 0  1 D= -> TRUE  }T
-
-T{ MAX-2INT MIN-2INT D= -> FALSE }T
-T{ MAX-2INT 0. D= -> FALSE }T
-T{ MAX-2INT MAX-2INT D= -> TRUE }T
-T{ MAX-2INT HI-2INT  D= -> FALSE }T
-T{ MAX-2INT MIN-2INT D= -> FALSE }T
-T{ MIN-2INT MIN-2INT D= -> TRUE }T
-T{ MIN-2INT LO-2INT  D=  -> FALSE }T
-T{ MIN-2INT MAX-2INT D= -> FALSE }T
-
-TESTING 2LITERAL 2VARIABLE
-
-T{ : CD3 [ MAX-2INT ] 2LITERAL ; -> }T
-T{ CD3 -> MAX-2INT }T
-T{ 2VARIABLE 2V1 -> }T
-T{ 0. 2V1 2! -> }T
-T{ 2V1 2@ -> 0. }T
-T{ -1 -2 2V1 2! -> }T
-T{ 2V1 2@ -> -1 -2 }T
-T{ : CD4 2VARIABLE ; -> }T
-T{ CD4 2V2 -> }T
-T{ : CD5 2V2 2! ; -> }T
-T{ -2 -1 CD5 -> }T
-T{ 2V2 2@ -> -2 -1 }T
-T{ 2VARIABLE 2V3 IMMEDIATE 5 6 2V3 2! -> }T
-T{ 2V3 2@ -> 5 6 }T
-T{ : CD7 2V3 [ 2@ ] 2LITERAL ; CD7 -> 5 6 }T
-T{ : CD8 [ 6 7 ] 2V3 [ 2! ] ; 2V3 2@ -> 6 7 }T
-
-TESTING DMAX DMIN
-
-T{  1.  2. DMAX -> 2. }T
-T{  1.  0. DMAX -> 1. }T
-T{  1. -1. DMAX -> 1. }T
-T{  1.  1. DMAX -> 1. }T
-T{  0.  1. DMAX -> 1. }T
-T{  0. -1. DMAX -> 0. }T
-T{ -1.  1. DMAX -> 1. }T
-T{ -1. -2. DMAX -> -1. }T
-
-T{ MAX-2INT HI-2INT  DMAX -> MAX-2INT }T
-T{ MAX-2INT MIN-2INT DMAX -> MAX-2INT }T
-T{ MIN-2INT MAX-2INT DMAX -> MAX-2INT }T
-T{ MIN-2INT LO-2INT  DMAX -> LO-2INT  }T
-
-T{ MAX-2INT  1. DMAX -> MAX-2INT }T
-T{ MAX-2INT -1. DMAX -> MAX-2INT }T
-T{ MIN-2INT  1. DMAX ->  1. }T
-T{ MIN-2INT -1. DMAX -> -1. }T
-
-
-T{  1.  2. DMIN ->  1. }T
-T{  1.  0. DMIN ->  0. }T
-T{  1. -1. DMIN -> -1. }T
-T{  1.  1. DMIN ->  1. }T
-T{  0.  1. DMIN ->  0. }T
-T{  0. -1. DMIN -> -1. }T
-T{ -1.  1. DMIN -> -1. }T
-T{ -1. -2. DMIN -> -2. }T
-
-T{ MAX-2INT HI-2INT  DMIN -> HI-2INT  }T
-T{ MAX-2INT MIN-2INT DMIN -> MIN-2INT }T
-T{ MIN-2INT MAX-2INT DMIN -> MIN-2INT }T
-T{ MIN-2INT LO-2INT  DMIN -> MIN-2INT }T
-
-T{ MAX-2INT  1. DMIN ->  1. }T
-T{ MAX-2INT -1. DMIN -> -1. }T
-T{ MIN-2INT  1. DMIN -> MIN-2INT }T
-T{ MIN-2INT -1. DMIN -> MIN-2INT }T
-
-TESTING D>S DABS
-
-T{  1234  0 D>S ->  1234 }T
-T{ -1234 -1 D>S -> -1234 }T
-T{ MAX-INTD  0 D>S -> MAX-INTD }T
-T{ MIN-INTD -1 D>S -> MIN-INTD }T
-
-T{  1. DABS -> 1. }T
-T{ -1. DABS -> 1. }T
-T{ MAX-2INT DABS -> MAX-2INT }T
-T{ MIN-2INT 1. D+ DABS -> MAX-2INT }T
-
-TESTING M+ M*/
-
-T{ HI-2INT   1 M+ -> HI-2INT   1. D+ }T
-T{ MAX-2INT -1 M+ -> MAX-2INT -1. D+ }T
-T{ MIN-2INT  1 M+ -> MIN-2INT  1. D+ }T
-T{ LO-2INT  -1 M+ -> LO-2INT  -1. D+ }T
-
-
-: ?FLOORED [ -3 2 / -2 = ] LITERAL IF 1. D- THEN ;
-
-T{  5.  7 11 M*/ ->  3. }T
-T{  5. -7 11 M*/ -> -3. ?FLOORED }T
-T{ -5.  7 11 M*/ -> -3. ?FLOORED }T
-T{ -5. -7 11 M*/ ->  3. }T
-T{ MAX-2INT  8 16 M*/ -> HI-2INT }T
-T{ MAX-2INT -8 16 M*/ -> HI-2INT DNEGATE ?FLOORED }T
-T{ MIN-2INT  8 16 M*/ -> LO-2INT }T
-T{ MIN-2INT -8 16 M*/ -> LO-2INT DNEGATE }T
-T{ MAX-2INT MAX-INTD MAX-INTD M*/ -> MAX-2INT }T
-T{ MAX-2INT MAX-INTD 2/ MAX-INTD M*/ -> MAX-INTD 1- HI-2INT NIP }T
-T{ MIN-2INT LO-2INT NIP 1+ DUP 1- NEGATE M*/ -> 0 MAX-INTD 1- }T
-T{ MIN-2INT LO-2INT NIP 1- MAX-INTD M*/ -> MIN-INTD 3 + HI-2INT NIP 2 + }T
-T{ MAX-2INT LO-2INT NIP DUP NEGATE M*/ -> MAX-2INT DNEGATE }T
-T{ MIN-2INT MAX-INTD DUP M*/ -> MIN-2INT }T
-
-TESTING D. D.R
-
-MAX-2INT 71 73 M*/ 2CONSTANT DBL1
-MIN-2INT 73 79 M*/ 2CONSTANT DBL2
-
-: D>ASCII  ( D -- CADDR U )
-   DUP >R <# DABS #S R> SIGN #>    ( -- CADDR1 U )
-   HERE SWAP 2DUP 2>R CHARS DUP ALLOT MOVE 2R>
-;
-
-DBL1 D>ASCII 2CONSTANT "DBL1"
-DBL2 D>ASCII 2CONSTANT "DBL2"
-
-: DOUBLEOUTPUT
-   CR ." You should see lines duplicated:" CR
-   5 SPACES "DBL1" TYPE CR
-   5 SPACES DBL1 D. CR
-   8 SPACES "DBL1" DUP >R TYPE CR
-   5 SPACES DBL1 R> 3 + D.R CR
-   5 SPACES "DBL2" TYPE CR
-   5 SPACES DBL2 D. CR
-   10 SPACES "DBL2" DUP >R TYPE CR
-   5 SPACES DBL2 R> 5 + D.R CR
-;
-
-T{ DOUBLEOUTPUT -> }T
-
-TESTING 2ROT DU< (Double Number extension words)
-
-T{ 1. 2. 3. 2ROT -> 2. 3. 1. }T
-T{ MAX-2INT MIN-2INT 1. 2ROT -> MIN-2INT 1. MAX-2INT }T
-
-T{  1.  1. DU< -> FALSE }T
-T{  1. -1. DU< -> TRUE  }T
-T{ -1.  1. DU< -> FALSE }T
-T{ -1. -2. DU< -> FALSE }T
-T{ 0 1   1. DU< -> FALSE }T
-T{ 1.  0 1  DU< -> TRUE  }T
-T{ 0 -1 1 -2 DU< -> FALSE }T
-T{ 1 -2 0 -1 DU< -> TRUE  }T
-
-T{ MAX-2INT HI-2INT  DU< -> FALSE }T
-T{ HI-2INT  MAX-2INT DU< -> TRUE  }T
-T{ MAX-2INT MIN-2INT DU< -> TRUE }T
-T{ MIN-2INT MAX-2INT DU< -> FALSE }T
-T{ MIN-2INT LO-2INT  DU< -> TRUE }T
-
-TESTING 2VALUE
-
-T{ 1111 2222 2VALUE 2VAL -> }T
-T{ 2VAL -> 1111 2222 }T
-T{ 3333 4444 TO 2VAL -> }T
-T{ 2VAL -> 3333 4444 }T
-T{ : TO-2VAL TO 2VAL ; 5555 6666 TO-2VAL -> }T
-T{ 2VAL -> 5555 6666 }T
-
-
-CR .( End of Double-Number word tests) CR
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/PROG100k.4TH b/MSP430-FORTH/MSP_EXP430FR5994/PROG100k.4TH
deleted file mode 100644 (file)
index f629d96..0000000
+++ /dev/null
@@ -1,24955 +0,0 @@
-
-; -----------------------------------
-; PROG100k.4th for MSP_EXP430FR5994 = 76 x RC5toLCD.4th for MSP_EXP430FR5994
-; -----------------------------------
-; download source file sized to compile 100 kbytes
-; -----------------------------------
-
-
-CODE ABORT_RC5TOLCD
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_RC5TOLCD
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-
-
-ECHO
-            ; downloading PROG100k.4th is done
-RST_HERE    ; this app is protected against <reset>
-
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/RC5toLCD.4TH b/MSP430-FORTH/MSP_EXP430FR5994/RC5toLCD.4TH
deleted file mode 100644 (file)
index 3fef6d5..0000000
+++ /dev/null
@@ -1,352 +0,0 @@
-
-; -----------------------------------
-; RC5TOLCD.4th for MSP_EXP430FR5994
-; -----------------------------------
-
-
-CODE ABORT_RC5TOLCD
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_RC5TOLCD
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
-6 ALLOT
-
-
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[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_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_WRF
-    BIC.B #2,&$243
-    GOTO BW1
-ENDCODE
-
-: LCD_CLEAR $01 LCD_WRF 100 20_us ;
-: LCD_HOME $02 LCD_WRF 100 20_us ;
-
-
-
-HDNCODE 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
-RETI
-ENDCODE
-
-HDNCODE RC5_INT
-$1800 @ 16000 = [IF]
-    MOV #1,&$3A0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3A0
-[THEN]
-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 FW1
-        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 FW2
-XOR #$400,0(R1)
-SUB #8,R15
-MOV R14,6(R15)
-MOV &$1DDC,4(R15)
-MOV #$10,&$1DDC
-MOV R9,0(R15)
-MOV #0,R14
-LO2HI
-    LCD_CLEAR
-    <# # #S #36 HOLD #>
-    ['] LCD_WRC IS EMIT
-    TYPE
-    ['] EMIT >BODY IS EMIT
-HI2LO
-MOV @R15+,&$1DDC
-MOV @R15+,R14
-FW1 FW2
-    MOV @R1+,R2
-    BIC #%1111_1000,R2
-    MOV @R1+,R0
-ENDCODE
-
-
-HDNCODE STOP_R2L
-CMP #$40AA,&{RC5TOLCD}+8
-0<> IF
-    BIC.B #4,&$20A
-    BIC.B #4,&$20C
-    MOV #0,&$3C0
-    MOV #0,&$340
-    MOV #0,&$342
-    MOV #$40AA,&{RC5TOLCD}+8
-    MOV &{RC5TOLCD}+10,&WARM+2
-    MOV &{RC5TOLCD}+12,&$FFEA
-    MOV &{RC5TOLCD}+14,&$FFDE
-    MOV &{RC5TOLCD}+10,R0
-THEN 
-MOV @R1+,R0
-ENDCODE
-
-CODE STOP
-BW1
-CALL #STOP_R2L
-COLON
-ECHO
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-
-HDNCODE INI_R2L
-BIC #1,&$130
-MOV &$1808,R14
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #%10_1101_0100,&$3C0
-$1800 @ 16000 = [IF]
-    MOV #1,&$3E0
-[THEN]
-$1800 @ 24000 = [IF]
-    MOV #2,&$3E0
-[THEN]
-    MOV #19,&$3D2
-MOV #%0110_0000,&$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 #%01_0001_0100,&$340
-    MOV ##3276,&$352
-    MOV #%10000,&$342
-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"
-    ABORT" "
-;
-
-CODE START
-CMP #$40AA,&{RC5TOLCD}+8
-0= IF
-    MOV #STOP_R2L,&{RC5TOLCD}+8
-    MOV &WARM+2,&{RC5TOLCD}+10
-    MOV #INI_R2L,&WARM+2
-    MOV &$FFEA,&{RC5TOLCD}+12
-    MOV #WDT_INT,&$FFEA
-    MOV &$FFDE,&{RC5TOLCD}+14
-    MOV #RC5_INT,&$FFDE
-    MOV #INI_R2L,R0
-THEN
-MOV @R13+,R0 
-ENDCODE 
-
-ECHO
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-START
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/RTC.4TH b/MSP430-FORTH/MSP_EXP430FR5994/RTC.4TH
deleted file mode 100644 (file)
index 2bb1286..0000000
+++ /dev/null
@@ -1,674 +0,0 @@
-
-CODE ABORT_RTC
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1812,R14
-BIT #$8000,R14
-0<> IF MOV #0,R14 THEN
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-ABORT" target without LF_XTAL !"
-PWR_STATE
-;
-
-ABORT_RTC
-
-; --------------------
-; RTC.4th for MSP_EXP430FR5994
-; --------------------
-
-[DEFINED] {RTC} [IF] {RTC} [THEN] 
-
-MARKER {RTC}
-8 ALLOT
-
-
-[UNDEFINED] OR [IF]
-CODE OR
-BIS @R15+,R14
-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] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,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] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
-CODE DROP
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DEPTH [IF]
-CODE DEPTH
-MOV R14,-2(R15)
-MOV #$1C80,R14
-SUB R15,R14
-RRA R14
-SUB #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
-CODE 1+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @R15+,R14
-0<> IF
-    MOV #-1,R14
-    U< IF
-        AND #0,R14
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] = [IF]
-CODE =
-SUB @R15+,R14
-0<> IF
-    AND #0,R14
-    MOV @R13+,R0
-THEN
-XOR #-1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] CASE [IF]
-: CASE 0 ; 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 
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,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] 2* [IF]
-CODE 2*
-ADD R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] UM* [IF]    
-CODE UM*
-    MOV @R15,&$4C0
-    MOV R14,&$4C8
-    MOV &$4E4,0(R15)
-    MOV &$4E6,R14
-    MOV @R13+,R0
-ENDCODE
-[THEN] 
-
-[UNDEFINED] UM/MOD [IF]
-CODE UM/MOD
-    PUSH #DROP
-    MOV #$4066,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U*/ [IF]
-: U*/
->R UM* R> UM/MOD SWAP DROP
-;
-[THEN]
-
-[UNDEFINED] U/MOD [IF]
-: U/MOD
-0 SWAP UM/MOD
-;
-[THEN]
-
-[UNDEFINED] UMOD [IF]
-: UMOD
-U/MOD DROP
-;
-[THEN]
-
-[UNDEFINED] U/ [IF]
-: U/
-U/MOD SWAP DROP
-;
-[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] HERE [IF]
-CODE HERE
-MOV #$4028,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-$81EF $1A04 @ U<     ; search device ID: MSP430FR4133 or...
-$1A04 @ $8241 U<     ; ...MSP430FR2433
-=   
-$830B $1A04 @ U<     ; MSP430FR21xx/23xx/24xx/25xx/26xx
-OR                      ; -- flag
-
-[IF] 
-
-
-    CREATE $4B0 2 ALLOT
-    CREATE $4B1 2 ALLOT
-    CREATE $4B2 2 ALLOT
-    CREATE $4B3 2 ALLOT
-    CREATE $4B4 2 ALLOT
-    CREATE $4B5 2 ALLOT
-    CREATE $4B6 2 ALLOT
-
-    HDNCODE RTC_INT
-    ADD #2,R1
-    BIT #1,&$4AE
-    ADD.B #1,&$4B0
-    CMP.B #60,&$4B0
-    U>= IF               
-        MOV.B #0,&$4B0
-        ADD.B #1,&$4B1
-        CMP.B #60,&$4B1
-        U>= IF               
-            MOV.B #0,&$4B1
-            ADD.B #1,&$4B2
-            CMP.B #24,&$4B2
-            U>= IF                
-                MOV.B #0,&$4B2
-                ADD.B #1,&$4B3
-                CMP.B #7,&$4B3
-                U>= IF
-                    MOV.B #0,&$4B3
-                THEN
-                ADD.B #1,&$4B4
-                CMP.B #2,&$4B5
-                0= IF
-                    COLON
-                    $4B6 @ 4 UMOD 
-                    IF 29
-                    ELSE
-                        $4B6 @ 100 UMOD 
-                        IF 30
-                        ELSE
-                            $4B6 @ 400 UMOD
-                            IF 29
-                            ELSE 30
-                            THEN
-                        THEN
-                    THEN
-                    HI2LO
-                    MOV @R1+,R13
-                    MOV R14,R9
-                    MOV @R15+,R14
-                ELSE
-                    MOV #31,R9
-                    MOV.B &$4B5,R10
-                    CMP.B #8,R10
-                    0>= IF
-                        ADD.B #1,R10      
-                    THEN
-                    BIT.B #1,R10
-                    0<> IF      
-                        ADD #1,R9
-                    THEN
-                THEN
-                CMP.B R9,&$4B4
-                U>= IF
-                    MOV.B #1,&$4B4
-                    ADD.B #1,&$4B5
-                    CMP.B #13,&$4B5
-                    U>= IF
-                    MOV.B #1,&$4B5
-                        ADD #1,&$4B6
-                    THEN
-                THEN
-            THEN
-        THEN
-    THEN
-    MOV @R1+,R0
-    ENDCODE    
-
-    HDNCODE STOP_RTC
-    CMP #$40AA,&{RTC}+8
-    0<> IF
-    MOV #{RTC}+10,R9
-        MOV #$40AA,-2(R9)
-        MOV @R9+,&RTC_VEC
-        MOV @R9+,&COLD+2
-        MOV @R9+,&WARM+2
-    THEN
-    MOV #0,&RTCCTL
-    MOV.B #XIN,R9
-    BIC.B R9,&XT1_SEL
-    BIS.B R9,&XT1_DIR
-    BIC.B R9,&XT1_OUT
-    BIS.B R9,&XT1_OUT
-    BIC.B R9,&XT1_OUT
-    BIS.B R9,&XT1_OUT
-    BIC.B R9,&XT1_DIR
-    BIS.B R9,&XT1_SEL
-    MOV &COLD+2,R0
-    ENDCODE
-
-    HDNCODE INI_RTC
-    CALL &{RTC}+14
-    CMP #0,&RTCCTL
-    0= IF
-        MOV #$7F,&RTCMOD
-        BIT #-1,&$4AE
-        MOV #%0010_0110_0100_0010,&RTCCTL
-    THEN
-    MOV @R1+,R0
-    ENDCODE
-
-
-    CODE START_RTC
-    CMP #STOP_RTC,&{RTC}+8
-    0<> IF
-        MOV #STOP_RTC,&{RTC}+8
-        MOV &RTC_VEC,&{RTC}+10
-        MOV #RTC_INT,&RTC_VEC
-        MOV &COLD+2,&{RTC}+12
-        MOV #STOP_RTC,&COLD+2
-        MOV &WARM+2,&{RTC}+14
-        MOV #INI_RTC,&WARM+2
-    THEN
-    CALL #INI_RTC
-    MOV @R13+,R0
-    ENDCODE                 
-
-    : TIME?
-    $4B2 C@ 2 U.R $3A EMIT
-    $4B1 C@  2 U.R $3A EMIT
-    $4B0 C@  2 U.R 
-    ;
-    
-    : TIME!
-    START_RTC
-    2 DEPTH
-    U< IF
-        $4B0 C!
-        $4B1 C!
-        $4B2 C!
-    THEN
-    ." it is " TIME? 
-    ;
-
-    : DATE?
-
-[ELSE]
-
-
-    CODE TIME?
-    BEGIN
-        BIT.B #$10,&$4A2
-    0<> UNTIL
-    COLON
-    $4B2 C@ 2 U.R $3A EMIT
-    $4B1 C@  2 U.R $3A EMIT
-    $4B0 C@  2 U.R 
-    ;
-    
-    : TIME!
-    2 DEPTH
-    U< IF
-        $4B0 C!
-        $4B1 C!
-        $4B2 C!
-    THEN
-    ." it is " TIME? 
-    ;
-
-    CODE DATE?
-    BEGIN
-        BIT.B #$10,&$4A2
-    0<> UNTIL
-    COLON
-
-[THEN]
-
-
-    $4B3 C@
-    CASE
-    0 OF ." Sat"    ENDOF
-    1 OF ." Sun"    ENDOF
-    2 OF ." Mon"    ENDOF
-    3 OF ." Tue"    ENDOF
-    4 OF ." Wed"    ENDOF
-    5 OF ." Thu"    ENDOF
-    6 OF ." Fri"    ENDOF
-    ENDCASE  
-    $4B6 @
-    $4B5 C@
-    $4B4 C@
-    $20 EMIT
-    2 U.R $2F EMIT
-    2 U.R $2F EMIT
-    .
-;
-
-
-
-: DATE!
-2 DEPTH
-U< IF
-    $4B6 !
-    $4B5 C!
-    $4B4 C!
-THEN
-$4B4 C@
-$4B5 C@
-$4B6 @
-OVER 3 U<
-IF 1 - SWAP 12 + SWAP 
-THEN
-100 U/MOD
-DUP 4 U/ SWAP 2* -
-SWAP DUP 4 U/ + +
-SWAP 1+  13 5 U*/ + +
-7 UMOD
-$4B3 C!
-." we are on " DATE? 
-;
-
-RST_HERE
-
-[UNDEFINED] S_ [IF]
-CODE S_
-MOV #0,&$1DB4
-COLON
-$4014 ,
-$20 WORD
-HI2LO
-MOV.B @R14,R14
-ADD #1,R14
-BIT #1,R14
-ADDC R14,&$1DC6
-MOV @R15+,R14
-MOV @R1+,R13
-MOV #$20,&$1DB4
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ESC [IF]
-CODE ESC
-CMP #0,&$1DBE
-0= IF MOV @R13+,R0
-THEN
-COLON          
-$1B
-POSTPONE LITERAL
-POSTPONE EMIT
-POSTPONE S_
-POSTPONE TYPE
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] EXECUTE [IF]
-CODE EXECUTE
-PUSH R14
-MOV @R15+,R14
-MOV @R1+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] EVALUATE [IF]
-CODE EVALUATE
-MOV #$1DC0,R9
-MOV @R9+,R12
-MOV @R9+,R11
-MOV @R9+,R10
-PUSHM #4,R13
-LO2HI
-INTERPRET
-HI2LO
-MOV @R1+,&$1DC4
-MOV @R1+,&$1DC2
-MOV @R1+,&$1DC0
-MOV @R1+,R13 
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-: SET_TIME
-ESC [8;40;80t
-39 0 DO CR LOOP
-ESC [H
-CR ." DATE (DMY): "
-$1CE4 DUP #84
-['] ACCEPT >BODY
-EXECUTE
-EVALUATE
-CR DATE!
-CR ." TIME (HMS): "
-$1CE4 DUP #84
-['] ACCEPT >BODY
-EXECUTE
-EVALUATE
-CR TIME!
-RST_STATE
-;
-ECHO
-SET_TIME
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/SD_TEST.4TH b/MSP430-FORTH/MSP_EXP430FR5994/SD_TEST.4TH
deleted file mode 100644 (file)
index eaa3e9f..0000000
+++ /dev/null
@@ -1,430 +0,0 @@
-
-; -----------
-; SD_TEST.4th for MSP_EXP430FR5994
-; -----------
-
-CODE ABORT_SD_TEST
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_SD_TEST
-
-PWR_STATE
-
-[DEFINED] {SD_TEST} [IF]  {SD_TEST} [THEN]
-
-MARKER {SD_TEST}
-
-[UNDEFINED] EXIT [IF]
-CODE EXIT
-MOV @R1+,R13
-MOV @R13+,R0
-
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 0= [IF]
-CODE 0=
-SUB #1,R14
-SUBC R14,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-CODE ELSE
-ADD #4,&$1DC6
-MOV &$1DC6,R10
-MOV #$403A,-4(R10)
-MOV R10,0(R14)
-SUB #2,R10
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]
-CODE BEGIN
-    MOV #$4028,R0
-ENDCODE IMMEDIATE
-
-CODE UNTIL
-    MOV #$4034,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE AGAIN
-MOV #$403A,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-
-: WHILE
-POSTPONE IF SWAP
-; IMMEDIATE
-
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,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] 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] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-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] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-$1DBE CONSTANT STATE
-[THEN]
-
-[UNDEFINED] IS [IF]
-CODE DEFER!
-MOV @R15+,2(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[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]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #BEGIN,R0
-ENDCODE
-[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
-." 0 Set date and time" CR
-." 1 Load {TOOLS} words" CR
-." 2 Load {SD_TOOLS} words" CR
-." 3 Load {CORE_COMP} words" CR
-." 4 Load ANS core tests" CR
-." 5 Load a 100k program " CR
-." 6 Read only this source file" CR
-." 7 append a dump of FORTH to YOURFILE.TXT" CR
-." 8 delete YOURFILE.TXT" CR
-." 9 Load TST_WORDS" CR
-." your choice : "
-KEY
-48 - ?DUP
-0= IF
-    ." LOAD RTC.4TH" CR
-    LOAD" RTC.4TH"
-ELSE 1 - ?DUP
-    0= IF
-        ." LOAD UTILITY.4TH" CR
-        LOAD" UTILITY.4TH"
-    ELSE 1 - ?DUP
-        0= IF
-            ." LOAD SD_TOOLS.4TH" CR
-            LOAD" SD_TOOLS.4TH"
-        ELSE 1 - ?DUP
-            0= IF
-                ." LOAD CORE_ANS.4TH" CR
-                LOAD" CORE_ANS.4TH"
-            ELSE 1 - ?DUP
-                0= IF
-                    ." LOAD CORETEST.4TH" CR
-                    LOAD" CORETEST.4TH"
-                    PWR_STATE
-                ELSE 1 - ?DUP
-                    0= IF
-                        ." LOAD PROG100K.4TH" CR
-                        NOECHO
-                        LOAD" PROG100K.4TH"
-                    ELSE 1 - ?DUP
-                        0= IF
-                            ." READ PROG100K.4TH" CR
-                            READ" PROG100K.4TH"
-                            BEGIN
-                                READ
-                            UNTIL
-                        ELSE 1 - ?DUP
-                            0= IF
-                                ." WRITE YOURFILE.TXT" CR
-                                WRITE" YOURFILE.TXT"
-                                ['] SD_EMIT IS EMIT
-                                $4000 HERE OVER - DUMP
-                                ['] EMIT >BODY IS EMIT
-                                CLOSE
-                            ELSE 1 - ?DUP
-                                0= IF
-                                    ." DEL YOURFILE.TXT" CR
-                                    DEL" YOURFILE.TXT"
-                                ELSE 1 - ?DUP
-                                    0= IF
-                                        ." LOAD TSTWORDS.4TH" CR
-                                        LOAD" TSTWORDS.4TH"
-                                    ELSE
-                                        ." abort" ABORT" "
-                                    THEN                                        
-                                THEN
-                            THEN
-                        THEN
-                    THEN
-                THEN
-            THEN
-        THEN
-    THEN
-THEN
-;
-
-
-
-RST_HERE
-
-[THEN]
-
-ECHO SD_TEST
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/SD_TOOLS.4TH b/MSP430-FORTH/MSP_EXP430FR5994/SD_TOOLS.4TH
deleted file mode 100644 (file)
index b2b77fb..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-
-
-; ---------------------------------------------------------------
-; SD_TOOLS.4th for MSP_EXP430FR5994 : BASIC TOOLS for SD Card : DIR FAT SECTOR CLUSTER
-; ---------------------------------------------------------------
-
-CODE ABORT_SD_TOOLS
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_SD_TOOLS
-
-
-[DEFINED] {SD_TOOLS} [IF]  {SD_TOOLS} [THEN]
-
-[UNDEFINED] {SD_TOOLS} [IF]
-
-MARKER {SD_TOOLS}
-
-[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] 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] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,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] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[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
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[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 SECTOR.
-BW1 MOV     R14,R9
-    MOV     @R15,R10
-    CALL    #READ_SWX
-COLON
-    <# #S #> TYPE SPACE
-    $1E00 $200 DUMP CR ;
-
-CODE CLUSTR.
-BW2 BIT.B   #4,&$260
-    0<> IF
-        MOV #COLD,R0
-    THEN
-    MOV.B &$2012,R10
-    MOV @R15,R9
-    GOTO FW1
-    BEGIN
-        ADD R9,R9
-        ADDC R14,R14
-FW1     RRA R10
-    U>= UNTIL
-    ADD     &$2010,R9
-    MOV     R9,0(R15)      
-    ADDC    #0,R14
-    GOTO    BW1
-ENDCODE
-
-CODE FAT
-    SUB     #4,R15
-    MOV     R14,2(R15)
-    MOV     &$2008,0(R15)
-    MOV     #0,R14
-    GOTO    BW1
-ENDCODE
-
-CODE DIR
-    SUB     #4,R15
-    MOV     R14,2(R15)
-    MOV     &$202C,0(R15)
-    MOV     &$202E,R14
-    CMP     #0,R14
-    0<>     ?GOTO BW2
-    CMP     #1,0(R15)
-    0<>     ?GOTO BW2
-    MOV     &$200E,0(R15)
-    GOTO    BW1
-ENDCODE
-
-
-RST_HERE
-
-[THEN]
-ECHO
-
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/TESTASM.4TH b/MSP430-FORTH/MSP_EXP430FR5994/TESTASM.4TH
deleted file mode 100644 (file)
index edebebf..0000000
+++ /dev/null
@@ -1,512 +0,0 @@
-
-; -----------------------------------------------------------------------
-; TEST_ASM.4th for MSP_EXP430FR5994
-; -----------------------------------------------------------------------
-
-CODE ABORT_TEST_ASM
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_TEST_ASM
-
-[UNDEFINED] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-MOV R7,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,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 
-CREATE
-HI2LO
-MOV #$1287,-4(R10)
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DEFER [IF]
-
-: DEFER
-CREATE
-HI2LO
-MOV #$4030,-4(R10)
-MOV #$403C,-2(R10)
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-CODE >BODY
-ADD #4,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] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-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] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] LOOP [IF]
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] +LOOP [IF]
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[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
-            MOV     #1,R11
-            MOV     #0,R12
-
-            PUSHM   #4,R13
-            POPM    #4,R13
-            SUB     #10,R15
-            MOV     R14,8(R15)
-            MOV     R12,6(R15)
-            MOV     R11,4(R15)
-            MOV     R10,2(R15)
-            MOV     R9,0(R15)
-            MOV     R8,R14
-            RRAM    #1,R14
-            RLAM    #2,R14
-            RRCM    #1,R14
-            RRUM    #1,R14
-            COLON
-            space . . . . .
-            ;
-
-TESTPUSHM  ; you should see 11111 3 2 1 0 -->
-
-CODE TESTPOPM
-            GOTO BW1
-ENDCODE
-
-
-TESTPOPM  ; you should see 11111 3 2 1 0 -->
-
-
-
-CODE TEST1
-
-            MOV &$1DDC,&$1DDC
-            CMP #%10,&$1DDC
-0<> IF      MOV #2,&$1DDC
-ELSE        MOV #$0A,&$1DDC
-THEN        
-            COLON
-            $1DDC @ U.
-            ;
-
-
-: TEST2
-            $1DDC @ U.
-            HI2LO
-
-
-            CMP #2, &$1DDC
-0<> IF      MOV #2, &$1DDC
-ELSE        MOV #10,&$1DDC
-THEN
-            MOV @R1+,R13
-            MOV @R13+,R0
-ENDCODE
-
-
-CODE TEST3
-            CMP #2, &$1DDC
-0<> IF      MOV #2, &$1DDC
-ELSE        MOV #10,&$1DDC
-THEN        COLON
-            $1DDC @  U.
-;
-
-
-
-: TEST5
-            SPACE
-            HI2LO
-            SUB #2,R15
-            MOV R14,0(R15)
-            MOV #%1010,R14
-BEGIN       SUB #$0001,R14
-            LO2HI
-
-            DUP U.
-            HI2LO
-            CMP #0,R14
-0= UNTIL    MOV @R15+,R14
-            MOV @R1+,R13
-            MOV @R13+,R0
-ENDCODE
-
-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,
-LOOP
-DOES>
-+
-;
-
-8 BYTES_TABLE_IDX BYTES_TABLE
-
-2 BYTES_TABLE C@ . ; you should see 2 -->
-
-
-VARIABLE BYTES_TABLE1
-
-$0201 BYTES_TABLE1 !
-
-CODE IDX_TEST1
-    MOV.B   BYTES_TABLE1(R14),R14
-COLON
-    U. 
-;      
-
-0 IDX_TEST1     ; you should see 1 -->
-
-CODE TEST6
-            MOV 0(R15),0(R15)
-            MOV @R13+,R0
-ENDCODE
-
-
-1 TEST6 .       ; you should see 1 -->
-
-
-
-
-
-CREATE TABLE0
-0 C,
-1 C,
-2 C,
-3 C,
-
-
-CREATE TABLE10
-$10 C,
-$11 C,
-$12 C,
-$13 C,
-
-
-
-CREATE TABLE20
-$20 C,
-$21 C,
-$22 C,
-$23 C,
-
-
-CREATE TABLE
-
-
-TABLE 2 - CONSTANT PFA_TABLE
-
-
-CODE REDIRECT       ; <table> --    redirects TABLE to argument <table>    
-MOV R14,&PFA_TABLE
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-
-
-CODE REDIRECT0      ; --            redirects TABLE to TABLE0        
-MOV #TABLE0,&PFA_TABLE
-MOV @R13+,R0
-ENDCODE
-
-
-CODE REDIRECT10     ; --            redirects TABLE to TABLE10        
-MOV #TABLE10,&PFA_TABLE
-MOV @R13+,R0
-ENDCODE
-
-
-CODE REDIRECT20     ; --            redirects TABLE to TABLE20        
-MOV #TABLE20,&PFA_TABLE
-MOV @R13+,R0
-ENDCODE
-
-
-' TABLE0 10 DUMP
-
-' TABLE10 10 DUMP
-
-' TABLE20 10 DUMP
-
-
-TABLE0 REDIRECT TABLE 10 DUMP
-
-TABLE10 REDIRECT TABLE 10 DUMP
-
-TABLE20 REDIRECT TABLE 10 DUMP
-
-
-REDIRECT0 TABLE 10 DUMP
-
-REDIRECT10 TABLE 10 DUMP
-
-REDIRECT20 TABLE 10 DUMP
-
-
-TABLE0 PFA_TABLE ! TABLE 10 DUMP
-
-TABLE10 PFA_TABLE ! TABLE 10 DUMP
-
-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
-                        ; with its default action (DUP) located at its BODY addresse.
-
-TRUC .                  ; display R14 value -->
-
-
-' TRUC >BODY IS TRUC    ; TRUC is reinitialzed with its default action
-
-
-TRUC .                  ; display R14 value --> 
-
-
-
-
-
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/TSTWORDS.4TH b/MSP430-FORTH/MSP_EXP430FR5994/TSTWORDS.4TH
deleted file mode 100644 (file)
index fb92b9c..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>     --
-    $20 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
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/UARTI2CS.4TH b/MSP430-FORTH/MSP_EXP430FR5994/UARTI2CS.4TH
deleted file mode 100644 (file)
index fb338a6..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-; ----------------------------------------------------------------------
-; UARTI2CS.4th for MSP_EXP430FR5994
-; ----------------------------------------------------------------------
-
-CODE ABORT_UARTI2CS
-SUB #4,R15
-MOV R14,2(R15)
-MOV &$1812,R14
-BIT #$7800,R14
-0<> IF MOV #0,R14 THEN
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-ABORT" <-- Ouch! unexpected I2C_FastForth target!"
-PWR_STATE
-;
-
-ABORT_UARTI2CS
-
-[DEFINED] {UARTI2CS} 
-[IF] {UARTI2CS}
-[THEN]
-
-MARKER {UARTI2CS}
-8 ALLOT
-
-[UNDEFINED] CONSTANT [IF]
-: CONSTANT 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-$FFA2 CONSTANT I2CS_ADR
-
-HDNCODE I2CSTOP
-BIS.B #2,&$265
-MOV R0,R0
-BIS.B #4,&$265
-MOV R0,R0
-BIC.B #2,&$265
-MOV R0,R0
-BIC.B #4,&$265
-MOV @R1+,R0
-ENDCODE
-
-HDNCODE STOP_U2I
-BW1
-CMP #$40AA,&{UARTI2CS}+8
-0<> IF
-    CALL #I2CSTOP
-    MOV #6,R10
-    BIC.B R10,&$265
-    BIS.B R10,&$263
-    BIS.B R10,&$267
-    MOV #0,&$3C0
-    MOV #{UARTI2CS}+10,R10
-    MOV #$40AA,-2(R10)
-    MOV @R10+,&WARM+2
-    MOV @R10+,&$FFF0
-    MOV @R10+,&$FFF4
-    MOV #1,R14
-THEN
-MOV @R1+,R0
-ENDCODE
-
-
-
-HDNCODE U2I_TERM_INT
-ADD #4,R1
-MOV &{UARTI2CS}+16,R10
-MOV #$1CE4,R11
-MOV #$0D,R12
-BEGIN
-    MOV.B &$5CC,R8
-    ADD #1,R11
-    MOV.B R8,-1(R11)
-    CMP.B R8,R12
-0<> WHILE
-    CMP #0,R10
-    0= IF
-        BEGIN
-            BIT #2,&$5DC
-        0<> UNTIL
-        MOV.B R8,&$5CE
-    THEN
-    BEGIN
-        BIT #1,&$5DC
-    0<> UNTIL
-REPEAT
-CALL #$41C8
-BEGIN
-    BIT #1,&$5DC
-0<> UNTIL
-BW2
-MOV.B &$5CC,R12
-MOV.B R12,0(R11)
-BW3
-BIS.B   #4,&$265
-MOV.B   &I2CS_ADR,R9
-MOV     #$1CE4,R8
-MOV R0,R0
-BIS.B   #2,&$265
-BEGIN
-    MOV.B #8,R10
-    BEGIN
-        ADD.B R9,R9
-        U>= IF
-            BIC.B #4,&$265
-        ELSE
-            BIS.B #4,&$265
-        THEN
-        BIC.B #2,&$265
-        BEGIN
-            BIT.B #2,&$261
-        0<> UNTIL
-        BIS.B #2,&$265
-        SUB #1,R10
-    0= UNTIL
-    BIC.B #4,&$265
-    BIC.B #2,&$265
-    MOV R0,R0
-    BIT.B #4,&$261
-    BIS.B #2,&$265
-0= WHILE
-    CMP R12,R11
-0<> WHILE
-    MOV.B @R8+,R9
-    MOV R9,R11
-REPEAT
-THEN
-GOTO FW1
-ENDCODE
-
-
-HDNCODE HALF_S_INT
-ADD #4,R1
-FW1
-BW3
-CMP #0,&$1812
-0>= IF
-  MOV #%0001_0101_0110,&$3C0
-ELSE
-  MOV #%0001_1101_0110,&$3C0
-THEN
-BEGIN
-    BIC.B #2,&$265
-    BIT #8,&$5CA
-    0<> ?GOTO BW1
-    BIS.B   #4,&$265
-    MOV.B   &I2CS_ADR,R8
-    BIS.B   #1,R8
-    $3C00 ,
-    BIS.B   #2,&$265
-    MOV.B #8,R10
-    BEGIN
-        ADD.B R8,R8
-        U>= IF
-           BIC.B #4,&$265
-        ELSE
-           BIS.B #4,&$265
-        THEN
-        BIC.B #2,&$265
-        MOV R0,R0
-        BIS.B #2,&$265
-        SUB #1,R10
-    0= UNTIL
-    BIC.B   #4,&$265
-    BIC.B   #2,&$265
-    BEGIN
-        BIT.B #2,&$261
-    0<> UNTIL
-    BIT.B   #4,&$261
-    BIS.B   #2,&$265
-    0<> IF
-        CALL #I2CSTOP
-        MOV #$4000,R0
-    THEN
-    BEGIN
-        BEGIN
-            BIC.B #4,&$265
-            MOV.B #8,R10
-            BEGIN
-               BIC.B #2,&$265
-               MOV R0,R0
-               BIT.B #4,&$261
-               BIS.B #2,&$265
-               ADDC.B R9,R9
-               SUB #1,R10
-            0= UNTIL
-            CMP.B #-1,R9
-            0= IF
-                MOV #2,R9
-            THEN
-            CMP.B #8,R9
-        U>= WHILE
-            BEGIN
-                BIT #2,&$5DC
-            0<> UNTIL
-            BIS.B #4,&$265
-            BIC.B #2,&$265
-            BEGIN
-                BIT.B #2,&$261
-            0<> UNTIL
-            MOV.B R9,&$5CE
-            BIS.B #2,&$265
-        REPEAT
-        CMP.B #4,R9
-        U>= IF
-            MOV #0,&{UARTI2CS}+16
-            0= IF
-                MOV #-1,&{UARTI2CS}+16
-            THEN
-            BIS.B #4,&$265
-        THEN
-        BIC.B #2,&$265
-        BEGIN
-            BIT.B #2,&$261
-        0<> UNTIL
-        BIT.B #4,&$261
-        BIS.B #2,&$265
-    0<> UNTIL
-    CMP.B #2,R9
-U>= WHILE
-    0= IF
-        MOV #0,&{UARTI2CS}+16
-        CALL #$41C6
-        BEGIN
-            BIC #1,&$5DC
-            MOV &$1800,R8
-            BEGIN MOV #32,R10
-                BEGIN SUB #1,R10
-                0= UNTIL
-                SUB #1,R8
-            0= UNTIL
-            BIT #1,&$5DC
-        0= UNTIL
-    THEN
-REPEAT
-CALL #I2CSTOP
-CMP.B #1,R9
-0= IF
-    MOV #$1CE4,R11
-    CALL #$41C6
-    BEGIN
-        BIT #1,&$5DC
-    0<> UNTIL
-    CALL #$41C8
-    GOTO BW2
-THEN
-MOV #$4000,R0
-ENDCODE
-
-HDNCODE INI_U2I
-CALL &{UARTI2CS}+10
-CMP #$0E,R14
-0<> IF
-    CMP #$0A,R14
-    U>= ?GOTO BW1
-THEN
-BIT.B #$20,&$240
-0= ?GOTO BW1
-MOV #0,&$1808
-MOV #$800,&$3D2
-BIC.B #6,&$267
-BIC.B #6,&$263
-GOTO BW3
-ENDCODE
-
-: UARTI2CS
-CR I2CS_ADR !
-HI2LO
-CMP #$40AA,&{UARTI2CS}+8
-0= IF
-    MOV #STOP_U2I,&{UARTI2CS}+8
-    MOV &WARM+2,&{UARTI2CS}+10
-    MOV &$FFF0,&{UARTI2CS}+12
-    MOV &$FFF4,&{UARTI2CS}+14
-
-    MOV #0,&{UARTI2CS}+16
-    MOV #INI_U2I,&WARM+2
-    MOV #U2I_TERM_INT,&$FFF0
-    MOV #HALF_S_INT,&$FFF4
-
-THEN
-MOV #WARM,R0
-ENDCODE           
-
-RST_HERE ECHO
-18 UARTI2CS     ; TERATERM(Alt-B) or I2C_Master($20+RST) to quit
diff --git a/MSP430-FORTH/MSP_EXP430FR5994/UTILITY.4TH b/MSP430-FORTH/MSP_EXP430FR5994/UTILITY.4TH
deleted file mode 100644 (file)
index 2649d8f..0000000
+++ /dev/null
@@ -1,451 +0,0 @@
-
-
-; ------------------------------------------------------------------------------
-; UTILITY.4th for MSP_EXP430FR5994
-; ------------------------------------------------------------------------------
-
-CODE ABORT_UTILITY
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_UTILITY
-
-PWR_STATE
-
-[DEFINED] {TOOLS} [IF]  {TOOLS} [THEN]
-
-[UNDEFINED] {TOOLS} [IF]
-
-MARKER {TOOLS} 
-
-[UNDEFINED] EXIT [IF]
-CODE EXIT
-MOV @R1+,R13
-MOV @R13+,R0
-
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @R15+,R14
-0<> IF
-    MOV #-1,R14
-    U< IF
-        AND #0,R14
-    THEN
-THEN
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]
-CODE IF
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$1DC6,R14
-ADD #4,&$1DC6
-MOV #$4034,0(R14)
-ADD #2,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE THEN
-MOV &$1DC6,0(R14)
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]
-CODE BEGIN
-    MOV #$4028,R0
-ENDCODE IMMEDIATE
-
-CODE UNTIL
-    MOV #$4034,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE AGAIN
-MOV #$403A,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-
-: WHILE
-POSTPONE IF SWAP
-; IMMEDIATE
-
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
-    MOV R9,-4(R10)
-    MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
-    MOV @R15+,R14
-    MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]
-CODE DUP
-BW1 SUB #2,R15
-    MOV R14,0(R15)
-    MOV @R13+,R0
-ENDCODE
-
-CODE ?DUP
-CMP #0,R14
-0<> ?GOTO BW1
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-
-[UNDEFINED] DROP [IF]
-CODE DROP
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,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] 2DUP [IF]
-CODE 2DUP
-MOV R14,-2(R15)
-MOV @R15,-4(R15)
-SUB #4,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
-CODE 1+
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,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] 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] 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] OVER [IF]
-CODE OVER
-MOV R14,-2(R15)
-MOV @R15,R14
-SUB #2,R15
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] MOVE [IF]
-CODE MOVE
-MOV R14,R10
-MOV @R15+,R8
-MOV @R15+,R9
-MOV @R15+,R14
-CMP #0,R10
-0<> IF
-    CMP R9,R8
-    0= ?GOTO FW1
-    U< IF
-        BEGIN
-            MOV.B @R9+,0(R8)
-            ADD #1,R8
-            SUB #1,R10
-        0= UNTIL
-        MOV @R13+,R0
-    ELSE
-        ADD R10,R8
-        ADD R10,R9
-        BEGIN
-            SUB #1,R9
-            SUB #1,R8
-            MOV.B @R9,0(R8)
-            SUB #1,R10
-        0= UNTIL
-    THEN
-THEN
-FW1 MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] .S [IF]
-CODE .S
-    MOV     R14,-2(R15)
-    MOV     R15,R14
-    SUB     #2,R14
-    MOV     R14,-6(R15)
-    MOV     #$1C80,R14
-    SUB     #2,R14
-BW1 MOV     R14,-4(R15)
-    SUB     #6,R15
-    SUB     @R15,R14
-    RRA     R14
-COLON
-    $3C EMIT
-    .
-    $08 EMIT
-    $3E EMIT SPACE
-    2DUP 1+
-    U< IF 
-        DROP DROP EXIT
-    THEN
-    $1DDC @ >R
-    $10 $1DDC !
-    DO 
-        I @ U.
-    2 +LOOP
-    R> $1DDC !
-;
-[THEN]
-
-[UNDEFINED] .RS [IF]
-CODE .RS
-    MOV     R14,-2(R15)
-    MOV     R1,-6(R15)
-    MOV     #$1CE0,R14
-    GOTO    BW1
-ENDCODE
-[THEN]
-
-[UNDEFINED] ? [IF]
-CODE ?          
-    MOV @R14,R14
-    MOV #U.,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] WORDS [IF]
-: WORDS
-CR 
-$1DCA @ $1CE4
-$1810 @ DUP +
-MOVE
-BEGIN
-    0 DUP
-    $1810 @ DUP + 0
-        DO
-        DUP I $1CE4 + @
-            U< IF
-                DROP DROP
-                I DUP $1CE4 + @
-            THEN
-        2 +LOOP
-    ?DUP
-WHILE
-    DUP
-    2 - @
-    ROT
-    $1CE4 +
-    !
-    DUP
-    COUNT $7F AND
-    TYPE
-    C@ $0F AND
-    $10 SWAP - SPACES
-REPEAT
-DROP
-;
-[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 2DUP
-  U. U.
-  $FFF0 AND
-  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]
-
-RST_HERE
-
-[THEN]
-ECHO
diff --git a/MSP430-FORTH/PROG100k.f b/MSP430-FORTH/PROG100k.f
deleted file mode 100644 (file)
index 60f2128..0000000
+++ /dev/null
@@ -1,41675 +0,0 @@
-\ -*- coding: utf-8 -*-
-
-; -----------------------------------
-; PROG100k.f = 76 x RC5toLCD.f
-; -----------------------------------
-; download source file sized to compile 100 kbytes
-; -----------------------------------
-
-\ TARGET SELECTION ( = the name of \INC\target.pat file without the extension)
-\ MSP_EXP430FR5739  MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
-\ MSP_EXP430FR2355
-\ LP_MSP430FR2476
-\
-\ from scite editor : copy your target selection in (shift+F8) parameter 1:
-\
-\ OR
-\
-\ drag and drop this file onto SendSourceFileToTarget.bat
-\ then select your TARGET when asked.
-\
-\
-\ 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  <-------+---0V0---------->  1 LCD_Vss
-\  VCC  >------ | --3V6-----+---->  2 LCD_Vdd
-\               |           |
-\              ___    470n ---
-\               ^          ---
-\              / \ 1N4148   |
-\              ---          |
-\          100n |    2k2    |
-\ LCD_TIM_.2 >---||--+--^/\/\/v--+---->  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)
-
-\ first, we test for downloading driver only if UART TERMINAL target
-CODE ABORT_RC5TOLCD
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-'CR' EMIT            \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_UARTI2CS definition before resuming
-;
-
-ABORT_RC5TOLCD
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] = [IF]
-\ https://forth-standard.org/standard/core/Equal
-\ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
-\ https://forth-standard.org/standard/core/IF
-\ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/THEN
-\ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
-\ https://forth-standard.org/standard/core/ELSE
-\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
-\ https://forth-standard.org/standard/core/toBODY
-\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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_WRC                    \ char --         Write Char
-    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
-BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
-    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
-    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_WRF                    \ func --         Write Fonction
-    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
-    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_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             \ -- %0000_HHHH
-\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
-\ HI2LO                           \ switch from FORTH to assembler
-\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
-\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
-\     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
-\ 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 #%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)
-[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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
-
-
-ECHO
-            ; downloading PROG100k.4th is done
-RST_HERE    ; this app is protected against <reset>
-
-\ START
diff --git a/MSP430-FORTH/PROG10K.f b/MSP430-FORTH/PROG10K.f
new file mode 100644 (file)
index 0000000..7230f9a
--- /dev/null
@@ -0,0 +1,4625 @@
+\ -*- coding: utf-8 -*-
+
+; -----------------------------------
+; PROG10K.f
+; -----------------------------------
+
+; load and compile 10kb (9 x RC52LCD)
+
+\ to see kernel options, download FastForthSpecs.f
+\ FastForth kernel options: MSP430ASSEMBLER, CONDCOMP, FREQUENCY = 8/16/24 MHz
+\
+\ TARGET SELECTION ( = the name of \INC\target.pat file without the extension)
+\ MSP_EXP430FR5739  MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
+\ MSP_EXP430FR2355
+\ LP_MSP430FR2476
+\
+\ from scite editor : copy your target selection in (shift+F8) parameter 1:
+\
+\ OR
+\
+\ drag and drop this file onto SendSourceFileToTarget.bat
+\ then select your TARGET when asked.
+\
+\
+\ ================================================================================
+\ REGISTERS USAGE for embedded MSP430 ASSEMBLER
+\ ================================================================================
+\ don't use R2, R3, R4
+\ R5, R6, R7 must be PUSHed/POPed before/after use, OR restored after: MOV #{XDOCOL|XDOCON|R>},{rDODOES|rDOCON|rDOVAR}
+\ scratch registers Y to S are free,
+\ under interrupt, IP is free,
+\ use FORTH rules for reg. TOS, PSP, RSP.
+\
+\ PUSHM order : PSP,TOS, IP, S , T , W , X , Y ,rDOVAR,rDOCON,rDODOES,rDOCOL, 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      ?GOTO    : S< S>= U< U>= 0= 0<> 0<
+\
+\
+\ 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)
+
+
+\ first, we test for downloading driver only if UART TERMINAL target
+    CODE ABORT_RC5TOLCD
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    'CR' EMIT            \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    RST_RET              \ remove ABORT_UARTI2CS definition before resuming
+    ;
+
+    ABORT_RC5TOLCD
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/toBODY
+\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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_WRC                \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
+    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
+    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_WRF                \ func --         Write Fonction
+    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+    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 ;
+
+\     CODE LCD_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\ 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             \ -- %0000_HHHH
+\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
+\     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
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
+    THEN
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
+\ 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 #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
+ECHO
+
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/toBODY
+\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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_WRC                \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
+    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
+    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_WRF                \ func --         Write Fonction
+    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+    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 ;
+
+\     CODE LCD_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\ 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             \ -- %0000_HHHH
+\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
+\     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
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
+    THEN
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
+\ 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 #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/toBODY
+\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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_WRC                \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
+    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
+    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_WRF                \ func --         Write Fonction
+    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+    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 ;
+
+\     CODE LCD_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\ 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             \ -- %0000_HHHH
+\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
+\     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
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
+    THEN
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
+\ 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 #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/toBODY
+\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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_WRC                \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
+    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
+    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_WRF                \ func --         Write Fonction
+    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+    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 ;
+
+\     CODE LCD_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\ 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             \ -- %0000_HHHH
+\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
+\     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
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
+    THEN
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
+\ 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 #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/toBODY
+\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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_WRC                \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
+    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
+    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_WRF                \ func --         Write Fonction
+    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+    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 ;
+
+\     CODE LCD_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\ 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             \ -- %0000_HHHH
+\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
+\     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
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
+    THEN
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
+\ 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 #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/toBODY
+\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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_WRC                \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
+    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
+    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_WRF                \ func --         Write Fonction
+    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+    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 ;
+
+\     CODE LCD_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\ 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             \ -- %0000_HHHH
+\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
+\     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
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
+    THEN
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
+\ 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 #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/toBODY
+\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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_WRC                \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
+    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
+    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_WRF                \ func --         Write Fonction
+    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+    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 ;
+
+\     CODE LCD_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\ 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             \ -- %0000_HHHH
+\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
+\     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
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
+    THEN
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
+\ 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 #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/toBODY
+\ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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_WRC                \ char --         Write Char
+    BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
+BW1 SUB #2,PSP                  \
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
+    RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
+    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_WRF                \ func --         Write Fonction
+    BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
+    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 ;
+
+\     CODE LCD_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\ 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             \ -- %0000_HHHH
+\     TOP_LCD 2 20_us             \ -- %0000_HHHH %0000_LLLL
+\ HI2LO                           \ switch from FORTH to assembler
+\     RLAM #4,0(PSP)              \ -- %HHHH_0000 %0000_LLLL
+\     ADD.B @PSP+,TOS             \ -- %HHHH_LLLL
+\     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
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
+    THEN
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
+\ 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 #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
+
+\ START
index 2c3a33f..fb57da0 100644 (file)
Binary files a/MSP430-FORTH/PreprocessSourceFile.bat.lnk and b/MSP430-FORTH/PreprocessSourceFile.bat.lnk differ
index 9740ee4..a38a99c 100644 (file)
@@ -40,7 +40,7 @@
 \ 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      ?GOTO    : S< S>= U< U>= 0= 0<> 0< 
+\ ASSEMBLER conditionnal usage before      ?GOTO    : S< S>= U< U>= 0= 0<> 0<
 \
 \
 \ display on a LCD 2x20 CHAR the code sent by an IR remote under philips RC5 protocol
 
 
 \ first, we test for downloading driver only if UART TERMINAL target
-CODE ABORT_RC5TOLCD
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-'CR' EMIT            \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_UARTI2CS definition before resuming
-;
-
-ABORT_RC5TOLCD
-
-
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]     \ remove application
-
-MARKER {RC5TOLCD}   \ restore the state before MARKER definition
-\                   \ {UARTI2CS}+8 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
-6 ALLOT             \ {UARTI2CS}+10: make room to save previous INI_APP address
-                    \ {RC5TOLCD}+12: make room to save previous WDT_TIM_0_VEC
-                    \ {RC5TOLCD}+14: make room to save previous IR_VEC
-
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
-\ https://forth-standard.org/standard/core/STATE
-\ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
+    CODE ABORT_RC5TOLCD
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    'CR' EMIT            \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    RST_RET              \ remove ABORT_UARTI2CS definition before resuming
+    ;
+
+    ABORT_RC5TOLCD
+
+    MARKER {RC5TOLCD}   \ restore the state before MARKER definition
+\                       \ {UARTI2CS}-2 = RET_ADR: by default MARKER_DOES does CALL #RET_ADR
+    8 ALLOT             \ {UARTI2CS}    make room to save previous INI_APP address
+                        \ {RC5TOLCD}+2  make room to save previous WDT_TIM_0_VEC
+                        \ {RC5TOLCD}+4  make room to save previous IR_VEC
+                        \ {RC5TOLCD}+6  make room for 20 us count loop.
+
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT     \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] = [IF]
 \ https://forth-standard.org/standard/core/Equal
 \ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] IF [IF]     \ define IF and THEN
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
 \ https://forth-standard.org/standard/core/IF
 \ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP              \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/THEN
 \ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] ELSE [IF]
 \ https://forth-standard.org/standard/core/ELSE
 \ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-\
-\ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
-
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[THEN]
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ \ https://forth-standard.org/standard/core/DEFERStore
+\ \ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
+\     [UNDEFINED] IS
+\     [IF]     \ define DEFER! and IS
+\     CODE DEFER!             \ xt2 xt1 --
+\     MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
+\     MOV @PSP+,TOS           \ --
+\     MOV @IP+,PC
+\     ENDCODE
+\
+\ \ https://forth-standard.org/standard/core/IS
+\ \ IS <name>        xt --
+\ \ used as is :
+\ \ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+\ \ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
+\ \ or in a definition : ... ['] U. IS DISPLAY ...
+\ \ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+\ \
+\ \ as IS replaces the PFA value of any word, it's a TO alias for VARIABLE and CONSTANT words...
+\
+\     : IS
+\     STATEADR @
+\     IF  POSTPONE ['] POSTPONE DEFER!
+\     ELSE ' DEFER!
+\     THEN
+\     ; IMMEDIATE
+\     [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
 
-[UNDEFINED] >BODY [IF]
 \ https://forth-standard.org/standard/core/toBODY
 \ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-\ CODE 20uS           \ n --      8MHz version
-\ BEGIN               \ 4 + 16 ~ loop
-\     MOV #39,rDOCON   \ 39
-\     BEGIN           \ 4 ~ loop
-\         NOP
-\         SUB #1,rDOCON
-\     0=  UNTIL
-\     SUB #1,TOS      \ 1
-\ 0= UNTIL
-\ MOV #XDOCON,rDOCON  \ 2
-\ MOV @PSP+,TOS
-\ MOV @RSP+,IP        \
-\ 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 : %xxxx_WWWW --
-\                               \ if read  : -- %0000_RRRR
-    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               \
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
     MOV @IP+,PC
-THEN                            \ read LCD bits pattern
+    ENDCODE
+    [THEN]
+
+    CODE 20_US                      \ n --
+    BEGIN                           \          J_loop           8000    16000  24000  kHz
+        MOV &{RC5TOLCD}+6,X         \            3          X = {40      80     120}
+        SUB #2,X                    \           +1          X = {38      78     118} I_loops + 2 J_loops = {40 80 120} * 4 cycles
+        BEGIN                       \  I_loop
+            NOP                     \    1
+            SUB #1,X                \   +1
+        0=  UNTIL                   \   +2
+        NOP                         \           +1
+        SUB #1,TOS                  \           +1
+    0= UNTIL                        \           +2
+    MOV @PSP+,TOS                   \
+    MOV @RSP+,IP                    \
+    ENDCODE
+
+\                                   \ if write : %xxxx_WWWW --
+\                                   \ if read  : -- %0000_RRRR
+    CODE TOP_LCD                    \ LCD Sample
+    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
+    ENDCODE
 
-CODE LCD_WRC                    \ char --         Write Char
+    CODE LCD_WRC                \ char --         Write Char
     BIS.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=1
 BW1 SUB #2,PSP                  \
-    MOV TOS,0(PSP)              \ -- %xxxx_LLLL %HHHH_LLLL
+    MOV TOS,0(PSP)              \ -- %HHHH_LLLL %HHHH_LLLL
     RRUM #4,TOS                 \ -- %xxxx_LLLL %xxxx_HHHH
     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 
+    COLON                       \ high level word starts here
     TOP_LCD 2 20_US             \ write high nibble first
-    TOP_LCD 2 20_US 
-;
+    TOP_LCD 2 20_US
+    ;
 
-CODE LCD_WRF                    \ func --         Write Fonction
+    CODE LCD_WRF                \ func --         Write Fonction
     BIC.B #LCD_RS,&LCD_CMD_OUT  \ lcd_rs=0
     GOTO BW1
-ENDCODE
+    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 ;
+    : 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_ENTRY_SET
+\     BIS #$04,TOS
+\ BW1 COLON
+\     LCD_WrF
+\     ;
+\
+\     CODE LCD_DSP_CTRL
+\     BIS#$08,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_DSP_SHIFT
+\     BIS#$10,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_FN_SET
+\     BIS#$20,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_CGRAM_SET
+\     BIS #$40,TOS
+\     GOTO BW1
+\     ENDCODE
+\
+\     CODE LCD_GOTO
+\     BIS #$80,TOS
+\     GOTO BW1
+\     ENDCODE
+\
 \ 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
@@ -311,205 +318,173 @@ ENDCODE
 \     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
-
-
-\ ******************************\
-HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
-    U< IF
-        ADD #1,&LCD_TIM_CCRn    \ action for switch S2 (P2.5) : 150 mV / increment
+\
+\
+\   ********************************\
+    HDNCODE 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_CCRn       \ maxi Ton = 19/20 & VDD=3V6 ==> LCD_Vo = -1V4
+        U< IF
+            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_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
+            U>= IF                  \
+            SUB #1,&LCD_TIM_CCRn    \ action for switch S1 (P2.6) : -150 mV / decrement
+            THEN                    \
+        THEN                        \
+    THEN                            \
+    RETI                            \ 5
+    ENDCODE                         \
+\   ********************************\
+
+\   ********************************\
+    HDNCODE 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:     \
+\   ********************************\
+    MOV #1778,X                     \ RC5_Period in us
+    MOV #14,W                       \ count of loop
+    BEGIN                           \
+\       ****************************\
+\       RC5_HalfCycle               \ <--- loop back ---+ with readjusted RC5_Period
+\       ****************************\                   |
+      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>= ?GOTO FW1           \                   |   |   quit on truncated RC5 message
+            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           \
+\   ********************************\
+\   Only New_RC5_Command ADD_ON     \ use SR(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
+    XOR #UF10,0(RSP)                \ 5 toggle bit memory
+\   ********************************\
+\   Display IR_RC5 code             \
+\   ********************************\
+    SUB #6,PSP                      \   -- x x x TOS
+    MOV TOS,4(PSP)                  \   -- TOS x x TOS
+    MOV &BASEADR,2(PSP)             \   -- TOS Base x TOS
+    MOV #$10,&BASEADR               \                               set hexadecimal base
+    MOV X,0(PSP)                    \   -- TOS Base RC5_code TOS    convert number to ascii low word = RC5 byte
+    MOV #0,TOS                      \   -- TOS Base RC5_code 0      convert double number to ascii
+    LO2HI                           \                               switch from assembler to FORTH
+    LCD_CLEAR                       \                               set LCD cursor at home
+    <# # #S #36 HOLD #>             \   -- TOS Base adr cnt         32 bits conversion as "$xx"
+    ['] LCD_WRC IS EMIT             \                               redirect EMIT to LCD
+    TYPE                            \   -- TOS Base                 display "$xx" on LCD
+    ['] EMIT >BODY IS EMIT          \                               restore EMIT
+    HI2LO                           \                               switch from FORTH to assembler
+    MOV @PSP+,&BASEADR              \   -- TOS                      restore current BASE
+    MOV @PSP+,TOS                   \   --
+FW1 BIC #$30,&RC5_TIM_CTL           \ stop timer (case of truncated RC5 message)
+FW2 BIC #%1111_1000,0(RSP)          \ force CPU Active Mode and disable GIE in saved SR
+    RETI                            \
+    ENDCODE                         \
+\   ********************************\
+
+\ define our STOP_APP
+\ ----------------------------------\
+    HDNCODE STOP_R2L                \ called by STOP|INIT_R2L|{RC5TOLCD}
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \ only if START is done
+        BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
+        BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
+        MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER, clear LCD_TIMER IFG
+        MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
+        MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
+        MOV #{RC5TOLCD},W           \
+        MOV #RET_ADR,-2(W)          \ clear MARKER_DOES call
+        KERNEL_ADDON $3C00 TSTBIT   \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+        [IF]
+        MOV @W+,&UART_WARM+2        \ restore previous ini_APP
+        [ELSE]
+        MOV @W+,&I2C_WARM+2         \ restore previous ini_APP
+        [THEN]
+        MOV @W+,&WDT_TIM_0_VEC      \ restore Vector previous value
+        MOV @W+,&IR_VEC             \ restore Vector previous value
     THEN
-ELSE
-    BIT.B #SW1,&SW1_IN          \ test switch S1 input
-    0= IF                       \ case of Switch S1 pressed
-        CMP #3,&LCD_TIM_CCRn    \ mini Ton = 3/20 & VDD=3V6 ==> LCD_Vo = 0V
-        U>= IF                  \
-           SUB #1,&LCD_TIM_CCRn \ action for switch S1 (P2.6) : -150 mV / decrement
-        THEN                    \
-    THEN                        \
-THEN                            \
-RETI                            \ 5
-ENDCODE
-
-\ ******************************\
-HDNCODE 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)
-\ 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 #%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 FW1                \                   |   |      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(10) 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 FW2                    \ yes, RETI without UF10 change and without action !
-XOR #UF10,0(RSP)                \ 5 toggle bit memory
-\ ******************************\
-\ 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
-FW1 FW2
-    MOV @RSP+,SR                \ restore SR flags
-    BIC #%1111_1000,SR          \ but force CPU Active Mode
-    RET                         \ (instead of RETI)
-ENDCODE
-
-
-\ ------------------------------\
-HDNCODE STOP_R2L                \ define new STOP_APP
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \
-0<> IF                          \ if previous START executing
-    BIC.B #RC5,&IR_IE           \ clear I/O RC5_Int
-    BIC.B #RC5,&IR_IFG          \ clear I/O RC5_Int flag
-    MOV #0,&LCD_TIM_CTL         \ stop LCD_TIMER
-    MOV #0,&WDT_TIM_CTL         \ stop WDT_TIMER
-    MOV #0,&WDT_TIM_CCTL0       \ clear CCIFG0 disable CCIE0
-    MOV #RET_ADR,&{RC5TOLCD}+8  \ clear MARKER_DOES call
-    MOV &{RC5TOLCD}+10,&WARM+2          \ restore previous ini_APP
-    MOV &{RC5TOLCD}+12,&WDT_TIM_0_VEC   \ restore Vector previous value
-    MOV &{RC5TOLCD}+14,&IR_VEC          \ restore Vector previous value
-    MOV &{RC5TOLCD}+10,PC       \ run previous INI_APP, then RET
-THEN 
-MOV @RSP+,PC                    \ RET
-ENDCODE
-
-\ ------------------------------\
-CODE STOP                       \
-\ ------------------------------\
-BW1                             \ <-- INI_R2L for some events
-CALL #STOP_R2L
-COLON                           \ restore default action of primary DEFERred word WARM (FORTH version)
-ECHO                            \
-." RC5toLCD is removed,"
-."  type START to restart"
-ABORT" "
-;
-\ ------------------------------\
-
-\ ------------------------------\
-HDNCODE INI_R2L                 \ this routine completes the init of system, i.e. FORTH + this app.
-\ ------------------------------\
-\ activate I/O                  \
-\ ------------------------------\
-BIC #1,&PM5CTL0                 \ activate I/O to enable SW2 test
-\ ------------------------------\
-\ RESET events handling         \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
-\ ------------------------------\
-MOV &RSTIV_MEM,TOS              \ SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
-CMP #$0E,TOS                    \ RSTIV_MEM = SVSHIFG SVSH event ?
-0<> IF                          \ if not
-    CMP #$0A,TOS                \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1               \   execute STOP_R2L then RET to BODY of WARM
-THEN                            \
-BIT.B #SW2,&SW2_IN              \ hardware SW2+RST ?
-0= ?GOTO BW1                    \ hardware SW2+RST execute STOP_U2I then RET to BODY of WARM
-\ CMP #4,TOS                      \ hardware RST 
-\ 0= ?GOTO BW1                    \ hardware RST performs STOP.
-\ CMP #2,TOS                      \ Power_ON event
-\ 0= ?GOTO BW1                    \ uncomment if you want to loose application in this case...
-\ CMP #6,TOS                      \
-\ 0= ?GOTO BW1                    \ COLD event performs STOP... uncomment if it's that you want.
-\ CMP #$0A,TOS                    \
-\ 0= ?GOTO BW1                    \ fault event (violation memory protected areas) performs STOP
-\ CMP #$16,TOS                    \
-\ U>= ?GOTO BW1                   \ all other fault events + Deep Reset perform STOP
-MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST event!
-\ ------------------------------\
+    MOV @RSP+,PC                    \ RET to STOP|WARM+4|{RC5TOLCD}
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE STOP                       \ also called by INIT_R2L for some events
+\ ----------------------------------\
+BW1 CALL #STOP_R2L
+    COLON                           \
+    ECHO                            \
+    ." type START to start RC5toLCD"
+    ;
+\ ----------------------------------\
+
+\ this routine completes the INIT_HARD of FORTH, with INIT_HARD for this app.
+\ ----------------------------------\
+    HDNCODE INIT_R2L                \ called by START|SYS
+\ ----------------------------------\
 \ LCD_TIM_CTL =  %0000 0010 1001 0100\$3C0
 \                    - -             \CNTL Counter lentgh \ 00 = 16 bits
 \                        --          \TBSSEL TimerB clock select \ 10 = SMCLK
@@ -518,7 +493,7 @@ MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST
 \                                 -  \TBCLR TimerB Clear
 \                                  - \TBIE
 \                                   -\TBIFG
-\ -------------------------------\
+\ ----------------------------------\
 \ LCD_TIM_CCTLx = %0000 0000 0110 0000\$3C{2,4,6,8,A,C,E}
 \                  --                 \CM Capture Mode
 \                    --               \CCIS
@@ -531,122 +506,162 @@ MOV #0,&RSTIV_MEM               \ clear RSTIV_MEM after use and before next RST
 \                                  -  \OUT
 \                                   - \COV
 \                                    -\CCIFG
-\ -------------------------------\
-\ LCD_TIM_CCRx                   \
-\ -------------------------------\
-\ LCD_TIM_EX0                    \ 
-\ ------------------------------\
-\ set LCD_TIM_ to make 50kHz PWM \ for LCD_Vo; works without interrupt
-\ ------------------------------\
-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)
-[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
-\ ------------------------------\
+\ ----------------------------------\
+\ LCD_TIM_CCRx                      \
+\ ----------------------------------\
+\ LCD_TIM_EX0                       \
+\ ----------------------------------\
+\ set LCD_TIM_ to make 50kHz PWM    \ for LCD_Vo; works without interrupt
+\ ----------------------------------\
+    MOV #%10_1101_0100,&LCD_TIM_CTL \ SMCLK/8, up mode, clear timer, no int, set IFG
+\    MOV #0,&RC5_TIM_EX0             \ predivide by 1 in RC5_TIM_EX0 register, reset value
+\    MOV #0,&LCD_TIM_EX0             \ predivide by 1 in LCD_TIM_EX0 register (8 MHZ)
+    FREQ_KHZ @ 16000 =
+    [IF]                            \ if 16 MHz
+        MOV #1,&RC5_TIM_EX0         \ predivide by 2 in RC5_TIM_EX0 register
+        MOV #1,&LCD_TIM_EX0         \ predivide by 2 in LCD_TIM_EX0 register (16 MHZ)
+    [THEN]
+    FREQ_KHZ @ 24000 =
+    [IF]                            \ if 24 MHz
+        MOV #2,&RC5_TIM_EX0         \ predivide by 3 in RC5_TIM_EX0 register
+        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 #%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
-\ ------------------------------\
-    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
-\ ******************************\
-\ 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 #%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 ##3276,&WDT_TIM_CCR0    \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
-\ ------------------------------\
-\          %0000 0000 0001 0000 \ TAxCCTL0
-\                   -           \ CAP capture/compare mode = compare
-\                        -      \ CCIEn
-\                             - \ CCIFGn
-    MOV #%10000,&WDT_TIM_CCTL0  \ enable compare interrupt, clear CCIFG0
-\ ------------------------------\
-\ define LPM mode for ACCEPT    \
-\ ------------------------------\
-\    MOV #LPM4+GIE,&LPM_MODE    \ with MSP430FR59xx
-\    MOV #LPM2+GIE,&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
-\ ------------------------------\
-COLON                           \
-\ ------------------------------\
-\ Init LCD 2x20                 \
-\ ------------------------------\
-    #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 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" "                    \
-;                               \
-\ ------------------------------\
-
-\ ------------------------------\
-CODE START                      \ this routine replaces WARM and COLD default values by these of this application.
-\ ------------------------------\
-CMP #RET_ADR,&{RC5TOLCD}+8      \ init R2L once, only if MARKER_DOES is not initialized
-0= IF                           \ if not done, customizes MARKER_DOES
-    MOV #STOP_R2L,&{RC5TOLCD}+8 \ execution of {RC5TOLCD} will perform STOP_R2L.
-    MOV &WARM+2,&{RC5TOLCD}+10  \ save previous INI_APP subroutine
-    MOV #INI_R2L,&WARM+2        \ replace it by RC5toLCD INI_APP
-    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+12   \ save Vector previous value
-    MOV #WDT_INT,&WDT_TIM_0_VEC \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
-    MOV &IR_VEC,&{RC5TOLCD}+14  \ save Vector previous value
-    MOV #RC5_INT,&IR_VEC        \ init interrupt vector
-    MOV #INI_R2L,PC             \ then execute new INI_APP, without return
-THEN
-MOV @IP+,PC 
-ENDCODE 
-\ ------------------------------\
-
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+    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
+\ ----------------------------------\
+\ 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 #%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 ##3276,&WDT_TIM_CCR0        \ else init WDT_TIM_ for LFXT: 32768/20=1638 ==> 100ms
+\ ----------------------------------\
+\          %0000 0000 0001 0000     \ TAxCCTL0
+\                   -               \ CAP capture/compare mode = compare
+\                        -          \ CCIEn
+\                             -     \ CCIFGn
+    MOV #%10000,&WDT_TIM_CCTL0      \ enable compare interrupt, clear CCIFG0
+\ ----------------------------------\
+\ activate I/O                      \
+\ ----------------------------------\
+    CALL &{RC5TOLCD}                \ run previous INIT_HARD_APP
+\ ----------------------------------\
+\ RESET events handling             \ search "SYSRSTIV" in your MSP430FRxxxx datasheet to get listing
+\ ----------------------------------\
+    CMP #$0E,TOS                    \ SYSRSTIV = SVSHIFG SVSH event ?
+    0<> IF                          \ if not
+        CMP #$0A,TOS                \   SYSRSTIV >= violation memory protected areas | USERSYS <0 = DEEP_RESET request ?
+        U>= ?GOTO BW1               \   if yes execute STOP_R2L then RET to BODY of WARM
+    THEN                            \
+\    CMP #2,TOS                      \   Power_ON event
+\    0= ?GOTO BW1                    \   uncomment if you want to loose application in this case...
+    CMP #4,TOS                      \   SYSRSTIV|USERSYS RST ?
+    0= ?GOTO BW1                    \   if yes run STOP.
+\    CMP #$0E,TOS                    \   SYSRSTIV = SVSHIFG SVSH event ?
+\    0= ?GOTO BW1                    \   SVSHIFG SVSH event performs STOP
+\ ----------------------------------\
+    LO2HI                           \
+\ ----------------------------------\
+\   Init LCD 2x20                   \
+\ ----------------------------------\
+    #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"
+    HI2LO                           \
+    MOV @RSP+,PC                    \ RET to WARM|START
+    ENDCODE
+\ ----------------------------------\
+
+\ ----------------------------------\
+    CODE START                      \ this routine replaces INT_HARD_APP default values by these of this application.
+\ ----------------------------------\
+    CMP #WDT_INT,&WDT_TIM_0_VEC     \ value set by START
+    0= IF                           \
+        MOV @IP+,PC                 \ does nothing if already initialised
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2     \ execution of {RC5TOLCD} will perform STOP_R2L.
+    KERNEL_ADDON $3C00 TSTBIT       \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD} \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&UART_WARM+2   \ replace it by RC5toLCD INI_APP
+    [ELSE]
+       MOV &I2C_WARM+2,&{RC5TOLCD}  \ save previous INI_APP subroutine
+       MOV #INIT_R2L,&I2C_WARM+2    \ replace it by RC5toLCD INI_APP
+    [THEN]
+    MOV &WDT_TIM_0_VEC,&{RC5TOLCD}+2 \ save Vector previous value
+    MOV #WDT_INT,&WDT_TIM_0_VEC     \ for only CCIFG0 int, this interrupt clears automatically CCIFG0
+    MOV &IR_VEC,&{RC5TOLCD}+4       \ save Vector previous value
+    MOV #RC5_INT,&IR_VEC            \ init interrupt vector
+\ ----------------------------------\
+\   init 20 us count loop           \ see 20_US
+\ ----------------------------------\ -- TOS
+    SUB #6,PSP                      \ -- x x x TOS
+    MOV TOS,4(PSP)                  \ -- TOS x x TOS
+    MOV &FREQ_KHZ,2(PSP)            \ -- TOS DVDlo x TOS
+    MOV #0,0(PSP)                   \ -- TOS DVDlo DVDhi TOS
+    MOV #200,TOS                    \ -- TOS DVDlo DVDhi DIVlo
+    CALL #MUSMOD                    \ -- TOS REMlo QUOTlo QUOThi
+    MOV @PSP,&{RC5TOLCD}+6          \                       set count+2 for 20_US
+    ADD #4,PSP                      \ -- TOS QUOThi
+    MOV @PSP+,TOS                   \ -- TOS
+\ ----------------------------------\
+    CALL #INIT_R2L                  \ run new INIT_HARD_APP
+    LO2HI
+\    ['] LCD_HOME IS CR              \ ' CR redirected to LCD_HOME
+\    ['] LCD_WRC  IS EMIT            \ ' EMIT redirected to LCD_WrC
+\    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
+    HI2LO
+    MOV #ABORT,PC                   \ goto FORTH interpreter without WARM message.
+    ENDCODE                         \
+\ ----------------------------------\
+
+RST_SET
 ECHO
-            ; downloading RC5toLCD.4th is done
-RST_HERE    ; this app is protected against <reset>
 
-START
+START
index 9ffe21e..8d931cd 100644 (file)
@@ -1,7 +1,7 @@
 \ -*- coding: utf-8 -*-
 \
 \ ==============================================================================
-\ routines RTC for MSP430FRxxxx
+\ routines RTC for MSP430FR5xxx
 \ your target must have a LF_XTAL 32768Hz
 \ ==============================================================================
 \
@@ -10,8 +10,6 @@
 \
 \ TARGET SELECTION ( = the name of \INC\target.pat file without the extension)
 \ MSP_EXP430FR5739  MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
-\ MSP_EXP430FR4133  CHIPSTICK_FR2433    MSP_EXP430FR2433    MSP_EXP430FR2355
-\ LP_MSP430FR2476
 \
 \ from scite editor : copy your target selection in (shift+F8) parameter 1:
 \
 \
 \
 
-CODE ABORT_RTC
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV &KERNEL_ADDON,TOS
-BIT #BIT15,TOS
-0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (FIXPOINT input), set TOS = 0  
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS            \ FastForth V3.8
-COLON
-$0D EMIT    \ return to column 1 without CR
-ABORT" FastForth V3.8 please!"
-ABORT" target without LF_XTAL !"
-PWR_STATE           \ if no abort remove this word
-;
-
-ABORT_RTC
+    CODE ABORT_RTC
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV &KERNEL_ADDON,TOS
+    BIT #BIT14,TOS
+    0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (FIXPOINT input), set TOS = 0
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    $0D EMIT            \ return to column 1 without CR
+    ABORT" FastForth V3.9 please!"
+    ABORT" target without LF_XTAL !"
+    RST_RET             \ if no abort remove this word
+    ;
+
+    ABORT_RTC
 
 ; --------------------
 ; RTC.f
@@ -67,624 +65,500 @@ ABORT_RTC
 \ use :
 \ to set date, type : d m y DATE!
 \ to view date, type DATE?
-\ to set time, type : h m s TIME!, or h m TIME!
+\ to set time, type : h m [s] TIME!
 \ to view time, type TIME?
 \
-[DEFINED] {RTC} [IF] {RTC} [THEN] 
 
-MARKER {RTC}    \ restore the state before MARKER definition
-\      {RTC}+8 = BODY+4 = RET_ADR: MARKER_DOES does a call to RET_ADR by default
-8 ALLOT \ make room for:
-\      {RTC}+10 for content of previous RTC_VEC
-\      {RTC}+12 for content of previous COLD_PFA
-\      {RTC}+14 for content of previous WARM_PFA
-\      {RTC}+16 for content of previous SLEEP_PFA
+    MARKER {RTC}
 
-
-[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]
+    [UNDEFINED] OR
+    [IF]
+    CODE OR
+    BIS @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] C@
+    [IF]
+    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] SWAP [IF]
+    [UNDEFINED] C!
+    [IF]
+    CODE C!
+    MOV.B @PSP+,0(TOS)  \ 4
+    ADD #1,PSP          \ 1
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] OVER [IF]
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ 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] DUP [IF]    \define DUP and DUP?
+    [UNDEFINED] OVER
+    [IF]
+    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/DUP
 \ DUP      x -- x x      duplicate top of stack
-CODE DUP
+    [UNDEFINED] DUP
+    [IF]    \define DUP and DUP?
+    CODE DUP
 BW1 SUB #2,PSP      \ 2  push old TOS..
     MOV TOS,0(PSP)  \ 3  ..onto stack
     MOV @IP+,PC     \ 4
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/qDUP
 \ ?DUP     x -- 0 | x x    DUP if nonzero
-CODE ?DUP
-CMP #0,TOS      \ 2  test for TOS nonzero
-0<> ?GOTO BW1   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] DROP [IF]
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DROP
 \ DROP     x --          drop top of stack
-CODE DROP
-MOV @PSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] DROP
+    [IF]
+    CODE DROP
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] DEPTH [IF]
 \ https://forth-standard.org/standard/core/DEPTH
 \ DEPTH    -- +n        number of items on stack, must leave 0 if stack empty
-CODE DEPTH
-MOV TOS,-2(PSP)
-MOV #PSTACK,TOS
-SUB PSP,TOS     \ PSP-S0--> TOS
-RRA TOS         \ TOS/2   --> TOS
-SUB #2,PSP      \ post decrement stack...
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] >R [IF]
+    [UNDEFINED] DEPTH
+    [IF]
+    CODE DEPTH
+    MOV TOS,-2(PSP)
+    MOV #PSTACK,TOS
+    SUB PSP,TOS     \ PSP-S0--> TOS
+    RRA TOS         \ TOS/2   --> TOS
+    SUB #2,PSP      \ post decrement stack...
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS        \ 3
-MOV @PSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH TOS        \ 3
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/OnePlus
 \ 1+      n1/u1 -- n2/u2       add 1 to TOS
-CODE 1+
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @PSP+,TOS   \ 2 u2-u1
-0<> IF
-    MOV #-1,TOS     \ 1
-    U< IF           \ 2 flag 
-        AND #0,TOS  \ 1 flag Z = 1
+    [UNDEFINED] 1+
+    [IF]
+    CODE 1+
+    ADD #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/OneMinus
+\ 1-      n1/u1 -- n2/u2     subtract 1 from TOS
+    [UNDEFINED] 1-
+    [IF]
+    CODE 1-
+    SUB #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U<
+    [IF]
+    CODE U<
+    SUB @PSP+,TOS   \ 2 u2-u1
+    0<> IF
+        MOV #-1,TOS     \ 1
+        U< IF           \ 2 flag
+            AND #0,TOS  \ 1 flag Z = 1
+        THEN
     THEN
-THEN
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] = [IF]
 \ https://forth-standard.org/standard/core/Equal
 \ =      x1 x2 -- flag         test x1=x2
-CODE =
-SUB @PSP+,TOS   \ 2
-0<> IF          \ 2
-    AND #0,TOS  \ 1
-    MOV @IP+,PC \ 4
-THEN
-XOR #-1,TOS     \ 1 flag Z = 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF THEN
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/IF
 \ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] IF
+    [IF]     \ define IF THEN
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP            \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/THEN
 \ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ELSE
 \ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] DO [IF]     \ define DO LOOP +LOOP
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO                 \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] DO
+    [IF]                \ define DO LOOP +LOOP
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    ADD #2,&DP              \   make room to compile xdo
+    MOV &DP,TOS             \ -- HERE+2
+    MOV #XDO,-2(TOS)        \   compile xdo
+    ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W         \
+    MOV #0,0(W)             \ -- HERE+2     L-- 0
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP               \ immediate
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP              \ make room to compile two words
     MOV &DP,W
-    MOV X,-4(W)         \ xloop --> HERE
-    MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    MOV X,-4(W)             \ xloop --> HERE
+    MOV TOS,-2(W)           \ DOadr --> HERE+2
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP
-MOV #XPLOOP,X
-GOTO BW1        \ goto BW1 LOOP
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2        \ goto BW1 LOOP
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/BEGIN
+\ BEGIN    -- BEGINadr             initialize backward branch
+    [UNDEFINED] BEGIN
+    [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+
+    CODE BEGIN
+    MOV #HEREXEC,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/UNTIL
+\ UNTIL    BEGINadr --             resolve conditional backward branch
+    CODE UNTIL
+    MOV #QFBRAN,X
+BW1 ADD #4,&DP          \ compile two words
+    MOV &DP,W           \ W = HERE
+    MOV X,-4(W)         \ compile Bran or QFBRAN at HERE
+    MOV TOS,-2(W)       \ compile bakcward adr at HERE+2
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/AGAIN
+\ AGAIN    BEGINadr --             resolve uncondionnal backward branch
+    CODE AGAIN
+    MOV #BRAN,X
+    GOTO BW1
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/WHILE
+\ WHILE    BEGINadr -- WHILEadr BEGINadr
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+
+\ https://forth-standard.org/standard/core/REPEAT
+\ REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] CASE [IF]
 \ https://forth-standard.org/standard/core/CASE
-: CASE 0 ; IMMEDIATE \ -- #of-1 
+    [UNDEFINED] CASE
+    [IF]
+    : CASE
+    0
+    ; IMMEDIATE \ -- #of-1
 
 \ https://forth-standard.org/standard/core/OF
-: OF \ #of-1 -- orgOF #of 
-1+                         \ count OFs 
->R                         \ move off the stack in case the control-flow stack is the data stack. 
-POSTPONE OVER POSTPONE = \ copy and test case value
-POSTPONE IF                \ add orig to control flow stack 
-POSTPONE DROP          \ discards case value if = 
-R>                         \ we can bring count back now 
-; IMMEDIATE 
+    : OF \ #of-1 -- orgOF #of
+    1+                     \ count OFs
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE OVER POSTPONE = \ copy and test case value
+    POSTPONE IF                    \ add orig to control flow stack
+    POSTPONE DROP              \ discards case value if =
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/ENDOF
-: ENDOF \ orgOF #of -- orgENDOF #of 
->R                         \ move off the stack in case the control-flow stack is the data stack. 
-POSTPONE ELSE 
-R>                         \ we can bring count back now 
-; IMMEDIATE 
+    : ENDOF \ orgOF #of -- orgENDOF #of
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE ELSE
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/ENDCASE
-: ENDCASE \ orgENDOF1..orgENDOFn #of -- 
-POSTPONE DROP
-0 DO 
-    POSTPONE THEN 
-LOOP 
-; IMMEDIATE 
-[THEN]
-
-[UNDEFINED] + [IF]
+    : ENDCASE \ orgENDOF1..orgENDOFn #of --
+    POSTPONE DROP
+    0 DO
+        POSTPONE THEN
+    LOOP
+    ; IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Plus
 \ +       n1/u1 n2/u2 -- n3/u3
-CODE +
-ADD @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] - [IF]
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] MAX [IF]    \define MAX and MIN
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-CODE MAX    \    n1 n2 -- n3       signed maximum
+    [UNDEFINED] MAX
+    [IF]            \define MAX and MIN
+    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
+    ENDCODE
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
-    CMP @PSP,TOS     \ n2-n1
-    S<  ?GOTO BW1    \ n2<n1
+    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
+    ENDCODE
 
-[THEN]  \ MAX
+    [THEN]  \ MAX
 
-[UNDEFINED] 2* [IF]
 \ https://forth-standard.org/standard/core/TwoTimes
 \ 2*      x1 -- x2         arithmetic left shift
-CODE 2*
-ADD TOS,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 2*
+    [IF]
+    CODE 2*
+    ADD TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] UM* [IF]    \ case of hardware_MPY
 \ https://forth-standard.org/standard/core/UMTimes
 \ UM*     u1 u2 -- udlo udhi   unsigned 16x16->32 mult.
-CODE UM*
+    [UNDEFINED] UM*
+    [IF]    \ case of hardware_MPY
+    CODE UM*
     MOV @PSP,&MPY       \ Load 1st operand for unsigned multiplication
 BW1 MOV TOS,&OP2        \ Load 2nd operand
     MOV &RES0,0(PSP)    \ low result on stack
     MOV &RES1,TOS       \ high result in TOS
     MOV @IP+,PC
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/MTimes
 \ M*     n1 n2 -- dlo dhi  signed 16*16->32 multiply
-CODE M*
+    CODE M*
     MOV @PSP,&MPYS      \ Load 1st operand for signed multiplication
     GOTO BW1
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] UM/MOD [IF]
 \ https://forth-standard.org/standard/core/UMDivMOD
 \ UM/MOD   udlo|udhi u1 -- ur uq   unsigned 32/16->r16 q16
-CODE UM/MOD
+    [UNDEFINED] UM/MOD
+    [IF]
+    CODE UM/MOD
     PUSH #DROP      \
     MOV #MUSMOD,PC  \ execute MUSMOD then return to DROP
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] U*/ [IF]
 \ U*/     u1 u2 u3 -- uq        u1*u2/u3
-: U*/
->R UM* R> UM/MOD SWAP DROP
-;
-[THEN]
+    : U*/
+    >R UM* R> UM/MOD SWAP DROP
+    ;
 
-[UNDEFINED] U/MOD [IF]
 \ U/MOD   u1 u2 -- ur uq     unsigned division
-: U/MOD
-0 SWAP UM/MOD
-;
-[THEN]
+    : U/MOD
+    0 SWAP UM/MOD
+    ;
 
-[UNDEFINED] UMOD [IF]
 \ UMOD   u1 u2 -- ur        unsigned division
-: UMOD
-U/MOD DROP
-;
-[THEN]
+    : UMOD
+    U/MOD DROP
+    ;
 
-[UNDEFINED] U/ [IF]
 \ https://forth-standard.org/standard/core/Div
 \ U/      u1 u2 -- uq       signed quotient
-: U/
-U/MOD SWAP DROP
-;
-[THEN]
+    : U/
+    U/MOD SWAP DROP
+    ;
 
-[UNDEFINED] SPACES [IF]
 \ https://forth-standard.org/standard/core/SPACES
 \ SPACES   n --            output n spaces
-CODE SPACES
-CMP #0,TOS
-0<> IF
-    PUSH IP
+    [UNDEFINED] SPACES
+    [IF]
+    : SPACES
     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] HERE [IF]
-CODE HERE
-MOV #HEREXEC,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] U.R [IF]
-: U.R                       \ u n --           display u unsigned in n width (n >= 2)
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
-
-$81EF DEVICEID @ U<     ; search device ID: MSP430FR4133 or...
-DEVICEID @ $8241 U<     ; ...MSP430FR2433
-=   
-$830B DEVICEID @ U<     ; MSP430FR21xx/23xx/24xx/25xx/26xx
-OR                      ; -- flag
-
-[IF] 
-
-\ ==============================================================================
-\ driver for RTC without calendar
-\ ==============================================================================
-
-    CREATE RTCSEC 2 ALLOT
-    CREATE RTCMIN 2 ALLOT
-    CREATE RTCHOUR 2 ALLOT
-    CREATE RTCDOW 2 ALLOT
-    CREATE RTCDAY 2 ALLOT
-    CREATE RTCMON 2 ALLOT
-    CREATE RTCYEAR 2 ALLOT
-
-\   ************************************\
-    HDNCODE RTC_INT                     \ computes sec min hour day month year
-\   ************************************\
-    ADD #2,RSP                          \ remove previous_SR
-    BIT #1,&RTCIV                       \ clear RTC_IFG
-    ADD.B #1,&RTCSEC                    \ sec+1
-    CMP.B #60,&RTCSEC
-    U>= IF               
-        MOV.B #0,&RTCSEC                \ sec=0
-        ADD.B #1,&RTCMIN                \ min+1
-        CMP.B #60,&RTCMIN
-        U>= IF               
-            MOV.B #0,&RTCMIN            \ min=0
-            ADD.B #1,&RTCHOUR           \ hour+1
-            CMP.B #24,&RTCHOUR
-            U>= IF                
-                MOV.B #0,&RTCHOUR       \ hour=0
-                ADD.B #1,&RTCDOW        \ dow+1
-                CMP.B #7,&RTCDOW
-                U>= IF
-                    MOV.B #0,&RTCDOW    \ dow=0
-                THEN
-                ADD.B #1,&RTCDAY        \ day+1
-                CMP.B #2,&RTCMON        \ February month ?
-\               ------------------------\ here we compute leap year
-                0= IF                   \ yes
-                    COLON
-                    RTCYEAR @ 4 UMOD 
-                    IF 29
-                    ELSE
-                        RTCYEAR @ 100 UMOD 
-                        IF 30
-                        ELSE
-                            RTCYEAR @ 400 UMOD
-                            IF 29
-                            ELSE 30
-                            THEN
-                        THEN
-                    THEN
-                    HI2LO
-                    MOV @RSP+,IP
-                    MOV TOS,X           \ X = 29|30
-                    MOV @PSP+,TOS
-\               ------------------------\
-                ELSE                    \ month other than Feb
-                    MOV #31,X
-                    MOV.B &RTCMON,W
-                    CMP.B #8,W
-                    0>= IF              \ month >= August?
-                        ADD.B #1,W      
-                    THEN
-                    BIT.B #1,W          \
-                    0<> IF      
-                        ADD #1,X        \ 31 days / month
-                    THEN
-                THEN
-                CMP.B X,&RTCDAY
-                U>= IF                  \ max day of month is exceeded
-                    MOV.B #1,&RTCDAY    \ day=1
-                    ADD.B #1,&RTCMON    \ mon+1
-                    CMP.B #13,&RTCMON
-                    U>= IF
-                    MOV.B #1,&RTCMON    \ mon=1
-                        ADD #1,&RTCYEAR \ year+1
-                    THEN
-                THEN
-            THEN
-        THEN
-    THEN                \
-    MOV @RSP+,PC        \ RET to BACKGrouND routine, with GIE disabled
-    ENDCODE    
-
-\   ------------------------\
-    HDNCODE STOP_RTC        \ define STOP_RTC as new COLD_APP subroutine, called by {RTC}|WIPE|RST|COLD|SYS_failures.
-\   ------------------------\ ------------------------------------------
-    CMP #RET_ADR,&{RTC}+8   \ 
-    0<> IF                  \ and only if RTC_APP is started by START_RTC
-    MOV #{RTC}+10,X         \
-        MOV #RET_ADR,-2(X)  \ restore {RTC}+8 default value
-        MOV @X+,&RTC_VEC    \ restore previous RTC_VEC content from {RTC}+10 
-        MOV @X+,&COLD+2     \ restore previous STOP_APP from {RTC}+12 to COLD_PFA
-        MOV @X+,&WARM+2     \ restore previous INI_APP from {RTC}+14 to WARM_PFA
-\        MOV @X+,&SLEEP+2    \ restore previous BACKGND_APP from {RTC}+16 to SLEEP_PFA
-    THEN
-\   ------------------------\
-    MOV #0,&RTCCTL          \ stops RTC and RTC_INT, see RTC15 in MSP430FR2xxx errata sheet
-    MOV.B #XIN,X            \ X = bit_position of XT1 Xtal
-    BIC.B X,&XT1_SEL        \ XIN as GPIO
-    BIS.B X,&XT1_DIR        \ XIN as output
-    BIC.B X,&XT1_OUT        \ RTC15 :"toggle twice XIN ouput"
-    BIS.B X,&XT1_OUT        \ "with at least 2 rising or falling edges". 
-    BIC.B X,&XT1_OUT        \
-    BIS.B X,&XT1_OUT        \ 
-    BIC.B X,&XT1_DIR        \ restore default state of XIN
-    BIS.B X,&XT1_SEL        \ XIN as XT1 input
-\   ------------------------\
-    MOV &COLD+2,PC          \ 5 link (branch) to the previous STOP_APP subroutine,
-\   ------------------------\ then RET to MARKER_DOES  or to COLD+4
-    ENDCODE                 \
-\   ------------------------\
-
-\   ----------------------------------------\ 
-    HDNCODE INI_RTC                         \ define INI_HDWR_APP called first by START_RTC then by WARM
-\   ----------------------------------------\ ---------------------------------------------------------
-    CALL &{RTC}+14                          \ call previous INI_APP (which sets TOS = RSTIV_MEM)
-    CMP #0,&RTCCTL                          \ if RTCCTL = 0 = reset state, app is STOPPED and must to be started
-    0= IF                                   \ and if RTCCTL <> 0, we don't restart app and no time is lost.
-        MOV #$7F,&RTCMOD                    \ RTCMOD = 127
-        BIT #-1,&RTCIV                      \ clear RTC_IFG
-        MOV #%0010_0110_0100_0010,&RTCCTL   \ starts RTC with XT1CLK/256, enables RTC_INT
-    THEN
-    MOV @RSP+,PC                            \ RET to BODYWARM|START_RTC
-    ENDCODE                                 \
-\   ----------------------------------------\
-
-\\  -------------------------------------------------------------------------------
-\\  WARNING! because RTC_INT have higher priority than eUSCI used for TERMINAL, 
-\\  BACKGND_APP default subroutine execute pending RTC_INT, so you can download a file without RTC time lost.
-\\  but if you manualy type a command, pending RTC_INT may not be executed during this time.
-\\  -------------------------------------------------------------------------------
-\\   --------------------\
-\\   HDNCODE BACKGND_RTC \ define BACKGND_RTC to replace actual BACKGND_APP
-\\   --------------------\
-\    BEGIN               \
-\       MOV &LPM_MODE,SR \ enter to SLEEP mode, waiting RTC_INT
-\    AGAIN               \ loop back to BEGIN is executed before CPU shut down
-\\   --------------------\
-\    ENDCODE             \
-\\   -------------------------------------------------------------------------------
-\\   WARNING! because unlinked, this BACKGND_APP doesn't execute XON, TERMINAL is MUTEd
-\\   but maybe that is what you want: RTC time keeps its accuracy.
-\\   -------------------------------------------------------------------------------
-
-\   --------------------------------\
-    CODE START_RTC                  \ save current content of WARM_PFA, COLD_PFA, SLEEP_PFA, RTC_VEC
-\   --------------------------------\ then replace them by INI_RTC, STOP_RTC, BACKGND_RTC, RTC_INT then execute INI_RTC.
-    CMP #STOP_RTC,&{RTC}+8          \ content of {RTC}+8 = STOP_RTC ?
-    0<> IF                          \ if not
-        MOV #STOP_RTC,&{RTC}+8      \ STOP_RTC must be executed by MARKER_DOES of {RTC}, else RTC15 hangs out!
-        MOV &RTC_VEC,&{RTC}+10      \ save content of RTC_VEC to {RTC}+10...
-        MOV #RTC_INT,&RTC_VEC       \ then set RTC_VEC with RTC_INT
-        MOV &COLD+2,&{RTC}+12       \ save content of COLD_PFA to {RTC}+12...
-        MOV #STOP_RTC,&COLD+2       \ ...and replace it by STOP_RTC, else RTC15 hangs out with Deep_RST!
-        MOV &WARM+2,&{RTC}+14       \ save content of WARM_PFA to {RTC}+14...
-        MOV #INI_RTC,&WARM+2        \ ...and replace it by INI_RTC
-\        MOV &SLEEP+2,&{RTC}+16      \ save content of SLEEP_PFA to {RTC}+16...
-\        MOV #BACKGND_RTC,&SLEEP+2   \ ...and replace it by BACKGND_RTC
-    THEN                            \
-    CALL #INI_RTC                   \
-    MOV @IP+,PC                     \
-\   --------------------------------\
-    ENDCODE                 
-\   --------------------------------\
-
-    : TIME?                 \ display time
-    RTCHOUR C@ 2 U.R $3A EMIT
-    RTCMIN C@  2 U.R $3A EMIT
-    RTCSEC C@  2 U.R 
+        ?DUP
+    WHILE
+        'SP' EMIT
+        1-
+    REPEAT
     ;
-    
-    : TIME!                 \ hour min sec ---
-    START_RTC               \ if not yet done, obviously!
-    2 DEPTH
-    U< IF                   \ if 3 numbers on stack
-        RTCSEC C!
-        RTCMIN C!
-        RTCHOUR C!
-    THEN
-    ." it is " TIME? 
-    ;
-
-    : DATE?                 \ display date
+    [THEN]
 
-[ELSE]
-
-\ ==============================================================================
-\ driver RTC for RTC_B|RTC_C hardware with calendar
-\ ==============================================================================
+    [UNDEFINED] U.R
+    [IF]
+    : U.R                       \ u n --           display u unsigned in n width (n >= 2)
+    >R  <# 0 # #S #>
+    R> OVER - 0 MAX SPACES TYPE
+    ;
+    [THEN]
 
     CODE TIME?
     BEGIN
         BIT.B #RTCRDY,&RTCCTL1
     0<> UNTIL                   \ wait until RTCRDY high
     COLON
-    RTCHOUR C@ 2 U.R $3A EMIT
-    RTCMIN C@  2 U.R $3A EMIT
-    RTCSEC C@  2 U.R 
+    RTCHOUR C@ 2 U.R ':' EMIT
+    RTCMIN C@  2 U.R ':' EMIT
+    RTCSEC C@  2 U.R
     ;
-    
+
     : TIME!
     2 DEPTH
     U< IF                   \ if 3 numbers on stack
@@ -692,7 +566,7 @@ OR                      ; -- flag
         RTCMIN C!
         RTCHOUR C!
     THEN
-    ." it is " TIME? 
+    ." it is " TIME?
     ;
 
     CODE DATE?                  \ display date
@@ -701,7 +575,7 @@ OR                      ; -- flag
     0<> UNTIL                   \ wait until windows time RTC_ReaDY is high
     COLON
 
-[THEN]
+\     [THEN]
 
 \ ==============================================================================
 \ end of RTC software|harware calendar
@@ -717,145 +591,163 @@ OR                      ; -- flag
     4 OF ." Wed"    ENDOF
     5 OF ." Thu"    ENDOF
     6 OF ." Fri"    ENDOF
-    ENDCASE  
+    ENDCASE
     RTCYEAR @
     RTCMON C@
     RTCDAY C@                   \ -- year mon day
     $20 EMIT
-    2 U.R $2F EMIT              \ -- year mon
-    2 U.R $2F EMIT              \ -- year
+    2 U.R '/' EMIT              \ -- year mon
+    2 U.R '/' EMIT              \ -- year
     .                           \ --
-;
-
-
+    ;
 
-: DATE!                         \ year mon day --
-2 DEPTH
-U< IF                   \ if 3 numbers on stack
-    RTCYEAR !
-    RTCMON C!
-    RTCDAY C!
-THEN
-RTCDAY C@
-RTCMON C@
-RTCYEAR @               \ -- day mon year
+    : DATE!                         \ year mon day --
+    2 DEPTH
+    U< IF                   \ if 3 numbers on stack
+        RTCYEAR !
+        RTCMON C!
+        RTCDAY C!
+    THEN
+    RTCDAY C@
+    RTCMON C@
+    RTCYEAR @               \ -- day mon year
 \ ------------------------------------------
 \ Zeller's congruence for gregorian calendar
 \ see https://www.rosettacode.org/wiki/Day_of_the_week#Forth
 \ : ZELLER \ day mon year -- weekday          {0=Sat, ..., 6=Fri}
-\ OVER 3 <                \             
-\ IF 1- SWAP 12 + SWAP 
+\ OVER 3 <                \
+\ IF 1- SWAP 12 + SWAP
 \ THEN                    \ -- d m' y'  with m' {3=March, ..., 14=february}
 \ 100 /MOD                \ -- d m' K J   with K = y' in century, J = century
-\ DUP 4 / SWAP 2* -       \ -- d m' K (J/4 - 2J) 
-\ SWAP DUP 4 / + +        \ -- d m' ((J/4 - 2J) + (K + K/4)) 
+\ DUP 4 / SWAP 2* -       \ -- d m' K (J/4 - 2J)
+\ SWAP DUP 4 / + +        \ -- d m' ((J/4 - 2J) + (K + K/4))
 \ SWAP 1+  13 5 */ + +    \ -- (d + (((J/4 - 2J) + (K + K/4)) + (m+1)*13/5))
-\ 7 MOD                   \ -- weekday        = {0=Sat, ..., 6=Fri} 
+\ 7 MOD                   \ -- weekday        = {0=Sat, ..., 6=Fri}
 \ ------------------------------------------
-OVER 3 U<               \             
-IF 1 - SWAP 12 + SWAP 
-THEN                    \ -- d m' y'  with m' {3=March, ..., 14=february}
-100 U/MOD               \ -- d m' K J   with K = y' in century, J = century
-DUP 4 U/ SWAP 2* -      \ -- d m' K (J/4 - 2J) 
-SWAP DUP 4 U/ + +       \ -- d m' ((J/4 - 2J) + (K + K/4)) 
-SWAP 1+  13 5 U*/ + +   \ -- (d + (((J/4 - 2J) + (K + K/4)) + (m+1)*13/5))
-7 UMOD                  \ -- weekday        = {0=Sat, ..., 6=Fri} 
+    OVER 3 U<               \
+    IF 1 - SWAP 12 + SWAP
+    THEN                    \ -- d m' y'  with m' {3=March, ..., 14=february}
+    100 U/MOD               \ -- d m' K J   with K = y' in century, J = century
+    DUP 4 U/ SWAP 2* -      \ -- d m' K (J/4 - 2J)
+    SWAP DUP 4 U/ + +       \ -- d m' ((J/4 - 2J) + (K + K/4))
+    SWAP 1+  13 5 U*/ + +   \ -- (d + (((J/4 - 2J) + (K + K/4)) + (m+1)*13/5))
+    7 UMOD                  \ -- weekday        = {0=Sat, ..., 6=Fri}
 \ ------------------------------------------
-RTCDOW C!               \ --
-." we are on " DATE? 
-;
-
-RST_HERE
-
-[UNDEFINED] S_ [IF]
-CODE S_             \           Squote alias with blank instead quote separator
-MOV #0,&CAPS        \           turn CAPS OFF
-COLON
-XSQUOTE ,           \           compile run-time code
-$20 WORD            \ -- c-addr (= HERE)
-HI2LO
-MOV.B @TOS,TOS      \ -- len    compile string
-ADD #1,TOS          \ -- len+1
-BIT #1,TOS          \           C = ~Z
-ADDC TOS,&DP        \           store aligned DP
-MOV @PSP+,TOS       \ --
-MOV @RSP+,IP        \           pop paired with push COLON
-MOV #$20,&CAPS      \           turn CAPS ON (default state)
-MOV @IP+,PC         \ NEXT
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ESC [IF]
-CODE ESC
-CMP #0,&STATEADR
-0= IF MOV @IP+,PC   \ interpret time usage disallowed
-THEN
-COLON          
-$1B                 \ -- char escape
-POSTPONE LITERAL    \ compile-time code : lit $1B  
-POSTPONE EMIT       \ compile-time code : EMIT
-POSTPONE S_         \ compile-time code : S_ <escape_sequence>
-POSTPONE TYPE       \ compile-time code : TYPE
-; IMMEDIATE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
+    RTCDOW C!               \ --
+    ." we are on " DATE?
+    ;
+
+    RST_SET
+
+    [UNDEFINED] S_
+    [IF]
+    CODE S_             \           Squote alias with blank instead quote separator
+    MOV #0,&CAPS        \           turn CAPS OFF
+    COLON
+    XSQUOTE ,           \           compile run-time code
+    $20 WORD            \ -- c-addr (= HERE)
+    HI2LO
+    MOV.B @TOS,TOS      \ -- len    compile string
+    ADD #1,TOS          \ -- len+1
+    BIT #1,TOS          \           C = ~Z
+    ADDC TOS,&DP        \           store aligned DP
+    MOV @PSP+,TOS       \ --
+    MOV @RSP+,IP        \           pop paired with push COLON
+    MOV #$20,&CAPS      \           turn CAPS ON (default state)
+    MOV @IP+,PC         \ NEXT
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ESC
+    [IF]
+    CODE ESC
+    CMP #0,&STATEADR
+    0= IF MOV @IP+,PC   \ interpret time usage disallowed
+    THEN
+    COLON
+    $1B                 \ -- char escape
+    POSTPONE LITERAL    \ compile-time code : lit $1B
+    POSTPONE EMIT       \ compile-time code : EMIT
+    POSTPONE S_         \ compile-time code : S_ <escape_sequence>
+    POSTPONE TYPE       \ compile-time code : TYPE
+    ; IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/toBODY
 \ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] EXECUTE [IF] \ "
 \ https://forth-standard.org/standard/core/EXECUTE
 \ EXECUTE   i*x xt -- j*x   execute Forth word at 'xt'
-CODE EXECUTE
-PUSH TOS                \ 3 push xt
-MOV @PSP+,TOS           \ 2 
-MOV @RSP+,PC            \ 4 xt --> PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] EVALUATE [IF]
+    [UNDEFINED] EXECUTE
+    [IF] \ "
+    CODE EXECUTE
+    PUSH TOS                \ 3 push xt
+    MOV @PSP+,TOS           \ 2
+    MOV @RSP+,PC            \ 4 xt --> PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/EVALUATE
 \ EVALUATE          \ i*x c-addr u -- j*x  interpret string
-CODE EVALUATE
-MOV #SOURCE_LEN,X       \ 2
-MOV @X+,S               \ 2 S = SOURCE_LEN
-MOV @X+,T               \ 2 T = SOURCE_ORG
-MOV @X+,W               \ 2 W = TOIN
-PUSHM #4,IP             \ 6 PUSHM IP,S,T,W
-LO2HI
-INTERPRET
-HI2LO
-MOV @RSP+,&TOIN         \ 4
-MOV @RSP+,&SOURCE_ORG   \ 4
-MOV @RSP+,&SOURCE_LEN   \ 4
-MOV @RSP+,IP 
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-: SET_TIME
-ESC [8;40;80t       \ set terminal display 42L * 80C
-39 0 DO CR LOOP     \ to avoid erasing any line of source, create 42 empty lines
-ESC [H              \ then set cursor home
-CR ." DATE (DMY): "
-PAD_ORG DUP PAD_LEN
-['] ACCEPT >BODY    \ find default part of deferred ACCEPT (terminal input)
-EXECUTE             \ wait human input for D M Y
-EVALUATE            \ interpret this input
-CR DATE!            \ set date
-CR ." TIME (HMS): "
-PAD_ORG DUP PAD_LEN
-['] ACCEPT >BODY    \ find default part of deferred ACCEPT (terminal input)
-EXECUTE             \ wait human input for H M S
-EVALUATE            \ interpret this input
-CR TIME!            \ set time
-RST_STATE           \ remove code beyond RST_HERE
-;
+    [UNDEFINED] EVALUATE
+    [IF]
+    CODE EVALUATE
+    MOV #SOURCE_LEN,X       \ 2
+    MOV @X+,S               \ 2 S = SOURCE_LEN
+    MOV @X+,T               \ 2 T = SOURCE_ORG
+    MOV @X+,W               \ 2 W = TOIN
+    PUSHM #4,IP             \ 6 PUSHM IP,S,T,W
+    LO2HI
+    [ ' \ 8 + , ]           \ compile INTERPRET = BACKSLASH + 8
+    HI2LO
+    MOV @RSP+,&TOIN         \ 4
+    MOV @RSP+,&SOURCE_ORG   \ 4
+    MOV @RSP+,&SOURCE_LEN   \ 4
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+
+\    DEFER CR       \ DEFERed definition, by default executes that of :NONAME
+    CODE CR         \ create a DEFER definition of CR
+    MOV #NEXT_ADR,PC
+    ENDCODE
+
+    :NONAME     \ starts at BODY address of DEFERed CR
+    'CR' EMIT 'LF' EMIT
+    ; IS CR     \ CR executes :NONAME by default
+    [THEN]
+
+    : SET_TIME
+    ESC [8;40;80t       \ set terminal display 42L * 80C
+    39 0 DO CR LOOP     \ to avoid erasing any line of source, create 42 empty lines
+    ESC [H              \ then set cursor home
+    CR ." DATE (DMY): "
+    PAD_ORG DUP PAD_LEN
+    ['] ACCEPT >BODY    \ find default part of deferred ACCEPT (terminal input)
+    EXECUTE             \ wait human input for D M Y
+    EVALUATE            \ interpret this input
+    CR DATE!            \ set date
+    CR ." TIME (HMS): "
+    PAD_ORG DUP PAD_LEN
+    ['] ACCEPT >BODY    \ find default part of deferred ACCEPT (terminal input)
+    EXECUTE             \ wait human input for H M S
+    EVALUATE            \ interpret this input
+    CR TIME!            \ set time
+    RST_RET             \ remove code beyond RST_HERE
+    ;
+
 ECHO
 SET_TIME
diff --git a/MSP430-FORTH/SD_430FR5994/BOOT.4TH b/MSP430-FORTH/SD_430FR5994/BOOT.4TH
new file mode 100644 (file)
index 0000000..1516317
--- /dev/null
@@ -0,0 +1,39 @@
+
+; --------
+; BOOT.4th for MSP_EXP430FR5994
+; --------
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    SUB #1,R14
+    SUBC R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] EXECUTE
+    [IF]
+    CODE EXECUTE
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R1+,R0
+    ENDCODE
+    [THEN]
+
+    $04 =
+    [IF]
+        RST_RET
+        NOECHO LOAD" SD_TEST.4TH"
+    [ELSE]
+        ' SYS $0A + EXECUTE
+    [THEN]
diff --git a/MSP430-FORTH/SD_430FR5994/CHNGBAUD.4TH b/MSP430-FORTH/SD_430FR5994/CHNGBAUD.4TH
new file mode 100644 (file)
index 0000000..70ad46f
--- /dev/null
@@ -0,0 +1,466 @@
+
+    CODE I2CTERM_ABORT
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV &$180E,R14
+    BIT #$3C00,R14
+    0<> IF MOV #0,R14 THEN
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    ABORT" <-- Ouch! unexpected I2C_FastForth target!"
+    RST_RET
+    ;
+
+I2CTERM_ABORT
+
+; ------------
+; CHNGBAUD.4th for MSP_EXP430FR5994
+; ------------
+
+    [UNDEFINED] DUP [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DROP [IF]
+    CODE DROP
+    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] CR [IF]
+    DEFER CR
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] 1+ [IF]
+    CODE 1+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U/ [IF]
+    CODE U/
+    SUB #2,R15
+    MOV #0,0(R15)
+    CALL #$403E
+    MOV @R15,R14
+    ADD #4,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] >R [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [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
+    0<> IF
+        AND #0,R14
+    ELSE
+        XOR #-1,R14
+    THEN
+    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] IF [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO            
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] CASE [IF]
+    : CASE 0 ; 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 
+    [THEN]
+
+    [UNDEFINED] S_ [IF]
+    CODE S_
+    MOV #0,&$1DC0
+    COLON
+    $401E ,
+    $20 WORD
+    HI2LO
+    MOV.B @R14,R14
+    ADD #1,R14
+    BIT #1,R14
+    ADDC R14,&$1DC8
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV #$20,&$1DC0
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ESC [IF]
+    CODE ESC
+    CMP #0,&$1DBC
+    0= IF MOV @R13+,R0
+    THEN
+    COLON          
+    $1B
+    POSTPONE LITERAL
+    POSTPONE EMIT
+    POSTPONE S_
+    POSTPONE TYPE
+    ; IMMEDIATE
+    [THEN]
+
+    : BAD_MHz
+    $20 DUP EMIT 
+            ABORT" only for 1,4,8,16,24 MHz MCLK!"
+    ;
+
+    : OVR_BAUDS
+    $20 DUP EMIT ESC [7m
+            ." with MCLK = " $1800 @ 1000 U/ .
+            ABORT" MHz? don't dream!"
+    ;
+
+    : CHNGBAUD
+    RST_RET
+    ECHO
+    ESC [8;42;80t
+    41 0 DO CR LOOP
+    ESC [H
+    
+    $1800 @ DUP >R
+    ." target MCLK = " 1000 U/ . ." MHz" CR
+    ." choose your baudrate:" CR
+    ."  0 --> 6 MBds" CR
+    ."  1 --> 5 MBds" CR
+    ."  2 --> 4 MBds" CR
+    ."  3 --> 3 MBds" CR
+    ."  4 --> 1843200 Bds" CR
+    ."  5 --> 921600 Bds" CR
+    ."  6 --> 460800 Bds" CR
+    ."  7 --> 230400 Bds" CR
+    ."  8 --> 115200 Bds" CR
+    ."  9 --> 38400 Bds" CR
+    ."  A --> 19200 Bds" CR
+    ."  B --> 9600 Bds" CR
+    ." other --> abort" CR
+    ." your choice: "
+    KEY
+    CASE
+    #48 OF  ." 6 MBds"
+            R> CASE
+                #24000 OF $4 $0
+                    ENDOF
+                24000 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #49 OF  ." 5 MBds"
+            R> CASE
+                #24000 OF $4 $EE00  ENDOF
+                #20000 OF $4 $0     ENDOF
+                20000 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #50 OF  ." 4 MBds"
+            R> CASE
+                #24000 OF $6 $0     ENDOF
+                #20000 OF $5 $0     ENDOF
+                #16000 OF $4 $0     ENDOF
+                16000 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #51 OF  ." 3 MBds"
+            R> CASE
+                #24000 OF $8 $0     ENDOF
+                #20000 OF $6 $D600  ENDOF
+                #16000 OF $5 $4900  ENDOF
+                #12000 OF $4 $0     ENDOF
+                12000 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #52 OF  ." 1843200 Bds"
+            R> CASE
+                #24000 OF $0D $0200 ENDOF
+                #20000 OF $0A $DF00 ENDOF
+                #16000 OF $8 $D600  ENDOF
+                #12000 OF $6 $AA00  ENDOF
+                #8000  OF $5 $9200  ENDOF
+                8000 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #53 OF  ." 921600 Bds"
+            R> CASE
+                #24000 OF $1 $00A1  ENDOF
+                #20000 OF $1 $B751  ENDOF
+                #16000 OF $11 $4A00 ENDOF
+                #12000 OF $0D $0200  ENDOF
+                #8000  OF $8 $D600  ENDOF
+                #4000  OF $4 $4900  ENDOF
+                4000 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #54 OF  ." 460800 Bds"
+            R> CASE
+                #24000 OF $3 $0241  ENDOF
+                #20000 OF $2 $92B1  ENDOF
+                #16000 OF $2 $BB21  ENDOF
+                #12000 OF $1 $00A1  ENDOF
+                #8000  OF $11 $4A00 ENDOF
+                #4000  OF $8 $D600  ENDOF
+                #2000  OF $4 $4900  ENDOF
+                2000 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #55 OF  ." 230400 Bds"
+            R> CASE
+                #24000 OF $6 $2081  ENDOF
+                #20000 OF $5 $EE61  ENDOF
+                #16000 OF $4 $5551  ENDOF
+                #12000 OF $3 $0241  ENDOF
+                #8000  OF $2 $BB21  ENDOF
+                #4000  OF $11 $4A00 ENDOF
+                #2000  OF $8 $D600  ENDOF
+                #1000  OF $4 $4900  ENDOF
+                1000 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #56 OF  ." 115200 Bds"
+            R> CASE
+                #24000 OF $0D $4901 ENDOF
+                #20000 OF $0A $AD01 ENDOF
+                #16000 OF $8 $F7A1  ENDOF
+                #12000 OF $6 $2081  ENDOF
+                #8000  OF $4 $5551  ENDOF
+                #4000  OF $2 $BB21  ENDOF
+                #2000  OF $11 $4A00 ENDOF
+                #1000  OF $8 $D600  ENDOF
+                #500   OF $4 $4900  ENDOF
+                500 <   
+                IF OVR_BAUDS
+                THEN BAD_MHz
+            ENDCASE
+        ENDOF
+    #57 OF  ." 38400 Bds"
+            R> CASE
+                #24000  OF $27 $0011    ENDOF
+                #16000  OF $1A $D601    ENDOF
+                #8000   OF $0D $4901    ENDOF
+                #4000   OF $6 $2081     ENDOF
+                #1000   OF $1 $00A1     ENDOF
+                BAD_MHz
+            ENDCASE
+        ENDOF
+    #65 OF  ." 19200 Bds"
+            R> CASE
+                #24000  OF $4E $0021    ENDOF
+                #16000  OF $34 $4911    ENDOF
+                #8000   OF $1A $D601    ENDOF
+                #4000   OF $0D $4901    ENDOF
+                #1000   OF $3 $0241     ENDOF
+                BAD_MHz
+            ENDCASE
+        ENDOF
+    #66 OF  ." 9600 Bds"
+            R> CASE
+                #24000  OF $9C $0041    ENDOF
+                #16000  OF $68 $D621    ENDOF
+                #8000   OF $34 $4911    ENDOF
+                #4000   OF $1A $D601    ENDOF
+                #1000   OF $6 $2081     ENDOF
+                BAD_MHz
+            ENDCASE
+        ENDOF
+        ." abort" ABORT" "
+    ENDCASE
+    $1804 !
+    $1802 !
+    CR ESC [7m
+    ." Change baudrate in Teraterm, save its setup, then reset target."
+    ;
+
+    CHNGBAUD 
diff --git a/MSP430-FORTH/SD_430FR5994/CORDIC.4TH b/MSP430-FORTH/SD_430FR5994/CORDIC.4TH
new file mode 100644 (file)
index 0000000..1eb0aa9
--- /dev/null
@@ -0,0 +1,510 @@
+
+    CODE ABORT_CORDIC
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV &$180E,R14
+    BIT #$100,R14
+    0<> IF MOV #0,R14 THEN
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    ABORT" build FastForth with FIXPOINT_INPUT addon"
+    RST_RET
+    ;
+
+    ABORT_CORDIC
+
+; ----------
+; CORDIC.4th for MSP_EXP430FR5994
+; ----------
+
+MARKER {CORDIC}
+
+    CREATE T_ARCTAN
+    12870 ,
+    7598 ,
+    4014 ,
+    2038 ,
+    1023 ,
+    512 ,
+    256 ,
+    128 ,
+    64 ,
+    32 ,
+    16 ,
+    8 ,
+    4 ,
+    2 ,
+    1 ,
+
+    CREATE T_SCALE
+    46340 ,
+    41448 ,
+    40211 ,
+    39900 ,
+    39822 ,
+    39803 ,
+    39798 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+    39797 ,
+
+    [UNDEFINED] DABS 
+    [IF]
+    CODE DABS
+    AND #-1,R14
+    S< IF
+        XOR #-1,0(R15)
+        XOR #-1,R14
+        ADD #1,0(R15)
+        ADDC #0,R14
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R> 
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    RST_SET
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    $180E 1 TSTBIT
+
+    RST_RET
+
+    [IF]   ; MSP430FRxxxx with hardware_MPY
+
+        [UNDEFINED] HOLDS 
+        [IF]
+    CODE HOLDS
+    MOV @R15+,R9
+BW3 ADD R14,R9
+    MOV &$1DB2,R8
+    BEGIN
+       SUB #1,R9
+        SUB #1,R14
+    U>= WHILE
+        SUB #1,R8
+        MOV.B @R9,0(R8)
+    REPEAT
+    MOV R8,&$1DB2
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+        [THEN]
+
+        [UNDEFINED] F#S 
+        [IF]
+    CODE F#S
+                MOV 2(R15),R9
+                MOV @R15,2(R15)
+                MOV R9,0(R15)
+                MOV R14,R11
+                MOV #0,R12
+    BEGIN       MOV @R15,&$4C0
+                MOV &$1DBE,&$4C8
+                MOV &$4E4,0(R15)
+                MOV &$4E6,R14
+                CMP #10,R14
+        U>= IF  ADD #7,R14
+        THEN    ADD #$30,R14
+                MOV.B R14,$1D90(R12)
+                ADD #1,R12
+                CMP R11,R12
+    0= UNTIL    MOV R11,R14
+                MOV #0,0(R15)
+                MOV #$1D90,R9
+                GOTO BW3
+    ENDCODE
+        [THEN]
+
+    HDNCODE XSCALE
+    MOV T_SCALE(R10),&$4D4
+    MOV #0,&$4D6
+    MOV R9,&$4C8
+    MOV &$4E6,R9
+    MOV @R1+,R0
+    ENDCODE
+
+    [ELSE] ; no hardware multiplier
+
+        [UNDEFINED] HOLDS 
+        [IF]
+    CODE HOLDS
+    MOV @R15+,R9
+BW3 ADD R14,R9
+    MOV &$1DB2,R8
+    BEGIN
+       SUB #1,R9
+        SUB #1,R14
+    U>= WHILE
+        SUB #1,R8
+        MOV.B @R9,0(R8)
+    REPEAT
+    MOV R8,&$1DB2
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+        [THEN]
+
+        [UNDEFINED] F#S 
+        [IF]
+    CODE F#S
+                MOV @R15,R12
+                MOV #0,R11
+                PUSHM #3,R13
+                MOV 2(R15),0(R15)
+                MOV R14,2(R15)
+    BEGIN       MOV &$1DBE,R14
+                LO2HI
+                UM*
+                HI2LO
+                CMP #10,R14
+        U>= IF  ADD #7,R14
+        THEN    ADD #$30,R14
+                MOV @R1,R11
+                MOV.B R14,$1D90(R11)
+                ADD #1,R11
+                MOV R11,0(R1)
+                CMP 2(R15),R11
+    U>= UNTIL   POPM #3,R13
+                MOV R11,R14
+                MOV R12,2(R15)
+                MOV #0,0(R15)
+                MOV #$1D90,R9
+                GOTO BW3
+    ENDCODE
+        [THEN]
+
+    HDNCODE XSCALE
+                MOV T_SCALE(R10),R6
+    UMSTAR1     MOV #0,R8
+                MOV #0,R12
+                MOV #0,R11
+                MOV #1,R10
+    BEGIN       BIT R10,R6
+        0<> IF  ADD R9,R12
+                ADDC R8,R11
+        THEN    ADD R9,R9
+                ADDC R8,R8
+                ADD R10,R10
+    U>= UNTIL
+                MOV R11,R9
+                MOV #$40C4,R6
+                MOV @R1+,R0
+    ENDCODE
+
+    [THEN]  ; endcase of hardware multiplier
+
+    CODE POL2REC
+    PUSH R13
+    MOV @R15+,&$4D0
+    MOV R14,&$4D2
+    MOV #286,&$4C8
+    MOV &$4E4,R8
+    MOV &$4E6,R14
+    MOV #-1,R13
+    MOV @R15,R9
+    MOV #0,R8
+    BEGIN
+        ADD #1,R13
+        MOV R9,R12
+        MOV R8,R11
+        MOV #0,R10
+        GOTO FW1
+        BEGIN
+            RRA R12
+            RRA R11
+            ADD #1,R10
+FW1         CMP R13,R10
+        0= UNTIL
+        ADD R10,R10
+        CMP #0,R14
+        0>= IF
+            SUB R11,R9
+            ADD R12,R8
+            SUB T_ARCTAN(R10),R14
+        ELSE
+            ADD R11,R9
+            SUB R12,R8
+            ADD T_ARCTAN(R10),R14
+        THEN
+        CMP #0,R14
+        0<> WHILE
+            CMP #14,R13
+    0= UNTIL 
+        THEN
+    CALL #XSCALE
+    MOV R9,0(R15)
+    MOV R8,R9
+    CALL #XSCALE
+    MOV R9,R14
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+
+
+    CODE REC2POL
+    MOV @R15,R9
+    MOV R14,R8
+    MOV R8,R11
+    CMP #0,R11
+    S< IF
+        XOR #-1,R11
+        ADD #1,R11
+    THEN
+    MOV R9,R12
+    CMP #0,R12
+    S< IF 
+        XOR #-1,R12
+        ADD #1,R12
+    THEN
+    MOV #-1,R14
+    CMP #0,R9
+    0= IF
+        CMP #0,R8
+        0= IF
+            LO2HI 
+                ABORT" null inputs!"
+            HI2LO
+        THEN
+    THEN
+    CMP R12,R11
+    U< IF
+        MOV R12,R11
+    THEN
+    CMP #16384,R11
+        U>= IF
+        LO2HI
+            ABORT" |x| or |y| >= 16384"
+        HI2LO
+        THEN
+    MOV #1,R12
+    RLAM #3,R11
+    GOTO FW1
+    BEGIN
+        ADD R9,R9
+        ADD R8,R8
+        ADD R12,R12
+        ADD R11,R11
+FW1
+    U>= UNTIL
+    PUSHM #2,R13
+    MOV #-1,R13
+    MOV #0,R14
+    BEGIN
+        ADD #1,R13
+        MOV R9,R12
+        MOV R8,R11
+        MOV #0,R10
+        GOTO FW1
+        BEGIN
+            RRA R12
+            RRA R11
+            ADD #1,R10
+FW1         CMP R13,R10
+        0= UNTIL
+        ADD R10,R10
+        CMP #0,R8
+        S>= IF
+            ADD R11,R9
+            SUB R12,R8
+            ADD T_ARCTAN(R10),R14
+        ELSE
+            SUB R11,R9
+            ADD R12,R8
+            SUB T_ARCTAN(R10),R14
+        THEN
+        CMP #0,R8
+        0<> WHILE
+        CMP #14,R13
+    0= UNTIL
+        THEN
+    CALL #XSCALE
+    POPM #2,R13
+    GOTO FW1                
+    BEGIN
+        RRA R9
+FW1     RRA R12
+    U>= UNTIL
+    MOV R9,0(R15)
+    SUB #4,R15
+    MOV R14,R6
+    CMP #0,R6
+    S< IF
+        XOR #-1,R14
+        ADD #1,R14
+    THEN
+    MOV #0,2(R15)
+    MOV R14,0(R15)
+    MOV #286,R14
+    CALL #$403E
+    MOV @R15+,0(R15)
+    CMP #0,R6
+    S< IF
+        XOR #-1,0(R15)
+        XOR #-1,R14
+        ADD #1,0(R15)
+        ADDC #0,R14
+    THEN
+    MOV #$40C4,R6
+    MOV @R13+,R0
+    ENDCODE
+
+
+    [UNDEFINED] F. 
+    [IF]
+    CODE F.
+    MOV R14,R12
+    MOV #4,R11
+    MOV &$1DBE,R10
+    CMP ##10,R10
+    0= IF
+        ADD #1,R11
+    ELSE
+        CMP #%10,R10
+        0= IF
+            MOV #16,R11
+        THEN
+    THEN
+    PUSHM #3,R13
+    LO2HI
+        <# DABS
+        R> F#S
+        $2C HOLD
+        #S
+        R> SIGN #>
+        TYPE $20 EMIT
+    ;
+
+    [THEN]
+
+RST_SET
+
+    [UNDEFINED] SWAP 
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,R14
+    MOV @R13+,R0
+    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]
+
+ECHO
+
+10000 89,0 POL2REC . .  ; sin, cos --> 
+10000 75,0 POL2REC . .  ; sin, cos --> 
+10000 60,0 POL2REC . .  ; sin, cos --> 
+10000 45,0 POL2REC . .  ; sin, cos --> 
+10000 30,0 POL2REC . .  ; sin, cos --> 
+10000 15,0 POL2REC . .  ; sin, cos --> 
+10000 1,0 POL2REC . .   ; sin, cos --> 
+16384 30,0 POL2REC SWAP . . ; x, y --> 
+16384 45,0 POL2REC SWAP . . ; x, y --> 
+16384 60,0 POL2REC SWAP . . ; x, y --> 
+
+10000 -89,0 POL2REC . .  ; sin, cos --> 
+10000 -75,0 POL2REC . .  ; sin, cos --> 
+10000 -60,0 POL2REC . .  ; sin, cos --> 
+10000 -45,0 POL2REC . .  ; sin, cos --> 
+10000 -30,0 POL2REC . .  ; sin, cos --> 
+10000 -15,0 POL2REC . .  ; sin, cos --> 
+10000 -1,0 POL2REC . .   ; sin, cos --> 
+16384 -30,0 POL2REC SWAP . . ; x, y --> 
+16384 -45,0 POL2REC SWAP . . ; x, y --> 
+16384 -60,0 POL2REC SWAP . . ; x, y --> 
+
+-10000 89,0 POL2REC . .  ; sin, cos --> 
+-10000 75,0 POL2REC . .  ; sin, cos --> 
+-10000 60,0 POL2REC . .  ; sin, cos --> 
+-10000 45,0 POL2REC . .  ; sin, cos --> 
+-10000 30,0 POL2REC . .  ; sin, cos --> 
+-10000 15,0 POL2REC . .  ; sin, cos --> 
+-10000 1,0 POL2REC . .   ; sin, cos --> 
+-16384 30,0 POL2REC SWAP . . ; x, y --> 
+-16384 45,0 POL2REC SWAP . . ; x, y --> 
+-16384 60,0 POL2REC SWAP . . ; x, y --> 
+
+-10000 -89,0 POL2REC . .  ; sin, cos --> 
+-10000 -75,0 POL2REC . .  ; sin, cos --> 
+-10000 -60,0 POL2REC . .  ; sin, cos --> 
+-10000 -45,0 POL2REC . .  ; sin, cos --> 
+-10000 -30,0 POL2REC . .  ; sin, cos --> 
+-10000 -15,0 POL2REC . .  ; sin, cos --> 
+-10000 -1,0 POL2REC . .   ; sin, cos --> 
+-16384 -30,0 POL2REC SWAP . . ; x, y --> 
+-16384 -45,0 POL2REC SWAP . . ; x, y --> 
+-16384 -60,0 POL2REC SWAP . . ; x, y --> 
+
+
+2  1  REC2POL F. .          ; phase module --> 
+2 -1  REC2POL F. .          ; phase module --> 
+20  10  REC2POL F. .        ; phase module --> 
+20 -10  REC2POL F. .        ; phase module --> 
+200 100 REC2POL F. .        ; phase module --> 
+100 -100 REC2POL F. .       ; phase module --> 
+2000 1000 REC2POL F. .      ; phase module --> 
+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 --> 
+
+-2  1  REC2POL F. .          ; phase module --> 
+-2 -1  REC2POL F. .          ; phase module --> 
+-20  10  REC2POL F. .        ; phase module --> 
+-20 -10  REC2POL F. .        ; phase module --> 
+-200 100 REC2POL F. .        ; phase module --> 
+-100 -100 REC2POL F. .       ; phase module --> 
+-2000 1000 REC2POL F. .      ; phase module --> 
+-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 --> 
+
+10000 89,0 POL2REC REC2POL   ROT . F. 
+10000 75,0 POL2REC REC2POL   ROT . F. 
+10000 60,0 POL2REC REC2POL   ROT . F. 
+10000 45,0 POL2REC REC2POL   ROT . F. 
+10000 30,0 POL2REC REC2POL   ROT . F. 
+10000 26,565 POL2REC REC2POL ROT . F. 
+10000 15,0 POL2REC REC2POL   ROT . F. 
+10000 14,036 POL2REC REC2POL ROT . F. 
+10000 7,125 POL2REC REC2POL  ROT . F. 
+10000 1,0 POL2REC REC2POL    ROT . F. 
+
+
similarity index 67%
rename from MSP430-FORTH/MSP_EXP430FR5994/CORETEST.4TH
rename to MSP430-FORTH/SD_430FR5994/CORETEST.4TH
index af330bc..69c1e1a 100644 (file)
@@ -1,19 +1,80 @@
 
-PWR_STATE
+\ ; -------------------------------------
+\ ; CORETEST.4TH for any FastForth target
+\ ; -------------------------------------
 
-: COMPNOTFOUND
-$0D EMIT   \ return to column 1
-1 ABORT" {CORE_ANS} word set not found!"
+MARKER {CORETEST}
+
+: ABORT_TEST        \ flag --
+$0D EMIT            \ return to column 1
+POSTPONE {CORETEST} \ remove all test words 
+ABORT" {CORE_ANS} word set not found !"
 ;
 
-[DEFINED] {CORE_ANS} [IF]
+[UNDEFINED] {CORE_ANS} ABORT_TEST
 
 : CORETESTSUCCESS
-$0A BASE !
-$0D EMIT   \ return to column 1
-1 ABORT" CORE tests success!"
+$0D EMIT        \ -- $0D    return to column 1
+$0A BASE !      \           set decimal
+{CORETEST}      \           remove all test words 
+." CORETEST + COREPLUSTEST success!" \ true --
 ;
 
+[UNDEFINED] SM/REM [IF]
+CODE SM/REM
+MOV R14,R12
+MOV @R15,R11
+CMP #0,R14
+S< IF
+    XOR #-1,R14
+    ADD #1,R14
+THEN
+CMP #0,0(R15)
+S< IF
+    XOR #-1,2(R15)
+    XOR #-1,0(R15)
+    ADD #1,2(R15)
+    ADDC #0,0(R15)
+THEN
+PUSHM #3,R13
+LO2HI
+    UM/MOD
+HI2LO
+POPM #3,R13
+CMP #0,R11
+S< IF
+    XOR #-1,0(R15)
+    ADD #1,0(R15)
+THEN
+XOR R12,R11
+CMP #0,R11
+S< IF
+    XOR #-1,R14
+    ADD #1,R14
+THEN
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] FM/MOD [IF]
+\ https://forth-standard.org/standard/core/FMDivMOD
+\ FM/MOD   d1 n1 -- r q   floored signed div'n
+: FM/MOD
+SM/REM
+HI2LO                   \ -- remainder quotient       S=divisor
+CMP #0,0(R15)           \ remainder <> 0 ?
+0<> IF
+    CMP #1,R14          \ quotient < 1 ?
+    S< IF
+      ADD R12,0(R15)    \ add divisor to remainder
+      SUB #1,R14        \ decrement quotient
+    THEN
+THEN
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
 \ From: John Hayes S1I
 \ Subject: tester.fr
 \ Date: Mon, 27 Nov 95 13:10:09 PST
@@ -639,6 +700,12 @@ T{ 1STA 2NDA U< -> <TRUE> }T        \ HERE MUST GROW WITH ALLOT
 T{ 1STA 1+ -> 2NDA }T           \ ... BY ONE ADDRESS UNIT
 ( MISSING TEST: NEGATIVE ALLOT )
 
+\ Added by GWJ so that ALIGN can be used before , (comma) is tested
+1 ALIGNED CONSTANT ALMNT   \ -- 1|2|4|8 for 8|16|32|64 bit alignment
+ALIGN
+T{ HERE 1 ALLOT ALIGN HERE SWAP - ALMNT = -> <TRUE> }T
+\ End of extra test
+
 HERE 1 ,
 HERE 2 ,
 CONSTANT 2ND
@@ -973,7 +1040,8 @@ CREATE GN-BUF 0 C,
 T{ 0 0 GN' 0' >NUMBER -> 0 0 GN-CONSUMED }T
 T{ 0 0 GN' 1' >NUMBER -> 1 0 GN-CONSUMED }T
 T{ 1 0 GN' 1' >NUMBER -> BASE @ 1+ 0 GN-CONSUMED }T
-T{ 0 0 GN' -' >NUMBER -> 0 0 GN-STRING }T   \ SHOULD FAIL TO CONVERT THESE
+\ FOLLOWING SHOULD FAIL TO CONVERT
+T{ 0 0 GN' -' >NUMBER -> 0 0 GN-STRING }T
 T{ 0 0 GN' +' >NUMBER -> 0 0 GN-STRING }T
 T{ 0 0 GN' .' >NUMBER -> 0 0 GN-STRING }T
 
@@ -987,7 +1055,8 @@ T{ 0 0 GN' G' 10 >NUMBER-BASED -> 0 0 GN-STRING }T
 T{ 0 0 GN' G' MAX-BASE >NUMBER-BASED -> 10 0 GN-CONSUMED }T
 T{ 0 0 GN' Z' MAX-BASE >NUMBER-BASED -> 23 0 GN-CONSUMED }T
 
-: GN1   \ ( UD BASE -- UD' LEN ) UD SHOULD EQUAL UD' AND LEN SHOULD BE ZERO.
+: GN1   \ ( UD BASE -- UD' LEN )
+\ UD SHOULD EQUAL UD' AND LEN SHOULD BE ZERO.
     BASE @ >R BASE !
     <# #S #>
     0 0 2SWAP >NUMBER SWAP DROP      \ RETURN LENGTH ONLY
@@ -1069,9 +1138,8 @@ CREATE ABUF 80 CHARS ALLOT
 : ACCEPT-TEST
     CR ." PLEASE TYPE UP TO 80 CHARACTERS: "
 ABUF 80 \ ACCEPT            \ JMT 
-['] ACCEPT DUP @ $4030 =    \ JMT: if CFA content = $4030 (MOV @PC+,PC), ACCEPT is deferred
-IF      >BODY               \ JMT: find default part of deferred ACCEPT
-THEN    EXECUTE             \ JMT: execute ACCEPT
+          ['] ACCEPT >BODY  \ JMT: find default part of deferred ACCEPT
+          EXECUTE           \ JMT: execute ACCEPT
     CR ." RECEIVED: " [CHAR] " EMIT
     ABUF SWAP TYPE [CHAR] " EMIT CR
 ;
@@ -1085,10 +1153,383 @@ T{ : GDX   123 ; : GDX   GDX 234 ; -> }T
 
 T{ GDX -> 123 234 }T
 
-CR .( End of Core word set tests)
-         
-CORETESTSUCCESS
+CR .( End of Core word set tests) \ "
+
+\ =============================================================================
+\ COREPLUSTEST
+\ =============================================================================
+\ Additional tests on the the ANS Forth Core word set
+\ -----------------------------------------------------------------------------
+\ https://raw.githubusercontent.com/gerryjackson/forth2012-test-suite/master/src/coreplustest.fth
+
+\ This program was written by Gerry Jackson in 2007, with contributions from
+\ others where indicated, and is in the public domain - it can be distributed
+\ and/or modified in any way but please retain this notice.
+
+\ 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.
+
+\ The tests are not claimed to be comprehensive or correct 
+
+\ -----------------------------------------------------------------------------
+\ The tests are based on John Hayes test program for the core word set
+\
+\ This file provides some more tests on Core words where the original Hayes
+\ tests are thought to be incomplete
+\
+\ Words tested in this file are:
+\     DO I +LOOP RECURSE ELSE >IN IMMEDIATE FIND IF...BEGIN...REPEAT ALLOT DOES>
+\ and
+\     Parsing behaviour
+\     Number prefixes # $ % and 'A' character input
+\     Definition names
+\ -----------------------------------------------------------------------------
+\ Assumptions and dependencies:
+\     - tester.fr or ttester.fs has been loaded prior to this file
+\     - core.fr has been loaded so that constants <TRUE> MAX-INT, MIN-INT and
+\       MAX-UINT are defined
+\ -----------------------------------------------------------------------------
+
+DECIMAL
+
+TESTING DO +LOOP with run-time increment, negative increment, infinite loop
+\ Contributed by Reinhold Straub
+
+VARIABLE ITERATIONS
+VARIABLE INCREMENT
+: GD7 ( LIMIT START INCREMENT -- )
+   INCREMENT !
+   0 ITERATIONS !
+   DO
+      1 ITERATIONS +!
+      I
+      ITERATIONS @  6 = IF LEAVE THEN
+      INCREMENT @
+   +LOOP ITERATIONS @
+;
 
-[ELSE] COMPNOTFOUND ;             download CORE_ANS.f before CORETEST.4TH
+T{  4  4 -1 GD7 -> 4 1 }T
+T{  1  4 -1 GD7 -> 4 3 2 1 4 }T
+T{  4  1 -1 GD7 -> 1 0 -1 -2 -3 -4 6 }T
+T{  4  1  0 GD7 -> 1 1 1 1 1 1 6 }T
+T{  0  0  0 GD7 -> 0 0 0 0 0 0 6 }T
+T{  1  4  0 GD7 -> 4 4 4 4 4 4 6 }T
+T{  1  4  1 GD7 -> 4 5 6 7 8 9 6 }T
+T{  4  1  1 GD7 -> 1 2 3 3 }T
+T{  4  4  1 GD7 -> 4 5 6 7 8 9 6 }T
+T{  2 -1 -1 GD7 -> -1 -2 -3 -4 -5 -6 6 }T
+T{ -1  2 -1 GD7 -> 2 1 0 -1 4 }T
+T{  2 -1  0 GD7 -> -1 -1 -1 -1 -1 -1 6 }T
+T{ -1  2  0 GD7 -> 2 2 2 2 2 2 6 }T
+T{ -1  2  1 GD7 -> 2 3 4 5 6 7 6 }T
+T{  2 -1  1 GD7 -> -1 0 1 3 }T
+T{ -20 30 -10 GD7 -> 30 20 10 0 -10 -20 6 }T
+T{ -20 31 -10 GD7 -> 31 21 11 1 -9 -19 6 }T
+T{ -20 29 -10 GD7 -> 29 19 9 -1 -11 5 }T
+
+\ -----------------------------------------------------------------------------
+TESTING DO +LOOP with large and small increments
+
+\ Contributed by Andrew Haley
+
+MAX-UINT 8 RSHIFT 1+ CONSTANT USTEP
+USTEP NEGATE CONSTANT -USTEP
+MAX-INT 7 RSHIFT 1+ CONSTANT STEP
+STEP NEGATE CONSTANT -STEP
+
+VARIABLE BUMP
+
+T{ : GD8 BUMP ! DO 1+ BUMP @ +LOOP ; -> }T
+
+T{ 0 MAX-UINT 0 USTEP GD8 -> 256 }T
+T{ 0 0 MAX-UINT -USTEP GD8 -> 256 }T
+
+T{ 0 MAX-INT MIN-INT STEP GD8 -> 256 }T
+T{ 0 MIN-INT MAX-INT -STEP GD8 -> 256 }T
+
+\ Two's complement arithmetic, wraps around modulo wordsize
+\ Only tested if the Forth system does wrap around, use of conditional
+\ compilation deliberately avoided
+
+MAX-INT 1+ MIN-INT = CONSTANT +WRAP?
+MIN-INT 1- MAX-INT = CONSTANT -WRAP?
+MAX-UINT 1+ 0=       CONSTANT +UWRAP?
+0 1- MAX-UINT =      CONSTANT -UWRAP?
+
+: GD9  ( n limit start step f result -- )
+   >R IF GD8 ELSE 2DROP 2DROP R@ THEN -> R> }T
+;
 
-[THEN]
+T{ 0 0 0  USTEP +UWRAP? 256 GD9
+T{ 0 0 0 -USTEP -UWRAP?   1 GD9
+T{ 0 MIN-INT MAX-INT  STEP +WRAP? 1 GD9
+T{ 0 MAX-INT MIN-INT -STEP -WRAP? 1 GD9
+
+\ -----------------------------------------------------------------------------
+TESTING DO +LOOP with maximum and minimum increments
+
+: (-MI) MAX-INT DUP NEGATE + 0= IF MAX-INT NEGATE ELSE -32767 THEN ;
+(-MI) CONSTANT -MAX-INT
+
+T{ 0 1 0 MAX-INT GD8  -> 1 }T
+T{ 0 -MAX-INT NEGATE -MAX-INT OVER GD8  -> 2 }T
+
+T{ 0 MAX-INT  0 MAX-INT GD8  -> 1 }T
+T{ 0 MAX-INT  1 MAX-INT GD8  -> 1 }T
+T{ 0 MAX-INT -1 MAX-INT GD8  -> 2 }T
+T{ 0 MAX-INT DUP 1- MAX-INT GD8  -> 1 }T
+
+T{ 0 MIN-INT 1+   0 MIN-INT GD8  -> 1 }T
+T{ 0 MIN-INT 1+  -1 MIN-INT GD8  -> 1 }T
+T{ 0 MIN-INT 1+   1 MIN-INT GD8  -> 2 }T
+T{ 0 MIN-INT 1+ DUP MIN-INT GD8  -> 1 }T
+
+\ -----------------------------------------------------------------------------
+\ TESTING +LOOP setting I to an arbitrary value
+
+\ The specification for +LOOP permits the loop index I to be set to any value
+\ including a value outside the range given to the corresponding  DO.
+
+\ SET-I is a helper to set I in a DO ... +LOOP to a given value
+\ n2 is the value of I in a DO ... +LOOP
+\ n3 is a test value
+\ If n2=n3 then return n1-n2 else return 1
+: SET-I  ( n1 n2 n3 -- n1-n2 | 1 ) 
+   OVER = IF - ELSE 2DROP 1 THEN
+;
+
+: -SET-I ( n1 n2 n3 -- n1-n2 | -1 )
+   SET-I DUP 1 = IF NEGATE THEN
+;
+
+: PL1 20 1 DO I 18 I 3 SET-I +LOOP ;
+T{ PL1 -> 1 2 3 18 19 }T
+: PL2 20 1 DO I 20 I 2 SET-I +LOOP ;
+T{ PL2 -> 1 2 }T
+: PL3 20 5 DO I 19 I 2 SET-I DUP 1 = IF DROP 0 I 6 SET-I THEN +LOOP ;
+T{ PL3 -> 5 6 0 1 2 19 }T
+: PL4 20 1 DO I MAX-INT I 4 SET-I +LOOP ;
+T{ PL4 -> 1 2 3 4 }T
+: PL5 -20 -1 DO I -19 I -3 -SET-I +LOOP ;
+T{ PL5 -> -1 -2 -3 -19 -20 }T
+: PL6 -20 -1 DO I -21 I -4 -SET-I +LOOP ;
+T{ PL6 -> -1 -2 -3 -4 }T
+: PL7 -20 -1 DO I MIN-INT I -5 -SET-I +LOOP ;
+T{ PL7 -> -1 -2 -3 -4 -5 }T
+: PL8 -20 -5 DO I -20 I -2 -SET-I DUP -1 = IF DROP 0 I -6 -SET-I THEN +LOOP ;
+T{ PL8 -> -5 -6 0 -1 -2 -20 }T
+
+\ -----------------------------------------------------------------------------
+TESTING multiple RECURSEs in one colon definition
+
+: ACK ( m n -- u )    \ Ackermann function, from Rosetta Code
+   OVER 0= IF  NIP 1+ EXIT  THEN       \ ack(0, n) = n+1
+   SWAP 1- SWAP                        ( -- m-1 n )
+   DUP  0= IF  1+  RECURSE EXIT  THEN  \ ack(m, 0) = ack(m-1, 1)
+   1- OVER 1+ SWAP RECURSE RECURSE     \ ack(m, n) = ack(m-1, ack(m,n-1))
+;
+
+T{ 0 0 ACK ->  1 }T
+T{ 3 0 ACK ->  5 }T
+T{ 2 4 ACK -> 11 }T
+
+\ -----------------------------------------------------------------------------
+TESTING multiple ELSE's in an IF statement
+\ Discussed on comp.lang.forth and accepted as valid ANS Forth
+
+: MELSE IF 1 ELSE 2 ELSE 3 ELSE 4 ELSE 5 THEN ;
+T{ 0 MELSE -> 2 4 }T
+T{ -1 MELSE -> 1 3 5 }T
+
+\ -----------------------------------------------------------------------------
+TESTING manipulation of >IN in interpreter mode
+
+T{ 12345 DEPTH OVER 9 < 34 AND + 3 + >IN ! -> 12345 2345 345 45 5 }T
+T{ 14145 8115 ?DUP 0= 34 AND >IN +! TUCK MOD 14 >IN ! GCD CALCULATION -> 15 }T
+
+\ -----------------------------------------------------------------------------
+TESTING IMMEDIATE with CONSTANT  VARIABLE and CREATE [ ... DOES> ]
+
+T{ 123 CONSTANT IW1 IMMEDIATE IW1 -> 123 }T
+T{ : IW2 IW1 LITERAL ; IW2 -> 123 }T
+T{ VARIABLE IW3 IMMEDIATE 234 IW3 ! IW3 @ -> 234 }T
+T{ : IW4 IW3 [ @ ] LITERAL ; IW4 -> 234 }T
+T{ :NONAME [ 345 ] IW3 [ ! ] ; DROP IW3 @ -> 345 }T
+T{ CREATE IW5 456 , IMMEDIATE -> }T
+T{ :NONAME IW5 [ @ IW3 ! ] ; DROP IW3 @ -> 456 }T
+T{ : IW6 CREATE , IMMEDIATE DOES> @ 1+ ; -> }T
+T{ 111 IW6 IW7 IW7 -> 112 }T
+T{ : IW8 IW7 LITERAL 1+ ; IW8 -> 113 }T
+T{ : IW9 CREATE , DOES> @ 2 + IMMEDIATE ; -> }T
+: FIND-IW BL WORD FIND NIP ;  ( -- 0 | 1 | -1 )
+T{ 222 IW9 IW10 FIND-IW IW10 -> -1 }T   \ IW10 is not immediate
+T{ IW10 FIND-IW IW10 -> 224 1 }T        \ IW10 becomes immediate
+
+\ -----------------------------------------------------------------------------
+TESTING that IMMEDIATE doesn't toggle a flag
+
+VARIABLE IT1 0 IT1 !
+: IT2 1234 IT1 ! ; IMMEDIATE IMMEDIATE
+T{ : IT3 IT2 ; IT1 @ -> 1234 }T
+
+\ -----------------------------------------------------------------------------
+TESTING parsing behaviour of S" ." and (
+\ which should parse to just beyond the terminating character no space needed
+
+T{ : GC5 S" A string"2DROP ; GC5 -> }T
+T{ ( A comment)1234 -> 1234 }T
+T{ : PB1 CR ." You should see 2345: "." 2345"( A comment) CR ; PB1 -> }T
+\ -----------------------------------------------------------------------------
+TESTING number prefixes # $ % and 'c' character input
+\ Adapted from the Forth 200X Draft 14.5 document
+
+VARIABLE OLD-BASE
+DECIMAL BASE @ OLD-BASE !
+T{ #1289 -> 1289 }T
+T{ #-1289 -> -1289 }T
+T{ $12eF -> 4847 }T
+T{ $-12eF -> -4847 }T
+T{ %10010110 -> 150 }T
+T{ %-10010110 -> -150 }T
+T{ 'z' -> 122 }T
+T{ 'Z' -> 90 }T
+\ Check BASE is unchanged
+T{ BASE @ OLD-BASE @ = -> <TRUE> }T
+
+\ Repeat in Hex mode
+16 OLD-BASE ! 16 BASE !
+T{ #1289 -> 509 }T
+T{ #-1289 -> -509 }T
+T{ $12eF -> 12EF }T
+T{ $-12eF -> -12EF }T
+T{ %10010110 -> 96 }T
+T{ %-10010110 -> -96 }T
+T{ 'z' -> 7a }T
+T{ 'Z' -> 5a }T
+\ Check BASE is unchanged
+T{ BASE @ OLD-BASE @ = -> <TRUE> }T   \ 2
+
+DECIMAL
+\ Check number prefixes in compile mode
+T{ : nmp  #8327 $-2cbe %011010111 ''' ; nmp -> 8327 -11454 215 39 }T
+
+\ -----------------------------------------------------------------------------
+TESTING definition names
+\ should support {1..31} graphical characters
+: !"#$%&'()*+,-./0123456789:;<=>? 1 ;
+T{ !"#$%&'()*+,-./0123456789:;<=>? -> 1 }T
+: @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ 2 ;
+T{ @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ -> 2 }T
+: _`abcdefghijklmnopqrstuvwxyz{|} 3 ;
+T{ _`abcdefghijklmnopqrstuvwxyz{|} -> 3 }T
+: _`abcdefghijklmnopqrstuvwxyz{|~ 4 ;     \ Last character different
+T{ _`abcdefghijklmnopqrstuvwxyz{|~ -> 4 }T
+T{ _`abcdefghijklmnopqrstuvwxyz{|} -> 3 }T
+
+\ -----------------------------------------------------------------------------
+TESTING FIND with a zero length string and a non-existent word
+
+CREATE EMPTYSTRING 0 C,
+: EMPTYSTRING-FIND-CHECK ( c-addr 0 | xt 1 | xt -1 -- t|f )
+    DUP IF ." FIND returns a TRUE value for an empty string!" CR THEN
+    0= SWAP EMPTYSTRING = = ;
+T{ EMPTYSTRING FIND EMPTYSTRING-FIND-CHECK -> <TRUE> }T
+
+CREATE NON-EXISTENT-WORD   \ Same as in exceptiontest.fth
+       15 C, CHAR $ C, CHAR $ C, CHAR Q C, CHAR W C, CHAR E C, CHAR Q C,
+   CHAR W C, CHAR E C, CHAR Q C, CHAR W C, CHAR E C, CHAR R C, CHAR T C,
+   CHAR $ C, CHAR $ C,
+T{ NON-EXISTENT-WORD FIND -> NON-EXISTENT-WORD 0 }T
+
+\ -----------------------------------------------------------------------------
+TESTING IF ... BEGIN ... REPEAT (unstructured)
+
+T{ : UNS1 DUP 0 > IF 9 SWAP BEGIN 1+ DUP 3 > IF EXIT THEN REPEAT ; -> }T
+T{ -6 UNS1 -> -6 }T
+T{  1 UNS1 -> 9 4 }T
+
+\ -----------------------------------------------------------------------------
+TESTING DOES> doesn't cause a problem with a CREATEd address
+
+: MAKE-2CONST DOES> 2@ ;
+T{ CREATE 2K 3 , 2K , MAKE-2CONST 2K -> ' 2K >BODY 3 }T
+
+\ -----------------------------------------------------------------------------
+TESTING ALLOT ( n -- ) where n <= 0
+
+T{ HERE 5 ALLOT -5 ALLOT HERE = -> <TRUE> }T
+T{ HERE 0 ALLOT HERE = -> <TRUE> }T
+\ -----------------------------------------------------------------------------
+
+CR .( End of additional Core tests) \ "
+
+\ -----------------------------------------------------------------------------
+TESTING TO VALUE :NONAME IS DEFER
+
+T{  111 VALUE v1 -> }T
+T{ -999 VALUE v2 -> }T
+T{ v1 ->  111 }T
+T{ v2 -> -999 }T
+T{ 222 TO v1 -> }T
+T{ v1 -> 222 }T
+T{ : vd1 v1 ; -> }T
+T{ vd1 -> 222 }T
+T{ : vd2 TO v2 ; -> }T
+T{ v2 -> -999 }T
+T{ -333 vd2 -> }T
+T{ v2 -> -333 }T
+T{ v1 ->  222 }T
+
+VARIABLE nn1
+VARIABLE nn2
+T{ :NONAME 1234 ; nn1 ! -> }T
+T{ :NONAME 9876 ; nn2 ! -> }T
+T{ nn1 @ EXECUTE -> 1234 }T
+T{ nn2 @ EXECUTE -> 9876 }T
+
+T{ :NONAME ( n -- 0,1,..n ) DUP IF DUP >R 1- RECURSE R> THEN ;
+   CONSTANT RN1 -> }T
+T{ 0 RN1 EXECUTE -> 0 }T
+T{ 4 RN1 EXECUTE -> 0 1 2 3 4 }T
+
+:NONAME  ( n -- n1 )    \ Multiple RECURSEs in one definition
+   1- DUP
+   CASE 0 OF EXIT ENDOF
+        1 OF 11 SWAP RECURSE ENDOF
+        2 OF 22 SWAP RECURSE ENDOF
+        3 OF 33 SWAP RECURSE ENDOF
+        DROP ABS RECURSE EXIT
+   ENDCASE
+; CONSTANT RN2
+
+T{  1 RN2 EXECUTE -> 0 }T
+T{  2 RN2 EXECUTE -> 11 0 }T
+T{  4 RN2 EXECUTE -> 33 22 11 0 }T
+T{ 25 RN2 EXECUTE -> 33 22 11 0 }T
+
+
+T{ DEFER defer5 -> }T
+T{ : is-defer5 IS defer5 ; -> }T
+T{ ' * IS defer5 -> }T
+T{ 2 3 defer5 -> 6 }T
+T{ ' + is-defer5 -> }T
+T{ 1 2 defer5 -> 3 }T
+
+\ -----------------------------------------------------------------------------
+TESTING MARKER   (contributed by James Bowman)
+
+T{ : MA? BL WORD FIND NIP 0<> ; -> }T
+T{ MARKER MA0 -> }T
+T{ : MA1 111 ; -> }T
+T{ MARKER MA2 -> }T
+T{ : MA1 222 ; -> }T
+T{ MA? MA0 MA? MA1 MA? MA2 -> TRUE TRUE TRUE }T
+T{ MA1 MA2 MA1 -> 222 111 }T
+T{ MA? MA0 MA? MA1 MA? MA2 -> TRUE TRUE FALSE }T
+T{ MA0 -> }T
+T{ MA? MA0 MA? MA1 MA? MA2 -> FALSE FALSE FALSE }T
+
+CORETESTSUCCESS
diff --git a/MSP430-FORTH/SD_430FR5994/CORE_ANS.4TH b/MSP430-FORTH/SD_430FR5994/CORE_ANS.4TH
new file mode 100644 (file)
index 0000000..9504cb2
--- /dev/null
@@ -0,0 +1,1273 @@
+
+    CODE ABORT_CORE_ANS
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    ;
+
+    ABORT_CORE_ANS
+
+    [UNDEFINED] BC!
+    [IF]
+    CODE BC!
+    BIC @R15+,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] BS!
+    [IF]
+    CODE BS!
+    BIS @R15+,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    $8000 $180E BC!
+
+    RST_RET
+
+; ----------------------------------
+; CORE_ANS.4th for MSP_EXP430FR5994
+; ----------------------------------
+
+    MARKER {CORE_ANS}
+
+    [UNDEFINED] HERE
+    [IF]
+    CODE HERE
+    MOV #$4032,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DUP
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] EXIT
+    [IF]
+    CODE EXIT
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DEPTH
+    [IF]
+    CODE DEPTH
+    MOV R14,-2(R15)
+    MOV #$1C80,R14
+    SUB R15,R14
+    RRA R14
+    SUB #2,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    PUSH R14
+    MOV @R15,R14
+    MOV @R1+,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DROP
+    [IF]
+    CODE DROP
+    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] NIP
+    [IF]
+    CODE NIP
+    ADD #2,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] @
+    [IF]
+    CODE @
+    MOV @R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] !
+    [IF]
+    CODE !
+    MOV @R15+,0(R14)
+    MOV @R15+,R14
+    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 &$1DC8,R10
+    MOV.B R14,0(R10)
+    ADD #1,&$1DC8
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 0=
+    [IF]
+    CODE 0=
+    SUB #1,R14
+    SUBC R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 0<>
+    [IF]
+    CODE 0<>
+    SUB #1,R14
+    SUBC R14,R14
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 0<
+    [IF]
+    CODE 0<
+BW1 ADD R14,R14
+    SUBC R14,R14
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+
+    [UNDEFINED] S>D
+    [IF]
+    : S>D
+    DUP 0<
+    ;
+    [THEN]
+
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    SUB #1,R14
+    SUBC R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U<
+    [IF]
+
+    CODE U<
+    SUB @R15+,R14
+    U< ?GOTO FW1
+    0<> IF
+BW1 MOV #-1,R14
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE U>
+    SUB @R15+,R14
+    U< ?GOTO BW1
+FW1 AND #0,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] IF
+    [IF]
+
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] BEGIN
+    [IF]
+
+    CODE BEGIN
+    MOV #$4032,R0
+    ENDCODE IMMEDIATE
+
+    CODE UNTIL
+    MOV #$40AC,R9
+BW1 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE AGAIN
+    MOV #$40B2,R9
+    GOTO BW1
+    ENDCODE IMMEDIATE
+
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]
+
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] J
+    [IF]
+    CODE J
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV 4(R1),R14
+    SUB 6(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] UNLOOP
+    [IF]
+    CODE UNLOOP
+    ADD #4,R1
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] LEAVE
+    [IF]
+    CODE LEAVE
+    MOV &$1DC8,R10
+    MOV #UNLOOP,0(R10)
+    MOV #$40B2,2(R10)
+    ADD #6,&$1DC8
+    ADD #2,&$1C00
+    ADD #4,R10
+    MOV &$1C00,R9
+    MOV R10,0(R9)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] AND
+    [IF]
+    CODE AND
+    AND @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] OR
+    [IF]
+    CODE OR
+    BIS @R15+,R14
+    AND #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] XOR
+    [IF]
+    CODE XOR
+    XOR @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 1+
+    [IF]
+    CODE 1+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 1-
+    [IF]
+    CODE 1-
+    SUB #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] INVERT
+    [IF]
+    CODE INVERT
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] NEGATE
+    [IF]
+    CODE NEGATE
+    XOR #-1,R14
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] ABS
+    [IF]
+    CODE ABS
+    CMP #0,R14
+    0>= IF
+        MOV @R13+,R0
+    THEN
+    MOV #NEGATE,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] LSHIFT
+    [IF]
+    CODE LSHIFT
+    MOV @R15+,R10
+    AND #$1F,R14
+    0<> IF
+        BEGIN
+            ADD R10,R10
+            SUB #1,R14
+        0= UNTIL
+    THEN
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] RSHIFT
+    [IF]
+    CODE RSHIFT
+    MOV @R15+,R10
+    AND #$1F,R14
+    0<> IF
+        BEGIN
+            BIC #1,R2
+            RRC R10
+            SUB #1,R14
+        0= UNTIL
+    THEN
+    MOV R10,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] 2*
+    [IF]
+    CODE 2*
+    ADD R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2/
+    [IF]
+    CODE 2/
+    RRA R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    RST_SET
+
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    $180E 1 TSTBIT
+    RST_RET
+
+    [IF]
+    CODE UM*
+    MOV @R15,&$4C0
+BW1 MOV R14,&$4C8
+    MOV &$4E4,0(R15)
+    MOV &$4E6,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE M*
+    MOV @R15,&$4C2
+    GOTO BW1
+    ENDCODE
+
+    [ELSE]  ; MSP430FRxxxx with hardware_MPY
+        [UNDEFINED] M* [IF]
+    CODE M*
+    MOV @R15,R12
+    CMP #0,R12
+    S< IF
+        XOR #-1,0(R15)
+        ADD #1,0(R15)
+    THEN
+    XOR R14,R12
+    CMP #0,R14
+    S< IF
+        XOR #-1,R14
+        ADD #1,R14
+    THEN
+    PUSHM #2,R13
+    LO2HI
+    UM*
+    HI2LO
+    POPM #2,R13
+    CMP #0,R12
+    S< IF
+        XOR #-1,0(R15)
+        XOR #-1,R14
+        ADD #1,0(R15)
+        ADDC #0,R14
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+        [THEN]
+    [THEN]  ;  endof hardware_MPY
+
+
+    [UNDEFINED] UM/MOD
+    [IF]
+    CODE UM/MOD
+    PUSH #DROP
+    MOV #$403E,R0
+    ENDCODE
+    [THEN]
+
+
+
+    $180E @ 0<  ; test the switch: $8000 / SYMETRIC DIVISION
+    [IF]
+        [UNDEFINED] FM/MOD
+        [IF]
+        CODE FM/MOD
+        MOV R14,R12
+        MOV @R15,R11
+        CMP #0,R14
+        S< IF
+            XOR #-1,R14
+            ADD #1,R14
+        THEN
+        CMP #0,0(R15)
+        S< IF
+            XOR #-1,2(R15)
+            XOR #-1,0(R15)
+            ADD #1,2(R15)
+            ADDC #0,0(R15)
+        THEN
+        PUSHM  #2,R12
+        CALL #$403E
+        MOV @R15+,R14
+        POPM  #2,R12
+        CMP #0,R11
+        S< IF
+            XOR #-1,0(R15)
+            ADD #1,0(R15)
+        THEN
+        XOR R12,R11
+        CMP #0,R11
+        S< IF
+            XOR #-1,R14
+            ADD #1,R14
+        THEN
+
+        CMP #0,0(R15)
+        0<> IF
+            CMP #1,R14
+            S< IF
+            ADD R12,0(R15)
+            SUB #1,R14
+            THEN
+        THEN
+        MOV @R13+,R0
+        ENDCODE
+        [THEN]
+    [ELSE]
+        [UNDEFINED] SM/REM
+        [IF]
+        CODE SM/REM
+        MOV R14,R12
+        MOV @R15,R11
+        CMP #0,R14
+        S< IF
+            XOR #-1,R14
+            ADD #1,R14
+        THEN
+        CMP #0,0(R15)
+        S< IF
+            XOR #-1,2(R15)
+            XOR #-1,0(R15)
+            ADD #1,2(R15)
+            ADDC #0,0(R15)
+        THEN
+        PUSHM  #2,R12
+        CALL #$403E
+        MOV @R15+,R14
+        POPM  #2,R12
+        CMP #0,R11
+        S< IF
+            XOR #-1,0(R15)
+            ADD #1,0(R15)
+        THEN
+        XOR R12,R11
+        CMP #0,R11
+        S< IF
+            XOR #-1,R14
+            ADD #1,R14
+        THEN
+        MOV @R13+,R0
+        ENDCODE
+        [THEN]
+    [THEN]
+
+    [UNDEFINED] *
+    [IF]
+    : *
+    M* DROP
+    ;
+    [THEN]
+
+    [UNDEFINED] /MOD
+    [IF]
+    : /MOD
+    >R DUP 0< R>
+        [ $180E @ 0< ]
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    ;
+    [THEN]
+
+    [UNDEFINED] /
+    [IF]
+    : /
+    >R DUP 0< R>
+        [ $180E @ 0< ]
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    NIP
+    ;
+    [THEN]
+
+    [UNDEFINED] MOD
+    [IF]
+    : MOD
+    >R DUP 0< R>
+        [ $180E @ 0< ]
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    DROP
+    ;
+    [THEN]
+
+    [UNDEFINED] */MOD
+    [IF]
+    : */MOD
+    >R M* R>
+        [ $180E @ 0< ]
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    ;
+    [THEN]
+
+    [UNDEFINED] */
+    [IF]
+    : */
+    >R M* R>
+        [ $180E @ 0< ]
+        [IF]    FM/MOD
+        [ELSE]  SM/REM
+        [THEN]
+    NIP
+    ;
+    [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] R@
+    [IF]
+    CODE R@
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] TUCK
+    [IF]
+    : TUCK SWAP OVER ;
+    [THEN]
+
+    [UNDEFINED] 2@
+    [IF]
+    CODE 2@
+    SUB #2,R15
+    MOV 2(R14),0(R15)
+    MOV @R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2!
+    [IF]
+    CODE 2!
+    MOV @R15+,0(R14)
+    MOV @R15+,2(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2DUP
+    [IF]
+    CODE 2DUP
+    MOV R14,-2(R15)
+    MOV @R15,-4(R15)
+    SUB #4,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2DROP
+    [IF]
+    CODE 2DROP
+    ADD #2,R15
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2SWAP
+    [IF]
+    CODE 2SWAP
+    MOV @R15,R10
+    MOV 4(R15),0(R15)
+    MOV R10,4(R15)
+    MOV R14,R10
+    MOV 2(R15),R14
+    MOV R10,2(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2OVER
+    [IF]
+    CODE 2OVER
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV 8(R15),0(R15)
+    MOV 6(R15),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] ALIGNED
+    [IF]
+    CODE ALIGNED
+    BIT #1,R14
+    ADDC #0,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] ALIGN
+    [IF]
+    CODE ALIGN
+    BIT #1,&$1DC8
+    ADDC #0,&$1DC8
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CHARS
+    [IF]
+    CODE CHARS
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CHAR+
+    [IF]
+    CODE CHAR+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CELLS
+    [IF]
+    CODE CELLS
+    ADD R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CELL+
+    [IF]
+    CODE CELL+
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CHAR
+    [IF]
+    : CHAR
+    $20 WORD 1+ C@
+    ;
+    [THEN]
+
+    [UNDEFINED] [CHAR]
+    [IF]
+    : [CHAR]
+    CHAR POSTPONE LITERAL
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] +!
+    [IF]
+    CODE +!
+    ADD @R15+,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] MOVE
+    [IF]
+    CODE MOVE
+    MOV R14,R10
+    MOV @R15+,R8
+    MOV @R15+,R9
+    MOV @R15+,R14
+    CMP #0,R10
+    0<> IF
+        CMP R9,R8
+        0<> IF
+            U< IF
+                BEGIN
+                    MOV.B @R9+,0(R8)
+                    ADD #1,R8
+                    SUB #1,R10
+                0= UNTIL
+                MOV @R13+,R0
+            THEN
+            ADD R10,R8
+            ADD R10,R9
+            BEGIN
+                SUB #1,R9
+                SUB #1,R8
+                MOV.B @R9,0(R8)
+                SUB #1,R10
+            0= UNTIL
+        THEN
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] FILL
+    [IF]
+    CODE FILL
+    MOV @R15+,R9
+    MOV @R15+,R10
+    CMP #0,R9
+    0<> IF
+        BEGIN
+            MOV.B R14,0(R10)
+            ADD #1,R10
+            SUB #1,R9
+        0= UNTIL
+    THEN
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] HEX
+    [IF]
+    CODE HEX
+    MOV #$10,&$1DBE
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+
+    [UNDEFINED] DECIMAL
+    [IF]
+    CODE DECIMAL
+    MOV #$0A,&$1DBE
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] (   ; )
+    [IF]
+    : (
+    ')' WORD DROP
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] .(  ; "
+    [IF]
+    CODE .(         ; "
+    MOV #0,&$1DC0
+    COLON
+    ')' WORD
+    COUNT TYPE
+    HI2LO
+    MOV #$20,&$1DC0
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] EXECUTE
+    [IF]
+    CODE EXECUTE
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R1+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] EVALUATE
+    [IF]
+    CODE EVALUATE
+    MOV #$1DC2,R9
+    MOV @R9+,R12
+    MOV @R9+,R11
+    MOV @R9+,R10
+    PUSHM #4,R13
+    LO2HI
+    [ ' \ 8 + , ]
+    HI2LO
+    MOV @R1+,&$1DC6
+    MOV @R1+,&$1DC4
+    MOV @R1+,&$1DC2
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] RECURSE
+    [IF]
+    CODE RECURSE
+    MOV &$1DC8,R9
+    MOV &$1DB8,0(R9)
+    ADD #2,&$1DC8
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] SOURCE
+    [IF]
+    CODE SOURCE
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV &$1DC2,R14
+    MOV &$1DC4,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] VARIABLE
+    [IF]
+    : VARIABLE
+    CREATE
+    HI2LO
+    MOV #$1287,-4(R10)
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CONSTANT
+    [IF]
+    : CONSTANT
+    CREATE
+    HI2LO
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] STATE
+    [IF]
+    $1DBC CONSTANT STATE
+    [THEN]
+
+    [UNDEFINED] BASE
+    [IF]
+    $1DBE  CONSTANT BASE
+    [THEN]
+
+    [UNDEFINED] >IN
+    [IF]
+    $1DC6 CONSTANT >IN
+    [THEN]
+
+    [UNDEFINED] PAD
+    [IF]
+    $1CE4 CONSTANT PAD
+    [THEN]
+
+    [UNDEFINED] BL
+    [IF]
+    $20 CONSTANT BL
+    [THEN]
+
+    [UNDEFINED] SPACE
+    [IF]
+    : SPACE
+    $20 EMIT ;
+    [THEN]
+
+    [UNDEFINED] SPACES
+    [IF]
+    : SPACES
+    BEGIN
+        ?DUP
+    WHILE
+        $20 EMIT
+        1-
+    REPEAT
+    ;
+    [THEN]
+
+    [UNDEFINED] DEFER
+    [IF]
+    : DEFER
+    CREATE
+    HI2LO
+    MOV #$4030,-4(R10)
+    MOV #$40B4,-2(R10)
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CR
+    [IF]
+
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] TO
+    [IF]
+    CODE TO
+    BIS #$200,R2
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] VALUE
+    [IF]
+    : VALUE
+    CREATE ,
+    DOES>
+    HI2LO
+    MOV @R1+,R13
+    BIT #$200,R2
+    0= IF
+        MOV @R14,R14
+        MOV @R13+,R0
+    THEN
+    BIC #$200,R2
+    MOV #!,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CASE
+    [IF]
+
+    : CASE 0
+    ; 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
+    [THEN]
+
+    RST_SET
+
+    ECHO
+; CORE_ANS.4th for MSP_EXP430FR5994 is loaded
+
diff --git a/MSP430-FORTH/SD_430FR5994/DOUBLE.4TH b/MSP430-FORTH/SD_430FR5994/DOUBLE.4TH
new file mode 100644 (file)
index 0000000..e292dbe
--- /dev/null
@@ -0,0 +1,1566 @@
+
+    CODE ABORT_DOUBLE
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV &$180E,R14
+    BIT #$80,R14
+    0<> IF MOV #0,R14 THEN
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    ABORT" build FastForth with DOUBLE_INPUT addon !"
+    RST_RET
+    ;
+
+    ABORT_DOUBLE
+
+; -----------------------------------------------------
+; DOUBLE.4th for MSP_EXP430FR5994
+; -----------------------------------------------------
+
+    MARKER {DOUBLE}
+
+    [UNDEFINED] >R 
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R> 
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 0< 
+    [IF]
+    CODE 0<
+    ADD R14,R14
+    SUBC R14,R14
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DROP 
+    [IF]
+    CODE DROP
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DUP 
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] NIP 
+    [IF]
+    CODE NIP
+    ADD #2,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] UM/MOD 
+    [IF]
+    CODE UM/MOD
+        PUSH #DROP
+        MOV #$403E,R0
+    ENDCODE
+    [THEN]
+
+    $180E @ 0<   ; test the switch: $8000 / SYMETRIC DIVISION
+    [IF]                ; $8000 DIVISION
+    [UNDEFINED] FM/MOD 
+    [IF]
+    CODE FM/MOD
+    MOV R14,R12
+    MOV @R15,R11
+    CMP #0,R14
+    S< IF
+        XOR #-1,R14
+        ADD #1,R14
+    THEN
+    CMP #0,0(R15)
+    S< IF
+        XOR #-1,2(R15)
+        XOR #-1,0(R15)
+        ADD #1,2(R15)
+        ADDC #0,0(R15)
+    THEN
+    PUSHM #3,R13
+    LO2HI
+        UM/MOD
+    HI2LO
+    POPM #3,R13
+    CMP #0,R11
+    S< IF
+        XOR #-1,0(R15)
+        ADD #1,0(R15)
+    THEN
+    XOR R12,R11
+    CMP #0,R11
+    S< IF
+        XOR #-1,R14
+        ADD #1,R14
+    THEN
+    
+    CMP #0,0(R15)
+    0<> IF
+        CMP #1,R14
+        S< IF
+        ADD R12,0(R15)
+        SUB #1,R14
+        THEN
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [ELSE]              ; SYMETRIC DIVISION
+    [UNDEFINED] SM/REM 
+    [IF]
+    CODE SM/REM
+    MOV R14,R12
+    MOV @R15,R11
+    CMP #0,R14
+    S< IF
+        XOR #-1,R14
+        ADD #1,R14
+    THEN
+    CMP #0,0(R15)
+    S< IF
+        XOR #-1,2(R15)
+        XOR #-1,0(R15)
+        ADD #1,2(R15)
+        ADDC #0,0(R15)
+    THEN
+    PUSHM #3,R13
+    LO2HI
+        UM/MOD
+    HI2LO
+    POPM #3,R13
+    CMP #0,R11
+    S< IF
+        XOR #-1,0(R15)
+        ADD #1,0(R15)
+    THEN
+    XOR R12,R11
+    CMP #0,R11
+    S< IF
+        XOR #-1,R14
+        ADD #1,R14
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+    [THEN]
+
+    [UNDEFINED] / 
+    [IF]
+    : /
+    >R DUP 0< R>
+    [ $180E @ 0< ] [IF]
+        FM/MOD
+    [ELSE] 
+        SM/REM
+    [THEN]
+    NIP
+    ;
+    [THEN]
+
+    [UNDEFINED] @ 
+    [IF]
+    CODE @
+    MOV @R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] ! 
+    [IF]
+    CODE !
+    MOV @R15+,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] C@ 
+    [IF]
+    CODE C@
+    MOV.B @R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SWAP 
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,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] 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] - 
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,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] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] TO 
+    [IF]
+    CODE TO
+    BIS #$200,R2
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DOES> 
+    [IF]
+    CODE DOES> 
+    MOV &$1DB8,R10
+    MOV #$1285,0(R10)
+    MOV R13,2(R10)
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [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] 2@ 
+    [IF]
+    CODE 2@
+    SUB #2,R15
+    MOV 2(R14),0(R15)
+    MOV @R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2! 
+    [IF]
+    CODE 2!
+    MOV @R15+,0(R14)
+    MOV @R15+,2(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2DUP 
+    [IF]
+    CODE 2DUP
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV 4(R15),0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2DROP 
+    [IF]
+    CODE 2DROP
+    ADD #2,R15
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2SWAP 
+    [IF]
+    CODE 2SWAP
+    MOV @R15,R10
+    MOV 4(R15),0(R15)
+    MOV R10,4(R15)
+    MOV R14,R10
+    MOV 2(R15),R14
+    MOV R10,2(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2OVER 
+    [IF]
+    CODE 2OVER
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV 8(R15),0(R15)
+    MOV 6(R15),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2>R 
+    [IF]
+    CODE 2>R
+    PUSH @R15+
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2R@ 
+    [IF]
+    CODE 2R@
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV @R1,R14
+    MOV 2(R1),0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2R> 
+    [IF]
+    CODE 2R>
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV @R1+,R14
+    MOV @R1+,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+
+    [UNDEFINED] D. 
+    [IF]
+    CODE D.
+    MOV R14,R12
+    MOV #U.+10,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2ROT 
+    [IF]
+    CODE 2ROT
+    MOV 8(R15),R9
+    MOV 6(R15),R8
+    MOV 4(R15),8(R15)
+    MOV 2(R15),6(R15)
+    MOV @R15,4(R15)
+    MOV R14,2(R15)
+    MOV R9,0(R15)
+    MOV R8,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D>S 
+    [IF]
+    CODE D>S
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D0= 
+    [IF]
+    CODE D0=
+    CMP #0,R14
+    MOV #0,R14
+    0= IF
+        CMP #0,0(R15)
+        0= IF
+            MOV #-1,R14
+        THEN
+    THEN
+    ADD #2,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D0< 
+    [IF]
+    CODE D0<
+    CMP #0,R14
+    MOV #0,R14
+    S< IF
+        MOV #-1,R14
+    THEN
+    ADD #2,R15
+    AND #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D= 
+    [IF]
+    CODE D=
+    CMP R14,2(R15)
+    MOV #0,R14
+    0= IF
+        CMP @R15,4(R15)
+        0= IF
+        MOV #-1,R14
+        THEN
+    THEN
+    ADD #6,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D< 
+    [IF]
+    CODE D<
+    CMP R14,2(R15)
+    MOV #0,R14
+    S< IF
+        MOV #-1,R14
+    THEN
+    0= IF
+        CMP @R15,4(R15)
+        U< IF
+            MOV #-1,R14
+        THEN
+    THEN
+    ADD #6,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DU< 
+    [IF]
+    CODE DU<
+    CMP R14,2(R15)
+    MOV #0,R14
+    U< IF
+        MOV #-1,R14
+    THEN
+    0= IF
+        CMP @R15,4(R15)
+        U< IF
+            MOV #-1,R14
+        THEN
+    THEN
+    ADD #6,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D+ 
+    [IF]
+    CODE D+
+BW1 ADD @R15+,2(R15)
+    ADDC @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE M+
+    SUB #2,R15
+    CMP #0,R14
+    MOV R14,0(R15)
+    MOV #-1,R14
+    0>= IF
+        MOV #0,R14
+    THEN
+    GOTO BW1
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D- 
+    [IF]
+    CODE D-
+    SUB @R15+,2(R15)
+    SUBC R14,0(R15)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DNEGATE 
+    [IF]
+    CODE DNEGATE
+    XOR #-1,0(R15)
+    XOR #-1,R14
+    ADD #1,0(R15)
+    ADDC #0,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DABS 
+    [IF]
+    CODE DABS
+    CMP #0,R14
+    0>= IF
+        MOV @R13+,R0
+    THEN
+    MOV #DNEGATE,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D2/ 
+    [IF]
+    CODE D2/
+    RRA R14
+    RRC 0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] D2* 
+    [IF]
+    CODE D2*
+    ADD @R15,0(R15)
+    ADDC R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DMAX 
+    [IF]
+    : DMAX
+    2OVER 2OVER
+    D< IF
+        2>R 2DROP 2R>
+    ELSE
+        2DROP
+    THEN
+    ;
+    [THEN]
+
+    [UNDEFINED] DMIN 
+    [IF]
+    : DMIN
+    2OVER 2OVER
+    D< IF
+        2DROP
+    ELSE 
+        2>R 2DROP 2R>
+    THEN
+    ;
+    [THEN]
+
+    RST_SET
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    $180E 1 TSTBIT
+
+    RST_RET
+
+    [IF]   ; MSP430FRxxxx with hardware_MPY
+
+        [UNDEFINED] M*/ 
+        [IF]
+    CODE M*/
+    MOV 4(R15),&$4D4
+    MOV 2(R15),&$4D6
+    MOV @R15+,&$4C8
+    MOV R14,R11
+    MOV R0,R0
+    MOV &$4E4,R12
+    MOV &$4E6,R14
+    MOV &$4E8,R10
+    MOV #0,R6
+    CMP #0,R10
+    S< IF
+        XOR #-1,R12
+        XOR #-1,R14
+        XOR #-1,R10
+        ADD #1,R12
+        ADDC #0,R14
+        ADDC #0,R10
+        MOV #-1,R6
+    THEN
+
+    [ELSE]  ; no hardware multiplier
+        [UNDEFINED] M*/ 
+        [IF]
+    CODE M*/
+    MOV #0,R6
+    CMP #0,2(R15)
+    S< IF
+        XOR #-1,4(R15)
+        XOR #-1,2(R15)
+        ADD #1,4(R15)
+        ADDC #0,2(R15)
+        MOV #-1,R6
+    THEN
+    CMP #0,0(R15)
+    S< IF
+        XOR #-1,0(R15)
+        ADD #1,0(R15)
+        XOR #-1,R6
+    THEN
+                MOV 4(R15),R8
+                MOV 2(R15),R11
+                MOV @R15+,R12
+                MOV #0,R5
+                MOV #0,2(R15)
+                MOV #0,0(R15)
+                MOV #0,R10
+                MOV #1,R9
+    BEGIN       BIT R9,R12
+        0<> IF  ADD R8,2(R15)
+                ADDC R11,0(R15)
+                ADDC R5,R10
+        THEN    ADD R8,R8
+                ADDC R11,R11
+                ADDC R5,R5
+                ADD R9,R9
+    U>= UNTIL
+    MOV R14,R11
+    MOV @R15,R14
+    MOV 2(R15),R12
+        [THEN]
+
+        [THEN]  ; endcase of software/hardware_MPY
+
+    MOV #32,R5
+    CMP #0,R10
+    0= IF
+        MOV R14,R10
+        CALL #$4050
+    ELSE
+        CALL #$4058
+    THEN
+    MOV @R15+,0(R15)
+    CMP #0,R6
+    0<> IF
+        XOR #-1,0(R15)
+        XOR #-1,R14
+        ADD #1,0(R15)
+        ADDC #0,R14
+        CMP #0,&$180E
+        S< IF
+            CMP #0,R10
+            0<> IF
+                SUB #1,0(R15)
+                SUBC #0,R14 
+            THEN
+        THEN
+    THEN                
+    MOV #$40B6,R5 
+    MOV #$40C4,R6      
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2VARIABLE 
+    [IF]
+    : 2VARIABLE
+    CREATE 
+    HI2LO
+    ADD #4,&$1DC8
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2CONSTANT 
+    [IF]
+    : 2CONSTANT
+    CREATE
+    , ,
+    DOES>
+    2@
+    ;
+    [THEN]
+
+    [UNDEFINED] 2VALUE 
+    [IF]
+    : 2VALUE
+    CREATE , ,
+    DOES>
+    HI2LO
+    MOV @R1+,R13
+    BIT #$200,R2
+    0= IF
+        MOV #2@,R0
+    THEN 
+    BIC #$200,R2
+    MOV #2!,R0
+    ENDCODE
+    [THEN]
+
+
+    [UNDEFINED] 2LITERAL 
+    [IF]
+        CODE 2LITERAL
+        BIS #$200,R2
+        MOV #LITERAL,R0
+        ENDCODE IMMEDIATE
+    [THEN]
+            
+
+    [UNDEFINED] D.R 
+    [IF]
+    : D.R
+    >R SWAP OVER DABS <# #S ROT SIGN #> 
+    R> OVER - SPACES TYPE 
+    ;
+    [THEN]
+
+    RST_SET
+
+; Complement to pass DOUBLE TESTS
+
+    [UNDEFINED] VARIABLE 
+    [IF]
+    : VARIABLE 
+    CREATE
+    HI2LO
+    MOV #$1287,-4(R10)
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CONSTANT 
+    [IF]
+    : CONSTANT 
+    CREATE
+    HI2LO
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CELLS 
+    [IF]
+    CODE CELLS
+    ADD R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DEPTH 
+    [IF]
+    CODE DEPTH
+    MOV R14,-2(R15)
+    MOV #$1C80,R14
+    SUB R15,R14
+    RRA R14
+    SUB #2,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DO 
+    [IF]
+
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I 
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] + 
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 0= 
+    [IF]
+    CODE 0=
+    SUB #1,R14
+    SUBC R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SOURCE 
+    [IF]
+    CODE SOURCE
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV &$1DC2,R14
+    MOV &$1DC4,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] >IN 
+    [IF]
+    $1DC6 CONSTANT >IN
+    [THEN]
+
+    [UNDEFINED] 1+ 
+    [IF]
+    CODE 1+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CHAR 
+    [IF]
+    : CHAR
+        $20 WORD 1+ C@
+    ;
+    [THEN]
+
+    [UNDEFINED] [CHAR] 
+    [IF]
+    : [CHAR]
+        CHAR POSTPONE LITERAL
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] 2/ 
+    [IF]
+    CODE 2/
+    RRA R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] INVERT 
+    [IF]
+    CODE INVERT
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] RSHIFT 
+    [IF]
+    CODE RSHIFT
+    MOV @R15+,R10
+    AND #$1F,R14
+    0<> IF
+        BEGIN
+            BIC #1,R2
+            RRC R10
+            SUB #1,R14
+        0= UNTIL
+    THEN
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] S>D 
+    [IF]
+    : S>D
+        DUP 0<
+    ;
+    [THEN]
+
+    [UNDEFINED] 1- 
+    [IF]
+    CODE 1-
+    SUB #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] NEGATE 
+    [IF]
+    CODE NEGATE
+    XOR #-1,R14
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] HERE 
+    [IF]
+    CODE HERE
+    MOV #$4032,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CHARS 
+    [IF]
+    CODE CHARS
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] MOVE 
+    [IF]
+    CODE MOVE
+    MOV R14,R10
+    MOV @R15+,R8
+    MOV @R15+,R9
+    MOV @R15+,R14
+    CMP #0,R10
+    0<> IF
+        CMP R9,R8
+        0<> IF
+            U< IF
+                BEGIN
+                    MOV.B @R9+,0(R8)
+                    ADD #1,R8
+                    SUB #1,R10
+                0= UNTIL
+                MOV @R13+,R0
+            THEN
+            ADD R10,R8
+            ADD R10,R9
+            BEGIN
+                SUB #1,R9
+                SUB #1,R8
+                MOV.B @R9,0(R8)
+                SUB #1,R10
+            0= UNTIL
+        THEN
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DECIMAL 
+    [IF]
+    CODE DECIMAL
+    MOV #$0A,&$1DBE
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] BASE 
+    [IF]
+    $1DBE CONSTANT BASE
+    [THEN]
+
+    [UNDEFINED] ( ; )
+    [IF]
+    : ( 
+    ')' WORD DROP
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] .( ; "
+    [IF]
+    CODE .(        ; "
+    MOV #0,&$1DC0
+    COLON
+    ')' WORD
+    COUNT TYPE
+    $20 $1DC0 !
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] CR 
+    [IF]
+    DEFER CR
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+
+ 0 CONSTANT FALSE
+-1 CONSTANT TRUE
+
+VARIABLE VERBOSE
+    FALSE VERBOSE !
+
+VARIABLE ACTUAL-DEPTH
+CREATE ACTUAL-RESULTS 20 CELLS ALLOT
+
+: T{
+    ;
+
+: ->
+    DEPTH DUP ACTUAL-DEPTH !
+    ?DUP IF
+        0 DO ACTUAL-RESULTS I CELLS + ! LOOP
+    THEN ;
+
+: }T
+
+    DEPTH ACTUAL-DEPTH @ = IF
+        DEPTH ?DUP IF
+        0 DO
+            ACTUAL-RESULTS I CELLS + @
+            = 0= IF TRUE ABORT" INCORRECT RESULT" THEN
+        LOOP
+        THEN
+    ELSE
+        TRUE ABORT" WRONG NUMBER OF RESULTS"
+    THEN ;
+
+: TESTING
+    SOURCE VERBOSE @
+    IF DUP >R TYPE CR R> >IN !
+    ELSE >IN ! DROP [CHAR] * EMIT
+    THEN ;
+
+
+DECIMAL
+
+0 INVERT        CONSTANT 1SD
+1SD 1 RSHIFT    CONSTANT MAX-INTD
+MAX-INTD INVERT CONSTANT MIN-INTD
+MAX-INTD 2/     CONSTANT HI-INT
+MIN-INTD 2/     CONSTANT LO-INT
+
+
+ECHO
+
+TESTING interpreter and compiler reading double numbers, with/without prefixes
+
+T{ 1. -> 1 0 }T
+T{ -2. -> -2 -1 }T
+T{ : RDL1 3. ; RDL1 -> 3 0 }T
+T{ : RDL2 -4. ; RDL2 -> -4 -1 }T
+
+VARIABLE OLD-DBASE
+DECIMAL BASE @ OLD-DBASE !
+T{ #12346789. -> 12346789. }T
+T{ #-12346789. -> -12346789. }T
+T{ $12aBcDeF. -> 313249263. }T
+T{ $-12AbCdEf. -> -313249263. }T
+T{ %10010110. -> 150. }T
+T{ %-10010110. -> -150. }T
+T{ BASE @ OLD-DBASE @ = -> TRUE }T
+
+16 OLD-DBASE ! 16 BASE !
+T{ #12346789. -> BC65A5. }T
+T{ #-12346789. -> -BC65A5. }T
+T{ $12aBcDeF. -> 12AbCdeF. }T
+T{ $-12AbCdEf. -> -12ABCDef. }T
+T{ %10010110. -> 96. }T
+T{ %-10010110. -> -96. }T
+T{ BASE @ OLD-DBASE @ = -> TRUE }T
+
+DECIMAL
+T{ : dnmp  #8327. $-2cbe. %011010111. ; dnmp -> 8327. -11454. 215. }T
+
+TESTING 2CONSTANT
+
+T{ 1 2 2CONSTANT 2C1 -> }T
+T{ 2C1 -> 1 2 }T
+T{ : CD1 2C1 ; -> }T
+T{ CD1 -> 1 2 }T
+T{ : CD2 2CONSTANT ; -> }T
+T{ -1 -2 CD2 2C2 -> }T
+T{ 2C2 -> -1 -2 }T
+T{ 4 5 2CONSTANT 2C3 IMMEDIATE 2C3 -> 4 5 }T
+T{ : CD6 2C3 2LITERAL ; CD6 -> 4 5 }T
+
+
+1SD MAX-INTD 2CONSTANT MAX-2INT
+0   MIN-INTD 2CONSTANT MIN-2INT
+MAX-2INT 2/  2CONSTANT HI-2INT
+MIN-2INT 2/  2CONSTANT LO-2INT
+
+TESTING DNEGATE
+
+T{ 0. DNEGATE -> 0. }T
+T{ 1. DNEGATE -> -1. }T
+T{ -1. DNEGATE -> 1. }T
+T{ MAX-2INT DNEGATE -> MIN-2INT SWAP 1+ SWAP }T
+T{ MIN-2INT SWAP 1+ SWAP DNEGATE -> MAX-2INT }T
+
+TESTING D+ with small integers
+
+T{  0.  5. D+ ->  5. }T
+T{ -5.  0. D+ -> -5. }T
+T{  1.  2. D+ ->  3. }T
+T{  1. -2. D+ -> -1. }T
+T{ -1.  2. D+ ->  1. }T
+T{ -1. -2. D+ -> -3. }T
+T{ -1.  1. D+ ->  0. }T
+
+TESTING D+ with mid range integers
+
+T{  0  0  0  5 D+ ->  0  5 }T
+T{ -1  5  0  0 D+ -> -1  5 }T
+T{  0  0  0 -5 D+ ->  0 -5 }T
+T{  0 -5 -1  0 D+ -> -1 -5 }T
+T{  0  1  0  2 D+ ->  0  3 }T
+T{ -1  1  0 -2 D+ -> -1 -1 }T
+T{  0 -1  0  2 D+ ->  0  1 }T
+T{  0 -1 -1 -2 D+ -> -1 -3 }T
+T{ -1 -1  0  1 D+ -> -1  0 }T
+T{ MIN-INTD 0 2DUP D+ -> 0 1 }T
+T{ MIN-INTD S>D MIN-INTD 0 D+ -> 0 0 }T
+
+TESTING D+ with large double integers
+
+T{ HI-2INT 1. D+ -> 0 HI-INT 1+ }T
+T{ HI-2INT 2DUP D+ -> 1SD 1- MAX-INTD }T
+T{ MAX-2INT MIN-2INT D+ -> -1. }T
+T{ MAX-2INT LO-2INT D+ -> HI-2INT }T
+T{ HI-2INT MIN-2INT D+ 1. D+ -> LO-2INT }T
+T{ LO-2INT 2DUP D+ -> MIN-2INT }T
+
+TESTING D- with small integers
+
+T{  0.  5. D- -> -5. }T
+T{  5.  0. D- ->  5. }T
+T{  0. -5. D- ->  5. }T
+T{  1.  2. D- -> -1. }T
+T{  1. -2. D- ->  3. }T
+T{ -1.  2. D- -> -3. }T
+T{ -1. -2. D- ->  1. }T
+T{ -1. -1. D- ->  0. }T
+
+TESTING D- with mid-range integers
+
+T{  0  0  0  5 D- ->  0 -5 }T
+T{ -1  5  0  0 D- -> -1  5 }T
+T{  0  0 -1 -5 D- ->  1  4 }T
+T{  0 -5  0  0 D- ->  0 -5 }T
+T{ -1  1  0  2 D- -> -1 -1 }T
+T{  0  1 -1 -2 D- ->  1  2 }T
+T{  0 -1  0  2 D- ->  0 -3 }T
+T{  0 -1  0 -2 D- ->  0  1 }T
+T{  0  0  0  1 D- ->  0 -1 }T
+T{ MIN-INTD 0 2DUP D- -> 0. }T
+T{ MIN-INTD S>D MAX-INTD 0 D- -> 1 1SD }T
+
+TESTING D- with large integers
+
+T{ MAX-2INT MAX-2INT D- -> 0. }T
+T{ MIN-2INT MIN-2INT D- -> 0. }T
+T{ MAX-2INT HI-2INT  D- -> LO-2INT DNEGATE }T
+T{ HI-2INT  LO-2INT  D- -> MAX-2INT }T
+T{ LO-2INT  HI-2INT  D- -> MIN-2INT 1. D+ }T
+T{ MIN-2INT MIN-2INT D- -> 0. }T
+T{ MIN-2INT LO-2INT  D- -> LO-2INT }T
+
+TESTING D0< D0=
+
+T{ 0. D0< -> FALSE }T
+T{ 1. D0< -> FALSE }T
+T{ MIN-INTD 0 D0< -> FALSE }T
+T{ 0 MAX-INTD D0< -> FALSE }T
+T{ MAX-2INT  D0< -> FALSE }T
+T{ -1. D0< -> TRUE }T
+T{ MIN-2INT D0< -> TRUE }T
+
+T{ 1. D0= -> FALSE }T
+T{ MIN-INTD 0 D0= -> FALSE }T
+T{ MAX-2INT  D0= -> FALSE }T
+T{ -1 MAX-INTD D0= -> FALSE }T
+T{ 0. D0= -> TRUE }T
+T{ -1. D0= -> FALSE }T
+T{ 0 MIN-INTD D0= -> FALSE }T
+
+TESTING D2* D2/
+
+T{ 0. D2* -> 0. D2* }T
+T{ MIN-INTD 0 D2* -> 0 1 }T
+T{ HI-2INT D2* -> MAX-2INT 1. D- }T
+T{ LO-2INT D2* -> MIN-2INT }T
+
+T{ 0. D2/ -> 0. }T
+T{ 1. D2/ -> 0. }T
+T{ 0 1 D2/ -> MIN-INTD 0 }T
+T{ MAX-2INT D2/ -> HI-2INT }T
+T{ -1. D2/ -> -1. }T
+T{ MIN-2INT D2/ -> LO-2INT }T
+
+TESTING D< D=
+
+T{  0.  1. D< -> TRUE  }T
+T{  0.  0. D< -> FALSE }T
+T{  1.  0. D< -> FALSE }T
+T{ -1.  1. D< -> TRUE  }T
+T{ -1.  0. D< -> TRUE  }T
+T{ -2. -1. D< -> TRUE  }T
+T{ -1. -2. D< -> FALSE }T
+T{ 0 1   1. D< -> FALSE }T
+T{ 1.  0 1  D< -> TRUE  }T
+T{ 0 -1 1 -2 D< -> FALSE }T
+T{ 1 -2 0 -1 D< -> TRUE  }T
+T{ -1. MAX-2INT D< -> TRUE }T
+T{ MIN-2INT MAX-2INT D< -> TRUE }T
+T{ MAX-2INT -1. D< -> FALSE }T
+T{ MAX-2INT MIN-2INT D< -> FALSE }T
+T{ MAX-2INT 2DUP -1. D+ D< -> FALSE }T
+T{ MIN-2INT 2DUP  1. D+ D< -> TRUE  }T
+T{ MAX-INTD S>D 2DUP 1. D+ D< -> TRUE }T
+
+T{ -1. -1. D= -> TRUE  }T
+T{ -1.  0. D= -> FALSE }T
+T{ -1.  1. D= -> FALSE }T
+T{  0. -1. D= -> FALSE }T
+T{  0.  0. D= -> TRUE  }T
+T{  0.  1. D= -> FALSE }T
+T{  1. -1. D= -> FALSE }T
+T{  1.  0. D= -> FALSE }T
+T{  1.  1. D= -> TRUE  }T
+
+T{ 0 -1 0 -1 D= -> TRUE  }T
+T{ 0 -1 0  0 D= -> FALSE }T
+T{ 0 -1 0  1 D= -> FALSE }T
+T{ 0  0 0 -1 D= -> FALSE }T
+T{ 0  0 0  0 D= -> TRUE  }T
+T{ 0  0 0  1 D= -> FALSE }T
+T{ 0  1 0 -1 D= -> FALSE }T
+T{ 0  1 0  0 D= -> FALSE }T
+T{ 0  1 0  1 D= -> TRUE  }T
+
+T{ MAX-2INT MIN-2INT D= -> FALSE }T
+T{ MAX-2INT 0. D= -> FALSE }T
+T{ MAX-2INT MAX-2INT D= -> TRUE }T
+T{ MAX-2INT HI-2INT  D= -> FALSE }T
+T{ MAX-2INT MIN-2INT D= -> FALSE }T
+T{ MIN-2INT MIN-2INT D= -> TRUE }T
+T{ MIN-2INT LO-2INT  D=  -> FALSE }T
+T{ MIN-2INT MAX-2INT D= -> FALSE }T
+
+TESTING 2LITERAL 2VARIABLE
+
+T{ : CD3 [ MAX-2INT ] 2LITERAL ; -> }T
+T{ CD3 -> MAX-2INT }T
+T{ 2VARIABLE 2V1 -> }T
+T{ 0. 2V1 2! -> }T
+T{ 2V1 2@ -> 0. }T
+T{ -1 -2 2V1 2! -> }T
+T{ 2V1 2@ -> -1 -2 }T
+T{ : CD4 2VARIABLE ; -> }T
+T{ CD4 2V2 -> }T
+T{ : CD5 2V2 2! ; -> }T
+T{ -2 -1 CD5 -> }T
+T{ 2V2 2@ -> -2 -1 }T
+T{ 2VARIABLE 2V3 IMMEDIATE 5 6 2V3 2! -> }T
+T{ 2V3 2@ -> 5 6 }T
+T{ : CD7 2V3 [ 2@ ] 2LITERAL ; CD7 -> 5 6 }T
+T{ : CD8 [ 6 7 ] 2V3 [ 2! ] ; 2V3 2@ -> 6 7 }T
+
+TESTING DMAX DMIN
+
+T{  1.  2. DMAX -> 2. }T
+T{  1.  0. DMAX -> 1. }T
+T{  1. -1. DMAX -> 1. }T
+T{  1.  1. DMAX -> 1. }T
+T{  0.  1. DMAX -> 1. }T
+T{  0. -1. DMAX -> 0. }T
+T{ -1.  1. DMAX -> 1. }T
+T{ -1. -2. DMAX -> -1. }T
+
+T{ MAX-2INT HI-2INT  DMAX -> MAX-2INT }T
+T{ MAX-2INT MIN-2INT DMAX -> MAX-2INT }T
+T{ MIN-2INT MAX-2INT DMAX -> MAX-2INT }T
+T{ MIN-2INT LO-2INT  DMAX -> LO-2INT  }T
+
+T{ MAX-2INT  1. DMAX -> MAX-2INT }T
+T{ MAX-2INT -1. DMAX -> MAX-2INT }T
+T{ MIN-2INT  1. DMAX ->  1. }T
+T{ MIN-2INT -1. DMAX -> -1. }T
+
+
+T{  1.  2. DMIN ->  1. }T
+T{  1.  0. DMIN ->  0. }T
+T{  1. -1. DMIN -> -1. }T
+T{  1.  1. DMIN ->  1. }T
+T{  0.  1. DMIN ->  0. }T
+T{  0. -1. DMIN -> -1. }T
+T{ -1.  1. DMIN -> -1. }T
+T{ -1. -2. DMIN -> -2. }T
+
+T{ MAX-2INT HI-2INT  DMIN -> HI-2INT  }T
+T{ MAX-2INT MIN-2INT DMIN -> MIN-2INT }T
+T{ MIN-2INT MAX-2INT DMIN -> MIN-2INT }T
+T{ MIN-2INT LO-2INT  DMIN -> MIN-2INT }T
+
+T{ MAX-2INT  1. DMIN ->  1. }T
+T{ MAX-2INT -1. DMIN -> -1. }T
+T{ MIN-2INT  1. DMIN -> MIN-2INT }T
+T{ MIN-2INT -1. DMIN -> MIN-2INT }T
+
+TESTING D>S DABS
+
+T{  1234  0 D>S ->  1234 }T
+T{ -1234 -1 D>S -> -1234 }T
+T{ MAX-INTD  0 D>S -> MAX-INTD }T
+T{ MIN-INTD -1 D>S -> MIN-INTD }T
+
+T{  1. DABS -> 1. }T
+T{ -1. DABS -> 1. }T
+T{ MAX-2INT DABS -> MAX-2INT }T
+T{ MIN-2INT 1. D+ DABS -> MAX-2INT }T
+
+TESTING M+ M*/
+
+T{ HI-2INT   1 M+ -> HI-2INT   1. D+ }T
+T{ MAX-2INT -1 M+ -> MAX-2INT -1. D+ }T
+T{ MIN-2INT  1 M+ -> MIN-2INT  1. D+ }T
+T{ LO-2INT  -1 M+ -> LO-2INT  -1. D+ }T
+
+
+: ?$8000 [ -3 2 / -2 = ] LITERAL IF 1. D- THEN ;
+
+T{  5.  7 11 M*/ ->  3. }T
+T{  5. -7 11 M*/ -> -3. ?$8000 }T
+T{ -5.  7 11 M*/ -> -3. ?$8000 }T
+T{ -5. -7 11 M*/ ->  3. }T
+T{ MAX-2INT  8 16 M*/ -> HI-2INT }T
+T{ MAX-2INT -8 16 M*/ -> HI-2INT DNEGATE ?$8000 }T
+T{ MIN-2INT  8 16 M*/ -> LO-2INT }T
+T{ MIN-2INT -8 16 M*/ -> LO-2INT DNEGATE }T
+T{ MAX-2INT MAX-INTD MAX-INTD M*/ -> MAX-2INT }T
+T{ MAX-2INT MAX-INTD 2/ MAX-INTD M*/ -> MAX-INTD 1- HI-2INT NIP }T
+T{ MIN-2INT LO-2INT NIP 1+ DUP 1- NEGATE M*/ -> 0 MAX-INTD 1- }T
+T{ MIN-2INT LO-2INT NIP 1- MAX-INTD M*/ -> MIN-INTD 3 + HI-2INT NIP 2 + }T
+T{ MAX-2INT LO-2INT NIP DUP NEGATE M*/ -> MAX-2INT DNEGATE }T
+T{ MIN-2INT MAX-INTD DUP M*/ -> MIN-2INT }T
+
+TESTING D. D.R
+
+MAX-2INT 71 73 M*/ 2CONSTANT DBL1
+MIN-2INT 73 79 M*/ 2CONSTANT DBL2
+
+: D>ASCII  ( D -- CADDR U )
+   DUP >R <# DABS #S R> SIGN #>    ( -- CADDR1 U )
+   HERE SWAP 2DUP 2>R CHARS DUP ALLOT MOVE 2R>
+;
+
+DBL1 D>ASCII 2CONSTANT "DBL1"
+DBL2 D>ASCII 2CONSTANT "DBL2"
+
+: DOUBLEOUTPUT
+   CR ." You should see lines duplicated:" CR
+   5 SPACES "DBL1" TYPE CR
+   5 SPACES DBL1 D. CR
+   8 SPACES "DBL1" DUP >R TYPE CR
+   5 SPACES DBL1 R> 3 + D.R CR
+   5 SPACES "DBL2" TYPE CR
+   5 SPACES DBL2 D. CR
+   10 SPACES "DBL2" DUP >R TYPE CR
+   5 SPACES DBL2 R> 5 + D.R CR
+;
+
+T{ DOUBLEOUTPUT -> }T
+
+TESTING 2ROT DU< (Double Number extension words)
+
+T{ 1. 2. 3. 2ROT -> 2. 3. 1. }T
+T{ MAX-2INT MIN-2INT 1. 2ROT -> MIN-2INT 1. MAX-2INT }T
+
+T{  1.  1. DU< -> FALSE }T
+T{  1. -1. DU< -> TRUE  }T
+T{ -1.  1. DU< -> FALSE }T
+T{ -1. -2. DU< -> FALSE }T
+T{ 0 1   1. DU< -> FALSE }T
+T{ 1.  0 1  DU< -> TRUE  }T
+T{ 0 -1 1 -2 DU< -> FALSE }T
+T{ 1 -2 0 -1 DU< -> TRUE  }T
+
+T{ MAX-2INT HI-2INT  DU< -> FALSE }T
+T{ HI-2INT  MAX-2INT DU< -> TRUE  }T
+T{ MAX-2INT MIN-2INT DU< -> TRUE }T
+T{ MIN-2INT MAX-2INT DU< -> FALSE }T
+T{ MIN-2INT LO-2INT  DU< -> TRUE }T
+
+TESTING 2VALUE
+
+T{ 1111 2222 2VALUE 2VAL -> }T
+T{ 2VAL -> 1111 2222 }T
+T{ 3333 4444 TO 2VAL -> }T
+T{ 2VAL -> 3333 4444 }T
+T{ : TO-2VAL TO 2VAL ; 5555 6666 TO-2VAL -> }T
+T{ 2VAL -> 5555 6666 }T
+
+
+CR .( End of Double-Number word tests) CR
diff --git a/MSP430-FORTH/SD_430FR5994/FF_SPECS.4TH b/MSP430-FORTH/SD_430FR5994/FF_SPECS.4TH
new file mode 100644 (file)
index 0000000..f08f9a4
--- /dev/null
@@ -0,0 +1,674 @@
+
+; ---------------------------------
+; FF_SPECS.4th for MSP_EXP430FR5994
+; ---------------------------------
+
+    CODE ABORT_FF_SPECS
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    RST_RET
+    ;
+
+    ABORT_FF_SPECS
+
+    [UNDEFINED] DUP
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    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] DROP
+    [IF]
+    CODE DROP
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,R14
+    MOV @R13+,R0
+    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] >R
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 0<
+    [IF]
+    CODE 0<
+    ADD R14,R14
+    SUBC R14,R14
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U<
+    [IF]
+    CODE U<
+    SUB @R15+,R14
+    U< ?GOTO FW1
+    0<> IF
+BW1 MOV #-1,R14
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE U>
+    SUB @R15+,R14
+    U< ?GOTO BW1
+FW1 AND #0,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] BEGIN
+    [IF]
+    CODE BEGIN
+    MOV #$4032,R0
+    ENDCODE IMMEDIATE
+    
+    CODE UNTIL
+    MOV #$40AC,R9
+BW1 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    CODE AGAIN
+    MOV #$40B2,R9
+    GOTO BW1
+    ENDCODE IMMEDIATE
+    [THEN]
+    
+    [UNDEFINED] WHILE
+    [IF]
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+    [THEN]
+    
+    [UNDEFINED] REPEAT
+    [IF]
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO            
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] HERE
+    [IF]
+    CODE HERE
+    MOV #$4032,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] C@
+    [IF]
+    CODE C@
+    MOV.B @R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SPACES
+    [IF]
+    CODE SPACES
+    CMP #0,R14
+    0<> IF
+        PUSH R13
+        BEGIN
+            LO2HI
+            $20 EMIT
+            HI2LO
+            SUB #1,R14
+        0= UNTIL
+        MOV @R1+,R13
+    THEN
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 1+
+    [IF]
+    CODE 1+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2*
+    [IF]
+    CODE 2*
+    ADD R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 2/ 
+    [IF]
+    CODE 2/
+    RRA R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] UM/MOD
+    [IF]
+    CODE UM/MOD
+    PUSH #DROP
+    MOV #$403E,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] MOVE
+    [IF]
+    CODE MOVE
+    MOV R14,R10
+    MOV @R15+,R8
+    MOV @R15+,R9
+    MOV @R15+,R14
+    CMP #0,R10
+    0<> IF
+        CMP R9,R8
+        0<> IF
+            U< IF
+                BEGIN
+                    MOV.B @R9+,0(R8)
+                    ADD #1,R8
+                    SUB #1,R10
+                0= UNTIL
+                MOV @R13+,R0
+            THEN
+            ADD R10,R8
+            ADD R10,R9
+            BEGIN
+                SUB #1,R9
+                SUB #1,R8
+                MOV.B @R9,0(R8)
+                SUB #1,R10
+            0= UNTIL
+        THEN
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CR
+    [IF]
+
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+
+    [THEN]
+
+    : WORDS
+    $1CE4
+    $180C @ 2*
+    MOVE
+    BEGIN
+        0 DUP
+        $180C @ 2* 0
+            DO
+            DUP I $1CE4 + @
+                U< IF
+                    DROP DROP
+                    I DUP $1CE4 + @
+                THEN
+            2 +LOOP
+        ?DUP
+    WHILE
+        DUP
+        2 - @
+        ROT
+        $1CE4 +
+        !
+        COUNT 2/
+        DUP >R TYPE
+        $10 R> - SPACES
+    REPEAT
+    DROP
+    ;
+
+    [UNDEFINED] CASE
+    [IF]
+    : CASE
+    0 
+    ; 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 
+    [THEN]
+
+    [UNDEFINED] S_
+    [IF]
+    CODE S_
+    MOV #0,&$1DC0
+    COLON
+    $401E ,
+    $20 WORD
+    HI2LO
+    MOV.B @R14,R14
+    ADD #1,R14
+    BIT #1,R14
+    ADDC R14,&$1DC8
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV #$20,&$1DC0
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ESC
+    [IF]
+    CODE ESC
+    CMP #0,&$1DBC
+    0= IF MOV @R13+,R0
+    THEN
+    COLON
+    $1B
+    POSTPONE LITERAL
+    POSTPONE EMIT
+    POSTPONE S_
+    POSTPONE TYPE
+    ; IMMEDIATE
+    [THEN]
+
+    [DEFINED] FORTH
+    [IF]
+    CODE BODY>SQNFA
+    SUB #2,R15
+    SUB #4,R14
+    MOV R14,R8
+    MOV R8,R9
+    BEGIN
+        SUB #2,R9
+        MOV R9,0(R15)
+        MOV.B @R9+,R14
+        RRA R14
+        MOV R14,R10       
+        BIT #1,R10
+        0= IF         
+            ADD #1,R10
+        THEN
+        ADD R9,R10
+        CMP R10,R8
+    0<> WHILE
+        MOV @R15,R9
+    REPEAT
+    MOV R9,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    : SPECS
+    RST_RET
+    ECHO
+    ESC [8;42;80t
+
+    ESC [7m
+    CR ." FastForth V"
+    $180A @         
+    0 <# # $08 HOLD # '.' HOLD #S #> TYPE
+    ."  for MSP430FR"
+    HERE
+    $1A04 @
+    CASE
+
+    $8102   OF  ." 5738,"   $C200   ENDOF
+    $8103   OF  ." 5739,"   $C200   ENDOF
+    $810D   OF  ." 5986,"   $4400   ENDOF
+    $8160   OF  ." 5948,"   $4400   ENDOF
+    $8169   OF  ." 5969,"   $4400   ENDOF
+    $81A8   OF  ." 6989,"   $4400   ENDOF
+    $81F0   OF  ." 4133,"   $C400   ENDOF
+    $8240   OF  ." 2433,"   $C400   ENDOF
+    $825D   OF  ." 5972,"   $4400   ENDOF
+    $82A1   OF  ." 5994,"   $4000   ENDOF
+    $82A6   OF  ." 5962,"   $4000   ENDOF
+    $830C   OF  ." 2355,"   $8000   ENDOF
+    $830D   OF  ." 2353,"   $C000   ENDOF
+    $831E   OF  ." 2155,"   $8000   ENDOF
+    $831D   OF  ." 2153,"   $C000   ENDOF
+    $832A   OF  ." 2476,"   $8000   ENDOF
+    $832B   OF  ." 2475,"   $8000   ENDOF
+    $833C   OF  ." 2633,"   $C400   ENDOF
+    $833D   OF  ." 2533,"   $C400   ENDOF
+    ABORT" xxxx <-- unrecognized device!"
+    ENDCASE
+    ['] ['] DUP @ $1284 =
+    IF ."  DTC=1," DROP
+    ELSE 2 + @ $1284 =
+        IF ."  DTC=2,"
+        ELSE ."  DTC=3,"
+        THEN
+    THEN
+    $20 EMIT 
+    $180C @ U. $08 EMIT
+    ." -Entry word set, "
+    $1800 @ 0 1000 UM/MOD U.
+    ?DUP IF $08 EMIT ',' EMIT U.
+    THEN ." MHz, "
+    - U. ." bytes"
+    ESC [0m
+
+    CR
+    ." /COUNTED-STRING   = 255" CR 
+    ." /HOLD             = 34" CR
+    ." /PAD              = 84" CR
+    ." ADDRESS-UNIT-BITS = 16" CR
+    ." FLOORED DIVISION  = "
+    $180E @
+    0< IF ." true"
+    ELSE  ." false"
+    THEN    CR
+    ." MAX-CHAR          = 255" CR
+    ." MAX-N             = 32767" CR
+    ." MAX-U             = 65535" CR
+    ." MAX-D             = 2147483647" CR
+    ." MAX-UD            = 4294967295" CR
+    ." STACK-CELLS       = 48" CR
+    ." RETURN-STACK-CELLS= 48" CR
+    ." Definitions are forced to UPPERCASE." CR
+
+    CR ESC [7m ." Kernel add-ons" ESC [0m CR
+    $180E @
+    2*  DUP 0< IF ." 32.768kHz LF XTAL" CR THEN
+    2*  DUP 0< IF ." /RTS /CTS " 2*
+            ELSE  2* DUP
+                0< IF ." /RTS " THEN
+            THEN
+    2*  DUP 0< IF ." XON/XOFF "  THEN
+    2*  DUP 0< IF ." Half-Duplex "  THEN
+    2*  DUP 0< IF ." I2C_Master TERMINAL"
+            ELSE  ." UART TERMINAL" THEN CR
+    2*  DUP 0< IF 2* DUP 0< IF ." DOUBLE and "
+                         THEN  ." Q15.16 numbers handling" CR
+            ELSE  2* DUP 0< IF ." DOUBLE numbers handling" CR
+                         THEN                       
+            THEN                    
+    2*  DUP 0< IF ." MSP430_X assembler with TI's syntax" 
+                    CR 2* 2*
+            ELSE
+                2*  DUP                   
+                0< IF ." MSP430 Assembler"
+                    2*  DUP
+                    0< IF ." , 20bits extended addresses,"
+                    THEN
+                ELSE 2*
+                THEN
+                ."  with TI's syntax" CR
+            THEN DROP
+    [DEFINED] FORTH [IF] ." word-set management" CR 
+    [THEN]
+    [DEFINED] LOAD" [IF] ." SD_CARD Load" CR
+    [THEN]
+    [DEFINED] BOOT  [IF] ." SD_CARD Bootloader" CR 
+    [THEN]
+    [DEFINED] READ" [IF] ." SD_CARD Read/Write" CR 
+    [THEN]
+
+    $1DCA
+    BEGIN
+        @ ?DUP
+    WHILE
+        DUP $180C @ 2* -
+        CR ESC [7m 
+        [DEFINED] FORTH
+        [IF] DUP BODY>SQNFA
+        [ELSE]  OVER @
+                IF S" hidden"
+                ELSE S" FORTH"
+                THEN
+        [THEN]
+        TYPE ."  word-set"
+        ESC [0m CR        
+        WORDS CR
+    REPEAT
+
+    CR ESC [7m ." EXTENSIONS" ESC [0m
+    [DEFINED] {CORE_ANS} [IF] CR  ." core ANS94"
+    [THEN]
+    [DEFINED] {DOUBLE}   [IF] CR  ." DOUBLE word set"
+    [THEN]
+    [DEFINED] {UTILITY}  [IF] CR ." UTILITY" 
+    [THEN]
+    [DEFINED] {FIXPOINT} [IF] CR ." Q15.16 ADD SUB MUL DIV" 
+    [THEN]
+    [DEFINED] {CORDIC}   [IF] CR ." CORDIC engine"
+    [THEN]
+    [DEFINED] {SD_TOOLS} [IF] CR ." SD_TOOLS" 
+    [THEN]
+    [DEFINED] {RTC}      [IF] CR ." RTC utility" 
+    [THEN]
+    [DEFINED] {UARTI2CS} [IF] CR ." UART to I2C_FastForth bridge" 
+    [THEN]
+    CR
+    0 SYS
+    ;
+
+SPECS
diff --git a/MSP430-FORTH/SD_430FR5994/FIXPOINT.4TH b/MSP430-FORTH/SD_430FR5994/FIXPOINT.4TH
new file mode 100644 (file)
index 0000000..ba083d7
--- /dev/null
@@ -0,0 +1,479 @@
+
+    CODE ABORT_FIXPOINT
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV &$180E,R14
+    BIT #$100,R14
+    0<> IF MOV #0,R14 THEN
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    ABORT" build FastForth with Q15.16_INPUT addon !"
+    RST_RET
+    $1B EMIT $63 EMIT
+    ;
+
+    ABORT_FIXPOINT
+
+; -----------------------------------------------------
+; FIXPOINT.4th for MSP_EXP430FR5994 
+; -----------------------------------------------------
+
+    MARKER {FIXPOINT}
+
+    [UNDEFINED] + 
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [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
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U< 
+    [IF]
+    CODE U<
+    SUB @R15+,R14
+    0<> IF
+        MOV #-1,R14
+        U< IF
+            AND #0,R14
+        THEN
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DABS 
+    [IF]
+    CODE DABS
+    AND #-1,R14
+    S< IF
+        XOR #-1,0(R15)
+        XOR #-1,R14
+        ADD #1,0(R15)
+        ADDC #0,R14
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] HOLDS 
+    [IF]
+    CODE HOLDS
+    MOV @R15+,R9
+BW3 ADD R14,R9
+    MOV &$1DB2,R8
+    BEGIN
+        SUB #1,R9
+        SUB #1,R14
+    U>= WHILE
+        SUB #1,R8
+        MOV.B @R9,0(R8)
+    REPEAT
+    MOV R8,&$1DB2
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE F+
+    ADD @R15+,2(R15)
+    ADDC @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE F-
+    SUB @R15+,2(R15)
+    SUBC R14,0(R15)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    $1A00 4 + @ $81F3 U<
+    $81EF $1A00 4 + @ U< 
+    = [IF]              ; MSP430FR413x subfamily without hardware_MPY
+
+    CODE UDM*
+    PUSH R13
+    PUSHM #4,R7
+    MOV 4(R15),R13
+    MOV 2(R15),R11
+    MOV @R15,R10
+    MOV #0,R7
+    MOV #0,R6
+    MOV #0,4(R15)
+    MOV #0,2(R15)
+    MOV #0,R5
+    MOV #0,R4
+    MOV #1,R9
+    MOV #0,R8
+    BEGIN
+        CMP #0,R9    
+        0<> IF
+            BIT R9,R10
+        ELSE
+            BIT R8,R14
+        THEN
+        0<> IF
+            ADD R13,4(R15)
+            ADDC R11,2(R15)
+            ADDC R7,R5
+            ADDC R6,R4
+        THEN
+        ADD R13,R13
+        ADDC R11,R11
+        ADDC R7,R7
+        ADDC R6,R6
+        ADD R9,R9
+        ADDC R8,R8
+    U>= UNTIL
+    MOV R5,0(R15)
+    MOV R4,R14
+    POPM #4,R7
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE F*
+    MOV 2(R15),R12
+    XOR R14,R12
+    BIT #$8000,2(R15)
+    0<> IF
+        XOR #-1,2(R15)
+        XOR #-1,4(R15)
+        ADD #1,4(R15)
+        ADDC #0,2(R15)
+    THEN
+    COLON
+    DABS UDM*
+    HI2LO
+    MOV @R1+,R13
+    MOV @R15+,R14
+    MOV @R15+,0(R15)
+    AND #-1,R12
+    S< IF
+        XOR #-1,0(R15)
+        XOR #-1,R14
+        ADD #1,0(R15)
+        ADDC #0,R14
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE F#S
+    MOV @R15,R12
+    MOV #0,R11
+    PUSHM #3,R13
+    MOV 2(R15),0(R15)
+    MOV R14,2(R15)
+    BEGIN
+        MOV &$1DBE,R14
+        LO2HI
+        UM*
+        HI2LO
+        CMP #10,R14
+        U>= IF
+            ADD #7,R14
+        THEN
+        ADD #$30,R14
+        MOV @R1,R11
+        MOV.B R14,$1D90(R11)
+        ADD #1,R11
+        MOV R11,0(R1)
+        CMP 2(R15),R11
+    U>= UNTIL
+    POPM #3,R13
+    MOV R11,R14
+    MOV R12,2(R15)
+    MOV #0,0(R15)
+    MOV #$1D90,R9
+    GOTO BW3
+    ENDCODE
+
+    [ELSE] ; hardware multiplier
+
+    CODE F*
+    MOV 4(R15),&$4D4
+    MOV 2(R15),&$4D6
+    MOV @R15,&$4E0
+    MOV R14,&$4E2
+    ADD #4,R15
+    MOV &$4E6,0(R15)
+    MOV &$4E8,R14
+    MOV @R13+,R0
+    ENDCODE
+
+
+    CODE F#S
+    MOV 2(R15),R9
+    MOV @R15,2(R15)
+    MOV R9,0(R15)
+    MOV R14,R11
+    MOV #0,R12
+    BEGIN
+        MOV @R15,&$4C0
+        MOV &$1DBE,&$4C8
+        MOV &$4E4,0(R15)
+        MOV &$4E6,R14
+        CMP #10,R14
+        U>= IF
+            ADD #7,R14
+        THEN
+        ADD #$30,R14
+        MOV.B R14,$1D90(R12)
+        ADD #1,R12
+        CMP R11,R12
+    0= UNTIL
+    MOV R11,R14
+    MOV #0,0(R15)
+    MOV #$1D90,R9
+    GOTO BW3
+    ENDCODE
+
+    [THEN]  ; end of hardware/software multiplier
+
+    CODE F/
+    MOV R14,R8
+    MOV @R15+,R10
+    MOV @R15+,R9
+    MOV @R15,R11
+    PUSHM #5,R9
+    AND #-1,R8
+    S< IF
+        XOR #-1,R10
+        XOR #-1,R8
+        ADD #1,R10
+        ADDC #0,R8
+    THEN    
+    AND #-1,R9
+    S< IF
+        XOR #-1,R11
+        XOR #-1,R9
+        ADD #1,R11
+        ADDC #0,R9
+    THEN        
+    MOV R9,R7
+    MOV R11,R9
+    MOV #0,R11
+    MOV #0,R6
+    MOV #32,R5
+BW1 CMP R8,R6
+    0= IF
+        CMP R10,R7
+    THEN
+    U>= IF
+        SUB R10,R7
+        SUBC R8,R6
+    THEN
+    BEGIN
+        ADDC R12,R12
+        ADDC R14,R14
+        SUB #1,R5
+    U>= WHILE
+        ADD R11,R11
+        ADDC R9,R9
+        ADDC R7,R7
+        ADDC R6,R6
+        U< ?GOTO BW1
+        SUB R10,R7
+        SUBC R8,R6
+        BIS #1,R2
+    REPEAT
+    POPM #5,R9
+    XOR R9,R8
+    CMP #0,R8
+    S< IF
+        XOR #-1,R12
+    XOR #-1,R14
+    ADD #1,R12
+    ADDC #0,R14
+    THEN
+    MOV R12,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE F.
+    MOV R14,R12
+    MOV #4,R11
+    MOV &$1DBE,R10
+    CMP #$0A,R10
+    0= IF
+        ADD #1,R11
+    ELSE
+        CMP #2,R10
+        0= IF
+            MOV #$10,R11
+        THEN
+    THEN
+    PUSHM #3,R13
+    LO2HI
+    <# DABS
+    R> F#S
+    $2C HOLD
+    #S
+    R> SIGN #>
+    TYPE $20 EMIT
+    ;
+
+    CODE S>F
+    SUB #2,R15
+    MOV #0,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    RST_SET
+
+; -----------------------
+; complement (volatile) for tests below
+; -----------------------
+
+    [UNDEFINED] ! 
+    [IF]
+    CODE !
+    MOV @R15+,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DOES> 
+    [IF]
+    CODE DOES> 
+    MOV &$1DB8,R10
+    MOV #$1285,0(R10)
+    MOV R13,2(R10)
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CONSTANT 
+    [IF]
+    : CONSTANT 
+    CREATE
+    HI2LO
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [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] D. 
+    [IF]
+    CODE D.
+    MOV #U.,R10
+    ADD #10,R10
+    MOV R10,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] BASE 
+    [IF]
+    $1DBE CONSTANT BASE
+    [THEN]
+
+    ECHO
+
+; -----------------------
+; (volatile) tests for FIXPOINT.asm|FIXPOINT.4th for MSP_EXP430FR5994
+; -----------------------
+
+3,14159 2CONSTANT PI
+PI -1,0 F* 2CONSTANT -PI
+
+PI D.   ; D. is not appropriate --> 
+-PI D.  ; D. is not appropriate -->
+
+PI F.   ; F. is a good choice! ---> 
+-PI F.  ; F. is a good choice! --->
+
+$10 BASE !   PI F. 
+            -PI F.
+%10 BASE !   PI F. 
+            -PI F.
+#10 BASE !   PI F. 
+            -PI F.
+
+ PI  2,0 F* F.     
+ PI -2,0 F* F.    
+-PI  2,0 F* F.    
+-PI -2,0 F* F.     
+
+ PI  2,0 F/ F.     
+ PI -2,0 F/ F.    
+-PI  2,0 F/ F.    
+-PI -2,0 F/ F.     
+
+ 32768,0  1,0 F* F. ; overflow! -->
+ 32768,0  1,0 F/ F. ; overflow! -->
+-32768,0 -1,0 F* F. ; overflow! -->
+-32768,0 -1,0 F/ F. ; overflow! -->
+
+32767,99999 1,0  F* F. 
+32767,99999 1,0  F/ F. 
+32767,99999 2,0  F/ F. 
+32767,99999 4,0  F/ F. 
+32767,99999 8,0  F/ F. 
+32767,99999 16,0 F/ F. 
+
+-32768,0 -2,0    F/ F. 
+-32768,0 -4,0    F/ F. 
+-32768,0 -8,0    F/ F. 
+-32768,0 -16,0   F/ F. 
+-32768,0 -32,0   F/ F. 
+-32768,0 -64,0   F/ F. 
+
+-3276,80 -1,0    F/ F. 
+-327,680 -1,0    F/ F. 
+-32,7680 -1,0    F/ F. 
+-3,27680 -1,0    F/ F. 
+-0,32768 -1,0    F/ F. 
+
+; SQRT(32768)^2 = 32768
+ 181,01933598375  181,01933598375 F* F. 
+ 181,01933598375 -181,01933598375 F* F.
+-181,01933598375  181,01933598375 F* F.
+-181,01933598375 -181,01933598375 F* F. 
+RST_RET
diff --git a/MSP430-FORTH/SD_430FR5994/LAST.4TH b/MSP430-FORTH/SD_430FR5994/LAST.4TH
new file mode 100644 (file)
index 0000000..b859119
--- /dev/null
@@ -0,0 +1,505 @@
+
+; -----------
+; SD_TEST.4th for MSP_EXP430FR5994
+; -----------
+
+    CODE ABORT_SD_TEST
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    [UNDEFINED] WRITE 
+    [IF]
+        1 ABORT" no SD_CARD_READ_WRITE addon!"
+    [THEN]
+    RST_RET
+    ;
+
+    ABORT_SD_TEST
+
+    MARKER {SD_TEST}
+
+    [UNDEFINED] EXIT 
+    [IF]
+    CODE EXIT
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SWAP 
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 0= 
+    [IF]
+    CODE 0=
+    SUB #1,R14
+    SUBC R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] BEGIN 
+    [IF]
+    CODE BEGIN
+    MOV #$4032,R0
+    ENDCODE IMMEDIATE
+
+    CODE UNTIL
+    MOV #$40AC,R9
+BW1 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE AGAIN
+    MOV #$40B2,R9
+    GOTO BW1
+    ENDCODE IMMEDIATE
+
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO            
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I 
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] + 
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] - 
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,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] 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] DUP 
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    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] >R 
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R> 
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CONSTANT 
+    [IF]
+    : CONSTANT 
+    CREATE
+    HI2LO
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] STATE 
+    [IF]
+    $1DBC CONSTANT STATE
+    [THEN]
+
+    [UNDEFINED] CR 
+    [IF]
+    
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] U.R 
+    [IF]
+    : U.R
+    >R  <# 0 # #S #>  
+    R> OVER - 0 MAX SPACES TYPE
+    ;
+    [THEN]
+
+    [UNDEFINED] BASE 
+    [IF]
+    $1DBE  CONSTANT BASE
+    [THEN]
+
+    [UNDEFINED] DUMP 
+    [IF]
+    CODE DUMP
+    PUSH R13
+    PUSH &BASE
+    MOV #$10,&BASE
+    ADD @R15,R14
+    LO2HI
+    SWAP
+    DO
+        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
+        CR
+    $10 +LOOP
+    R> BASE !
+    ;
+    [THEN]
+
+    [UNDEFINED] HERE 
+    [IF]
+    CODE HERE
+    MOV #BEGIN,R0
+    ENDCODE
+    [THEN]
+
+
+    [UNDEFINED] DROP 
+    [IF]
+    CODE DROP
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 1+ 
+    [IF]
+    CODE 1+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CASE 
+    [IF]
+    : CASE
+    0 
+    ; 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 
+    [THEN]
+
+    CODE SD_EMIT
+    CMP #$200,&$201E
+    U>= IF
+        CALL &WRITE+2
+    THEN
+    MOV &$201E,R8
+    MOV.B R14,$1E00(R8)
+    ADD #1,&$201E
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+: DOESWRITE
+    ['] SD_EMIT IS EMIT
+    $4000 HERE OVER - DUMP
+    ['] EMIT >BODY IS EMIT
+    CLOSE
+    ." , done"
+;
+
+    : SD_TEST
+    ECHO
+    $0D EMIT
+    ." ? Fast Forth Specifs" CR
+    ." 0 Set date and time" CR
+    ." 1 Load {UTILTY} words" CR
+    ." 2 Load {SD_TOOLS} words" CR
+    ." 3 Load {CORE_COMP} words" CR
+    ." 4 Load ANS core tests" CR
+    ." 5 Load a 10k program " CR
+    ." 6 Read only this source file" CR
+    ." 7 write FORTH dump in YOURFILE.TXT" CR
+    ." 8 append FORTH dump to YOURFILE.TXT" CR
+    ." 9 Load TST_WORDS" CR
+    ." your choice : "
+    KEY DUP EMIT CR
+    {SD_TEST}
+    CASE
+    '?' OF  LOAD" FF_SPECS.4TH" ENDOF
+    '0' OF  LOAD" RTC.4TH"      ENDOF
+    '1' OF  LOAD" UTILITY.4TH"  ENDOF
+    '2' OF  LOAD" SD_TOOLS.4TH" ENDOF
+    '3' OF  LOAD" CORE_ANS.4TH" ENDOF
+    '4' OF  LOAD" CORETEST.4TH" ENDOF 
+    '5' OF  LOAD" PROG10K.4TH"  ENDOF
+    '6' OF  READ" PROG10K.4TH"
+            BEGIN READ
+            UNTIL ." , done"    ENDOF
+    '7' OF  ECHO
+            WRITE" YOURFILE.TXT"
+            DOESWRITE           ENDOF
+    '8' OF  ECHO
+            APPEND" YOURFILE.TXT"
+            DOESWRITE           ENDOF
+    '9' OF  LOAD" TSTWORDS.4TH" ENDOF
+    ENDCASE
+    ;
+
+    [THEN]
+
+SD_TEST
diff --git a/MSP430-FORTH/SD_430FR5994/MISC/TESTASM.4TH b/MSP430-FORTH/SD_430FR5994/MISC/TESTASM.4TH
new file mode 100644 (file)
index 0000000..2adc6a9
--- /dev/null
@@ -0,0 +1,630 @@
+
+; -----------------------------------------------------------------------
+; TEST_ASM.4th for MSP_EXP430FR5994
+; -----------------------------------------------------------------------
+
+    CODE ABORT_TEST_ASM
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    RST_RET
+    ;
+
+    ABORT_TEST_ASM
+
+    MARKER {TEST_ASM}
+
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    MOV R7,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,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 
+    CREATE
+    HI2LO
+    MOV #$1287,-4(R10)
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CONSTANT
+    [IF]
+    : CONSTANT 
+    CREATE
+    HI2LO
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DEFER
+    [IF]
+
+    : DEFER
+    CREATE
+    HI2LO
+    MOV #$4030,-4(R10)
+    MOV #$40B4,-2(R10)
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,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] DUP
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    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] IF 
+    [IF]
+
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] SWAP 
+    [IF]
+    CODE SWAP
+    PUSH R14
+    MOV @R15,R14
+    MOV @R1+,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] BEGIN 
+    [IF]
+
+    CODE BEGIN
+    MOV #$4032,R0
+    ENDCODE IMMEDIATE
+    
+    CODE UNTIL
+    MOV #$40AC,R9
+BW1 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    CODE AGAIN
+    MOV #$40B2,R9
+    GOTO BW1
+    ENDCODE IMMEDIATE
+    
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+    
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO 
+    [IF]
+
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] BASE 
+    [IF]
+    $1DBE  CONSTANT BASE
+    [THEN]
+
+    [UNDEFINED] CR
+    [IF]
+    DEFER CR
+
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] DUMP
+    [IF]
+    CODE DUMP
+    PUSH R13
+    PUSH &BASE
+    MOV #$10,&$1DBE
+    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> BASE !
+    ;
+    [THEN]
+
+    CODE TESTPUSHM
+BW1
+    MOV     #22222,R8
+    MOV     #3,R9
+    MOV     #2,R10
+    MOV     #1,R11
+    MOV     #0,R12
+
+    PUSHM   #4,R13
+    POPM    #4,R13
+    SUB     #10,R15
+    MOV     R14,8(R15)
+    MOV     R12,6(R15)
+    MOV     R11,4(R15)
+    MOV     R10,2(R15)
+    MOV     R9,0(R15)
+    MOV     R8,R14
+    RRAM    #1,R14
+    RLAM    #2,R14
+    RRCM    #1,R14
+    RRUM    #1,R14
+    COLON
+    space . . . . .
+    ;
+
+    TESTPUSHM  ; you should see 11111 3 2 1 0 -->
+
+    CODE TESTPOPM
+            GOTO BW1
+    ENDCODE
+
+    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
+    THEN    
+    COLON
+    BASE @ U.
+    ;
+
+
+    : TEST2
+    BASE @ U.
+    HI2LO
+
+
+    CMP #2, &BASE
+    0<> IF  MOV #2, &BASE
+    ELSE    MOV #10,&BASE
+    THEN
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE TEST3
+    CMP #2, &BASE
+    0<> IF  MOV #2, &BASE
+    ELSE    MOV #10,&BASE
+    THEN    COLON
+    BASE @  U.
+    ;
+
+
+: TEST5
+            SPACE
+            HI2LO
+            SUB #2,R15
+            MOV R14,0(R15)
+            MOV #%1010,R14
+BEGIN       SUB #$0001,R14
+            LO2HI
+
+            DUP U.
+            HI2LO
+            CMP #0,R14
+0= UNTIL    MOV @R15+,R14
+            MOV @R1+,R13
+            MOV @R13+,R0
+ENDCODE
+
+TEST5  ; you should see :  9 8 7 6 5 4 3 2 1 0 -->
+
+
+
+[UNDEFINED] C, [IF]
+CODE C,
+MOV &$1DC8,R10
+MOV.B R14,0(R10)
+ADD #1,&$1DC8
+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,
+LOOP
+DOES>
++
+;
+
+8 BYTES_TABLE_IDX BYTES_TABLE
+
+2 BYTES_TABLE C@ . ; you should see 2 -->
+
+
+VARIABLE BYTES_TABLE1
+
+$0201 BYTES_TABLE1 !
+
+CODE IDX_TEST1
+    MOV.B   BYTES_TABLE1(R14),R14
+COLON
+    U. 
+;      
+
+0 IDX_TEST1     ; you should see 1 -->
+
+CODE TEST6
+            MOV 0(R15),0(R15)
+            MOV @R13+,R0
+ENDCODE
+
+
+1 TEST6 .       ; you should see 1 -->
+
+
+
+
+
+CREATE TABLE0
+0 C,
+1 C,
+2 C,
+3 C,
+
+
+CREATE TABLE10
+$10 C,
+$11 C,
+$12 C,
+$13 C,
+
+
+
+CREATE TABLE20
+$20 C,
+$21 C,
+$22 C,
+$23 C,
+
+
+CREATE TABLE
+
+
+TABLE 2 - CONSTANT PFA_TABLE
+
+
+CODE REDIRECT       ; <table> --    redirects TABLE to argument <table>    
+MOV R14,&PFA_TABLE
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+
+
+CODE REDIRECT0      ; --            redirects TABLE to TABLE0        
+MOV #TABLE0,&PFA_TABLE
+MOV @R13+,R0
+ENDCODE
+
+
+CODE REDIRECT10     ; --            redirects TABLE to TABLE10        
+MOV #TABLE10,&PFA_TABLE
+MOV @R13+,R0
+ENDCODE
+
+
+CODE REDIRECT20     ; --            redirects TABLE to TABLE20        
+MOV #TABLE20,&PFA_TABLE
+MOV @R13+,R0
+ENDCODE
+
+
+' TABLE0 10 DUMP
+
+' TABLE10 10 DUMP
+
+' TABLE20 10 DUMP
+
+
+TABLE0 REDIRECT TABLE 10 DUMP
+
+TABLE10 REDIRECT TABLE 10 DUMP
+
+TABLE20 REDIRECT TABLE 10 DUMP
+
+
+REDIRECT0 TABLE 10 DUMP
+
+REDIRECT10 TABLE 10 DUMP
+
+REDIRECT20 TABLE 10 DUMP
+
+
+TABLE0 PFA_TABLE ! TABLE 10 DUMP
+
+TABLE10 PFA_TABLE ! TABLE 10 DUMP
+
+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                 ; does DUP
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+ENDCODE                 ; leaves its execution address (CFA) on stack 
+
+DUP .
+
+IS TRUC                 ; TRUC becomes a primary DEFERred word
+                        ; with its default action (DUP) located at its BODY addresse.
+
+TRUC .                  ; display R14 value -->
+
+
+    
+' TRUC >BODY IS TRUC    ; TRUC is reinitialized with its default action
+
+
+TRUC .                  ; display R14 value --> 
+
+
+
+
+
diff --git a/MSP430-FORTH/SD_430FR5994/PID.4TH b/MSP430-FORTH/SD_430FR5994/PID.4TH
new file mode 100644 (file)
index 0000000..2de24fd
--- /dev/null
@@ -0,0 +1,815 @@
+
+
+MARKER {PID}
+
+[UNDEFINED] VARIABLE [IF]
+: VARIABLE 
+CREATE
+HI2LO
+MOV @R1+,R13
+MOV #$1287,-4(R10)
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] CONSTANT [IF]
+: CONSTANT 
+CREATE
+HI2LO
+MOV R14,-2(R10)
+MOV @R15+,R14
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] STATE [IF]
+$1DBC CONSTANT STATE
+[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] SWAP [IF]
+CODE SWAP
+MOV @R15,R10
+MOV R14,0(R15)
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] DUP [IF]
+CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+ENDCODE
+
+CODE ?DUP
+CMP #0,R14
+0<> ?GOTO BW1
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] AND [IF]
+CODE AND
+AND @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] SPACE [IF]
+: SPACE
+$20 EMIT ;
+[THEN]
+
+[UNDEFINED] R> [IF]
+CODE R>
+MOV R7,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] ! [IF]
+CODE !
+MOV @R15+,0(R14)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] C@ [IF]
+CODE C@
+MOV.B @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] 1+ [IF]
+CODE 1+
+ADD #1,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] + [IF]
+CODE +
+ADD @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] - [IF]
+CODE -
+SUB @R15+,R14
+XOR #-1,R14
+ADD #1,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] 2NIP [IF]
+CODE 2NIP
+MOV @R15,R9
+ADD #4,R15
+MOV R9,0(R15)
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] 2DUP  [IF]
+CODE 2DUP
+SUB #4,R15
+MOV R14,2(R15)
+MOV 4(R15),0(R15)
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] 2SWAP [IF]
+CODE 2SWAP
+MOV @R15,R10
+MOV 4(R15),0(R15)
+MOV R10,4(R15)
+MOV R14,R10
+MOV 2(R15),R14
+MOV R10,2(R15)
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] 2ROT [IF]
+CODE 2ROT
+MOV 8(R15),R9
+MOV 6(R15),R8
+MOV 4(R15),8(R15)
+MOV 2(R15),6(R15)
+MOV @R15,4(R15)
+MOV R14,2(R15)
+MOV R9,0(R15)
+MOV R8,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] 2DROP [IF]
+CODE 2DROP
+ADD #2,R15
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] 2OVER [IF]
+CODE 2OVER
+SUB #4,R15
+MOV R14,2(R15)
+MOV 8(R15),0(R15)
+MOV 6(R15),R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] DABS [IF]
+CODE DABS
+AND #-1,R14
+U< IF
+    XOR #-1,0(R15)
+    XOR #-1,R14
+    ADD #1,0(R15)
+    ADDC #0,R14
+THEN
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] 2@ [IF]
+
+
+    CODE 2@
+    SUB #2,R15
+    MOV 2(R14),0(R15)
+    MOV @R14,R14
+    MOV @R13+,R0
+    ENDCODE
+[THEN]
+
+[UNDEFINED] 2! [IF]
+
+
+    CODE 2!
+    MOV @R15+,0(R14)
+    MOV @R15+,2(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+[THEN]
+
+CODE 2>R
+PUSH @R15+
+PUSH R14
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+
+CODE 2R@
+SUB #4,R15
+MOV R14,2(R15)
+MOV @R1,R14
+MOV 2(R1),0(R15)
+MOV @R13+,R0
+ENDCODE
+
+CODE 2R>
+SUB #4,R15
+MOV R14,2(R15)
+MOV @R1+,R14       
+MOV @R1+,0(R15)
+MOV @R13+,R0
+ENDCODE
+
+[UNDEFINED] 2VARIABLE [IF]
+: 2VARIABLE
+CREATE 4 ALLOT
+;
+[THEN]
+
+[UNDEFINED] 2CONSTANT [IF]
+
+    : 2CONSTANT
+    CREATE , ,
+    DOES> 2@
+    ;
+[THEN]
+
+[UNDEFINED] <> [IF]
+CODE <>
+SUB @R15+,R14
+0<> IF 
+    MOV #-1,R14
+THEN
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] = [IF]
+CODE =
+SUB @R15+,R14
+0<> IF
+    AND #0,R14
+    MOV @R13+,R0
+THEN
+XOR #-1,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] U< [IF]
+CODE U<
+SUB @R15+,R14
+0<> IF
+    MOV #-1,R14
+    U< IF
+        AND #0,R14
+    THEN
+THEN
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] IF [IF]
+CODE IF
+SUB #2,R15
+MOV R14,0(R15)
+MOV &$1DC8,R14
+ADD #4,&$1DC8
+MOV #$40AC,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+CODE THEN
+MOV &$1DC8,0(R14)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] ELSE [IF]
+CODE ELSE
+ADD #4,&$1DC8
+MOV &$1DC8,R10
+MOV #$40B2,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER! [IF]
+CODE DEFER!
+MOV @R15+,2(R14)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] IS [IF]
+: IS
+STATE @
+IF  POSTPONE ['] POSTPONE DEFER! 
+ELSE ' DEFER! 
+THEN
+; IMMEDIATE
+[THEN]
+
+[UNDEFINED] >BODY [IF]
+CODE >BODY
+ADD #4,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+CODE F+
+BW1 ADD @R15+,2(R15)
+    ADDC @R15+,R14
+    MOV @R13+,R0
+ENDCODE
+
+CODE F-
+BW1 SUB @R15+,2(R15)
+    SUBC R14,0(R15)
+    MOV @R15+,R14
+    MOV @R13+,R0
+ENDCODE
+
+CODE HOLDS
+BW3         MOV @R15+,R9
+            ADD R14,R9
+            MOV &$1DB2,R8
+BEGIN       SUB #1,R9
+            SUB #1,R14
+U>= WHILE   SUB #1,R8
+            MOV.B @R9,0(R8)
+REPEAT      MOV R8,&$1DB2
+            MOV @R15+,R14
+            MOV @R13+,R0
+ENDCODE
+
+$1A00 4 + @ $81F3 U<
+$81EF $1A00 4 + @ U< 
+= [IF]   ; MSP430FR2xxx|MSP430FR4xxx subfamilies without hardware_MPY
+
+
+CODE F/
+        PUSHM #4,R7    
+        MOV @R15+,R6
+        MOV @R15+,R9
+        MOV #0,R10
+        MOV @R15,R8
+        MOV #0,R11
+        MOV R9,R12
+        XOR R14,R12
+        AND #-1,R9
+S< IF   XOR #-1,R8
+        XOR #-1,R9
+        ADD #1,R8
+        ADDC #0,R9
+THEN    AND #-1,R14
+S< IF   XOR #-1,R6
+        XOR #-1,R14
+        ADD #1,R6
+        ADDC #0,R14
+THEN
+            MOV #32,R5
+BW1         CMP R14,R10
+    0= IF   CMP R6,R9
+    THEN
+    U>= IF  SUB R6,R9
+            SUBC R14,R10
+    THEN
+BW2         ADDC R7,R7
+            ADDC R4,R4
+            SUB #1,R5
+            0< ?GOTO FW1
+            ADD R11,R11
+            ADDC R8,R8
+            ADDC R9,R9
+            ADDC R10,R10
+            U< ?GOTO BW1
+            SUB R6,R9
+            SUBC R14,R10
+            BIS #1,R2
+            GOTO BW2
+FW1
+            MOV R7,0(R15)
+            MOV R4,R14
+            POPM #4,R7
+BW1     AND #-1,R12
+S< IF   XOR #-1,0(R15)
+        XOR #-1,R14
+        ADD #1,0(R15)
+        ADDC #0,R14
+THEN    MOV @R13+,R0
+ENDCODE
+
+CODE F#S 
+            MOV 2(R15),R9
+            MOV @R15,2(R15)
+            MOV R9,0(R15)
+            PUSHM #2,R14
+            MOV #0,R12
+BEGIN       PUSH R12
+            MOV &$1DBE,R14
+            LO2HI
+            UM*
+            HI2LO
+            SUB #2,R13
+            CMP #10,R14
+    U>= IF  ADD #7,R14
+    THEN    ADD #$30,R14
+            MOV @R1+,R12
+            MOV.B R14,$1D90(R12)
+            ADD #1,R12
+            CMP 2(R1),R12
+U>= UNTIL   
+            POPM #2,R14
+            MOV #0,0(R15)
+            SUB #2,R15
+            MOV #$1D90,0(R15)
+            GOTO BW3
+ENDCODE
+
+CODE UDM*
+            PUSH R13
+            PUSHM #4,R7
+            MOV 4(R15),R13
+            MOV 2(R15),R11
+            MOV @R15,R10
+            MOV #0,R4
+            MOV #0,R5
+            MOV #0,4(R15)
+            MOV #0,2(R15)
+            MOV #0,R6
+            MOV #0,R7
+            MOV #1,R9
+            MOV #0,R8
+BEGIN       CMP #0,R9    
+    0<> IF  BIT R9,R10
+    ELSE    BIT R8,R14
+    THEN
+    0<> IF  ADD R13,4(R15)
+            ADDC R11,2(R15)
+            ADDC R4,R6
+            ADDC R5,R7
+    THEN    ADD R13,R13
+            ADDC R11,R11
+            ADDC R4,R4
+            ADDC R5,R5
+            ADD R9,R9
+            ADDC R8,R8
+U>= UNTIL   MOV R6,0(R15)
+            MOV R7,R14
+            POPM #4,R7
+            MOV @R1+,R13
+            MOV @R13+,R0
+ENDCODE
+
+CODE F*
+    MOV 2(R15),R12
+    XOR R14,R12
+    BIT #$8000,2(R15)
+0<> IF  XOR #-1,2(R15)
+        XOR #-1,4(R15)
+        ADD #1,4(R15)
+        ADDC #0,2(R15)
+THEN
+    COLON
+    DABS UDM*
+    HI2LO
+    MOV @R1+,R13
+    MOV @R15+,R14
+    MOV @R15+,0(R15)
+    GOTO BW1
+ENDCODE
+
+[ELSE]
+
+CODE F/
+        PUSHM #4,R7
+        MOV @R15+,R6
+        MOV @R15+,R9
+        MOV #0,R10
+        MOV @R15,R8
+        MOV #0,R11
+        MOV R9,R12
+        XOR R14,R12
+        AND #-1,R9
+S< IF   XOR #-1,R8
+        XOR #-1,R9
+        ADD #1,R8
+        ADDC #0,R9
+THEN    AND #-1,R14
+S< IF   XOR #-1,R6
+        XOR #-1,R14
+        ADD #1,R6
+        ADDC #0,R14
+THEN    MOV #32,R5
+BW1     CMP R14,R10
+    0= IF
+        CMP R6,R9
+    THEN
+    U>= IF
+        SUB R6,R9
+        SUBC R14,R10
+    THEN
+BW2     ADDC R7,R7
+        ADDC R4,R4
+        SUB #1,R5
+        0< ?GOTO FW1
+        ADD R11,R11
+        ADDC R8,R8
+        ADDC R9,R9
+        ADDC R10,R10
+        U< ?GOTO BW1
+        SUB R6,R9
+        SUBC R14,R10
+        BIS #1,R2
+        GOTO BW2
+FW1     AND #-1,R12
+S< IF   XOR #-1,R7
+        XOR #-1,R4
+        ADD #1,R7
+        ADDC #0,R4
+THEN    MOV R7,0(R15)
+        MOV R4,R14
+        POPM #4,R7
+        MOV @R13+,R0
+ENDCODE
+
+CODE F#S
+            MOV 2(R15),R9
+            MOV @R15,2(R15)
+            MOV R9,0(R15)
+            MOV R14,R11
+            MOV #0,R12
+BEGIN       MOV @R15,&$4C0
+            MOV &$1DBE,&$4C8
+            MOV &$4E4,0(R15)
+            MOV &$4E6,R14
+            CMP #10,R14
+    U>= IF  ADD #7,R14
+    THEN    ADD #$30,R14
+            MOV.B R14,$1D90(R12)
+            ADD #1,R12
+            CMP R11,R12
+0= UNTIL    MOV #0,0(R15)
+            MOV R11,R14
+            SUB #2,R15
+            MOV #$1D90,0(R15)
+            GOTO BW3
+ENDCODE
+
+CODE F*
+    MOV 4(R15),&$4D4
+    MOV 2(R15),&$4D6
+    MOV @R15,&$4E0
+    MOV R14,&$4E2
+    ADD #4,R15
+    MOV &$4E6,0(R15)
+    MOV &$4E8,R14
+    MOV @R13+,R0
+ENDCODE
+
+[THEN]
+
+CODE F.N
+MOV R14,R11
+MOV @R15+,R14
+MOV R14,R12
+PUSHM #3,R13
+LO2HI
+    <# DABS
+    R> F#S
+    $2C HOLD
+    #S
+    R> SIGN #>
+    TYPE SPACE
+;
+
+
+CODE D<
+            MOV @R15+,R12
+            MOV @R15+,R11
+            MOV @R15+,R10
+BW1         CMP R14,R11
+            MOV #0,R14
+S< IF       MOV #-1,R14
+THEN
+0= IF       CMP R12,R10
+    S< IF   MOV #-1,R14
+    THEN
+THEN
+MOV @R13+,R0
+ENDCODE
+
+CODE D>
+MOV R14,R11
+MOV @R15+,R10
+MOV @R15+,R14
+MOV @R15+,R12
+GOTO BW1
+ENDCODE
+
+CODE S2F
+    SUB #2,R15
+    MOV #0,0(R15)
+    MOV @R13+,R0
+ENDCODE
+
+: F2S
+  SWAP $8000 AND IF 1 + THEN ;
+
+: DMIN
+  2OVER 2OVER
+  D< IF 2DROP ELSE 2NIP THEN
+;
+
+: DMAX
+  2OVER 2OVER
+  D> IF 2DROP ELSE 2NIP THEN
+;
+
+: DRANGE
+  2ROT DMIN DMAX
+;
+
+: RANGE
+  ROT MIN MAX
+;
+
+: F.000 3 F.N ;
+
+2VARIABLE KP
+2VARIABLE KI
+2VARIABLE KD
+VARIABLE SETPOINT
+
+VARIABLE SAMPLE_TIME
+VARIABLE OUT_MAX
+VARIABLE OUT_MIN
+VARIABLE OUT-OVERRIDE
+
+VARIABLE SET-VAL
+VARIABLE INPUT_PREV
+2VARIABLE I_SUM
+
+VARIABLE DEBUG
+0 DEBUG !
+
+: ?DEBUG DEBUG @ ;
+
+
+
+: CALC-R6
+KP 2@ F*
+?DEBUG IF ." Pval:" 2DUP F2S . 
+THEN    
+;
+
+
+: CALC-I
+KI 2@ F*
+I_SUM 2@ F+
+OUT_MIN @ S2F 
+OUT_MAX @ S2F
+DRANGE
+2DUP I_SUM 2!
+?DEBUG IF  ." Ival:" 2DUP F2S . 
+THEN
+;
+
+: CALC-D
+
+  INPUT_PREV @ -
+  S2F KD 2@ F*
+?DEBUG IF  ." Dval:" 2DUP F2S . 
+THEN
+;
+
+: PID_COMPUTE
+DUP DUP SET-VAL @ SWAP - S2F
+2DUP  CALC-R6
+2SWAP CALC-I F+
+ROT   CALC-D F-
+
+F2S
+?DEBUG IF  ." OUT:" DUP .
+THEN
+SWAP INPUT_PREV !
+OUT_MIN @ OUT_MAX @ RANGE
+?DEBUG IF  ." PWM:" DUP .
+THEN
+;
+
+
+: SET
+  SET-VAL ! ;
+
+: TUNING
+
+
+  SAMPLE_TIME @ S2F 1000,0 F/ 2>R
+
+  2R@ F/ KD 2!
+  2R> F* KI 2!
+         KP 2! ;
+
+: PID-INIT
+  OUT_MAX !
+  OUT_MIN !
+  SAMPLE_TIME !
+  TUNING
+  0 OUT-OVERRIDE !
+  CR ." PID initialized - kp:" KP 2@ F.000 ." ki:" KI 2@ F.000 ." kd:" KD 2@ F.000
+;
+
+: PID
+  OUT-OVERRIDE @ -1 = IF
+    PID_COMPUTE
+  ELSE
+    CR ." SET:" SET-VAL @ .  ." IS:"  DUP .
+    INPUT_PREV !
+    OUT-OVERRIDE @
+    ." PWM:" DUP .
+  THEN ;
+
+: MANUAL
+  OUT-OVERRIDE ! ;
+
+
+: AUTO
+  OUT-OVERRIDE @ -1 <> IF
+
+    OUT-OVERRIDE @
+    OUT_MIN @ OUT_MAX @ RANGE
+    S2F I_SUM 2!
+    -1 OUT-OVERRIDE !
+  THEN ;
+
+: AUTOHOLD
+  INPUT_PREV @ SET-VAL !
+  AUTO ;
+
+
+
+
+CODE STOP
+    MOV @R13+,R0
+ENDCODE
+
+CODE APP_INIT
+    MOV @R13+,R0
+ENDCODE
+
+CODE START
+    MOV @R13+,R0
+ENDCODE 
+
+
+ECHO
diff --git a/MSP430-FORTH/SD_430FR5994/PROG10k.4TH b/MSP430-FORTH/SD_430FR5994/PROG10k.4TH
new file mode 100644 (file)
index 0000000..f50c044
--- /dev/null
@@ -0,0 +1,2664 @@
+
+; -----------------------------------
+; PROG10K.4th for MSP_EXP430FR5994
+; -----------------------------------
+
+; load and compile 10kb (9 x RC52LCD)
+
+
+
+    CODE ABORT_RC5TOLCD
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    RST_RET
+    ;
+
+    ABORT_RC5TOLCD
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+ECHO
+
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+
diff --git a/MSP430-FORTH/SD_430FR5994/RC5toLCD.4TH b/MSP430-FORTH/SD_430FR5994/RC5toLCD.4TH
new file mode 100644 (file)
index 0000000..0bfbda6
--- /dev/null
@@ -0,0 +1,350 @@
+
+; -----------------------------------
+; RC5TOLCD.4th for MSP_EXP430FR5994
+; -----------------------------------
+
+
+    CODE ABORT_RC5TOLCD
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    RST_RET
+    ;
+
+    ABORT_RC5TOLCD
+
+    MARKER {RC5TOLCD}
+    8 ALLOT
+
+
+
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    CODE 20_US
+    BEGIN
+        MOV &{RC5TOLCD}+6,R9
+        SUB #2,R9
+        BEGIN
+            MOV #0,R3
+            SUB #1,R9
+        0=  UNTIL
+        MOV #0,R3
+        SUB #1,R14
+    0= UNTIL
+    MOV @R15+,R14
+    MOV @R1+,R13
+    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_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_WRF
+    BIC.B #2,&$243
+    GOTO BW1
+    ENDCODE
+
+    : LCD_CLEAR $01 LCD_WRF 100 20_us ;
+    : LCD_HOME $02 LCD_WRF 100 20_us ;
+
+    HDNCODE 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
+    RETI
+    ENDCODE
+
+    HDNCODE RC5_INT
+    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>= ?GOTO FW1
+            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 FW2
+    XOR #$400,0(R1)
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1DBE,2(R15)
+    MOV #$10,&$1DBE
+    MOV R9,0(R15)
+    MOV #0,R14
+    LO2HI
+    LCD_CLEAR
+    <# # #S #36 HOLD #>
+    ['] LCD_WRC IS EMIT
+    TYPE
+    ['] EMIT >BODY IS EMIT
+    HI2LO
+    MOV @R15+,&$1DBE
+    MOV @R15+,R14
+FW1 BIC #$30,&$380
+FW2 BIC #%1111_1000,0(R1)
+    RETI
+    ENDCODE
+
+    HDNCODE STOP_R2L
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        BIC.B #4,&$20A
+        BIC.B #4,&$20C
+        MOV #0,&$3C0
+        MOV #0,&$340
+        MOV #0,&$342
+        MOV #{RC5TOLCD},R10
+        MOV #$4082,-2(R10)
+        $180E $3C00 TSTBIT
+        [IF]
+        MOV @R10+,&UART_WARM+2
+        [ELSE]
+        MOV @R10+,&$4180+2
+        [THEN]
+        MOV @R10+,&$FFEA
+        MOV @R10+,&$FFDE
+    THEN 
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE STOP
+BW1 CALL #STOP_R2L
+    COLON
+    ECHO
+    ." type START to start RC5toLCD"
+    ;
+
+    HDNCODE INIT_R2L
+    MOV #%10_1101_0100,&$3C0
+    $1800 @ 16000 = 
+    [IF]
+        MOV #1,&$3A0
+        MOV #1,&$3E0
+    [THEN]
+    $1800 @ 24000 = 
+    [IF]
+        MOV #2,&$3A0
+        MOV #2,&$3E0
+    [THEN]
+        MOV #19,&$3D2
+    MOV #%0110_0000,&$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 #%01_0001_0100,&$340
+    MOV ##3276,&$352
+    MOV #%10000,&$342
+    CALL &{RC5TOLCD}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    CMP #4,R14
+    0= ?GOTO BW1
+    LO2HI
+    #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
+    HI2LO
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE START
+    CMP #WDT_INT,&$FFEA
+    0= IF
+        MOV @R13+,R0
+    THEN
+    MOV #STOP_R2L,&{RC5TOLCD}-2
+    $180E $3C00 TSTBIT
+    [IF]
+       MOV &UART_WARM+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&UART_WARM+2
+    [ELSE]
+       MOV &$4180+2,&{RC5TOLCD}
+       MOV #INIT_R2L,&$4180+2
+    [THEN]
+    MOV &$FFEA,&{RC5TOLCD}+2
+    MOV #WDT_INT,&$FFEA
+    MOV &$FFDE,&{RC5TOLCD}+4
+    MOV #RC5_INT,&$FFDE
+    SUB #6,R15
+    MOV R14,4(R15)
+    MOV &$1800,2(R15)
+    MOV #0,0(R15)
+    MOV #200,R14
+    CALL #$403E
+    MOV @R15,&{RC5TOLCD}+6
+    ADD #4,R15
+    MOV @R15+,R14
+    CALL #INIT_R2L
+    LO2HI
+    ." RC5toLCD is running,"
+    ."  Type STOP to quit."
+    HI2LO
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+RST_SET
+ECHO
+
diff --git a/MSP430-FORTH/SD_430FR5994/RTC.4TH b/MSP430-FORTH/SD_430FR5994/RTC.4TH
new file mode 100644 (file)
index 0000000..9cbec52
--- /dev/null
@@ -0,0 +1,605 @@
+
+    CODE ABORT_RTC
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV &$180E,R14
+    BIT #$4000,R14
+    0<> IF MOV #0,R14 THEN
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    ABORT" target without LF_XTAL !"
+    RST_RET
+    ;
+
+    ABORT_RTC
+
+; --------------------
+; RTC.4th for MSP_EXP430FR5994
+; --------------------
+
+
+    MARKER {RTC}
+
+    [UNDEFINED] OR 
+    [IF]
+    CODE OR
+    BIS @R15+,R14
+    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] SWAP 
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,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] DUP 
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DROP 
+    [IF]
+    CODE DROP
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DEPTH 
+    [IF]
+    CODE DEPTH
+    MOV R14,-2(R15)
+    MOV #$1C80,R14
+    SUB R15,R14
+    RRA R14
+    SUB #2,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] >R 
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R> 
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 1+ 
+    [IF]
+    CODE 1+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 1- 
+    [IF]
+    CODE 1-
+    SUB #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U< 
+    [IF]
+    CODE U<
+    SUB @R15+,R14
+    0<> IF
+        MOV #-1,R14
+        U< IF
+            AND #0,R14
+        THEN
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO            
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] BEGIN 
+    [IF]
+
+    CODE BEGIN
+    MOV #$4032,R0
+    ENDCODE IMMEDIATE
+    
+    CODE UNTIL
+    MOV #$40AC,R9
+BW1 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    CODE AGAIN
+    MOV #$40B2,R9
+    GOTO BW1
+    ENDCODE IMMEDIATE
+    
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+    
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] CASE 
+    [IF]
+    : CASE 
+    0 
+    ; 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 
+    [THEN]
+
+    [UNDEFINED] + 
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] - 
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,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] 2* 
+    [IF]
+    CODE 2*
+    ADD R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] UM* 
+    [IF]
+    CODE UM*
+    MOV @R15,&$4C0
+BW1 MOV R14,&$4C8
+    MOV &$4E4,0(R15)
+    MOV &$4E6,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE M*
+    MOV @R15,&$4C2
+    GOTO BW1
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] UM/MOD 
+    [IF]
+    CODE UM/MOD
+    PUSH #DROP
+    MOV #$403E,R0
+    ENDCODE
+    [THEN]
+
+    : U*/
+    >R UM* R> UM/MOD SWAP DROP
+    ;
+
+    : U/MOD
+    0 SWAP UM/MOD
+    ;
+
+    : UMOD
+    U/MOD DROP
+    ;
+
+    : U/
+    U/MOD SWAP DROP
+    ;
+
+    [UNDEFINED] SPACES 
+    [IF]
+    : SPACES
+    BEGIN
+        ?DUP
+    WHILE
+        $20 EMIT
+        1-
+    REPEAT
+    ;
+    [THEN]
+
+    [UNDEFINED] U.R 
+    [IF]
+    : U.R
+    >R  <# 0 # #S #>  
+    R> OVER - 0 MAX SPACES TYPE
+    ;
+    [THEN]
+
+    CODE TIME?
+    BEGIN
+        BIT.B #$10,&$4A2
+    0<> UNTIL
+    COLON
+    $4B2 C@ 2 U.R ':' EMIT
+    $4B1 C@  2 U.R ':' EMIT
+    $4B0 C@  2 U.R 
+    ;
+    
+    : TIME!
+    2 DEPTH
+    U< IF
+        $4B0 C!
+        $4B1 C!
+        $4B2 C!
+    THEN
+    ." it is " TIME? 
+    ;
+
+    CODE DATE?
+    BEGIN
+        BIT.B #$10,&$4A2
+    0<> UNTIL
+    COLON
+
+
+
+    $4B3 C@
+    CASE
+    0 OF ." Sat"    ENDOF
+    1 OF ." Sun"    ENDOF
+    2 OF ." Mon"    ENDOF
+    3 OF ." Tue"    ENDOF
+    4 OF ." Wed"    ENDOF
+    5 OF ." Thu"    ENDOF
+    6 OF ." Fri"    ENDOF
+    ENDCASE  
+    $4B6 @
+    $4B5 C@
+    $4B4 C@
+    $20 EMIT
+    2 U.R '/' EMIT
+    2 U.R '/' EMIT
+    .
+    ;
+
+    : DATE!
+    2 DEPTH
+    U< IF
+        $4B6 !
+        $4B5 C!
+        $4B4 C!
+    THEN
+    $4B4 C@
+    $4B5 C@
+    $4B6 @
+    OVER 3 U<
+    IF 1 - SWAP 12 + SWAP 
+    THEN
+    100 U/MOD
+    DUP 4 U/ SWAP 2* -
+    SWAP DUP 4 U/ + +
+    SWAP 1+  13 5 U*/ + +
+    7 UMOD
+    $4B3 C!
+    ." we are on " DATE? 
+    ;
+
+    RST_SET
+
+    [UNDEFINED] S_ 
+    [IF]
+    CODE S_
+    MOV #0,&$1DC0
+    COLON
+    $401E ,
+    $20 WORD
+    HI2LO
+    MOV.B @R14,R14
+    ADD #1,R14
+    BIT #1,R14
+    ADDC R14,&$1DC8
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV #$20,&$1DC0
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ESC 
+    [IF]
+    CODE ESC
+    CMP #0,&$1DBC
+    0= IF MOV @R13+,R0
+    THEN
+    COLON          
+    $1B
+    POSTPONE LITERAL
+    POSTPONE EMIT
+    POSTPONE S_
+    POSTPONE TYPE
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] EXECUTE 
+    [IF]
+    CODE EXECUTE
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R1+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] EVALUATE 
+    [IF]
+    CODE EVALUATE
+    MOV #$1DC2,R9
+    MOV @R9+,R12
+    MOV @R9+,R11
+    MOV @R9+,R10
+    PUSHM #4,R13
+    LO2HI
+    [ ' \ 8 + , ]
+    HI2LO
+    MOV @R1+,&$1DC6
+    MOV @R1+,&$1DC4
+    MOV @R1+,&$1DC2
+    MOV @R1+,R13 
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CR 
+    [IF]
+
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    : SET_TIME
+    ESC [8;40;80t
+    39 0 DO CR LOOP
+    ESC [H
+    CR ." DATE (DMY): "
+    $1CE4 DUP #84
+    ['] ACCEPT >BODY
+    EXECUTE
+    EVALUATE
+    CR DATE!
+    CR ." TIME (HMS): "
+    $1CE4 DUP #84
+    ['] ACCEPT >BODY
+    EXECUTE
+    EVALUATE
+    CR TIME!
+    RST_RET
+    ;
+ECHO
+SET_TIME
diff --git a/MSP430-FORTH/SD_430FR5994/SD_TEST.4TH b/MSP430-FORTH/SD_430FR5994/SD_TEST.4TH
new file mode 100644 (file)
index 0000000..c01bdc3
--- /dev/null
@@ -0,0 +1,507 @@
+
+; -----------
+; SD_TEST.4th for MSP_EXP430FR5994
+; -----------
+
+    CODE ABORT_SD_TEST
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    [UNDEFINED] WRITE 
+    [IF]
+        1 ABORT" no SD_CARD_READ_WRITE addon!"
+    [THEN]
+    RST_RET
+    ;
+
+    ABORT_SD_TEST
+
+    MARKER {SD_TEST}
+
+    [UNDEFINED] EXIT 
+    [IF]
+    CODE EXIT
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SWAP 
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] >BODY 
+    [IF]
+    CODE >BODY
+    ADD #4,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 0= 
+    [IF]
+    CODE 0=
+    SUB #1,R14
+    SUBC R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] BEGIN 
+    [IF]
+    CODE BEGIN
+    MOV #$4032,R0
+    ENDCODE IMMEDIATE
+
+    CODE UNTIL
+    MOV #$40AC,R9
+BW1 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE AGAIN
+    MOV #$40B2,R9
+    GOTO BW1
+    ENDCODE IMMEDIATE
+
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO            
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I 
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] + 
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] - 
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,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] 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] DUP 
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    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] >R 
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R> 
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CONSTANT 
+    [IF]
+    : CONSTANT 
+    CREATE
+    HI2LO
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] STATE 
+    [IF]
+    $1DBC CONSTANT STATE
+    [THEN]
+
+    [UNDEFINED] CR 
+    [IF]
+    
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] U.R 
+    [IF]
+    : U.R
+    >R  <# 0 # #S #>  
+    R> OVER - 0 MAX SPACES TYPE
+    ;
+    [THEN]
+
+    [UNDEFINED] BASE 
+    [IF]
+    $1DBE  CONSTANT BASE
+    [THEN]
+
+    [UNDEFINED] DUMP 
+    [IF]
+    CODE DUMP
+    PUSH R13
+    PUSH &BASE
+    MOV #$10,&BASE
+    ADD @R15,R14
+    LO2HI
+    SWAP
+    DO
+        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
+        CR
+    $10 +LOOP
+    R> BASE !
+    ;
+    [THEN]
+
+    [UNDEFINED] HERE 
+    [IF]
+    CODE HERE
+    MOV #BEGIN,R0
+    ENDCODE
+    [THEN]
+
+
+    [UNDEFINED] DROP 
+    [IF]
+    CODE DROP
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 1+ 
+    [IF]
+    CODE 1+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] = 
+    [IF]
+    CODE =
+    SUB @R15+,R14
+    0<> IF
+        AND #0,R14
+        MOV @R13+,R0
+    THEN
+    XOR #-1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CASE 
+    [IF]
+    : CASE
+    0 
+    ; 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 
+    [THEN]
+
+    CODE SD_EMIT
+    CMP #$200,&$201E
+    U>= IF
+        CALL &WRITE+2
+    THEN
+    MOV &$201E,R8
+    MOV.B R14,$1E00(R8)
+    ADD #1,&$201E
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    : DOESWRITE
+    ['] SD_EMIT IS EMIT
+    $4000 HERE OVER - DUMP
+    ['] EMIT >BODY IS EMIT
+    CLOSE
+    ;
+
+    : SD_TEST
+    ECHO
+    $0D EMIT
+    CR
+    ." ----------" CR
+    ." Bootloader" CR
+    ." ----------" CR
+    ." ? Fast Forth Specifs" CR
+    ." 0 Set date and time" CR
+    ." 1 Load {UTILITY} words" CR
+    ." 2 Load {SD_TOOLS} words" CR
+    ." 3 Load {CORE_COMP} words" CR
+    ." 4 Load ANS core tests" CR
+    ." 5 Load a source file to make 10k program" CR
+    ." 6 Read it only (47k)" CR
+    ." 7 write FORTH dump in YOURFILE.TXT" CR
+    ." 8 append FORTH dump to YOURFILE.TXT" CR
+    ." 9 delete YOURFILE.TXT" CR
+    ." your choice: "
+    KEY DUP EMIT
+    NOECHO
+    {SD_TEST}
+    CASE
+    '?' OF  LOAD" FF_SPECS.4TH" ENDOF
+    '0' OF  LOAD" RTC.4TH"      ENDOF
+    '1' OF  LOAD" UTILITY.4TH"  ENDOF
+    '2' OF  LOAD" SD_TOOLS.4TH" ENDOF
+    '3' OF  LOAD" CORE_ANS.4TH" ENDOF
+    '4' OF  LOAD" CORETEST.4TH" ENDOF 
+    '5' OF  LOAD" PROG10K.4TH"  ENDOF
+    '6' OF  READ" PROG10K.4TH"
+            BEGIN READ
+            UNTIL               ENDOF
+    '7' OF  WRITE" YOURFILE.TXT"
+            DOESWRITE           ENDOF
+    '8' OF  APPEND" YOURFILE.TXT"
+            DOESWRITE           ENDOF
+    '9' OF  DEL" YOURFILE.TXT"  ENDOF
+    ENDCASE
+    CR
+    ;
+
+SD_TEST
diff --git a/MSP430-FORTH/SD_430FR5994/SD_TOOLS.4TH b/MSP430-FORTH/SD_430FR5994/SD_TOOLS.4TH
new file mode 100644 (file)
index 0000000..0ecbc08
--- /dev/null
@@ -0,0 +1,310 @@
+
+
+; ---------------------------------------------------------------
+; SD_TOOLS.4th for MSP_EXP430FR5994
+; BASIC TOOLS for SD Card : DIR FAT SECTOR CLUSTER
+; ---------------------------------------------------------------
+
+    CODE ABORT_SD_TOOLS
+    SUB #4,R15
+    MOV R14,2(R15)
+    [UNDEFINED] LOAD"       \ "
+    [IF]
+    MOV #-1,0(R15)
+    [ELSE]
+    MOV #0,0(R15)
+    [THEN]
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    ABORT" Builds FastForth with SD_CARD_LOADER addon.."
+    RST_RET
+    ;
+
+    ABORT_SD_TOOLS
+
+    MARKER {SD_TOOLS}
+
+    [UNDEFINED] HERE 
+    [IF]
+    CODE HERE
+    MOV #$4032,R0
+    ENDCODE
+    [THEN]
+
+    [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] 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] SWAP 
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,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] >R 
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [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
+    XOR #-1,R14
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U.R 
+    [IF]
+    : U.R
+    >R  <# 0 # #S #>  
+    R> OVER - 0 MAX SPACES TYPE
+    ;
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO            
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    [UNDEFINED] I 
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CR 
+    [IF]
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+        
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] DUMP 
+    [IF]
+    CODE DUMP
+    PUSH R13
+    PUSH &$1DBE
+    MOV #$10,&$1DBE
+    ADD @R15,R14
+    LO2HI
+    SWAP
+    $FFF0 AND
+    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> $1DBE !
+    ;
+    [THEN]
+
+    CODE SECTOR.
+BW1 MOV     R14,R9
+    MOV     @R15,R10
+    CALL    #R_SECT_WX
+    COLON
+    SPACE <# #S #> TYPE
+    $1E00 $200 DUMP CR ;
+
+    CODE CLUSTER.
+BW2 BIT.B   #4,&$260
+    0<> IF
+        MOV #SYS+$16,R0
+    THEN
+    MOV.B &$2012,R10
+    MOV @R15,R9
+    BEGIN
+        RRA R10
+    U< WHILE
+        ADD R9,R9
+        ADDC R14,R14
+    REPEAT  
+    ADD     &$2010,R9
+    MOV     R9,0(R15)      
+    ADDC    #0,R14
+    GOTO    BW1
+    ENDCODE
+
+    CODE FAT
+    SUB     #4,R15
+    MOV     R14,2(R15)
+    MOV     &$2008,0(R15)
+    MOV     #0,R14
+    GOTO    BW1
+    ENDCODE
+
+    CODE DIR
+    SUB     #4,R15
+    MOV     R14,2(R15)
+    MOV     &$202C,0(R15)
+    MOV     &$202E,R14
+    GOTO    BW2
+    ENDCODE
+
+    RST_SET ECHO
similarity index 50%
rename from MSP430-FORTH/MSP_EXP430FR5994/TESTXASM.4TH
rename to MSP430-FORTH/SD_430FR5994/TESTXASM.4TH
index 6a24972..5bc8b99 100644 (file)
 ; TESTXASM.4th for MSP_EXP430FR5994
 ; -----------------------------------------------------------------------
 
-CODE ABORT_TEST_ASMX
-SUB #2,R15
-MOV R14,0(R15)
-MOV &$180E,R14
-SUB #308,R14
-COLON
-$0D EMIT
-ABORT" FastForth V3.8 please!"
-PWR_STATE
-;
-
-ABORT_TEST_ASMX
-
-[UNDEFINED] + [IF]
-CODE +
-ADD @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
-CODE -
-SUB @R15+,R14
-XOR #-1,R14
-ADD #1,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] MAX [IF]
+    CODE ABORT_TEST_ASMX
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    RST_RET
+    ;
+
+    ABORT_TEST_ASMX
+
+    MARKER {TEST_ASMX}
+
+    [UNDEFINED] + 
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] - 
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
 
-CODE MAX
+    [UNDEFINED] MAX 
+    [IF]
+    CODE MAX
     CMP @R15,R14
     S<  ?GOTO FW1
 BW1 ADD #2,R15
     MOV @R13+,R0
-ENDCODE
-
-CODE MIN
+    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 
-CREATE
-HI2LO
-MOV R14,-2(R10)
-MOV @R15+,R14
-MOV @R1+,R13
-MOV @R13+,R0
-ENDCODE
-[THEN]
+    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
+    [UNDEFINED] C@ 
+    [IF]
+    CODE C@
+    MOV.B @R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CONSTANT 
+    [IF]
+    : CONSTANT 
+    CREATE
+    HI2LO
+    MOV R14,-2(R10)
+    MOV @R15+,R14
     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] SWAP [IF]
-CODE SWAP
-MOV @R15,R10
-MOV R14,0(R15)
-MOV R10,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] >R [IF]
-CODE >R
-PUSH R14
-MOV @R15+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
-CODE R>
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1+,R14
-MOV @R13+,R0
-ENDCODE
-[THEN]
+    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] SWAP 
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] U.R [IF]
-: U.R
-  >R  <# 0 # #S #>  
-  R> OVER - 0 MAX SPACES TYPE
-;
-[THEN]
+    [UNDEFINED] >R 
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R> 
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U.R 
+    [IF]
+    : U.R
+    >R  <# 0 # #S #>  
+    R> OVER - 0 MAX SPACES TYPE
+    ;
+    [THEN]
+
+    [UNDEFINED] DO 
+    [IF]
+
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
 
-[UNDEFINED] DO [IF]
-CODE DO
-SUB #2,R15
-MOV R14,0(R15)
-ADD #2,&$1DC6
-MOV &$1DC6,R14
-MOV #$403E,-2(R14)
-ADD #2,&$1C00
-MOV &$1C00,R10
-MOV #0,0(R10)
-MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE LOOP
-    MOV #$4060,R9
-BW1 ADD #4,&$1DC6
-    MOV &$1DC6,R10
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
     MOV R9,-4(R10)
     MOV R14,-2(R10)
-BEGIN
-    MOV &$1C00,R14
-    SUB #2,&$1C00
-    MOV @R14,R14
-    CMP #0,R14
-0<> WHILE
-    MOV R10,0(R14)
-REPEAT
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
     MOV @R15+,R14
     MOV @R13+,R0
-ENDCODE IMMEDIATE
-
-CODE +LOOP
-MOV #$404E,R9
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
-CODE I
-SUB #2,R15
-MOV R14,0(R15)
-MOV @R1,R14
-SUB 2(R1),R14
-MOV @R13+,R0
-ENDCODE
-[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]
+    ENDCODE IMMEDIATE
+    
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I 
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CR 
+    [IF]
+    DEFER CR
+    
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] BASE 
+    [IF]
+    $1DBE  CONSTANT BASE
+    [THEN]
+
+    [UNDEFINED] DUMP 
+    [IF]
+    CODE DUMP
+    PUSH R13
+    PUSH &BASE
+    MOV #$10,&BASE
+    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> BASE !
+    ;
+    [THEN]
+
+    [UNDEFINED] HERE 
+    [IF]
+    CODE HERE
+    MOV #$4032,R0
+    ENDCODE
+    [THEN]
+
+    RST_SET
+
+
+    ECHO
+
+; -----------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER: CALLA (without extended word)
+; -----------------------------------------------------------------------------
+; absolute and immediate instructs. must be written as $x.xxxx (DOUBLE numbers)
+; indexed instructions must be written as $xxxx(REG) (single numbers)
+; -----------------------------------------------------------------------------
 
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #$4028,R0
+HERE
+CODE TT
+CALLA R10
 ENDCODE
-[THEN]
-
-PWR_HERE
-
-
-ECHO
-; --------------------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV : 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)
-; --------------------------------------------------------------------------------
+HERE OVER - DUMP
+; you should see:       4A 13
+RST_RET
 
 HERE
-CODE TEST
-MOVA @R10,R11
+CODE TT
+CALLA $3456(R10)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       5A 13  56 34
+RST_RET
 
 HERE
-CODE TEST
-MOVA @R11+,R10
+CODE TT
+CALLA 0(R15)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>1A 0B<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       5F 13  00 00
+RST_RET
 
 HERE
-CODE TEST
-MOVA &$1.2345,R11
+CODE TT
+CALLA @R10
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>2B 01 45 23<04 44 55 4D
-PWR_STATE
+; you should see:       6A 13
+RST_RET
 
 HERE
-CODE TEST
-MOVA $.1234(R10),R12
+CODE TT
+CALLA @R15
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>3C 0A 34 12<04 44 55 4D
-PWR_STATE
+; you should see:       6F 13
+RST_RET
 
 HERE
-CODE TEST
-MOVA R11,&$1.2345
+CODE TT
+CALLA @R10+
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>61 0B 45 23<04 44 55 4D
-PWR_STATE
+; you should see:       7A 13
+RST_RET
 
 HERE
-CODE TEST
-MOVA R12,$.1234(R10)
+CODE TT
+CALLA &$2.3456
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>7A 0C 34 12<04 44 55 4D
-PWR_STATE
+; you should see:       82 13  56 34
+RST_RET
 
 HERE
-CODE TEST
-MOVA #$0.1,R12
+CODE TT
+CALLA #$5.6789
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>8C 00 01 00<04 44 55 4D
-PWR_STATE
+; you should see:       B5 13  89 67
+RST_RET
+
+; -----------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV : Adda|Cmpa|Mova|Suba
+; -----------------------------------------------------------------------------
+; absolute and immediate instructs. must be written as $x.xxxx (DOUBLE numbers)
+; indexed instructions must be written as $xxxx(REG) (single numbers)
+; -----------------------------------------------------------------------------
 
 HERE
-CODE TEST
-CMPA #$1.2345,R12
+CODE TT
+MOVA @R10,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>9C 01 45 23<04 44 55 4D
-PWR_STATE
+; you should see:       0B 0A
+RST_RET
 
 HERE
-CODE TEST
-ADDA #$2.3456,R12
+CODE TT
+MOVA @R11+,R10
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>AC 02 56 34<04 44 55 4D
-PWR_STATE
+; you should see:       1A 0B
+RST_RET
 
 HERE
-CODE TEST
-SUBA #$3.4567,R12
+CODE TT
+MOVA &$1.2345,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>BC 03 67 45<04 44 55 4D
-PWR_STATE
+; you should see:       2B 01  45 23
+RST_RET
 
+HERE
+CODE TT
+MOVA 2(R15),R14
+ENDCODE
+HERE OVER - DUMP
+; you should see:       3E 0F  02 00
+RST_RET
 
+HERE
+CODE TT
+MOVA $1234(R10),R12
+ENDCODE
+HERE OVER - DUMP
+; you should see:       3C 0A  34 12
+RST_RET
 
 HERE
-CODE TEST
-MOVA R10,R11
+CODE TT
+MOVA R11,&$1.2345
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>CB 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       61 0B  45 23
+RST_RET
 
 HERE
-CODE TEST
-CMPA R10,R11
+CODE TT
+MOVA R14,0(R15)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>DB 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       7F 0E  00 00
+RST_RET
 
 HERE
-CODE TEST
-ADDA R10,R11
+CODE TT
+MOVA R12,$1234(R10)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>EB 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       7A 0C  34 12
+RST_RET
 
 HERE
-CODE TEST
-SUBA R10,R11
+CODE TT
+MOVA #$0.1,R12
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>FB 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       8C 00  01 00
+RST_RET
 
-; --------------------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER: 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)
-; --------------------------------------------------------------------------------
+HERE
+CODE TT
+CMPA #$1.2345,R12
+ENDCODE
+HERE OVER - DUMP
+; you should see:       9C 01  45 23
+RST_RET
 
 HERE
-CODE TEST
-CALLA R10
+CODE TT
+ADDA #$2.3456,R12
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>4A 13<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       AC 02  56 34
+RST_RET
 
 HERE
-CODE TEST
-CALLA $.3456(R10)
+CODE TT
+SUBA #$3.4567,R12
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>5A 13 56 34<04 44 55 4D
-PWR_STATE
+; you should see:       BC 03  67 45
+RST_RET
 
 HERE
-CODE TEST
-CALLA @R10
+CODE TT
+MOVA R10,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>6A 13<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       CB 0A
+RST_RET
 
 HERE
-CODE TEST
-CALLA @R10+
+CODE TT
+CMPA R10,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>7A 13<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       DB 0A
+RST_RET
 
 HERE
-CODE TEST
-CALLA &$2.3456
+CODE TT
+ADDA R10,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>82 13 56 34<04 44 55 4D
-PWR_STATE
+; you should see:       EB 0A
+RST_RET
 
 HERE
-CODE TEST
-CALLA #$5.6789
+CODE TT
+SUBA R10,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>B5 13 89 67<04 44 55 4D
-PWR_STATE
+; you should see:       FB 0A
+RST_RET
 
-; --------------------------------------------------------------------------------
+; -----------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES V extended double operand
-; --------------------------------------------------------------------------------
-; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
+; -----------------------------------------------------------------------------
+; absolute and immediate instructs. must be written as $x.xxxx (DOUBLE numbers)
 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
-; --------------------------------------------------------------------------------
+; -----------------------------------------------------------------------------
 
 HERE
-CODE TEST
+CODE TT
 MOV R12,R11
 MOVX R12,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 4C 40 18 0B 4C<04 44
-PWR_STATE
+; you should see:       0B 4C  40 18 0B 4C
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADD R11,R11
 ADDX.A R11,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 5B 00 18 4B 5B<04 44
-PWR_STATE
+; you should see:       0B 5B  00 18 4B 5B
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADD R11,R11
 RPT R9
 ADDX.A R11,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 5B 89 18 4B 5B<04 44
-PWR_STATE
+; you should see:       0B 5B  89 18 4B 5B
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADD R11,R11
 RPT #8
 ADDX.A R11,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 5B 07 18 4B 5B<04 44
-PWR_STATE
+; you should see:       0B 5B  07 18 4B 5B
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADDC #$9876,R11
 ADDCX.A #$5.9876,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>3B 60 76 98 80 1A 7B 60
-;     76 98<04 44 55 4D
-PWR_STATE
+; you should see:       3B 60  76 98 80 1A 7B 60 76 98
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADDC &$9876,R11
 ADDCX.A &$5.9876,R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>1B 62 76 98 80 1A 5B 62
-;     76 98<04 44 55 4D
-PWR_STATE
+; you should see:       1B 62  76 98 80 1A 5B 62 76 98
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 XOR.B $5432(R12),R11
 XORX.B $6.5432(R12),R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>5B EC 32 54 46 18 5B EC
-;     32 54<04 44 55 4D
-PWR_STATE
+; you should see:       5B EC  32 54 46 18 5B EC 32 54
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 SUBC R11,$5432(R12)
 SUBCX.A R11,$6.5432(R12)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>8C 7B 32 54 06 18 CC 7B
-;     32 54<04 44 55 4D
-PWR_STATE
+; you should see:       8C 7B  32 54 06 18 CC 7B 32 54
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 XOR.B R11,$5432(R12)
 XORX.B R11,$6.5432(R12)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>CC EB 32 54 46 18 CC EB
-;     32 54<04 44 55 4D
-PWR_STATE
-
-; --------------------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES VI extended single operand (take count of RPT)
-; --------------------------------------------------------------------------------
-; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
+; you should see:       CC EB  32 54 46 18 CC EB 32 54
+RST_RET
+
+; -----------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES VI extended single operand 
+; -----------------------------------------------------------------------------
+; absolute and immediate instructs. must be written as $x.xxxx (DOUBLE numbers)
 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
-; --------------------------------------------------------------------------------
+; -----------------------------------------------------------------------------
 
 HERE
-CODE TEST
+CODE TT
 RRA R9
 RRAX R9
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>09 11 40 18 09 11<04 44
-PWR_STATE
+; you should see:       09 11  40 18 09 11
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC @R9
 RRCX.A @R9
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>29 10 00 18 69 10<04 44
-PWR_STATE
+; you should see:       29 10  00 18 69 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC @R12
 RRCX.A @R12
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>2C 10 00 18 6C 10<04 44
-PWR_STATE
+; you should see:       2C 10  00 18 6C 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC @R9+
 RRUX.A @R9+
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>39 10 00 19 79 10<04 44
-PWR_STATE
+; you should see:       39 10  00 19 79 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC R11
 RPT #9
 RRUX.A R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 10 08 19 4B 10<04 44
-PWR_STATE
+; you should see:       0B 10  08 19 4B 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC R11
 RPT R9
 RRUX.A R11
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 10 89 19 4B 10<04 44
-PWR_STATE
+; you should see:       0B 10  89 19 4B 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 PUSH #$2345
 PUSHX #$0.2345
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>30 12 45 23 40 18 30 12
-;     45 23<04 44 55 4D
-PWR_STATE
+; you should see:       30 12  45 23 40 18 30 12 45 23
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 PUSH &$5678
 PUSHX.A &$4.5678
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>12 12 78 56 00 1A 52 12
-;     78 56<04 44 55 4D
-PWR_STATE
+; you should see:       12 12  78 56 00 1A 52 12 78 56
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 PUSH.B &$33
 PUSHX.B &$.33
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>52 12 33 00 40 18 52 12
-;     33 00<04 44 55 4D
-PWR_STATE
+; you should see:       52 12  33 00 40 18 52 12 33 00
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 PUSH.B $3344(R11)
 PUSHX.B $.3344(R11)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>5B 12 44 33 40 18 5B 12
-;     44 33<04 44 55 4D
-PWR_STATE
+; you should see:       5B 12  44 33 40 18 5B 12 44 33
+RST_RET
+
+    [UNDEFINED] BASE 
+    [IF]
+    ' # 2 +  CONSTANT BASE
+    [THEN]
 
 
 
 : %.
-$1DDC @ %10 $1DDC ! SWAP 8 EMIT . $1DDC !
+BASE @ %10 BASE ! SWAP 8 EMIT . BASE !
+RST_RET
 ;
 
 : %U.
-$1DDC @ %10 $1DDC ! SWAP 8 EMIT U. $1DDC ! ;
-
-PWR_HERE
+BASE @ %10 BASE ! SWAP 8 EMIT U. BASE ! 
+RST_RET
+;
 
+RST_SET
 
 ; ================
 ; RRUX test
@@ -618,9 +702,8 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRUX_T ; you should see %111100001111000 --> %
-
-PWR_STATE
+RRUX_T ;            %
+; you should see:   %111100001111000
 
 ; ================
 ; RRUX repeat test
@@ -637,9 +720,8 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRUX_T ; you should see %111100001111000 --> %
-
-PWR_STATE
+RRUX_T ;            %
+; you should see:   %111100001111000
 
 CODE RRUX_T
 MOV #$F0F0,R8
@@ -651,9 +733,8 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRUX_T ; you should see %111100001111 --> %
-
-PWR_STATE
+RRUX_T ; -->        %
+; you should see:   %111100001111
 
 CODE RRUX_T
 MOV #$F0F0,R8
@@ -665,16 +746,13 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRUX_T ; you should see %11110000 --> %
-
-PWR_STATE
-
+RRUX_T ;            %
+; you should see:   %11110000
 
 ; ================
 ; RRCX test
 ; ================
 
-
 CODE RRCX_T
 MOV #$8000,R8
 BIC #1,R2
@@ -685,9 +763,8 @@ MOV R8,R14
 MOV #%U.,R0
 ENDCODE
 
-RRCX_T ; you should see %100000000000000 --> %
-
-PWR_STATE
+RRCX_T ;            %
+; you should see:   %100000000000000
 
 ; ================
 ; RRCX repeat test
@@ -704,9 +781,8 @@ MOV R8,R14
 MOV #%U.,R0
 ENDCODE
 
-RRCX_T ; you should see %100000000000000 --> %
-
-PWR_STATE
+RRCX_T ;            %
+; you should see:   %100000000000000
 
 CODE RRCX_T
 MOV #$8000,R8
@@ -719,15 +795,13 @@ MOV R8,R14
 MOV #%U.,R0
 ENDCODE
 
-RRCX_T ; you should see %10000000 --> %
-
-PWR_STATE
+RRCX_T ;            %
+; you should see:   %10000000
 
 ; ================
 ; RRAX test
 ; ================
 
-
 CODE RRAX_T
 MOV #$8000,R8
 RRAX R8
@@ -737,9 +811,8 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRAX_T ; you should see %-100000000000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-100000000000000
 
 ; ================
 ; RRAX repeat test
@@ -756,9 +829,8 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRAX_T ; you should see %-100000000000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-100000000000000
 
 CODE RRAX_T
 MOV #$8000,R8
@@ -770,9 +842,8 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRAX_T ; you should see %-10000000000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-10000000000000
 
 CODE RRAX_T
 MOV #$8000,R8
@@ -784,9 +855,8 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRAX_T ; you should see %-1000000000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-1000000000000
 
 CODE RRAX_T
 MOV #$8000,R8
@@ -798,9 +868,8 @@ MOV R8,R14
 MOV #%.,R0
 ENDCODE
 
-RRAX_T ; you should see %-100000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-100000000
 
 ; ================
 ; RLAX test
@@ -818,8 +887,6 @@ ENDCODE
 
 RLAX_T ; you should see -2 -->
 
-PWR_STATE
-
 ; ================
 ; RLAX repeat test
 ; ================
@@ -837,8 +904,6 @@ ENDCODE
 
 RLAX_T ; you should see -2 -->
 
-PWR_STATE
-
 CODE RLAX_T
 MOV #-1,R8
 RPT #2
@@ -851,8 +916,6 @@ ENDCODE
 
 RLAX_T ; you should see -4 -->
 
-PWR_STATE
-
 CODE RLAX_T
 MOV #-1,R8
 RPT #3
@@ -865,8 +928,6 @@ ENDCODE
 
 RLAX_T ; you should see -8 -->
 
-PWR_STATE
-
 CODE RLAX_T
 MOV #-1,R8
 RPT #8
@@ -879,8 +940,6 @@ ENDCODE
 
 RLAX_T ; you should see -256 -->
 
-PWR_STATE
-
 ; ================
 ; ADDX test
 ; ================
@@ -898,8 +957,6 @@ ENDCODE
 
 ADDX_T ; you should see -1 -->
 
-PWR_STATE
-
 ; ================
 ; ADDX repeat test
 ; ================
@@ -918,8 +975,6 @@ ENDCODE
 
 ADDX_T ; you should see -1 -->
 
-PWR_STATE
-
 CODE ADDX_T
 MOV #0,R8
 MOV #-1,R9
@@ -933,8 +988,6 @@ ENDCODE
 
 ADDX_T ; you should see -2 -->
 
-PWR_STATE
-
 CODE ADDX_T
 MOV #0,R8
 MOV #-1,R9
@@ -948,9 +1001,6 @@ ENDCODE
 
 ADDX_T ; you should see -8 -->
 
-PWR_STATE
-
-
 ; ================
 ; SUBX test
 ; ================
@@ -968,8 +1018,6 @@ ENDCODE
 
 SUBX_T ; you should see 1 -->
 
-PWR_STATE
-
 ; ================
 ; SUBX repeat test
 ; ================
@@ -988,8 +1036,6 @@ ENDCODE
 
 SUBX_T ; you should see 1 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #0,R8
 MOV #-1,R9
@@ -1003,8 +1049,6 @@ ENDCODE
 
 SUBX_T ; you should see 2 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #0,R8
 MOV #-1,R9
@@ -1018,8 +1062,6 @@ ENDCODE
 
 SUBX_T ; you should see 8 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #15,R10
 MOV #0,R8
@@ -1034,8 +1076,6 @@ ENDCODE
 
 SUBX_T ; you should see 16 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #32,R10
 MOV #0,R8
@@ -1050,8 +1090,6 @@ ENDCODE
 
 SUBX_T ; you should see 1 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #33,R10
 MOV #0,R8
@@ -1066,4 +1104,4 @@ ENDCODE
 
 SUBX_T ; you should see 2 -->
 
-RST_STATE
+{TEST_ASMX}
diff --git a/MSP430-FORTH/SD_430FR5994/TSTWORDS.4TH b/MSP430-FORTH/SD_430FR5994/TSTWORDS.4TH
new file mode 100644 (file)
index 0000000..3fe2fef
--- /dev/null
@@ -0,0 +1,215 @@
+
+    CODE ABORT_TSTWORDS
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    RST_RET
+    ;
+
+    ABORT_TSTWORDS
+
+    [DEFINED] {TSTWORDS} [IF]  {TSTWORDS} [THEN]
+
+    MARKER {TSTWORDS}
+
+
+    [UNDEFINED] 0= 
+    [IF]
+    CODE 0=
+    SUB #1,R14
+    SUBC R14,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DUP
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] ELSE 
+    [IF]
+    CODE ELSE
+    ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV #$40B2,-4(R10)
+    MOV R10,0(R14)
+    SUB #2,R10
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] SWAP 
+    [IF]
+    CODE SWAP
+    PUSH R14
+    MOV @R15,R14
+    MOV @R1+,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] BEGIN 
+    [IF]
+
+    CODE BEGIN
+    MOV #$4032,R0
+    ENDCODE IMMEDIATE
+    
+    CODE UNTIL
+    MOV #$40AC,R9
+BW1 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    CODE AGAIN
+    MOV #$40B2,R9
+    GOTO BW1
+    ENDCODE IMMEDIATE
+    
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+    
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO 
+    [IF]
+
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    RST_SET
+LOAD" \misc\TestASM.4th"
+
+ECHO
+
+
+: LOOP_TEST 8 0 DO I . LOOP 
+;
+
+LOOP_TEST
+
+
+: LOOP_TEST1
+    BEGIN   DUP U. 1 -
+    ?DUP
+    0= UNTIL 
+;
+: FIND_TEST
+   $20 WORD
+       50000 0 
+       DO
+           DUP   
+           FIND DROP DROP
+       LOOP
+    FIND
+    0=  IF ABORT" <-- not found !"
+        ELSE ABORT" <-- found !"
+        THEN 
+ ;
+\ 
\ No newline at end of file
diff --git a/MSP430-FORTH/SD_430FR5994/UARTI2CS.4TH b/MSP430-FORTH/SD_430FR5994/UARTI2CS.4TH
new file mode 100644 (file)
index 0000000..4abc21f
--- /dev/null
@@ -0,0 +1,338 @@
+
+; ---------------------------------------------------------
+; UARTI2CS.4th for MSP_EXP430FR5994
+; ---------------------------------------------------------
+
+    CODE ABORT_UARTI2CS
+    SUB #4,R15
+    MOV R14,2(R15)
+    MOV &$180E,R14
+    BIT #$3C00,R14
+    0<> IF MOV #0,R14 THEN
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    ABORT" <-- Ouch! unexpected I2C_FastForth target!"
+    RST_RET
+    ;
+
+    ABORT_UARTI2CS
+
+    MARKER {UARTI2CS}
+    10 ALLOT
+
+    [UNDEFINED] TSTBIT  
+    [IF]
+    CODE TSTBIT
+    MOV @R15+,R9
+    AND @R9,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    HDNCODE I2CM_STOP
+    BIS.B #2,&$265
+    MOV R0,R0
+    BIS.B #4,&$265
+    MOV R0,R0
+    BIC.B #2,&$265
+    MOV R0,R0
+    BIC.B #4,&$265
+    MOV @R1+,R0
+    ENDCODE
+
+    CODE REMOVE_U2I
+BW1
+    BIC.B #1,&$202
+    BIC.B #1,&$204
+    BIC.B #2,&$202
+    BIC.B #2,&$204
+    CALL #I2CM_STOP
+    MOV #6,R10
+    BIC.B R10,&$265
+    BIS.B R10,&$263
+    BIS.B R10,&$267
+    MOV #0,&$3C0
+    MOV #0,&$3C6
+    BIC.B #$80,&$20C
+    BIC.B #$80,&$204
+    BIC.B #$40,&$21A
+    CMP #$4082,&{UARTI2CS}-2
+    0<> IF
+        MOV #{UARTI2CS},R10
+        MOV #$4082,-2(R10)
+        MOV @R10+,&$183E
+        MOV @R10+,&$1840
+        MOV @R10+,&$FFF0
+        MOV @R10+,&$FFDE
+    THEN
+    MOV #1,R14
+    MOV #UART_WARM+4,R0
+    ENDCODE
+
+    HDNCODE I2CM_START
+    BIS.B   #4,&$265
+    BIS.B   &{UARTI2CS}+8,R9
+    MOV R0,R0
+    BIS.B   #2,&$265
+    MOV.B #8,R10
+    BEGIN
+        ADD.B R9,R9
+        U>= IF
+            BIC.B #4,&$265
+        ELSE
+            BIS.B #4,&$265
+        THEN
+        BIC.B #2,&$265
+        BIT.B #4,&$261
+        BIS.B #2,&$265
+        0= IF
+            BIT.B #4,&$265
+            0= IF
+                BIS.B #6,&$265
+                BIC.B #6,&I2CSM_IES
+                BEGIN
+                    BIT.B #6,&I2CSM_IFG
+                    BIC.B #6,&I2CSM_IFG
+                    0<> IF
+                        MOV #9,R10
+                    ELSE
+                        $3C00 ,
+                        $3C00 ,
+                    THEN
+                SUB #1,R10
+                0= UNTIL
+                ADD #2,R1
+                MOV @R1+,R0
+            THEN
+        THEN
+        SUB #1,R10
+    0= UNTIL
+    BIC.B #4,&$265
+    BIC.B #2,&$265
+    BEGIN
+        BIT.B #2,&$261
+    0<> UNTIL
+    BIT.B #4,&$261
+    BIS.B #2,&$265
+    MOV @R1+,0(R1)
+    MOV @R1+,R0
+    ENDCODE
+
+
+    HDNCODE U2I_TERM_INT
+    ADD #4,R1
+    BEGIN
+        MOV.B &$5CC,R8
+        MOV.B R8,$1CE4(R11)
+        ADD #1,R11
+        CMP.B R8,R12
+    0<> WHILE
+        CMP #4,R10
+        0<> IF
+            BEGIN
+                BIT #2,&$5DC
+            0<> UNTIL
+            MOV.B R8,&$5CE
+        THEN
+        BEGIN
+            BIT #1,&$5DC
+        0<> UNTIL
+    REPEAT
+    CALL #ACCEPT+$2A
+    BEGIN
+        BIT #1,&$5DC
+    0<> UNTIL
+BW2
+    MOV.B &$5CC,R12
+    MOV.B R12,$1CE4(R11)
+    PUSH R0
+    MOV #0,R9
+    CALL #I2CM_START
+    0<> ?GOTO FW2
+    BIS.B #1,&$202
+    MOV #$1CE4,R8
+    BEGIN
+        MOV.B @R8,R9
+        MOV.B #8,R10
+        BEGIN
+            ADD.B R9,R9
+            U>= IF
+                BIC.B #4,&$265
+            ELSE
+                BIS.B #4,&$265
+            THEN
+            BIC.B #2,&$265
+            MOV R0,R0
+            BIS.B #2,&$265
+            SUB #1,R10
+        0= UNTIL
+        BIC.B #4,&$265
+        BIC.B #2,&$265
+        BEGIN
+            BIT.B #2,&$261
+        0<> UNTIL
+        BIT.B #4,&$261
+        BIS.B #2,&$265
+    0= WHILE
+        CMP.B @R8+,R12
+    0= UNTIL
+    THEN
+    BIC.B #1,&$202
+    GOTO FW1
+    ENDCODE
+
+    HDNCODE 500MS_INT
+    ADD #4,R1
+FW1
+FW2
+    PUSH R0
+    BEGIN
+        BIT #8,&$5CA
+        0<> ?GOTO BW1
+        BIT.B #$20,&$240
+        0= ?GOTO BW1
+        BIC.B #2,&$265
+        MOV #1,R9
+            CALL #I2CM_START
+        0<> IF
+            CALL #I2CM_STOP
+            MOV #'.',&$5CE
+            MOV #$4000,R0
+        THEN
+        BIS.B #2,&$202
+        BEGIN
+            BEGIN
+                BIC.B #4,&$265
+                MOV.B #8,R10
+                BEGIN
+                    BIC.B #2,&$265
+                    BIT.B #4,&$261
+                    BIS.B #2,&$265
+                    ADDC.B R9,R9
+                    SUB #1,R10
+                0= UNTIL
+                CMP.B #-1,R9
+                0= IF
+                    MOV #2,R9
+                THEN
+                CMP.B #8,R9
+            U>= WHILE
+                BIS.B #4,&$265
+                BIC.B #2,&$265
+                BEGIN
+                    BIT.B #2,&$261
+                0<> UNTIL
+                BIS.B #2,&$265
+                BEGIN
+                    BIT #2,&$5DC
+                0<> UNTIL
+                MOV.B R9,&$5CE
+            REPEAT
+            CMP.B #4,R9
+            U>= IF
+                MOV.B R9,&{UARTI2CS}+9
+                BIS.B #4,&$265
+            THEN
+            BIC.B #2,&$265
+            BEGIN
+                BIT.B #2,&$261
+            0<> UNTIL
+            BIT.B #4,&$261
+            BIS.B #2,&$265
+        0<> UNTIL
+        CMP.B #2,R9
+    U>= WHILE
+        0= IF
+            MOV.B #0,&{UARTI2CS}+9
+            CALL #KEY+$8
+            BEGIN
+                BIC #1,&$5DC
+                MOV &$1800,R9
+               BEGIN MOV #65,R10
+                   BEGIN SUB #1,R10
+                   0= UNTIL
+                   SUB #1,R9
+               0= UNTIL
+                BIT #1,&$5DC
+            0= UNTIL
+        THEN    
+    REPEAT
+    CALL #I2CM_STOP
+    BIC.B #2,&$202
+    CMP.B #0,R9
+    0= IF
+        MOV #$4000,R0
+    THEN
+    CALL #KEY+$8
+    BEGIN
+        BIT #1,&$5DC
+    0<> UNTIL
+    CALL #ACCEPT+$2A
+    MOV #0,R11
+    GOTO BW2
+    ENDCODE
+
+    HDNCODE SLEEP_U2I
+    $180E $4000 TSTBIT
+    [IF]    MOV #%1_1001_0100,&$3C0 ; if ACLK=LFXTAL
+    [ELSE]  MOV #%1_0001_0100,&$3C0 ; if ACLK=VLO
+    [THEN]
+    MOV.B &{UARTI2CS}+9,R10
+    MOV #$0D,R12
+    MOV #0,R11
+    BIC #$40,&$21C
+    MOV &{UARTI2CS}+2,R0
+    ENDCODE
+
+    HDNCODE INIT_U2I
+    MOV #4096,&$3D2
+    MOV #$60,&$3C6
+    MOV #4095,&$3D6
+    BIS.B #$80,&$204
+    BIS.B #$80,&$20C
+    BIS.B #$40,&$21A  
+    BIC.B #6,&$267
+    BIC.B #6,&$263
+    BIS.B #1,&$204
+    BIS.B #2,&$204
+    CALL &{UARTI2CS}
+    CMP #$0E,R14
+    0<> IF
+        CMP #$0A,R14
+        U>= ?GOTO BW1
+    THEN
+    BIS.B #$40,&$21C
+    MOV #ALLOT+$8,R0
+    ENDCODE
+
+    : UARTI2CS
+    $0D EMIT $0A EMIT
+    HI2LO
+    MOV @R1+,R13
+    BEGIN
+        BIT #1,&$5CA
+    0= UNTIL
+    CMP #$4082,&{UARTI2CS}-2
+    0= IF
+        MOV #REMOVE_U2I,&{UARTI2CS}-2
+        MOV &$183E,&{UARTI2CS}
+        MOV &$1840,&{UARTI2CS}+2
+        MOV &$FFF0,&{UARTI2CS}+4
+        MOV &$FFDE,&{UARTI2CS}+6
+        MOV R14,&{UARTI2CS}+8
+    THEN
+    MOV #0,R14
+    MOV #INIT_U2I,&$183E
+    MOV #SLEEP_U2I,&$1840
+    MOV #U2I_TERM_INT,&$FFF0
+    MOV #500MS_INT,&$FFDE
+    MOV #INIT_U2I,R0
+    ENDCODE
+
+    RST_SET ECHO    
+
+    $12 UARTI2CS   ; TERATERM(Alt-B) or USB_to_I2C_bridge(SW2) to quit
diff --git a/MSP430-FORTH/SD_430FR5994/UTILITY.4TH b/MSP430-FORTH/SD_430FR5994/UTILITY.4TH
new file mode 100644 (file)
index 0000000..fa56409
--- /dev/null
@@ -0,0 +1,527 @@
+
+
+; --------------------------------
+; UTILITY.4th for MSP_EXP430FR5994
+; --------------------------------
+
+    CODE ABORT_UTILITY
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$180A,R14
+    SUB #309,R14
+    COLON
+    $0D EMIT
+    ABORT" FastForth V3.9 please!"
+    RST_RET
+    ;
+
+    ABORT_UTILITY
+
+    MARKER {UTILITY} 
+
+    [UNDEFINED] EXIT 
+    [IF]
+    CODE EXIT
+    MOV @R1+,R13
+    MOV @R13+,R0
+
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] SWAP 
+    [IF]
+    CODE SWAP
+    MOV @R15,R10
+    MOV R14,0(R15)
+    MOV R10,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] U< 
+    [IF]
+    CODE U<
+    SUB @R15+,R14
+    0<> IF
+        MOV #-1,R14
+        U< IF
+            AND #0,R14
+        THEN
+    THEN
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] IF 
+    [IF]
+    CODE IF
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV &$1DC8,R14
+    ADD #4,&$1DC8
+    MOV #$40AC,0(R14)
+    ADD #2,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    CODE THEN
+    MOV &$1DC8,0(R14)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] BEGIN [IF]
+    CODE BEGIN
+    MOV #$4032,R0
+    ENDCODE IMMEDIATE
+    
+    CODE UNTIL
+    MOV #$40AC,R9
+BW1 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    CODE AGAIN
+    MOV #$40B2,R9
+    GOTO BW1
+    ENDCODE IMMEDIATE
+    
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+    
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO 
+    [IF]
+    HDNCODE XDO
+    MOV #$8000,R9
+    SUB @R15+,R9
+    MOV R14,R8
+    ADD R9,R8
+    PUSHM #2,R9
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE DO
+    SUB #2,R15
+    MOV R14,0(R15)
+    ADD #2,&$1DC8
+    MOV &$1DC8,R14
+    MOV #XDO,-2(R14)
+    ADD #2,&$1C00
+    MOV &$1C00,R10
+    MOV #0,0(R10)
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP
+    ADD #1,0(R1)
+BW1 BIT #$100,R2
+    0= IF
+        MOV @R13,R13
+        MOV @R13+,R0
+    THEN
+    ADD #4,R1
+    ADD #2,R13
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE LOOP
+    MOV #XLOOP,R9
+BW2 ADD #4,&$1DC8
+    MOV &$1DC8,R10
+    MOV R9,-4(R10)
+    MOV R14,-2(R10)
+    BEGIN
+        MOV &$1C00,R14
+        SUB #2,&$1C00
+        MOV @R14,R14
+        CMP #0,R14
+    0<> WHILE
+        MOV R10,0(R14)
+    REPEAT
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE IMMEDIATE
+    
+    HDNCODE XPLOO
+    ADD R14,0(R1)
+    MOV @R15+,R14
+    GOTO BW1
+    ENDCODE
+
+    CODE +LOOP
+    MOV #XPLOO,R9
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I 
+    [IF]
+    CODE I
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1,R14
+    SUB 2(R1),R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DUP 
+    [IF]
+    CODE DUP
+BW1 SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R13+,R0
+    ENDCODE
+
+    CODE ?DUP
+    CMP #0,R14
+    0<> ?GOTO BW1
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DROP 
+    [IF]
+    CODE DROP
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] >R 
+    [IF]
+    CODE >R
+    PUSH R14
+    MOV @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] R> 
+    [IF]
+    CODE R>
+    SUB #2,R15
+    MOV R14,0(R15)
+    MOV @R1+,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] 2DUP 
+    [IF]
+    CODE 2DUP
+    MOV R14,-2(R15)
+    MOV @R15,-4(R15)
+    SUB #4,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] 1+ 
+    [IF]
+    CODE 1+
+    ADD #1,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] + 
+    [IF]
+    CODE +
+    ADD @R15+,R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] - 
+    [IF]
+    CODE -
+    SUB @R15+,R14
+    XOR #-1,R14
+    ADD #1,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] 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] 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] OVER 
+    [IF]
+    CODE OVER
+    MOV R14,-2(R15)
+    MOV @R15,R14
+    SUB #2,R15
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] MOVE
+    [IF]
+    CODE MOVE
+    MOV R14,R10
+    MOV @R15+,R8
+    MOV @R15+,R9
+    MOV @R15+,R14
+    CMP #0,R10
+    0<> IF
+        CMP R9,R8
+        0= ?GOTO FW1
+        U< IF
+            BEGIN
+                MOV.B @R9+,0(R8)
+                ADD #1,R8
+                SUB #1,R10
+            0= UNTIL
+            MOV @R13+,R0
+        ELSE
+            ADD R10,R8
+            ADD R10,R9
+            BEGIN
+                SUB #1,R9
+                SUB #1,R8
+                MOV.B @R9,0(R8)
+                SUB #1,R10
+            0= UNTIL
+        THEN
+    THEN
+FW1 MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CONSTANT 
+    [IF]
+    : CONSTANT 
+    CREATE
+    HI2LO
+    MOV R14,-2(R10)
+    MOV @R15+,R14
+    MOV @R1+,R13
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] BASE 
+    [IF]
+    $1DBE  CONSTANT BASE
+    [THEN]
+
+    [UNDEFINED] .S 
+    [IF]
+    CODE .S
+    MOV     R14,-2(R15)
+    MOV     R15,R14
+    SUB     #2,R14
+    MOV     R14,-6(R15)
+    MOV     #$1C80,R14
+    SUB     #2,R14
+BW1 MOV     R14,-4(R15)
+    SUB     #6,R15
+    SUB     @R15,R14
+    RRA     R14
+    COLON
+    $3C EMIT
+    .
+    $08 EMIT
+    $3E EMIT SPACE
+    2DUP 1+
+    U< IF 
+        DROP DROP EXIT
+    THEN
+    BASE @ >R
+    $10 BASE !
+    DO 
+        '$' EMIT
+        I @ U.
+    2 +LOOP
+    R> BASE !
+    ;
+    [THEN]
+
+    [UNDEFINED] .RS 
+    [IF]
+    CODE .RS
+    MOV     R14,-2(R15)
+    MOV     R1,-6(R15)
+    MOV     #$1CE0,R14
+    GOTO    BW1
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] ? 
+    [IF]
+    CODE ?          
+    MOV @R14,R14
+    MOV #U.,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] CR 
+    [IF]
+
+    CODE CR
+    MOV #$40B4,R0
+    ENDCODE
+
+    :NONAME
+    $0D EMIT $0A EMIT
+    ; IS CR
+    [THEN]
+
+    [UNDEFINED] 2/ 
+    [IF]
+    CODE 2/
+    RRA R14
+    MOV @R13+,R0
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] WORDS 
+    [IF]
+    : WORDS
+    CR 
+    $1DCE @ $1CE4
+    $180C @ DUP +
+    MOVE
+    BEGIN
+        0 DUP
+        $180C @ DUP + 0
+            DO
+            DUP I $1CE4 + @
+                U< IF
+                    DROP DROP
+                    I DUP 
+                    $1CE4 + @
+                THEN
+            2 +LOOP
+        ?DUP
+    WHILE
+        DUP
+        2 - @
+        ROT
+        $1CE4 +
+        !
+        COUNT 2/
+        DUP >R TYPE
+        R> $10 SWAP - SPACES
+    REPEAT
+    DROP
+    ;
+    [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 &$1DBE
+    MOV #$10,&$1DBE
+    ADD @R15,R14
+    LO2HI
+    SWAP
+    $FFF0 AND
+    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> BASE  !
+    ;
+    [THEN]
+
+    RST_SET
+
+    [THEN] ECHO ; endof [UNDEFINED] {TOOLS}
+
index 643aa3f..c9bce05 100644 (file)
 \       FREQUENCY   .equ 16
 \       THREADS     .equ 16
 \       TERMINALBAUDRATE    .equ what_you_want
-\         
+\
 \   uncomment:  CONDCOMP
 \               MSP430ASSEMBLER
 \               SD_CARD_LOADER
 \               SD_CARD_READ_WRITE
-\ 
+\
 \   compile for your target (CTRL+0)
 \
 \   program your target via TI interface (CTRL+1)
 \   copy RTC.f              to \RTC.4TH             ( doesn't work with if FR2xxx or FR4xxx)
 
 \ first, we test for downloading driver only if UART TERMINAL target
-CODE ABORT_SD_TEST
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-'CR' EMIT            \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_SD_TEST definition before resuming
-;
-
-ABORT_SD_TEST
-
-PWR_STATE
-
-[DEFINED] {SD_TEST} [IF]  {SD_TEST} [THEN] \ remove it if defined out of kernel 
-
-MARKER {SD_TEST}
+    CODE ABORT_SD_TEST
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    'CR' EMIT            \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    [UNDEFINED] WRITE
+    [IF]
+        1 ABORT" no SD_CARD_READ_WRITE addon!"
+    [THEN]
+    RST_RET           \ remove ABORT_SD_TEST definition before resuming
+    ;
+
+    ABORT_SD_TEST
+
+    MARKER {SD_TEST}
 
-[UNDEFINED] EXIT [IF]
 \ https://forth-standard.org/standard/core/EXIT
 \ EXIT     --      exit a colon definition; CALL #EXIT performs ASMtoFORTH (10 cycles)
 \                                           JMP #EXIT performs EXIT
-CODE EXIT
-MOV @RSP+,IP    \ 2 pop previous IP (or next PC) from return stack
-MOV @IP+,PC     \ 4 = NEXT
-                \ 6 (ITC-2)
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
+    [UNDEFINED] EXIT
+    [IF]
+    CODE EXIT
+    MOV @RSP+,IP    \ 2 pop previous IP (or next PC) from return stack
+    MOV @IP+,PC     \ 4 = NEXT
+    ENDCODE         \ 6 (ITC-2)
+    [THEN]
+
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] >BODY [IF]
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/toBODY
 \ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] >BODY
+    [IF]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] 0= [IF]
 \ https://forth-standard.org/standard/core/ZeroEqual
 \ 0=     n/u -- flag    return true if TOS=0
-CODE 0=
-SUB #1,TOS      \ borrow (clear cy) if TOS was 0
-SUBC TOS,TOS    \ TOS=-1 if borrow was set
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] IF [IF]     \ define IF and THEN
+    [UNDEFINED] 0=
+    [IF]
+    CODE 0=
+    SUB #1,TOS      \ borrow (clear cy) if TOS was 0
+    SUBC TOS,TOS    \ TOS=-1 if borrow was set
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/IF
 \ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+    CODE IF       \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP            \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/THEN
 \ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] ELSE [IF]
+    CODE THEN               \ immediate
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/ELSE
 \ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-CODE ELSE     \ immediate
-ADD #4,&DP              \ make room to compile two words
-MOV &DP,W               \ W=HERE+4
-MOV #BRAN,-4(W)
-MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
-SUB #2,W                \ HERE+2
-MOV W,TOS               \ -- ELSEadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE     \ immediate
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/BEGIN
 \ BEGIN    -- BEGINadr             initialize backward branch
-CODE BEGIN
+    [UNDEFINED] BEGIN
+    [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+    CODE BEGIN
     MOV #HEREXEC,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/UNTIL
 \ UNTIL    BEGINadr --             resolve conditional backward branch
-CODE UNTIL              \ immediate
+    CODE UNTIL              \ immediate
     MOV #QFBRAN,X
 BW1 ADD #4,&DP          \ compile two words
     MOV &DP,W           \ W = HERE
@@ -192,385 +198,462 @@ BW1 ADD #4,&DP          \ compile two words
     MOV TOS,-2(W)       \ compile bakcward adr at HERE+2
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/AGAIN
 \ AGAIN    BEGINadr --             resolve uncondionnal backward branch
-CODE AGAIN     \ immediate
-MOV #BRAN,X
-GOTO BW1
-ENDCODE IMMEDIATE
+    CODE AGAIN     \ immediate
+    MOV #BRAN,X
+    GOTO BW1
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/WHILE
 \ WHILE    BEGINadr -- WHILEadr BEGINadr
-: WHILE     \ immediate
-POSTPONE IF SWAP
-; IMMEDIATE
+    : WHILE     \ immediate
+    POSTPONE IF SWAP
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/REPEAT
 \ REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] DO [IF]     \ define DO LOOP +LOOP
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO                 \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] DO
+    [IF]                \ define DO LOOP +LOOP
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    ADD #2,&DP              \   make room to compile xdo
+    MOV &DP,TOS             \ -- HERE+2
+    MOV #XDO,-2(TOS)        \   compile xdo
+    ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W         \
+    MOV #0,0(W)             \ -- HERE+2     L-- 0
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP               \ immediate
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP              \ make room to compile two words
     MOV &DP,W
-    MOV X,-4(W)         \ xloop --> HERE
-    MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    MOV X,-4(W)             \ xloop --> HERE
+    MOV TOS,-2(W)           \ DOadr --> HERE+2
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP              \ immediate
-MOV #XPLOOP,X
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2        \ goto BW1 LOOP
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] I [IF]
 \ https://forth-standard.org/standard/core/I
 \ I        -- n   R: sys1 sys2 -- sys1 sys2
 \                  get the innermost loop index
-CODE I
-SUB #2,PSP              \ 1 make room in TOS
-MOV TOS,0(PSP)          \ 3
-MOV @RSP,TOS            \ 2 index = loopctr - fudge
-SUB 2(RSP),TOS          \ 3
-MOV @IP+,PC             \ 4 13~
-ENDCODE
-[THEN]
-
-[UNDEFINED] + [IF]
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,PSP              \ 1 make room in TOS
+    MOV TOS,0(PSP)          \ 3
+    MOV @RSP,TOS            \ 2 index = loopctr - fudge
+    SUB 2(RSP),TOS          \ 3
+    MOV @IP+,PC             \ 4 13~
+    ENDCODE
+    [THEN]
+
 \ 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] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] - [IF]
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] MAX [IF]   \ define MAX and MIN
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] MAX
+    [IF]   \ define MAX and MIN
     CODE MAX    \    n1 n2 -- n3       signed maximum
-        CMP @PSP,TOS    \ n2-n1
-        S< ?GOTO FW1    \ n2<n1
-BW1     ADD #2,PSP
-        MOV @IP+,PC
+    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
+    CMP @PSP,TOS    \ n2-n1
+    S< ?GOTO BW1    \ n2<n1
+FW1 MOV @PSP+,TOS
+    MOV @IP+,PC
     ENDCODE
-[THEN]
+    [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]
+    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] SPACE
+    [IF]
+    : 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] SPACES
+    [IF]
+    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] DUP [IF]    \ define DUP and DUP?
 \ https://forth-standard.org/standard/core/DUP
 \ DUP      x -- x x      duplicate top of stack
-CODE DUP
+    [UNDEFINED] DUP
+    [IF]    \ define DUP and DUP?
+    CODE DUP
 BW1 SUB #2,PSP      \ 2  push old TOS..
     MOV TOS,0(PSP)  \ 3  ..onto stack
     MOV @IP+,PC     \ 4
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/qDUP
 \ ?DUP     x -- 0 | x x    DUP if nonzero
-CODE ?DUP
-CMP #0,TOS      \ 2  test for TOS nonzero
-0<> ?GOTO BW1    \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] OVER [IF]
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1    \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ 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] >R [IF]
+    [UNDEFINED] OVER
+    [IF]
+    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/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] CONSTANT [IF]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] STATE [IF]
+\ CONSTANT <name>     n --                      define a Forth CONSTANT
+    [UNDEFINED] CONSTANT
+    [IF]
+    : CONSTANT
+    CREATE
+    HI2LO
+    MOV TOS,-2(W)           \   PFA = n
+    MOV @PSP+,TOS
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/STATE
 \ STATE   -- a-addr       holds compiler state
-STATEADR CONSTANT STATE
-[THEN]
-
-[UNDEFINED] IS [IF]     \ define DEFER! and IS
-\ https://forth-standard.org/standard/core/DEFERStore
-\ Set the word xt1 to execute xt2. An ambiguous condition exists if xt1 is not for a word defined by DEFER.
-CODE DEFER!             \ xt2 xt1 --
-MOV @PSP+,2(TOS)        \ -- xt1=CFA_DEFER          xt2 --> [CFA_DEFER+2]
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE
-
-\ https://forth-standard.org/standard/core/IS
-\ IS <name>        xt --
-\ used as is :
-\ DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
-\ inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-\ or in a definition : ... ['] U. IS DISPLAY ...
-\ KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
-: IS
-STATE @
-IF  POSTPONE ['] POSTPONE DEFER! 
-ELSE ' DEFER! 
-THEN
-; IMMEDIATE
-[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]
-
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #BEGIN,PC
-ENDCODE
-[THEN]
-
+    [UNDEFINED] STATE
+    [IF]
+    STATEADR CONSTANT STATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+
+\    DEFER CR    \ DEFERed definition, by default executes that of :NONAME
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
 
-\ 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 #Write_File
-    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
-." 0 Set date and time" CR
-." 1 Load {TOOLS} words" CR
-." 2 Load {SD_TOOLS} words" CR
-." 3 Load {CORE_COMP} words" CR
-." 4 Load ANS core tests" CR
-." 5 Load a 100k program " CR
-." 6 Read only this source file" CR
-." 7 append a dump of FORTH to YOURFILE.TXT" CR
-." 8 delete YOURFILE.TXT" CR
-." 9 Load TST_WORDS" CR
-." your choice : "
-KEY
-48 - ?DUP
-0= IF
-    ." LOAD RTC.4TH" CR
-    LOAD" RTC.4TH"
-ELSE 1 - ?DUP
-    0= IF
-        ." LOAD UTILITY.4TH" CR
-        LOAD" UTILITY.4TH"
-    ELSE 1 - ?DUP
-        0= IF
-            ." LOAD SD_TOOLS.4TH" CR
-            LOAD" SD_TOOLS.4TH"
-        ELSE 1 - ?DUP
-            0= IF
-                ." LOAD CORE_ANS.4TH" CR
-                LOAD" CORE_ANS.4TH"
-            ELSE 1 - ?DUP
-                0= IF
-                    ." LOAD CORETEST.4TH" CR
-                    LOAD" CORETEST.4TH"
-                    PWR_STATE
-                ELSE 1 - ?DUP
-                    0= IF
-                        ." LOAD PROG100K.4TH" CR
-                        NOECHO
-                        LOAD" PROG100K.4TH"
-                    ELSE 1 - ?DUP
-                        0= IF
-                            ." READ PROG100K.4TH" CR
-                            READ" PROG100K.4TH"
-                            BEGIN
-                                READ    \ sequentially read 512 bytes
-                            UNTIL       \ prog100k.4TH is closed
-                        ELSE 1 - ?DUP
-                            0= IF
-                                ." WRITE YOURFILE.TXT" CR
-                                WRITE" YOURFILE.TXT"
-                                ['] SD_EMIT IS EMIT
-\                                ." va te faire voir"
-                                MAIN_ORG HERE OVER - DUMP
-                                ['] EMIT >BODY IS EMIT
-                                CLOSE
-                            ELSE 1 - ?DUP
-                                0= IF
-                                    ." DEL YOURFILE.TXT" CR
-                                    DEL" YOURFILE.TXT"
-                                ELSE 1 - ?DUP
-                                    0= IF
-                                        ." LOAD TSTWORDS.4TH" CR
-                                        LOAD" TSTWORDS.4TH"
-                                    ELSE
-                                        ." abort" ABORT" "
-                                    THEN                                        
-                                THEN
-                            THEN
-                        THEN
-                    THEN
-                THEN
-            THEN
-        THEN
-    THEN
-THEN
-;
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [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]
+
+\ https://forth-standard.org/standard/core/BASE
+\ BASE    -- a-addr       holds conversion radix
+    [UNDEFINED] BASE
+    [IF]
+    BASEADR  CONSTANT BASE
+    [THEN]
 
+\ https://forth-standard.org/standard/tools/DUMP
+    [UNDEFINED] DUMP
+    [IF]       \ defined in {UTILITY}
+    CODE DUMP               \ adr n  --   dump memory
+    PUSH IP
+    PUSH &BASE              \ save current base
+    MOV #$10,&BASE          \ HEX base
+    ADD @PSP,TOS            \ -- ORG END
+    LO2HI
+    SWAP                    \ -- END ORG
+    DO                      \ 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
+        CR
+    $10 +LOOP
+    R> BASE !               \ restore current base
+    ;
+    [THEN]
+
+    [UNDEFINED] HERE
+    [IF]
+    CODE HERE
+    MOV #BEGIN,PC
+    ENDCODE
+    [THEN]
 
 
-RST_HERE
+\ https://forth-standard.org/standard/core/DROP
+\ DROP     x --          drop top of stack
+    [UNDEFINED] DROP
+    [IF]
+    CODE DROP
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/OnePlus
+\ 1+      n1/u1 -- n2/u2       add 1 to TOS
+    [UNDEFINED] 1+
+    [IF]
+    CODE 1+
+    ADD #1,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/Equal
+\ =      x1 x2 -- flag         test x1=x2
+    [UNDEFINED] =
+    [IF]
+    CODE =
+    SUB @PSP+,TOS   \ 2
+    0<> IF          \ 2
+        AND #0,TOS  \ 1
+        MOV @IP+,PC \ 4
+    THEN
+    XOR #-1,TOS     \ 1 flag Z = 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CASE
+    [UNDEFINED] CASE
+    [IF]
+    : CASE
+    0
+    ; IMMEDIATE \ -- #of-1
+
+\ https://forth-standard.org/standard/core/OF
+    : OF \ #of-1 -- orgOF #of
+    1+                     \ count OFs
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE OVER
+    POSTPONE =              \ copy and test case value
+    POSTPONE IF                    \ add orig to control flow stack
+    POSTPONE DROP              \ discards case value if =
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
+
+\ https://forth-standard.org/standard/core/ENDOF
+    : ENDOF \ orgOF #of -- orgENDOF #of
+    >R                     \ move off the stack in case the control-flow stack is the data stack.
+    POSTPONE ELSE
+    R>                     \ we can bring count back now
+    ; IMMEDIATE
+
+\ https://forth-standard.org/standard/core/ENDCASE
+    : ENDCASE \ orgENDOF1..orgENDOFn #of --
+    POSTPONE DROP
+    0 DO
+        POSTPONE THEN
+    LOOP
+    ; IMMEDIATE
+    [THEN]
 
-[THEN]
+\ SD_EMIT  c --    output char c to a SD_CARD file opened as write
+    CODE SD_EMIT
+    CMP #$200,&BufferPtr        \ 512 bytes by sector
+    U>= IF                      \ if file buffer is full
+        CALL &WRITE+2           \ CALL #Write_File ; 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
 
-ECHO SD_TEST
+    : DOESWRITE
+    ['] SD_EMIT IS EMIT
+    MAIN_ORG HERE OVER - DUMP
+    ['] EMIT >BODY IS EMIT
+    CLOSE
+    ;
+
+    : SD_TEST
+    ECHO
+    'CR' EMIT
+    CR
+    ." ----------" CR
+    ." Bootloader" CR
+    ." ----------" CR
+    ." ? Fast Forth Specifs" CR
+    ." 0 Set date and time" CR
+    ." 1 Load {UTILITY} words" CR
+    ." 2 Load {SD_TOOLS} words" CR
+    ." 3 Load {CORE_COMP} words" CR
+    ." 4 Load ANS core tests" CR
+    ." 5 Load a source file to make 10k program" CR
+    ." 6 Read it only (47k)" CR
+    ." 7 write FORTH dump in YOURFILE.TXT" CR
+    ." 8 append FORTH dump to YOURFILE.TXT" CR
+    ." 9 delete YOURFILE.TXT" CR
+    ." your choice: "
+    KEY DUP EMIT
+    NOECHO
+    {SD_TEST}                           \ remove {SD_TEST} application
+    CASE
+    '?' OF  LOAD" FF_SPECS.4TH" ENDOF   \
+    '0' OF  LOAD" RTC.4TH"      ENDOF
+    '1' OF  LOAD" UTILITY.4TH"  ENDOF
+    '2' OF  LOAD" SD_TOOLS.4TH" ENDOF
+    '3' OF  LOAD" CORE_ANS.4TH" ENDOF
+    '4' OF  LOAD" CORETEST.4TH" ENDOF
+    '5' OF  LOAD" PROG10K.4TH"  ENDOF   \ download one ko, so no erasure here
+    '6' OF  READ" PROG10K.4TH"
+            BEGIN READ                  \ sequentially read 512 bytes
+            UNTIL               ENDOF   \ prog10k.4TH is closed
+    '7' OF  WRITE" YOURFILE.TXT"
+            DOESWRITE           ENDOF
+    '8' OF  APPEND" YOURFILE.TXT"
+            DOESWRITE           ENDOF
+    '9' OF  DEL" YOURFILE.TXT"  ENDOF
+    ENDCASE
+    CR
+    ;
+
+SD_TEST
index 32387e4..a57ed65 100644 (file)
 \ ASSEMBLER conditionnal usage with ?JMP ?GOTO      S<  S>=  U<   U>=  0=  0<>  0<
 
 ; ---------------------------------------------------------------
-; SD_TOOLS.f : BASIC TOOLS for SD Card : DIR FAT SECTOR CLUSTER
+; SD_TOOLS.f
+; BASIC TOOLS for SD Card : DIR FAT SECTOR CLUSTER
 ; ---------------------------------------------------------------
 
 \ first, we test for downloading driver only if UART TERMINAL target
-CODE ABORT_SD_TOOLS
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-'CR' EMIT            \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_UARTI2CS definition before resuming
-;
-
-ABORT_SD_TOOLS
-
-
-[DEFINED] {SD_TOOLS} [IF]  {SD_TOOLS} [THEN]
-
-[UNDEFINED] {SD_TOOLS} [IF]
-
-MARKER {SD_TOOLS}
+    CODE ABORT_SD_TOOLS
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    [UNDEFINED] LOAD"       \ "
+    [IF]
+    MOV #-1,0(PSP)
+    [ELSE]
+    MOV #0,0(PSP)
+    [THEN]
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    'CR' EMIT            \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    ABORT" Builds FastForth with SD_CARD_LOADER addon.."
+    RST_RET              \ remove ABORT_UARTI2CS definition before resuming
+    ;
+
+    ABORT_SD_TOOLS
+
+    MARKER {SD_TOOLS}
+
+    [UNDEFINED] HERE
+    [IF]
+    CODE HERE
+    MOV #HEREXEC,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/AND
+\ C AND    x1 x2 -- x3           logical AND
+    [UNDEFINED] AND
+    [IF]
+    CODE AND
+    AND @PSP+,TOS
+    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]
-
-[UNDEFINED] MAX [IF]    \ define MAX and MIN
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-CODE MAX    \    n1 n2 -- n3       signed maximum
+    [UNDEFINED] MAX
+    [IF]    \ define MAX and MIN
+    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
+    ENDCODE
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
+    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
+    ENDCODE
+    [THEN]
 
-[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]
+    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] SPACE
+    [IF]
+    : 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] SWAP [IF]
+    [UNDEFINED] SPACES
+    [IF]
+    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/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] OVER [IF]
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ 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] >R [IF]
+    [UNDEFINED] OVER
+    [IF]
+    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/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] - [IF]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-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] DO [IF]     \ define DO LOOP +LOOP
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    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]
+
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] DO
+    [IF]                \ define DO LOOP +LOOP
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    ADD #2,&DP              \   make room to compile xdo
+    MOV &DP,TOS             \ -- HERE+2
+    MOV #XDO,-2(TOS)        \   compile xdo
+    ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W         \
+    MOV #0,0(W)             \ -- HERE+2     L-- 0
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP              \ make room to compile two words
     MOV &DP,W
-    MOV X,-4(W)         \ xloop --> HERE
-    MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    MOV X,-4(W)             \ xloop --> HERE
+    MOV TOS,-2(W)           \ DOadr --> HERE+2
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP
-MOV #XPLOOP,X
-GOTO BW1        \ goto BW1 LOOP
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2        \ goto BW1 LOOP
+    ENDCODE IMMEDIATE
+    [THEN]
+
 
-[UNDEFINED] I [IF]
 \ https://forth-standard.org/standard/core/I
 \ I        -- n   R: sys1 sys2 -- sys1 sys2
 \                  get the innermost loop index
-CODE I
-SUB #2,PSP              \ 1 make room in TOS
-MOV TOS,0(PSP)          \ 3
-MOV @RSP,TOS            \ 2 index = loopctr - fudge
-SUB 2(RSP),TOS          \ 3
-MOV @IP+,PC             \ 4 13~
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUMP [IF]       \ defined in {UTILITY}
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,PSP              \ 1 make room in TOS
+    MOV TOS,0(PSP)          \ 3
+    MOV @RSP,TOS            \ 2 index = loopctr - fudge
+    SUB 2(RSP),TOS          \ 3
+    MOV @IP+,PC             \ 4 13~
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+\ create a primary defered word, i.e. with its default runtime beginning at the >BODY of the definition
+    CODE CR     \ part I : DEFERed definition of CR
+    MOV #NEXT_ADR,PC                \ [PFA] = NEXT_ADR
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
 \ 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]
+    [UNDEFINED] DUMP
+    [IF]       \ defined in {UTILITY}
+    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
+    $FFF0 AND                   \ -- END ORG_modulo_16
+    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]
 
 \ display content of a sector
-\ ----------------------------------\
-CODE SECTOR.                        \ sector. --     don't forget to add decimal point to your sector number
-\ ----------------------------------\
+\   --------------------------------\
+    CODE SECTOR.                    \ sector. --     don't forget to add decimal point to your sector number
+\   --------------------------------\
 BW1 MOV     TOS,X                   \ X = SectorH
     MOV     @PSP,W                  \ W = sectorL
-    CALL    #READ_SWX               \ W = SectorLO  X = SectorHI
-COLON                               \
-    <# #S #> TYPE SPACE             \ ud --            display the double number
+    CALL    #R_SECT_WX              \ W = SectorLO  X = SectorHI
+    COLON                           \
+    SPACE <# #S #> TYPE             \ ud --            display the double number
     SD_BUF $200 DUMP CR ;           \ then dump the sector
-\ ----------------------------------\
+\   --------------------------------\
 
 \ display first sector of a Cluster
-\ ----------------------------------\
-CODE CLUSTR.                        \ cluster.  --        don't forget to add decimal point to your cluster number
-\ ----------------------------------\
+\   --------------------------------\
+    CODE CLUSTER.                   \ cluster.  --        don't forget to add decimal point to your cluster number
+\   --------------------------------\
 BW2 BIT.B   #CD_SD,&SD_CDIN         \ test Card Detect: memory card present ?
-    0<> IF
-        MOV #COLD,PC                \ no: force COLD
+    0<> IF                          \ no: force COLD
+        MOV #COLD,PC                \ no
     THEN
     MOV.B &SecPerClus,W             \ SecPerClus(54321) = multiplicator
     MOV @PSP,X                      \ X = ClusterL
-    GOTO FW1                        \
     BEGIN
+        RRA W                       \ shift one right multiplicator
+    U< WHILE                        \ carry clear
         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
+    REPEAT
     ADD     &OrgClusters,X          \ add OrgClusters = sector of virtual cluster 0 (word size)
-    MOV     X,0(PSP)      
+    MOV     X,0(PSP)
     ADDC    #0,TOS                  \ don't forget carry
     GOTO    BW1                     \ jump to SECTOR
-ENDCODE
-\ ----------------------------------\
+    ENDCODE
+\   --------------------------------\
 
-\ ----------------------------------\
-CODE FAT                            \ Display CurFATsector
-\ ----------------------------------\
+\   --------------------------------\
+    CODE FAT                        \ Display FATsector
+\   --------------------------------\
     SUB     #4,PSP                  \
     MOV     TOS,2(PSP)              \
     MOV     &OrgFAT1,0(PSP)         \
     MOV     #0,TOS                  \ FATsectorHI = 0
     GOTO    BW1                     \ jump to SECTOR
-ENDCODE
-\ ----------------------------------\
+    ENDCODE
+\   --------------------------------\
 
-\ ----------------------------------\
-CODE DIR                            \ Display CurrentDir first sector
-\ ----------------------------------\
+\   --------------------------------\
+    CODE DIR                        \ Display CurrentDir first sector
+\   --------------------------------\
     SUB     #4,PSP                  \
     MOV     TOS,2(PSP)              \           save TOS
     MOV     &DIRclusterL,0(PSP)     \
     MOV     &DIRclusterH,TOS        \
-    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
-\ ----------------------------------\
-
-
-RST_HERE
-
-[THEN]
-ECHO
+    GOTO    BW2                     \ jump to SECTOR
+    ENDCODE
+\   --------------------------------\
 
+    RST_SET ECHO
index ba75eda..1fc31c3 100644 (file)
Binary files a/MSP430-FORTH/SendSourceFileToTarget.bat.lnk and b/MSP430-FORTH/SendSourceFileToTarget.bat.lnk differ
index 26c3abb..7a6cb47 100644 (file)
 \ 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< 
+\ ASSEMBLER conditionnal usage before ?JMP ?GOTO    : S< S>= U< U>= 0= 0<> 0<
 \
 \ FORTH conditionnal    : 0= 0< = < > U<
 
 \ first, we test for downloading driver only if UART TERMINAL target
-CODE ABORT_TEST_ASM
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-'CR' EMIT            \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_TEST_ASM definition before resuming
-;
+    CODE ABORT_TEST_ASM
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    'CR' EMIT            \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    RST_RET           \ remove ABORT_TEST_ASM definition before resuming
+    ;
 
-ABORT_TEST_ASM      \ abort test
+    ABORT_TEST_ASM      \ abort test
 
-[UNDEFINED] >R [IF]
+    MARKER {TEST_ASM}
+
+    [UNDEFINED] >R
+    [IF]
 \ https://forth-standard.org/standard/core/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] R> [IF]
+    [UNDEFINED] R>
+    [IF]
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-MOV rDOVAR,PC
-ENDCODE
-[THEN]
+    CODE R>
+    MOV rDOVAR,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] + [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]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] - [IF]
+    [UNDEFINED] -
+    [IF]
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] SWAP [IF]
+    [UNDEFINED] SWAP
+    [IF]
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] MAX [IF]    \ MAX and MIN are defined in {UTILITY}
+    [UNDEFINED] MAX
+    [IF]    \ MAX and MIN are defined in {UTILITY}
 
-CODE MAX    \    n1 n2 -- n3       signed maximum
+    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
+    ENDCODE
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
+    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
+    ENDCODE
 
-[THEN]
+    [THEN]
 
-[UNDEFINED] C@ [IF]
+    [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]
+    CODE C@
+    MOV.B @TOS,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] VARIABLE [IF]
+    [UNDEFINED] VARIABLE
+    [IF]
 \ https://forth-standard.org/standard/core/VARIABLE
 \ VARIABLE <name>       --                      define a Forth VARIABLE
-: VARIABLE 
-CREATE
-HI2LO
-MOV #$1287,-4(W)        \   CFA = CALL rDOVAR
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    : VARIABLE
+    CREATE
+    HI2LO
+    MOV #$1287,-4(W)        \   CFA = CALL rDOVAR
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] CONSTANT [IF]
+    [UNDEFINED] CONSTANT
+    [IF]
 \ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
+\ CONSTANT <name>     n --                      define a Forth CONSTANT
+    : CONSTANT
+    CREATE
+    HI2LO
+    MOV TOS,-2(W)           \   PFA = n
+    MOV @PSP+,TOS
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] DEFER [IF]
+    [UNDEFINED] DEFER
+    [IF]
 \ https://forth-standard.org/standard/core/DEFER
 \ DEFER "<spaces>name"   --
 \Skip leading space delimiters. Parse name delimited by a space.
@@ -157,217 +169,345 @@ ENDCODE
 \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.
-: DEFER
-CREATE
-HI2LO
-MOV #$4030,-4(W)        \ CFA = MOV @PC+,PC = BR MOV @IP+,PC
-MOV #NEXT_ADR,-2(W)     \ PFA = address of MOV @IP+,PC to do nothing.
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    : DEFER
+    CREATE
+    HI2LO
+    MOV #$4030,-4(W)        \ CFA = MOV @PC+,PC = BR MOV @IP+,PC
+    MOV #NEXT_ADR,-2(W)     \ PFA = address of MOV @IP+,PC to do nothing.
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] >BODY [IF]
+    [UNDEFINED] >BODY
+    [IF]
 \ https://forth-standard.org/standard/core/toBODY
 \ >BODY     -- addr      leave BODY of a CREATEd word\ also leave default ACTION-OF primary DEFERred word
-CODE >BODY
-ADD #4,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    CODE >BODY
+    ADD #4,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] SPACE [IF]
+    [UNDEFINED] SPACE
+    [IF]
 \ https://forth-standard.org/standard/core/SPACE
 \ SPACE   --               output a space
-: SPACE
-$20 EMIT ;
-[THEN]
+    : SPACE
+    $20 EMIT ;
+    [THEN]
 
-[UNDEFINED] SPACES [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]
-
-[UNDEFINED] DUP [IF]    \ define DUP and ?DUP
+    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] DUP
+    [IF]    \ define DUP and ?DUP
 \ https://forth-standard.org/standard/core/DUP
 \ DUP      x -- x x      duplicate top of stack
-CODE DUP
+    CODE DUP
 BW1 SUB #2,PSP      \ 2  push old TOS..
     MOV TOS,0(PSP)  \ 3  ..onto stack
     MOV @IP+,PC     \ 4
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/qDUP
 \ ?DUP     x -- 0 | x x    DUP if nonzero
-CODE ?DUP
-CMP #0,TOS      \ 2  test for TOS nonzero
-0<> ?GOTO BW1    \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] OVER [IF]
+    [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]
+    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]
+
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    [UNDEFINED] IF
+    [IF]     \ define IF THEN
+
+    CODE IF
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP            \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
-[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]
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/SWAP
+\ SWAP     x1 x2 -- x2 x1    swap top two items
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    PUSH TOS            \ 3
+    MOV @PSP,TOS        \ 2
+    MOV @RSP+,0(PSP)    \ 4
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/BEGIN
+\ BEGIN    -- BEGINadr             initialize backward branch
+    [UNDEFINED] BEGIN
+    [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+
+    CODE BEGIN
+    MOV #HEREXEC,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/UNTIL
+\ UNTIL    BEGINadr --             resolve conditional backward branch
+    CODE UNTIL
+    MOV #QFBRAN,X
+BW1 ADD #4,&DP          \ compile two words
+    MOV &DP,W           \ W = HERE
+    MOV X,-4(W)         \ compile Bran or QFBRAN at HERE
+    MOV TOS,-2(W)       \ compile bakcward adr at HERE+2
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/AGAIN
+\ AGAIN    BEGINadr --             resolve uncondionnal backward branch
+    CODE AGAIN
+    MOV #BRAN,X
+    GOTO BW1
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/WHILE
+\ WHILE    BEGINadr -- WHILEadr BEGINadr
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+
+\ https://forth-standard.org/standard/core/REPEAT
+\ REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]     \ define DO LOOP +LOOP
 
-[UNDEFINED] DO [IF]
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO                 \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP          \
+    MOV TOS,0(PSP)      \
+    ADD #2,&DP          \   make room to compile xdo
+    MOV &DP,TOS         \ -- HERE+2
+    MOV #XDO,-2(TOS)    \   compile xdo
+    ADD #2,&LEAVEPTR    \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W     \
+    MOV #0,0(W)         \ -- HERE+2     L-- 0, init
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
-[UNDEFINED] LOOP [IF]
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP               \ immediate
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP          \ make room to compile two words
     MOV &DP,W
     MOV X,-4(W)         \ xloop --> HERE
     MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
+    ENDCODE IMMEDIATE
 
-[UNDEFINED] +LOOP [IF]
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP              \ immediate
-MOV #XPLOOP,X
-GOTO BW1
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] I [IF]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] I
+    [IF]
 \ https://forth-standard.org/standard/core/I
 \ I        -- n   R: sys1 sys2 -- sys1 sys2
 \                  get the innermost loop index
-CODE I
-SUB #2,PSP              \ 1 make room in TOS
-MOV TOS,0(PSP)          \ 3
-MOV @RSP,TOS            \ 2 index = loopctr - fudge
-SUB 2(RSP),TOS          \ 3
-MOV @IP+,PC             \ 4 13~
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUMP [IF]       \ defined in {UTILITY}
+    CODE I
+    SUB #2,PSP              \ 1 make room in TOS
+    MOV TOS,0(PSP)          \ 3
+    MOV @RSP,TOS            \ 2 index = loopctr - fudge
+    SUB 2(RSP),TOS          \ 3
+    MOV @IP+,PC             \ 4 13~
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/BASE
+\ BASE    -- a-addr       holds conversion radix
+    [UNDEFINED] BASE
+    [IF]
+    BASEADR  CONSTANT BASE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+    DEFER CR    \ DEFERed definition, by default executes that of :NONAME
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [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]
+    CODE DUMP                   \ adr n  --   dump memory
+    PUSH IP
+    PUSH &BASE               \ 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> BASE !              \ restore current base
+    ;
+    [THEN]
 
 \ -----------------------------------------------------------------------
 \ test CPUx instructions PUSHM, POPM, RLAM, RRAM, RRCM, RRUM
 \ -----------------------------------------------------------------------
-CODE TESTPUSHM
+    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"
-\            POPM   #17,R15     \ uncomment to test error "out of bounds"
-\            POPM   #2,R0       \ uncomment to test error "out of bounds"
-\            POPM   #0,IP       \ uncomment to test error "out of bounds"
-            MOV     #22222,Y
-            MOV     #3,X
-            MOV     #2,W
-            MOV     #1,T
-            MOV     #0,S
-
-            PUSHM   #4,IP       \ PUSHM IP,S,T,W
-            POPM    #4,IP       \ POPM  W,T,S,IP
-            SUB     #10,PSP
-            MOV     TOS,8(PSP)  \ save old TOS
-            MOV     S,6(PSP)
-            MOV     T,4(PSP)
-            MOV     W,2(PSP)
-            MOV     X,0(PSP)
-            MOV     Y,TOS
-\            RLAM    #0,TOS      \ uncomment to test error "out of bounds" 
-\            RLAM    #5,TOS      \ uncomment to test error "out of bounds" 
-            RRAM    #1,TOS      \ 0 < shift value < 5
-            RLAM    #2,TOS
-            RRCM    #1,TOS
-            RRUM    #1,TOS
-            COLON               \ high level part of the word starts here...
-            space . . . . .
-            ;                   \ and finishes here.
-    \
-TESTPUSHM  ; you should see 11111 3 2 1 0 -->
-
-CODE TESTPOPM
+\    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"
+\    POPM   #17,R15     \ uncomment to test error "out of bounds"
+\    POPM   #2,R0       \ uncomment to test error "out of bounds"
+\    POPM   #0,IP       \ uncomment to test error "out of bounds"
+    MOV     #22222,Y
+    MOV     #3,X
+    MOV     #2,W
+    MOV     #1,T
+    MOV     #0,S
+
+    PUSHM   #4,IP       \ PUSHM IP,S,T,W
+    POPM    #4,IP       \ POPM  W,T,S,IP
+    SUB     #10,PSP
+    MOV     TOS,8(PSP)  \ save old TOS
+    MOV     S,6(PSP)
+    MOV     T,4(PSP)
+    MOV     W,2(PSP)
+    MOV     X,0(PSP)
+    MOV     Y,TOS
+\    RLAM    #0,TOS      \ uncomment to test error "out of bounds"
+\    RLAM    #5,TOS      \ uncomment to test error "out of bounds"
+    RRAM    #1,TOS      \ 0 < shift value < 5
+    RLAM    #2,TOS
+    RRCM    #1,TOS
+    RRUM    #1,TOS
+    COLON               \ high level part of the word starts here...
+    space . . . . .
+    ;                   \ and finishes here.
+
+    TESTPUSHM  ; you should see 11111 3 2 1 0 -->
+
+    CODE TESTPOPM
             GOTO BW1            \ JMP TESTPUSHM
-ENDCODE
+    ENDCODE
 
-    \
-TESTPOPM  ; you should see 11111 3 2 1 0 -->
+    TESTPOPM  ; you should see 11111 3 2 1 0 -->
 
 
 
@@ -375,48 +515,48 @@ TESTPOPM  ; you should see 11111 3 2 1 0 -->
 \ test symbolic branch in assembler
 \ test a FORTH section encapsulated in an assembly word
 \ -----------------------------------------------------------------------
-CODE TEST1                  \ the word "CODE" add ASSEMBLER as CONTEXT vocabulary...
-
-            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
-            BASEADR @ U.       \ always display 10 !
-            ;
+    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
+    THEN
+    COLON           \ tips : no "ok" displayed in start of line <==> compilation mode
+    BASE @ U.       \ always display 10 !
+    ;
     \
 
 \ -----------------------------------------------------------------------
 \ test a word that starts as word FORTH and ends as assembly word
 \ -----------------------------------------------------------------------
-: TEST2                     \ ":" starts compilation
-            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, &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. 
+    : TEST2                     \ ":" starts compilation
+    BASE @ 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)
+    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 :
-            MOV @RSP+,IP    \ restore IP
-            MOV @IP+,PC     \ = NEXT
-ENDCODE                     \ ends assembler : remove vocabulary ASSEMBLER from CONTEXT
-    \
+    MOV @RSP+,IP    \ restore IP
+    MOV @IP+,PC     \ = NEXT
+    ENDCODE                     \ ends assembler : remove vocabulary ASSEMBLER from CONTEXT
+\
 
 \ -----------------------------------------------------------------------
 \ 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, &BASEADR
-0<> IF      MOV #2, &BASEADR   \ if variable system BASE <> 2
-ELSE        MOV #10,&BASEADR   \ else (BASE = 2)
-THEN        COLON           \
-            BASEADR @  U.      \ always display 10 !
-;                           \
-    \
+    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)
+    THEN    COLON           \
+    BASE @  U.      \ always display 10 !
+    ;                           \
+\
 
 
 \ -----------------------------------------------------------------------
@@ -435,7 +575,7 @@ BEGIN       SUB #$0001,TOS
             HI2LO
             CMP #0,TOS
 0= UNTIL    MOV @PSP+,TOS
-\           MOV #EXIT,PC    \ to pair with ":" i.e. to restore IP saved by : then execute NEXT. 
+\           MOV #EXIT,PC    \ to pair with ":" i.e. to restore IP saved by : then execute NEXT.
             MOV @RSP+,IP    \ restore IP
             MOV @IP+,PC     \ = NEXT
 ENDCODE
@@ -469,7 +609,7 @@ ENDCODE
 [THEN]
 
 : BYTES_TABLE_IDX
-CREATE 
+CREATE
 0 DO I C,
 LOOP
 DOES>
@@ -489,8 +629,8 @@ $0201 BYTES_TABLE1 !              \ words written in memory are little endian !
 CODE IDX_TEST1                     \ index -- value
     MOV.B   BYTES_TABLE1(TOS),TOS  \ -- value
 COLON
-    U. 
-;      
+    U.
+;
 
 0 IDX_TEST1     ; you should see 1 -->
 
@@ -504,7 +644,7 @@ ENDCODE
 
 
 \ -----------------------------------------------------------------------
-\ tests access to a CREATED word with assembler 
+\ tests access to a CREATED word with assembler
 \ -----------------------------------------------------------------------
 
 
@@ -537,26 +677,26 @@ CREATE TABLE
 TABLE 2 - CONSTANT PFA_TABLE      \ PFA_TABLE leave the PFA of TABLE
 
 
-CODE REDIRECT       ; <table> --    redirects TABLE to argument <table>    
+CODE REDIRECT       ; <table> --    redirects TABLE to argument <table>
 MOV TOS,&PFA_TABLE
 MOV @PSP+,TOS
 MOV @IP+,PC
 ENDCODE
     \
 
-CODE REDIRECT0      ; --            redirects TABLE to TABLE0        
+CODE REDIRECT0      ; --            redirects TABLE to TABLE0
 MOV #TABLE0,&PFA_TABLE
 MOV @IP+,PC
 ENDCODE
     \
 
-CODE REDIRECT10     ; --            redirects TABLE to TABLE10        
+CODE REDIRECT10     ; --            redirects TABLE to TABLE10
 MOV #TABLE10,&PFA_TABLE
 MOV @IP+,PC
 ENDCODE
     \
 
-CODE REDIRECT20     ; --            redirects TABLE to TABLE20        
+CODE REDIRECT20     ; --            redirects TABLE to TABLE20
 MOV #TABLE20,&PFA_TABLE
 MOV @IP+,PC
 ENDCODE
@@ -591,7 +731,7 @@ TABLE20 PFA_TABLE ! TABLE 10 DUMP
     \
 
 \ -----------------------------------------------------------------------
-\ tests behaviour of assembly error 
+\ tests behaviour of assembly error
 \ -----------------------------------------------------------------------
 \ R16 causes an error, assembler context is aborted and the word TEST7 is "hidden".
 
@@ -604,14 +744,13 @@ TABLE20 PFA_TABLE ! TABLE 10 DUMP
 
 
 DEFER TRUC              ; here, TRUC is a secondary DEFERred word (i.e. without BODY)
-    \
 
 
-CODENNM                 ; leaves its execution address (CFA) on stack
+CODENNM                 ; does DUP
     SUB #2,PSP
     MOV TOS,0(PSP)
     MOV @IP+,PC
-ENDCODE 
+ENDCODE                 ; leaves its execution address (CFA) on stack
 
 DUP .
 
@@ -621,25 +760,26 @@ IS TRUC                 ; TRUC becomes a primary DEFERred word
 TRUC .                  ; display TOS value -->
 
 
-' TRUC >BODY IS TRUC    ; TRUC is reinitialzed with its default action
+\ ' 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? -->
+\
+
+' TRUC >BODY IS TRUC    ; TRUC is reinitialized with its default action
 
 
-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
 \ bla
 \ bla
-\ 
-\ 
-\ 
-\ 
-\ 
-\ 
-\ 
+\
+\
+\
+\
+\
+\
+\
 \ bla
 \ ...
 
index 20dae53..66615ef 100644 (file)
@@ -6,7 +6,7 @@
 \
 \ TARGET SELECTION ( = the name of \INC\target.pat file without the extension)
 \ MSP_EXP430FR5969    MSP_EXP430FR5994    MSP_EXP430FR6989
-\
+\ MSP_EXP430FR2355
 \ from scite editor : copy your target selection in (shift+F8) parameter 1:
 \
 \ OR
 \ 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< 
+\ ASSEMBLER conditionnal usage before ?JMP ?GOTO    : S< S>= U< U>= 0= 0<> 0<
 \
 \ FORTH conditionnal    : 0= 0< = < > U<
 
-CODE ABORT_TEST_ASMX
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-'CR' EMIT            \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_TEST_ASM definition before resuming
-;
+    CODE ABORT_TEST_ASMX
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    'CR' EMIT            \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    RST_RET              \ remove ABORT_TEST_ASM definition before resuming
+    ;
 
-ABORT_TEST_ASMX      \ abort test
+    ABORT_TEST_ASMX      \ abort test
+
+    MARKER {TEST_ASMX}
 
-[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] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] - [IF]
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3     n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] MAX [IF]    \ define MAX and MIN
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1 ( = -n3)
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-CODE MAX    \    n1 n2 -- n3       signed maximum
+    [UNDEFINED] MAX
+    [IF]    \ define MAX and MIN
+    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
+    ENDCODE
 
-CODE MIN    \    n1 n2 -- n3       signed minimum
+    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
+    ENDCODE
+    [THEN]
 
-[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]
+    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 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-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]
+\ CONSTANT <name>     n --                      define a Forth CONSTANT
+    [UNDEFINED] CONSTANT
+    [IF]
+    : CONSTANT
+    CREATE
+    HI2LO
+    MOV TOS,-2(W)           \   PFA = n
+    MOV @PSP+,TOS
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/SPACE
 \ SPACE   --               output a space
-: SPACE
-BL EMIT ;
-[THEN]
+    [UNDEFINED] SPACE
+    [IF]
+    : 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
-        BL EMIT
-        HI2LO
-        SUB #2,IP 
-        SUB #1,TOS
-    0= UNTIL
-    MOV @RSP+,IP
-THEN
-MOV @PSP+,TOS           \ --         drop n
-NEXT              
-ENDCODE
-[THEN]
+    [UNDEFINED] SPACES
+    [IF]
+    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] OVER
+    [IF]
+    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] SWAP [IF]
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] >R [IF]
 \ https://forth-standard.org/standard/core/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] R> [IF]
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,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]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,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]
+
+    [UNDEFINED] DO
+    [IF]     \ define DO LOOP +LOOP
 
-[UNDEFINED] DO [IF]     \ define DO LOOP +LOOP
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP          \
+    MOV TOS,0(PSP)      \
+    ADD #2,&DP          \   make room to compile xdo
+    MOV &DP,TOS         \ -- HERE+2
+    MOV #XDO,-2(TOS)    \   compile xdo
+    ADD #2,&LEAVEPTR    \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W     \
+    MOV #0,0(W)         \ -- HERE+2     L-- 0, init
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/LOOP
 \ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP          \ make room to compile two words
     MOV &DP,W
     MOV X,-4(W)         \ xloop --> HERE
     MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP
-MOV #XPLOOP,X
-GOTO BW1        \ goto BW1 LOOP
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] I [IF]
 \ https://forth-standard.org/standard/core/I
 \ I        -- n   R: sys1 sys2 -- sys1 sys2
 \                  get the innermost loop index
-CODE I
-SUB #2,PSP              \ 1 make room in TOS
-MOV TOS,0(PSP)          \ 3
-MOV @RSP,TOS            \ 2 index = loopctr - fudge
-SUB 2(RSP),TOS          \ 3
-MOV @IP+,PC             \ 4 13~
-ENDCODE
-[THEN]
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,PSP              \ 1 make room in TOS
+    MOV TOS,0(PSP)          \ 3
+    MOV @RSP,TOS            \ 2 index = loopctr - fudge
+    SUB 2(RSP),TOS          \ 3
+    MOV @IP+,PC             \ 4 13~
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+    DEFER CR    \ DEFERed definition, by default executes that of :NONAME
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/BASE
+\ BASE    -- a-addr       holds conversion radix
+    [UNDEFINED] BASE
+    [IF]
+    BASEADR  CONSTANT BASE
+    [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]
+    [UNDEFINED] DUMP
+    [IF]       \ defined in {UTILITY}
+    CODE DUMP                   \ adr n  --   dump memory
+    PUSH IP
+    PUSH &BASE                  \ save current base
+    MOV #$10,&BASE              \ 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> BASE !               \ restore current base
+    ;
+    [THEN]
+
+    [UNDEFINED] HERE
+    [IF]
+    CODE HERE
+    MOV #HEREXEC,PC
+    ENDCODE
+    [THEN]
+
+    RST_SET
+
+
+    ECHO
+
+; -----------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER: CALLA (without extended word)
+; -----------------------------------------------------------------------------
+; absolute and immediate instructs. must be written as $x.xxxx (DOUBLE numbers)
+; indexed instructions must be written as $xxxx(REG) (single numbers)
+; -----------------------------------------------------------------------------
 
-[UNDEFINED] HERE [IF]
-CODE HERE
-MOV #HEREXEC,PC
+HERE
+CODE TT
+CALLA W
 ENDCODE
-[THEN]
-
-PWR_HERE
-
-
-ECHO
-; --------------------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV : 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)
-; --------------------------------------------------------------------------------
+HERE OVER - DUMP
+; you should see:       4A 13
+RST_RET
 
 HERE
-CODE TEST
-MOVA @W,T
+CODE TT
+CALLA $3456(W)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       5A 13  56 34
+RST_RET
 
 HERE
-CODE TEST
-MOVA @T+,W
+CODE TT
+CALLA 0(PSP)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>1A 0B<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       5F 13  00 00
+RST_RET
 
 HERE
-CODE TEST
-MOVA &$1.2345,T
+CODE TT
+CALLA @W
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>2B 01 45 23<04 44 55 4D
-PWR_STATE
+; you should see:       6A 13
+RST_RET
 
 HERE
-CODE TEST
-MOVA $.1234(W),S
+CODE TT
+CALLA @PSP
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>3C 0A 34 12<04 44 55 4D
-PWR_STATE
+; you should see:       6F 13
+RST_RET
 
 HERE
-CODE TEST
-MOVA T,&$1.2345
+CODE TT
+CALLA @W+
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>61 0B 45 23<04 44 55 4D
-PWR_STATE
+; you should see:       7A 13
+RST_RET
 
 HERE
-CODE TEST
-MOVA S,$.1234(W)
+CODE TT
+CALLA &$2.3456
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>7A 0C 34 12<04 44 55 4D
-PWR_STATE
+; you should see:       82 13  56 34
+RST_RET
 
 HERE
-CODE TEST
-MOVA #$0.1,S
+CODE TT
+CALLA #$5.6789
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>8C 00 01 00<04 44 55 4D
-PWR_STATE
+; you should see:       B5 13  89 67
+RST_RET
+
+; -----------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV : Adda|Cmpa|Mova|Suba
+; -----------------------------------------------------------------------------
+; absolute and immediate instructs. must be written as $x.xxxx (DOUBLE numbers)
+; indexed instructions must be written as $xxxx(REG) (single numbers)
+; -----------------------------------------------------------------------------
 
 HERE
-CODE TEST
-CMPA #$1.2345,S
+CODE TT
+MOVA @W,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>9C 01 45 23<04 44 55 4D
-PWR_STATE
+; you should see:       0B 0A
+RST_RET
 
 HERE
-CODE TEST
-ADDA #$2.3456,S
+CODE TT
+MOVA @T+,W
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>AC 02 56 34<04 44 55 4D
-PWR_STATE
+; you should see:       1A 0B
+RST_RET
 
 HERE
-CODE TEST
-SUBA #$3.4567,S
+CODE TT
+MOVA &$1.2345,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>BC 03 67 45<04 44 55 4D
-PWR_STATE
+; you should see:       2B 01  45 23
+RST_RET
 
+HERE
+CODE TT
+MOVA 2(PSP),TOS
+ENDCODE
+HERE OVER - DUMP
+; you should see:       3E 0F  02 00
+RST_RET
 
+HERE
+CODE TT
+MOVA $1234(W),S
+ENDCODE
+HERE OVER - DUMP
+; you should see:       3C 0A  34 12
+RST_RET
 
 HERE
-CODE TEST
-MOVA W,T
+CODE TT
+MOVA T,&$1.2345
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>CB 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       61 0B  45 23
+RST_RET
 
 HERE
-CODE TEST
-CMPA W,T
+CODE TT
+MOVA TOS,0(PSP)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>DB 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       7F 0E  00 00
+RST_RET
 
 HERE
-CODE TEST
-ADDA W,T
+CODE TT
+MOVA S,$1234(W)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>EB 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       7A 0C  34 12
+RST_RET
 
 HERE
-CODE TEST
-SUBA W,T
+CODE TT
+MOVA #$0.1,S
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>FB 0A<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       8C 00  01 00
+RST_RET
 
-; --------------------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER: 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)
-; --------------------------------------------------------------------------------
+HERE
+CODE TT
+CMPA #$1.2345,S
+ENDCODE
+HERE OVER - DUMP
+; you should see:       9C 01  45 23
+RST_RET
 
 HERE
-CODE TEST
-CALLA W
+CODE TT
+ADDA #$2.3456,S
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>4A 13<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       AC 02  56 34
+RST_RET
 
 HERE
-CODE TEST
-CALLA $.3456(W)
+CODE TT
+SUBA #$3.4567,S
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>5A 13 56 34<04 44 55 4D
-PWR_STATE
+; you should see:       BC 03  67 45
+RST_RET
 
 HERE
-CODE TEST
-CALLA @W
+CODE TT
+MOVA W,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>6A 13<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       CB 0A
+RST_RET
 
 HERE
-CODE TEST
-CALLA @W+
+CODE TT
+CMPA W,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>7A 13<04 44 55 4D 50 4F
-PWR_STATE
+; you should see:       DB 0A
+RST_RET
 
 HERE
-CODE TEST
-CALLA &$2.3456
+CODE TT
+ADDA W,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>82 13 56 34<04 44 55 4D
-PWR_STATE
+; you should see:       EB 0A
+RST_RET
 
 HERE
-CODE TEST
-CALLA #$5.6789
+CODE TT
+SUBA W,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>B5 13 89 67<04 44 55 4D
-PWR_STATE
+; you should see:       FB 0A
+RST_RET
 
-; --------------------------------------------------------------------------------
+; -----------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES V extended double operand
-; --------------------------------------------------------------------------------
-; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
+; -----------------------------------------------------------------------------
+; absolute and immediate instructs. must be written as $x.xxxx (DOUBLE numbers)
 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
-; --------------------------------------------------------------------------------
+; -----------------------------------------------------------------------------
 
 HERE
-CODE TEST
+CODE TT
 MOV S,T
 MOVX S,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 4C 40 18 0B 4C<04 44
-PWR_STATE
+; you should see:       0B 4C  40 18 0B 4C
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADD T,T
 ADDX.A T,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 5B 00 18 4B 5B<04 44
-PWR_STATE
+; you should see:       0B 5B  00 18 4B 5B
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADD T,T
 RPT X
 ADDX.A T,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 5B 89 18 4B 5B<04 44
-PWR_STATE
+; you should see:       0B 5B  89 18 4B 5B
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADD T,T
 RPT #8
 ADDX.A T,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 5B 07 18 4B 5B<04 44
-PWR_STATE
+; you should see:       0B 5B  07 18 4B 5B
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADDC #$9876,T
 ADDCX.A #$5.9876,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>3B 60 76 98 80 1A 7B 60
-;     76 98<04 44 55 4D
-PWR_STATE
+; you should see:       3B 60  76 98 80 1A 7B 60 76 98
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 ADDC &$9876,T
 ADDCX.A &$5.9876,T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>1B 62 76 98 80 1A 5B 62
-;     76 98<04 44 55 4D
-PWR_STATE
+; you should see:       1B 62  76 98 80 1A 5B 62 76 98
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 XOR.B $5432(S),T
 XORX.B $6.5432(S),T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>5B EC 32 54 46 18 5B EC
-;     32 54<04 44 55 4D
-PWR_STATE
+; you should see:       5B EC  32 54 46 18 5B EC 32 54
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 SUBC T,$5432(S)
 SUBCX.A T,$6.5432(S)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>8C 7B 32 54 06 18 CC 7B
-;     32 54<04 44 55 4D
-PWR_STATE
+; you should see:       8C 7B  32 54 06 18 CC 7B 32 54
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 XOR.B T,$5432(S)
 XORX.B T,$6.5432(S)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>CC EB 32 54 46 18 CC EB
-;     32 54<04 44 55 4D
-PWR_STATE
-
-; --------------------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES VI extended single operand (take count of RPT)
-; --------------------------------------------------------------------------------
-; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers)
+; you should see:       CC EB  32 54 46 18 CC EB 32 54
+RST_RET
+
+; -----------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES VI extended single operand
+; -----------------------------------------------------------------------------
+; absolute and immediate instructs. must be written as $x.xxxx (DOUBLE numbers)
 ; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers)
-; --------------------------------------------------------------------------------
+; -----------------------------------------------------------------------------
 
 HERE
-CODE TEST
+CODE TT
 RRA X
 RRAX X
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>09 11 40 18 09 11<04 44
-PWR_STATE
+; you should see:       09 11  40 18 09 11
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC @X
 RRCX.A @X
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>29 10 00 18 69 10<04 44
-PWR_STATE
+; you should see:       29 10  00 18 69 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC @S
 RRCX.A @S
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>2C 10 00 18 6C 10<04 44
-PWR_STATE
+; you should see:       2C 10  00 18 6C 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC @X+
 RRUX.A @X+
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>39 10 00 19 79 10<04 44
-PWR_STATE
+; you should see:       39 10  00 19 79 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC T
 RPT #9
 RRUX.A T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 10 08 19 4B 10<04 44
-PWR_STATE
+; you should see:       0B 10  08 19 4B 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 RRC T
 RPT X
 RRUX.A T
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>0B 10 89 19 4B 10<04 44
-PWR_STATE
+; you should see:       0B 10  89 19 4B 10
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 PUSH #$2345
 PUSHX #$0.2345
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>30 12 45 23 40 18 30 12
-;     45 23<04 44 55 4D
-PWR_STATE
+; you should see:       30 12  45 23 40 18 30 12 45 23
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 PUSH &$5678
 PUSHX.A &$4.5678
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>12 12 78 56 00 1A 52 12
-;     78 56<04 44 55 4D
-PWR_STATE
+; you should see:       12 12  78 56 00 1A 52 12 78 56
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 PUSH.B &$33
 PUSHX.B &$.33
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>52 12 33 00 40 18 52 12
-;     33 00<04 44 55 4D
-PWR_STATE
+; you should see:       52 12  33 00 40 18 52 12 33 00
+RST_RET
 
 HERE
-CODE TEST
+CODE TT
 PUSH.B $3344(T)
 PUSHX.B $.3344(T)
 ENDCODE
 HERE OVER - DUMP
-; you should see: 45 53 54 52>5B 12 44 33 40 18 5B 12
-;     44 33<04 44 55 4D
-PWR_STATE
+; you should see:       5B 12  44 33 40 18 5B 12 44 33
+RST_RET
+
+\ https://forth-standard.org/standard/core/BASE
+\ BASE    -- a-addr       holds conversion radix
+    [UNDEFINED] BASE
+    [IF]
+    ' # 2 +  CONSTANT BASE
+    [THEN]
 
 
 
 : %.
-BASEADR @ %10 BASEADR ! SWAP 8 EMIT . BASEADR !
+BASE @ %10 BASE ! SWAP 8 EMIT . BASE !
+RST_RET
 ;
 
 : %U.
-BASEADR @ %10 BASEADR ! SWAP 8 EMIT U. BASEADR ! ;
-
-PWR_HERE
+BASE @ %10 BASE ! SWAP 8 EMIT U. BASE !
+RST_RET
+;
 
+RST_SET
 
 ; ================
 ; RRUX test
@@ -678,9 +766,8 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRUX_T ; you should see %111100001111000 --> %
-
-PWR_STATE
+RRUX_T ;            %
+; you should see:   %111100001111000
 
 ; ================
 ; RRUX repeat test
@@ -697,9 +784,8 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRUX_T ; you should see %111100001111000 --> %
-
-PWR_STATE
+RRUX_T ;            %
+; you should see:   %111100001111000
 
 CODE RRUX_T
 MOV #$F0F0,Y
@@ -711,9 +797,8 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRUX_T ; you should see %111100001111 --> %
-
-PWR_STATE
+RRUX_T ; -->        %
+; you should see:   %111100001111
 
 CODE RRUX_T
 MOV #$F0F0,Y
@@ -725,16 +810,13 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRUX_T ; you should see %11110000 --> %
-
-PWR_STATE
-
+RRUX_T ;            %
+; you should see:   %11110000
 
 ; ================
 ; RRCX test
 ; ================
 
-
 CODE RRCX_T
 MOV #$8000,Y
 BIC #C,SR
@@ -745,9 +827,8 @@ MOV Y,TOS
 MOV #%U.,PC
 ENDCODE
 
-RRCX_T ; you should see %100000000000000 --> %
-
-PWR_STATE
+RRCX_T ;            %
+; you should see:   %100000000000000
 
 ; ================
 ; RRCX repeat test
@@ -764,9 +845,8 @@ MOV Y,TOS
 MOV #%U.,PC
 ENDCODE
 
-RRCX_T ; you should see %100000000000000 --> %
-
-PWR_STATE
+RRCX_T ;            %
+; you should see:   %100000000000000
 
 CODE RRCX_T
 MOV #$8000,Y
@@ -779,15 +859,13 @@ MOV Y,TOS
 MOV #%U.,PC
 ENDCODE
 
-RRCX_T ; you should see %10000000 --> %
-
-PWR_STATE
+RRCX_T ;            %
+; you should see:   %10000000
 
 ; ================
 ; RRAX test
 ; ================
 
-
 CODE RRAX_T
 MOV #$8000,Y
 RRAX Y
@@ -797,9 +875,8 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRAX_T ; you should see %-100000000000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-100000000000000
 
 ; ================
 ; RRAX repeat test
@@ -816,9 +893,8 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRAX_T ; you should see %-100000000000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-100000000000000
 
 CODE RRAX_T
 MOV #$8000,Y
@@ -830,9 +906,8 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRAX_T ; you should see %-10000000000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-10000000000000
 
 CODE RRAX_T
 MOV #$8000,Y
@@ -844,9 +919,8 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRAX_T ; you should see %-1000000000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-1000000000000
 
 CODE RRAX_T
 MOV #$8000,Y
@@ -858,9 +932,8 @@ MOV Y,TOS
 MOV #%.,PC
 ENDCODE
 
-RRAX_T ; you should see %-100000000 --> %
-
-PWR_STATE
+RRAX_T ;            %
+; you should see:   %-100000000
 
 ; ================
 ; RLAX test
@@ -878,8 +951,6 @@ ENDCODE
 
 RLAX_T ; you should see -2 -->
 
-PWR_STATE
-
 ; ================
 ; RLAX repeat test
 ; ================
@@ -897,8 +968,6 @@ ENDCODE
 
 RLAX_T ; you should see -2 -->
 
-PWR_STATE
-
 CODE RLAX_T
 MOV #-1,Y
 RPT #2
@@ -911,8 +980,6 @@ ENDCODE
 
 RLAX_T ; you should see -4 -->
 
-PWR_STATE
-
 CODE RLAX_T
 MOV #-1,Y
 RPT #3
@@ -925,8 +992,6 @@ ENDCODE
 
 RLAX_T ; you should see -8 -->
 
-PWR_STATE
-
 CODE RLAX_T
 MOV #-1,Y
 RPT #8
@@ -939,8 +1004,6 @@ ENDCODE
 
 RLAX_T ; you should see -256 -->
 
-PWR_STATE
-
 ; ================
 ; ADDX test
 ; ================
@@ -958,8 +1021,6 @@ ENDCODE
 
 ADDX_T ; you should see -1 -->
 
-PWR_STATE
-
 ; ================
 ; ADDX repeat test
 ; ================
@@ -978,8 +1039,6 @@ ENDCODE
 
 ADDX_T ; you should see -1 -->
 
-PWR_STATE
-
 CODE ADDX_T
 MOV #0,Y
 MOV #-1,X
@@ -993,8 +1052,6 @@ ENDCODE
 
 ADDX_T ; you should see -2 -->
 
-PWR_STATE
-
 CODE ADDX_T
 MOV #0,Y
 MOV #-1,X
@@ -1008,9 +1065,6 @@ ENDCODE
 
 ADDX_T ; you should see -8 -->
 
-PWR_STATE
-
-
 ; ================
 ; SUBX test
 ; ================
@@ -1028,8 +1082,6 @@ ENDCODE
 
 SUBX_T ; you should see 1 -->
 
-PWR_STATE
-
 ; ================
 ; SUBX repeat test
 ; ================
@@ -1048,8 +1100,6 @@ ENDCODE
 
 SUBX_T ; you should see 1 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #0,Y
 MOV #-1,X
@@ -1063,8 +1113,6 @@ ENDCODE
 
 SUBX_T ; you should see 2 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #0,Y
 MOV #-1,X
@@ -1078,8 +1126,6 @@ ENDCODE
 
 SUBX_T ; you should see 8 -->
 
-PWR_STATE
-
 CODE SUBX_T     \ W register = R10
 MOV #15,W       \ RPT [W] times, modulo 16 <--> RPT #16
 MOV #0,Y
@@ -1094,8 +1140,6 @@ ENDCODE
 
 SUBX_T ; you should see 16 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #32,W       \ RPT [W] times, modulo 16 <--> RPT #1
 MOV #0,Y
@@ -1110,8 +1154,6 @@ ENDCODE
 
 SUBX_T ; you should see 1 -->
 
-PWR_STATE
-
 CODE SUBX_T
 MOV #33,W       \ RPT [W] times, modulo 16 <--> RPT #2
 MOV #0,Y
@@ -1126,4 +1168,4 @@ ENDCODE
 
 SUBX_T ; you should see 2 -->
 
-RST_STATE
+{TEST_ASMX}
diff --git a/MSP430-FORTH/TSTWORDS.4TH b/MSP430-FORTH/TSTWORDS.4TH
deleted file mode 100644 (file)
index fb92b9c..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>     --
-    $20 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
diff --git a/MSP430-FORTH/TSTWORDS.f b/MSP430-FORTH/TSTWORDS.f
new file mode 100644 (file)
index 0000000..4712eb4
--- /dev/null
@@ -0,0 +1,306 @@
+\ -----------------------------
+\ MSP-EXP430FR5969_TSTWORDS.f
+\ -----------------------------
+
+\ first, we test for downloading driver only if UART TERMINAL target
+    CODE ABORT_TSTWORDS
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    'CR' EMIT            \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    RST_RET           \ remove ABORT_TEST_ASM definition before resuming
+    ;
+
+    ABORT_TSTWORDS      \ abort test
+
+    [DEFINED] {TSTWORDS} [IF]  {TSTWORDS} [THEN] \ remove it
+
+    MARKER {TSTWORDS}
+
+
+\ https://forth-standard.org/standard/core/ZeroEqual
+\ 0=     n/u -- flag    return true if TOS=0
+    [UNDEFINED] 0=
+    [IF]
+    CODE 0=
+    SUB #1,TOS      \ 1 borrow (clear cy) if TOS was 0
+    SUBC TOS,TOS    \ 1 TOS=-1 if borrow was set
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+    [UNDEFINED] DUP
+    [IF]    \ define DUP and ?DUP
+\ https://forth-standard.org/standard/core/DUP
+\ DUP      x -- x x      duplicate top of stack
+    CODE DUP
+BW1 SUB #2,PSP      \ 2  push old TOS..
+    MOV TOS,0(PSP)  \ 3  ..onto stack
+    MOV @IP+,PC     \ 4
+    ENDCODE
+
+\ https://forth-standard.org/standard/core/qDUP
+\ ?DUP     x -- 0 | x x    DUP if nonzero
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/IF
+\ IF       -- IFadr    initialize conditional forward branch
+    [UNDEFINED] IF
+    [IF]     \ define IF THEN
+
+    CODE IF
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    MOV &DP,TOS             \ -- HERE
+    ADD #4,&DP            \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
+    ADD #2,TOS              \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/THEN
+\ THEN     IFadr --                resolve forward branch
+    CODE THEN
+    MOV &DP,0(TOS)          \ -- IFadr
+    MOV @PSP+,TOS           \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/ELSE
+\ ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
+    [UNDEFINED] ELSE
+    [IF]
+    CODE ELSE
+    ADD #4,&DP              \ make room to compile two words
+    MOV &DP,W               \ W=HERE+4
+    MOV #BRAN,-4(W)
+    MOV W,0(TOS)            \ HERE+4 ==> [IFadr]
+    SUB #2,W                \ HERE+2
+    MOV W,TOS               \ -- ELSEadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/SWAP
+\ SWAP     x1 x2 -- x2 x1    swap top two items
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    PUSH TOS            \ 3
+    MOV @PSP,TOS        \ 2
+    MOV @RSP+,0(PSP)    \ 4
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/BEGIN
+\ BEGIN    -- BEGINadr             initialize backward branch
+    [UNDEFINED] BEGIN
+    [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+
+    CODE BEGIN
+    MOV #HEREXEC,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/UNTIL
+\ UNTIL    BEGINadr --             resolve conditional backward branch
+    CODE UNTIL
+    MOV #QFBRAN,X
+BW1 ADD #4,&DP          \ compile two words
+    MOV &DP,W           \ W = HERE
+    MOV X,-4(W)         \ compile Bran or QFBRAN at HERE
+    MOV TOS,-2(W)       \ compile bakcward adr at HERE+2
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/AGAIN
+\ AGAIN    BEGINadr --             resolve uncondionnal backward branch
+    CODE AGAIN
+    MOV #BRAN,X
+    GOTO BW1
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/WHILE
+\ WHILE    BEGINadr -- WHILEadr BEGINadr
+    : WHILE
+    POSTPONE IF SWAP
+    ; IMMEDIATE
+
+\ https://forth-standard.org/standard/core/REPEAT
+\ REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
+
+    [UNDEFINED] DO
+    [IF]     \ define DO LOOP +LOOP
+
+\ https://forth-standard.org/standard/core/DO
+\ DO       -- DOadr   L: -- 0
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO
+    SUB #2,PSP          \
+    MOV TOS,0(PSP)      \
+    ADD #2,&DP          \   make room to compile xdo
+    MOV &DP,TOS         \ -- HERE+2
+    MOV #XDO,-2(TOS)    \   compile xdo
+    ADD #2,&LEAVEPTR    \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W     \
+    MOV #0,0(W)         \ -- HERE+2     L-- 0, init
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/LOOP
+\ LOOP    DOadr --         L-- an an-1 .. a1 0
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
+    MOV #XLOOP,X
+BW2 ADD #4,&DP          \ make room to compile two words
+    MOV &DP,W
+    MOV X,-4(W)         \ xloop --> HERE
+    MOV TOS,-2(W)       \ DOadr --> HERE+2
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+\ https://forth-standard.org/standard/core/PlusLOOP
+\ +LOOP   adrs --   L-- an an-1 .. a1 0
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
+
+
+    RST_SET
+\ -----------------------------------------------------------------------
+\ test some assembler words and show how to mix FORTH/ASSEMBLER routines
+\ -----------------------------------------------------------------------
+LOAD" \misc\TestASM.4th"
+
+ECHO
+
+\ -------------------------------------
+\ here we returned in the TestWords.4th
+\ -------------------------------------
+
+\ ----------
+\ 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>     --
+   $20 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
+\
\ No newline at end of file
index 15eb7c6..cbf9af8 100644 (file)
 \
 \ FastForth kernel compilation minimal options:
 \ TERMINAL3WIRES, TERMINAL4WIRES
-\ MSP430ASSEMBLER, CONDCOMP
 \
 \ ================================================================================
 \ REGISTERS USAGE for embedded MSP430 ASSEMBLER
 \ ================================================================================
 \ don't use R2, R3,
 \ R4, R5, R6, R7 must be PUSHed/POPed before/after use
-\ scratch registers S to Y are free,
-\ under interrupt, IP is free,
-\ Apply FORTH rules for TOS, PSP, RSP registers use.
+\ scratch registers S,T,W,X and Y are free,
+\ in interrupt routines, IP is free,
+\ Apply FORTH rules for TOS, PSP, RSP registers.
 \
 \ PUSHM order : PSP,TOS, IP, S , T , W , X , Y ,rDOVAR,rDOCON,rDODOES,rDOCOL, 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
+\ example : PUSHM #6,IP pushes IP,S,T,W,X,Y registers to return stack, with IP first pushed
 \
 \ 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
+\ example : POPM #6,IP   pop Y,X,W,T,S,IP registers from return stack, with IP last poped
 \
 \ ASSEMBLER conditionnal usage before IF UNTIL WHILE : S< S>= U< U>= 0= 0<> 0>=
-\ ASSEMBLER conditionnal usage before          ?GOTO : S< S>= U< U>= 0= 0<> 0< 
+\ ASSEMBLER conditionnal usage before          ?GOTO : S< S>= U< U>= 0= 0<> 0<
 \
 \ ================================================================================
 \ coupled to a PL2303HXD/TA cable, this driver enables a FastForth target to act as USB to I2C_Slave bridge,
 \ In addition, it simulates a full duplex communication while the I2C bus is only half duplex.
 \ Don't forget to wire 3k3 pull up resistors on wires SDA SCL!
 \ ================================================================================
-\ 
+\
 \ driver test : MCLK=24MHz, PL2303HXD with shortened cable (20cm), WIFI off, all windows apps closed else Scite and TERATERM.
-\ -----------
-\                                                                                               /         ┌────────────────────────────────┐
-\     notebook                                  USB to I2C_Slave bridge                        +-- I2C -->|  up to 112 I2C_Slave targets   |
+\ -----------                                                                                    .
+\                                                                                               .         ┌────────────────────────────────┐
+\     notebook                                  USB to I2C bridge                              +-- I2C -->|  up to 112 I2C_Slave targets   |
 \ ┌───────────────┐          ╔════════════════════════════════════════════════════════════╗   /         ┌───────────────────────────────┐  |
-\ |               |          ║   PL2303HXD                target running UARTI2CS @ 24MHz ║  +-- I2C -->|    MSP430FR4133 @ 1 MHz       |  |
+\ |               |          ║   PL2303HXD                device running UARTI2CS @ 24MHz ║  +-- I2C -->|    MSP430FR4133 @ 1 MHz       |  |
 \ |               |          ║───────────────┐           ┌────────────────────────────────║ /        ┌───────────────────────────────┐  |──┘
 \ |               |          ║               |  3 wires  |    MSP430FR2355 @ 24MHz        ║/         |    MSP430FR5738 @ 24 MHz      |  |
-\ |   TERATERM   -o--> USB --o--> USB2UART --o--> UART --o--> FAST FORTH ---> UARTI2CS  --o--> I2C --o--> FAST FORTH with option     |──┘
-\ |   terminal    |          ║               |   6 MBds  |                  (I2C MASTER)  ║          |    TERMINAL_I2C (I2C SLAVE)   | 
+\ |   TERATERM   -o--> USB --o--> USB2UART --o--> UART --o--> FAST FORTH ---> UARTI2CS  --o--> I2C --o-->    FAST FORTH with         |──┘
+\ |   terminal    |          ║               |   6 MBds  |                  (I2C MASTER)  ║          |         I2C TERMINAL          |
 \ |               |          ║───────────────┘           └────────────────────────────────║          └───────────────────────────────┘
-\ |               |          ║               |<- l=20cm->|                                ║ 
-\ └───────────────┘          ╚════════════════════════════════════════════════════════════╝              
+\ |               |          ║               |<- l=20cm->|                                ║
+\ └───────────────┘          ╚════════════════════════════════════════════════════════════╝
 \
 \ test results :
 \ ------------
 \ downloading (+ interpret + compile + execute) CORETEST.4TH to I2C Master target = 1016ms.
 \ downloading (+ interpret + compile + execute) CORETEST.4TH to I2C Slave target = 1422ms.
 \ the difference (406 ms) is the time of the I2C Half duplex exchange.
-\ [(45906 chars * 9 bits) + (1533 * 31)] / 0,406 = 1,135 MHz (9 bits / char + (2*START + 2*STOP + 2*addr + CTRL_Char) / line) 
+\ [(45906 chars * 9 bits) + (1533 * 31)] / 0,406 = 1,135 MHz (9 bits / char + (2*START + 2*STOP + 2*addr + CTRL_Char) / line)
 \ ==> 113 % of I2C Fast-mode Plus (Fm+)!
-\ 
+\
 \ also connected to and tested with another I2C_FastForth target with MCLK = 1MHz (I2C CLK = MCLK ! ).
 \
 \ The I2C_Slave address is defined as 'MYSLAVEADR' in forthMSP430FR.asm source file of I2C_Slave target.
-\ You can use any pin for SDA and SCL, preferably in the interval Px0...Px3.  
-\ you will find SCA and SCL pin by searching 'SM_BUS' in your \inc\target.pat files (I2C_Master and I2C_Slave)
+\ You can use any pin for SDA and SCL, preferably in the interval Px0...Px3.
 \ don't forget to add 3.3k pullup resitors on wires SDA and SCL.
 \
 \
 \
 \ 1- the I2C bus is Master to Slave oriented, the Slave does not decide anything.
 \    This order of things allows in any case to establish the connection.
-\    The I2C Master device is therefore placed on the control TERMINAL side and the FastForth target on the I2C Slave side.
-\    But once the link is established, we have to find a trick to reverse the roles, 
+\    The I2C Master device is therefore placed on the TERMINAL side and the FastForth target on the I2C Slave side.
+\    But once the link is established, we have to find a trick to reverse the roles,
 \    so that the slave can take control of the data exchange.
 \
-\ 2- The I2C bus operates on half duplex. 
+\ 2- The I2C bus operates on half duplex.
 \    Another trick will be to simulate an I2C_Master TERMINAL in Full Duplex mode.
 \
+\ 3- Without forgetting a visual effect to show the lack of I2C connection...
+\
 \ Solution: The slave "slavishly" sends control characters to the master,
 \ and since this one obeys a bigger man than himself: the programmer..,
 \ he makes it his "masterly" duty to obey the slave.
 \
-\ To take control of the master, the slave emits 1 of 6+1 CTRL-Char:
+\ To take control of the master, the slave emits one of 5+1 CTRL-Char:
 \   CTRL-Char $00 sent by ACCEPT (before falling asleep with SLEEP),
 \   CTRL-Char $01 sent by KEY: request to send a single character entered on TERMINAL,
 \   CTRL-Char $02 sent by ABORT": request to abort the file being downloaded if any,
 \                                followed by a START RX for ABORT" message,
-\   CTRL-Char $03 sent by WARM, to do a reSTART RX for WARM message,
 \   CTRL-Char $04 sent by NOECHO, to switch the UART to half-duplex mode,
 \   CTRL-Char $05 sent by ECHO, to switch the UART to full duplex mode.
 \
 \   Finally, if the master receives a $FF as data, he considers the link broken,
-\   it performs ABORT which forces a START RX on a loop.
+\   it performs ABORT which forces a START RX into a 500 ms loop with an appropriate visual effect...
 \
-\ Once the slave sends the CTRL_Char $00, he falls asleep, 
-\ On receipt of this CTRL_Char, the master also falls asleep, awaiting a UART RX interruption.
+\ Once the slave sends the CTRL_Char $00, he falls asleep,
+\ On its receipt, the master also falls asleep, awaiting a UART RX interruption.
 \ As long as the TERMINAL is silent, the master and the slave remain in SLEEP mode,
 \ (a part the Tx0_INT interrupt every 1/2 s).
 \ SLEEP mode is LPM0 for the master (UART does not work if LPMx > LPM0), LPM4 for the slave.
 \ -------------
 \ Since the slave can't wake up the master with a dedicated interrupt, the master must generate one
 \ cyclically to listen to the slave.
-\ HALF_S_INT is used to generate a 1/2 second interrupt, obviously taken into account only when the master goes to sleep.
-\ It performs a (re)START RX that enables the I2C link to be re-established following a RESET performed on I2C_Slave.
-\
-\ This interruption also allows the UARTI2CS program to exit when Teraterm sends a BREAK (Alt-B).
-\
-\ the other interruption U2I_TERM_INT is used to communicate with TERMINAL, by replacing of the TERM_INT one.
-\
-\  Software              +----------------------------------+       Hardware
-\  I2C Master            |       +-------------------+      |       I2C Slave
-\                        |       |                   |      |   
-\ UART to I2C bridge    SCL     SDA   connected to: SDA    SCL    I2CFastForth target 
-\ -------------------   ----    ----                ----   ----   ------------------  
-\ MSP_EXP430FR5739      P4.1    P4.0                P1.6   P1.7   MSP_EXP430FR5739    
-\ MSP_EXP430FR5969      P1.3    P1.2                P1.6   P1.7   MSP_EXP430FR5969          
-\ MSP_EXP430FR5994      P8.1    P8.2                P7.0   P7.1   MSP_EXP430FR5994       
-\ MSP_EXP430FR6989      P1.5    P1.3                P1.6   P1.7   MSP_EXP430FR6989    
-\ MSP_EXP430FR4133      P8.3    P8.2                P5.2   P5.3   MSP_EXP430FR4133    
-\ CHIPSTICK_FR2433      P2.2    P2.0                P1.2   P1.3   CHIPSTICK_FR2433       
-\ MSP_EXP430FR2433      P3.1    P3.2                P1.2   P1.3   MSP_EXP430FR2433       
-\ MSP_EXP430FR2355      P3.3    P3.2                P1.2   P1.3   MSP_EXP430FR2355    
-\ LP_MSP430FR2476       P3.3    P3.2                P4.4   P4.3   LP_MSP430FR2476     
+\ 500MS_INT is used to generate a 1/2 second interrupt, obviously taken into account only when the master goes to sleep.
+\ It performs a (re)START RX that enables the I2C link to be re-established following a RESET performed on I2C_Slave side.
+\
+\ This interruption also allows to exit the UARTI2CS program when user sends a software BREAK (Teraterm(Alt-B)), or presses SW2.
+\
+\ the other interruption U2I_TERM_INT is used to link the TERMINAL with UARTI2CS instead of FORTH interpreter.
 \
 \ don't forget to link 3V3 and GND on each side and to add 3k3 pullup resistors on SDA and SCL.
+\
+\ because Txi_int > UCxi_int > Pi.j_int and to ensure U2I_TERM_INT priority greater than 500MS_INT
+\ we choose P1.7 = TB0.2 output linked to P1.6 to use P1.6_int instead of Txi_int for 500MS_INT.
 
-; ----------------------------------------------------------------------
-; UARTI2CS.f (Software I2C Master)
-; ----------------------------------------------------------------------
-
-\ first, we do some tests before downloading application
-CODE ABORT_UARTI2CS
-SUB #4,PSP
-MOV TOS,2(PSP)
-MOV &KERNEL_ADDON,TOS
-BIT #$7800,TOS
-0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (UART TERMINAL), set TOS = 0
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS            \ FastForth V3.8
-COLON
-$0D EMIT            \ return to column 1 without CR
-ABORT" FastForth V3.8 please!"
-ABORT" <-- Ouch! unexpected I2C_FastForth target!"
-PWR_STATE           \ remove the ABORT_UARTI2CS definition before continuing the download.
-;
-
-ABORT_UARTI2CS      \ abort test
+; --------------------------------------------------------- \
+; UARTI2CS.f \ UART to I2C bridge for I2C_FastForth TERMINAL----------+
+; --------------------------------------------------------- \         |
+\                                                                     |
+\                                                                     |
+\                      GND------------------------------GND           |
+\                      Vcc-------------o---o------------Vcc           |
+\                                      |   |                          |
+\                                      3   3                          |
+\                                      k   k                          |
+\                                      3   3                          v
+\   I2C_FastForth                      |   |                       UARTI2CS        +---------------------------------------+
+\      hardware         +--------------|---o-------------+         Software        |    +-----------------------------+    |
+\      I2C Slave        |      +-------o----------+      |         I2C Master      |    |    +------(option)-----+    |    |
+\                       |      |                  |      |                         |    |    |                   |    |    |
+\ I2C_FastForth(s)     SCL    SDA  connected to: SDA    SCL of I2C to UART bridge TXD  RXD  RTS  connected to : CTS  TXD  RXD  UARTtoUSB <--> COMx <--> TERMINAL
+\ ------------------   ----   ----               ----   ----   ------------------ ---  ---  ---                 ---  ---  ---  ---------      ----      ------------
+\ MSP_EXP430FR5739     P1.7   P1.6               P4.0   P4.1   MSP_EXP430FR5739   P2.0 P2.1 P2.2                               PL2303TA                 TERATERM.EXE
+\ MSP_EXP430FR5969     P1.7   P1.6               P1.2   P1.3   MSP_EXP430FR5969   P2.0 P2.1 P4.1                               PL2303HXD
+\ MSP_EXP430FR5994     P7.1   P7.0               P8.2   P8.1   MSP_EXP430FR5994   P2.0 P2.1 P4.2                               CP2102
+\ MSP_EXP430FR6989     P1.7   P1.6               P1.3   P1.5   MSP_EXP430FR6989   P3.4 P3.5 P3.0
+\ MSP_EXP430FR4133     P5.3   P5.2               P8.2   P8.3   MSP_EXP430FR4133   P1.0 P1.1 P2.3
+\ CHIPSTICK_FR2433     P1.3   P1.2               P2.0   P2.2   CHIPSTICK_FR2433   P1.4 P1.5 P3.2
+\ MSP_EXP430FR2433     P1.3   P1.2               P3.2   P3.1   MSP_EXP430FR2433   P1.4 P1.5 P1.0
+\ MSP_EXP430FR2355     P1.3   P1.2               P3.2   P3.3   MSP_EXP430FR2355   P4.3 P4.2 P2.0
+\ LP_MSP430FR2476      P4.3   P4.4               P3.2   P3.3   LP_MSP430FR2476    P1.4 P1.5 P6.1
 
-[DEFINED] {UARTI2CS} [IF] {UARTI2CS} [THEN] \ remove {UARTI2CS} if already defined
+\ first, we do some tests allowing the download
+\   ------------------------\
+    CODE ABORT_UARTI2CS     \
+\   ------------------------\
+    SUB #4,PSP
+    MOV TOS,2(PSP)
+    MOV &KERNEL_ADDON,TOS
+    BIT #$3C00,TOS          \ BIT13|BIT12|BIT11|BIT10 test (UART TERMINAL test)
+    0<> IF MOV #0,TOS THEN  \ if TOS <> 0 (UART TERMINAL), set TOS = 0
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS            \ FastForth V3.9
+    COLON
+    $0D EMIT                \ return to column 1 without CR
+    ABORT" FastForth V3.9 please!"
+    ABORT" <-- Ouch! unexpected I2C_FastForth target!"
+    RST_RET                 \ remove the ABORT_UARTI2CS definition before continuing the download.
+    ;
 
-MARKER {UARTI2CS}   \ {UARTI2CS}+8 = RET_ADR by default
-8 ALLOT             \ {UARTI2CS}+10 <-- previous INI_APP
-\                     {UARTI2CS}+12 <-- previous TERM_VEC
-\                     {UARTI2CS}+14 <-- previous Tx0_x_VEC
-\                     {UARTI2CS}+16 <-- Half_Duplex flag : 0=ECHO, <>0=NOECHO
+    ABORT_UARTI2CS          \ run tests
 
-[UNDEFINED] CONSTANT [IF]
-\ https://forth-standard.org/standard/core/CONSTANT
-\ CONSTANT <name>     n --                      define a Forth CONSTANT 
-: CONSTANT 
-CREATE
-HI2LO
-MOV TOS,-2(W)           \   PFA = n
-MOV @PSP+,TOS
-MOV @RSP+,IP
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    MARKER {UARTI2CS}   \ USER_PARAM-2 addr = {UARTI2CS}-2  <-- REMOVE_APP (RET_ADR by default)
+    10 ALLOT            \ USER_PARAM   addr = {UARTI2CS}    <-- previous HARD_APP
+\                         USER_PARAM+2 addr = {UARTI2CS}+2  <-- previous SLEEP_APP
+\                         USER_PARAM+4 addr = {UARTI2CS}+4  <-- previous TERM_VEC
+\                         USER_PARAM+6 addr = {UARTI2CS}+6  <-- previous P1_VEC
+\                         USER_PARAM+8 addr = {UARTI2CS}+8  <-- I2C_Slave_Addr << 1
+\                         USER_PARAM+9 addr = {UARTI2CS}+9  <-- Half_Duplex flag : 4 --> NOECHO, <> 4 --> ECHO
 
-I2CSLA0 CONSTANT I2CS_ADR       \ I2CSLA0=$FFA2
+    [UNDEFINED] TSTBIT
+    [IF]
+    CODE TSTBIT         \ addr bit_mask -- true/flase flag
+    MOV @PSP+,X
+    AND @X,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
 \ note: HDNCODE definitions are HiDdeN and cannot be executed from TERMINAL
-\---------------------------\
-HDNCODE I2CSTOP                 \ sends a STOP on I2C_BUS
-\---------------------------\     _
-BIS.B #SM_SCL,&I2CSM_DIR    \ 3 h  v_   force SCL as output (low)
-NOP3                        \ 3 l _
-BIS.B #SM_SDA,&I2CSM_DIR    \ 3 l  v_   SDA as output ==> SDA low
-NOP3                        \ 3 l   _
-BIC.B #SM_SCL,&I2CSM_DIR    \ 3 l _^    release SCL (high)
-NOP3                        \ 3 h   _
-BIC.B #SM_SDA,&I2CSM_DIR    \ 3 h _^    relase SDA (high) when SCL is high = STOP
-MOV @RSP+,PC                \
-ENDCODE                      \
-\---------------------------\
-
-\---------------------------\
-HDNCODE STOP_U2I                \ STOP_APP subroutine, the next of TERATERM(ALT+B)|SW2+RST|SYS_failures
-\ --------------------------\ UARTI2CS can't be stopped by any other means.
-BW1                         \ <-- I2C_MASTER_RX <-- TERATERM break (Alt+B)
-CMP #RET_ADR,&{UARTI2CS}+8  \
-0<> IF                      \ run STOP_U2I once, only if MARKER_DOES is already initialized
-\    \ ----------------------\
-\    BIC.B #LED2,&LED2_DIR   \ set RX green led OFF
-\    BIC.B #LED2,&LED2_OUT   \ set RX green led OFF
-\    BIC.B #LED1,&LED1_DIR   \ set TX red led OFF
-\    BIC.B #LED1,&LED1_OUT   \ set TX red led OFF
-\    \ ----------------------\
-    CALL #I2CSTOP           \ stop properly I2C_BUS
-    MOV #SM_BUS,W           \
-    BIC.B W,&I2CSM_DIR      \ restore I2C_BUS I/O as input 
-    BIS.B W,&I2CSM_OUT      \         with pull up resistors
-    BIS.B W,&I2CSM_REN      \
-\    MOV #0,&TA0CTL          \ stop timer and clear its interrupt flags IE, IFG
-    MOV #0,&TB0CTL          \ stop timer and clear its interrupt flags IE, IFG
-\ --------------------------\
-    MOV #{UARTI2CS}+10,W    \ W = addr of first saved param after MARKER_DOES
-    MOV #RET_ADR,-2(W)      \ don't forget: restore default MARKER_DOES call address !
-    MOV @W+,&WARM+2         \ restore previous (default) INI_APP address
-    MOV @W+,&TERM_VEC       \ restore previous (default) TERM_VEC value
-\    MOV @W+,&TA0_X_VEC      \ restore previous (default) TB0_x_VEC value
-    MOV @W+,&TB0_X_VEC      \ restore previous (default) TB0_x_VEC value
-    MOV #1,TOS              \ to identify Alt+B|SW2+RST request in WARM message
-THEN                        \
-\ --------------------------\ when STOP_U2I is the next of:  TERATERM(ALT+B)|SW2+RESET|SYS_failures
-MOV @RSP+,PC                \                       RET to:        WARM_BODY|WARM_BODY|WARM_BODY
-ENDCODE                      \
-\ --------------------------\
+\   ----------------------------\
+    HDNCODE I2CM_STOP           \ sends a STOP on I2C_BUS
+\   ----------------------------\     _
+    BIS.B #SM_SCL,&I2CSM_DIR    \ 3 h  v_   force SCL as output (low)
+    NOP3                        \ 3 l _
+    BIS.B #SM_SDA,&I2CSM_DIR    \ 3 l  v_   SDA as output ==> SDA low
+    NOP3                        \ 3 l   _
+    BIC.B #SM_SCL,&I2CSM_DIR    \ 3 l _^    release SCL (high)
+    NOP3                        \ 3 h   _
+    BIC.B #SM_SDA,&I2CSM_DIR    \ 3 h _^    relase SDA (high) when SCL is high = STOP
+    MOV @RSP+,PC                \
+    ENDCODE                     \
+\   ----------------------------\
 
+\   ----------------------------\
+    CODE REMOVE_U2I             \
+\   ----------------------------\
+BW1                             \ <-- TERATERM(ALT+B)|USBtoI2C_bridge(SW2)|SYS_failures
+\   vvvvvvvvvvvv OPTION vvvvvvvv\
+    BIC.B #LED1,&LED1_OUT       \ set TX red led OFF
+    BIC.B #LED1,&LED1_DIR       \ set TX red led pin as input
+    BIC.B #LED2,&LED2_OUT       \ set RX green led OFF
+    BIC.B #LED2,&LED2_DIR       \ set RX green led pin as input
+\   ^^^^^^^^^^^^ OPTION ^^^^^^^^\
+    CALL #I2CM_STOP             \ stop properly I2C_BUS
+    MOV #SM_BUS,W               \
+    BIC.B W,&I2CSM_DIR          \ restore I2C_BUS I/O as input
+    BIS.B W,&I2CSM_OUT          \         with pull up resistors
+    BIS.B W,&I2CSM_REN          \
+\   ----------------------------\
+    MOV #0,&TB0CTL              \ stop TBO
+    BIC.B #BIT7,&P1SEL1         \ clear P1.7 SEL1
+    BIC.B #BIT7,&P1DIR          \ P1.7 as input
+    BIC.B #BIT6,&P1IE           \ stop P1.6 int
+\   ----------------------------\
+    CMP #RET_ADR,&{UARTI2CS}-2  \
+    0<> IF
+        MOV #{UARTI2CS},W       \ W = addr of first user parameter following MARKER
+        MOV #RET_ADR,-2(W)      \ don't forget: restore default MARKER_DOES call address !
+        MOV @W+,&HARD_APP       \ restore previous (default) HARD_APP value
+        MOV @W+,&SLEEP_APP      \ restore previous (default) SLEEP_APP value
+        MOV @W+,&TERM_VEC       \ restore previous (default) TERM_VEC value
+        MOV @W+,&P1_VEC         \ restore previous (default) P1_VEC value
+    THEN
+\   ----------------------------\
+    MOV #1,TOS                  \ TOS = USERSYS value we want for TERATERM(ALT+B)|USBtoI2C_bridge(SW2)|SYS_failures events
+    MOV #UART_WARM+4,PC         \ display WARM message then RET to FORTH interpreter
+    ENDCODE                     \ REMOVE_U2I is redirected to this CODENNM definition
+\   ----------------------------\
 
-\ \ vvvvvvvMulti-Master-Modevvvvvv\
-\ HDNCODE DO_IDLE                     \ 
-\ MOV #4,W                        \ 1   wait bus idle time = 5 µs @ 16 MHz
-\ BEGIN
-\     BIT.B #SM_SCL,&I2CSM_IN     \ 3 
-\     0= IF                       \ 2
-\         MOV #4,W                \ 1 if SCL is LOW
-\     THEN
-\         BIT.B #SM_SDA,&I2CSM_IN \ 3
-\     0= IF                       \ 2
-\         MOV #4,W                \ 1 if SDA is LOW
-\     THEN
-\     SUB #1,W                    \ 1
-\ 0= UNTIL                        \ 2
-\ MOV @RSP+,PC
-\ ENDCODE
-\ \ ^^^^^^^Multi-Master-Mode^^^^^^\
+\   ----------------------------------------\
+    HDNCODE I2CM_START                      \ WX use    I2C_Master TX ADdRess with collision detection and resolution
+\   ----------------------------------------\     _
+    BIS.B   #SM_SDA,&I2CSM_DIR              \ 3    v_   force SDA as output (low)
+    BIS.B   &{UARTI2CS}+8,X                 \ 3         X = Slave_Address&flag
+    NOP3                                    \ 3
+    BIS.B   #SM_SCL,&I2CSM_DIR              \ 3    v_   force SCL as output (low)
+\   ----------------------------------------\
+\   I2C_Master_Send_I2C_Addr                \
+\   ----------------------------------------\
+    MOV.B #8,W                              \ 1 l       count for 7 bits address + R/w bit
+    BEGIN                                   \
+        ADD.B X,X                           \ 1 l       shift one left
+        U>= IF                              \ 2 l       carry set ?
+            BIC.B #SM_SDA,&I2CSM_DIR        \ 3 l       yes : SDA as input  ==> SDA high because pull up resistor
+        ELSE                                \ 2 l
+            BIS.B #SM_SDA,&I2CSM_DIR        \ 3 l       no  : SDA as output ==> SDA low
+        THEN                                \   l   _
+        BIC.B #SM_SCL,&I2CSM_DIR            \ 3 l _^    release SCL (high)
+\        BEGIN                               \
+\            BIT.B #SM_SCL,&I2CSM_IN         \ 3 h       The I2C_Slave hardware takes the I2C address without delay even if the CPU is in the LPM4 state (wired logic).
+\        0<> UNTIL                           \ 2 h
+        BIT.B #SM_SDA,&I2CSM_IN             \ 3 h _     get SDA
+        BIS.B #SM_SCL,&I2CSM_DIR            \ 3 h  v_   SCL as output : force SCL low
+\       vvvvvvvvv Multi-Master-Mode vvvvvvvv\
+        0= IF                               \ 2 l       if SDA input low
+            BIT.B #SM_SDA,&I2CSM_DIR        \ 3 l       + SDA command high
+            0= IF                           \ 2 l       = collision detected
+                BIS.B #SM_BUS,&I2CSM_DIR    \ 4 l       release SDA,SCL
+                BIC.B #SM_BUS,&I2CSM_IES    \ 4 l       set IES for SDA_IFG and SCL_IFG on low_to_high transition
+                BEGIN                       \           SDA_IFG=1, SCL_IFG=1
+                    BIT.B #SM_BUS,&I2CSM_IFG    \ 4     SM_BUS IFG ?
+                    BIC.B #SM_BUS,&I2CSM_IFG    \ 4         clear SM_BUS IFG
+                    0<> IF                      \ 2     if yes
+\                        MOV #3,W            \ 2             SCL is still active: load for 8*15/MHz = 5.6 µs delay @ 8 MHz
+\                        MOV #6,W            \ 2             SCL is still active: load for 8*15/MHz = 5.6 µs delay @ 16 MHz
+                        MOV #9,W            \ 2             SCL is still active: load for 8*15/MHz = 5.6 µs delay @ 24 MHz
+                    ELSE                    \ 2         if no
+                        NOP2                \ 2             does the same
+                        NOP2                \ 2             time as if yes
+                    THEN
+                SUB #1,W                    \ 1
+                0= UNTIL                    \ 2         end of collision process
+                ADD #2,RSP                  \           remove RET to Nack/Ack processing and select..
+                MOV @RSP+,PC                \ 2 l       RET to ReStart after a collision detection
+            THEN                            \
+        THEN                                \
+\       ^^^^^^^^^ Multi-Master-Mode ^^^^^^^^\
+        SUB #1,W                            \ 1 l       bits count-1
+    0= UNTIL                                \ 2 l
+\   ----------------------------------------\
+\   I2C_Master_TX get Slave Ack/Nack        \
+\   ----------------------------------------\       _
+    BIC.B #SM_SDA,&I2CSM_DIR                \ 3 l _^_   after TX address we must release SDA to read Ack/Nack from Slave
+    BIC.B #SM_SCL,&I2CSM_DIR                \ 3 l _^    release SCL (high)
+    BEGIN                                   \           we must wait I2C_Slave software
+        BIT.B #SM_SCL,&I2CSM_IN             \ 3 h       by testing SCL released
+    0<> UNTIL                               \ 2 h       because Slave can strech SCL low (wake up from interrupt)
+    BIT.B #SM_SDA,&I2CSM_IN                 \ 3 h _     get SDA state
+    BIS.B #SM_SCL,&I2CSM_DIR                \ 3 h  v_   SCL as output : force SCL low
+\   ^^^^^^^^^^^ Multi-Master-Mode ^^^^^^^^^^\
+    MOV @RSP+,0(RSP)                        \           remove RET to ReStart after a collision detection
+\   vvvvvvvvvvv Multi-Master-Mode vvvvvvvvvv\
+    MOV @RSP+,PC                            \           RET to Nack/Ack select
+    ENDCODE
+\   ----------------------------------------\
 
-\ **************************************\
-HDNCODE U2I_TERM_INT                        \ UART RX interrupt starts on first char of each line sent by TERMINAL
-\ **************************************\
-ADD #4,RSP                              \ 1 remove unused PC_RET and SR_RET
-\ --------------------------------------\
-MOV &{UARTI2CS}+16,W                      \ 3 W = HALF_DUPLEX = 0 if ECHO, -1 if NOECHO
-MOV #PAD_ORG,T                          \ 2 T = buffer pointer for UART_TERMINAL input
-MOV #$0D,S                              \ 2 S = 'CR' = penultimate char of line to be RXed by UART
-BEGIN                                   \
-    MOV.B &TERM_RXBUF,Y                 \ 3 move char from TERM_RXBUF...
-    ADD #1,T                            \ 1
-    MOV.B Y,-1(T)                       \ 3 ... to input buffer
-    CMP.B Y,S                           \ 1 char = CR ? (if yes goto next REPEAT)
-0<> WHILE                               \ 2 if <>
-    CMP #0,W                            \ 1 HALF_DUPLEX = 0 ?
-    0= IF                               \ 2 yes, echo is ON
-        BEGIN                           \   )
-            BIT #2,&TERM_IFG            \ 3 > Test TX_Buf empty, mandatory for low baudrates
-        0<> UNTIL                       \ 2 )
-        MOV.B Y,&TERM_TXBUF             \ 3 echo char to UART_TERMINAL
-    THEN                                \
-    BEGIN                               \ 
-        BIT #1,&TERM_IFG                \ 3 wait for next char received
-    0<> UNTIL                           \ 2 
-REPEAT                                  \ 2 31 cycles loop ==> up to UART 2.58 Mbds @ 8MHz
-CALL #UART_RXOFF                        \ stops UART RX still char CR is received, the LF char is being transmitted.
-BEGIN                                   \
-    BIT #1,&TERM_IFG                    \ 3 char LF received ?
-0<> UNTIL                               \ 2
-\ --------------------------------------\
-BW2                                     \   <=== Ctrl_char $01 (KEY input)
-\ --------------------------------------\
-MOV.B &TERM_RXBUF,S                     \ 3 S = last char RXed by UART (LF|KEY)
-MOV.B S,0(T)                            \ 4 store it into buffer
-\ ======================================\
-\ ======================================\
-\ I2C MASTER TX                         \ now we transmit UART RX buffer (PAD) to I2C_Slave, S = LF|KEY = last char to transmit
-\ ======================================\
-\ ======================================\          
-BW3                                     \   <=== multi master TX
-\ --------------------------------------\
-\ BIS.B #LED1,&LED1_DIR                   \ red led ON = I2C TX 
-\ BIS.B #LED1,&LED1_OUT                   \ red led ON = I2C TX
-\ --------------------------------------\
-\ I2C_Master_TX_Start                   \ here, SDA and SCL must be in idle state
-\ --------------------------------------\     _
-BIS.B   #SM_SDA,&I2CSM_DIR              \ 3 l  v_ force SDA low when SCL is high = START
-MOV.B   &I2CS_ADR,X                     \ 3 h     X = Slave_Address
-MOV     #PAD_ORG,Y                      \ 2 h     Y = buffer pointer for I2C_Master TX
-NOP3                                    \ 3 h _
-BIS.B   #SM_SCL,&I2CSM_DIR              \ 3 h  v_ force SCL as output (low)
-\ --------------------------------------\
-BEGIN
-\   ------------------------------------\
-\   I2C_Master_TX address/Data          \
-\   ------------------------------------\
-    MOV.B #8,W                          \ 1 l       prepare 8 bits address
-    BEGIN                               \
-        ADD.B X,X                       \ 1 l       shift one left
-        U>= IF                          \ 2 l       carry set ?
-            BIC.B #SM_SDA,&I2CSM_DIR    \ 3 l       yes : SDA as input  ==> SDA high because pull up resistor
-        ELSE                            \ 2 l
-            BIS.B #SM_SDA,&I2CSM_DIR    \ 3 l       no  : SDA as output ==> SDA low
-        THEN                            \   l   _
-        BIC.B #SM_SCL,&I2CSM_DIR        \ 3 l _^    release SCL (high)
-        BEGIN                           \           we must wait I2C_Slave software
-            BIT.B #SM_SCL,&I2CSM_IN     \ 3 h       by testing SCL released
-        0<> UNTIL                       \ 2 h       (because Slave can strech SCL low)
-\ \       vvvvvvvvMulti-Master-Modevvvvvvv\
-\         BIT.B #SM_SDA,&I2CSM_IN         \ 3 h       test SDA
-\ \       ^^^^^^^^Multi-Master-Mode^^^^^^^\   _
-        BIS.B #SM_SCL,&I2CSM_DIR        \ 3 h  v_   SCL as output : force SCL low
-\ \       vvvvvvvvvvvvMulti-Master-Modevvvvvvvvvvv\
-\         0= IF                                   \ 2 l   SDA input low
-\             BIT.B #SM_SDA,&I2CSM_DIR            \ 3 l + SDA command high
-\             0= IF                               \ 2 l = collision detected
-\                 BIS.B #SM_SCL,&I2CSM_DIR        \ 4 l release SCL first
-\                 CALL #DO_IDLE                   \     wait stable idle state 
-\                 GOTO BW3                        \ 2 l goto START TX
-\             THEN                                \
-\         THEN                                    \
-\ \       ^^^^^^^^^^^^Multi-Master-Mode^^^^^^^^^^^\
-        SUB #1,W                        \ 1 l       bits count-1
-    0= UNTIL                            \ 2 l
-\   ------------------------------------\
-    BIC.B #SM_SDA,&I2CSM_DIR            \ 3 l       after TX byte we must release SDA to read Ack/Nack from Slave
-\   ------------------------------------\
-\   I2C_Master_TX get Slave Ack/Nack    \
-\   ------------------------------------\       _
-    BIC.B #SM_SCL,&I2CSM_DIR            \ 3 l _^    release SCL (high)
-\    BEGIN                               \
-\        BIT.B #SM_SCL,&I2CSM_IN         \ 3 h      testing SCL released is useless
-\    0<> UNTIL                           \ 2 h      because no risk of Slave streching SCL low
-    NOP3                                \ 3 h       replaced by NOP3.
-    BIT.B #SM_SDA,&I2CSM_IN             \ 3 h _     get SDA state
-    BIS.B #SM_SCL,&I2CSM_DIR            \ 3 h  v_   SCL as output : force SCL low, to keep I2C_BUS until next I2C_MASTER START (RX|TX)
-\   ------------------------------------\
-0= WHILE \ 1- Slave Ack received        \ 2 l       out of loop if Nack (goto THEN next REPEAT) 
-\   ------------------------------------\           
-\   I2C_Master_TX_data_loop             \
-\   ------------------------------------\
-    CMP S,T                             \ 1         last char TXed = last char RXed ? (when address is sent, T = 16bits <> S = 8bits)
-\   ------------------------------------\
-0<> WHILE \ 2- TXed char <> last char   \ 2         out of loop if TXed char T = last char S to be TXed (goto below REPEAT)
-\   ------------------------------------\
-    MOV.B @Y+,X                         \ 2 l       get next RXed char
-    MOV X,T                             \ 1         T = last TX char for comparaison above, on next loop.
-REPEAT                                  \           <-- WHILE2  search "Extended control-flow patterns"... 
-THEN                                    \           <-- WHILE1  ...in https://forth-standard.org/standard/rationale
-\ \ --------------------------------------\
-\     BIC.B #LED1,&LED1_DIR               \   red led OFF = endof I2C TX 
-\     BIC.B #LED1,&LED1_OUT               \   red led OFF = endof I2C TX
-\ \ --------------------------------------\
-GOTO FW1                                \   X > 4 ==> reSTART RX repeated every 1/2s 
-\ ======================================\
-\ END OF I2C MASTER TX                  \ SCL is kept low until START RX  --┐
-\ ======================================\                                   |
-ENDCODE                                 \                                   |
-\ **************************************\                                   v
 
+\   ****************************************\
+    HDNCODE U2I_TERM_INT                    \ UART RX interrupt starts on first char of each line sent by TERMINAL
+\   ****************************************\
+    ADD #4,RSP                              \ 1 remove unused PC_RET and SR_RET
+\   ----------------------------------------\
+\   get one line from UART TERMINAL to PAD  \ S = 'CR', T = 0
+\   ----------------------------------------\
+    BEGIN                                   \
+        MOV.B &TERM_RXBUF,Y                 \ 3 move char from TERM_RXBUF...
+        MOV.B Y,PAD_ORG(T)                  \ 3 ... to input buffer
+        ADD #1,T                            \ 1
+        CMP.B Y,S                           \ 1 char = CR ? (if yes goto next REPEAT)
+    0<> WHILE                               \ 2 if <>
+        CMP #4,W                            \ 1 HALF_DUPLEX = 4 ?
+        0<> IF                              \ 2 no, echo is ON
+            BEGIN                           \   )
+                BIT #2,&TERM_IFG            \ 3 > Test TX_Buf empty, mandatory for low baudrates
+            0<> UNTIL                       \ 2 )
+            MOV.B Y,&TERM_TXBUF             \ 3 return all characters to UART_TERMINAL except CR+LF which will be later by I2C_SLAVE
+        THEN                                \
+        BEGIN                               \
+            BIT #1,&TERM_IFG                \ 3 wait for next char received
+        0<> UNTIL                           \ 2
+    REPEAT                                  \ 2 2 cycles loop ==> up to UART 2.58 Mbds @ 8MHz
+    CALL #UART_RXOFF                        \ stops UART RX still char CR is received, the LF char is being transmitted.
+    BEGIN                                   \
+        BIT #1,&TERM_IFG                    \ 3 char LF received ?
+    0<> UNTIL                               \ 2
+\   ----------------------------------------\
+BW2                                         \   <=== KEY input from TERMINAL, via I2C_MASTER
+\   ----------------------------------------\
+    MOV.B &TERM_RXBUF,S                     \ 3 S = last char RXed by UART (LF|KEY_input), used by I2C_MASTER_TX as last byte to be TXed.
+    MOV.B S,PAD_ORG(T)                      \ 3 store it into buffer
+\   ========================================\ here I2C_Slave is sleeping in its ACCEPT routine
+\   I2C MASTER TX                           \ now we transmit UART RX buffer (PAD) to I2C_Slave, S = LF|KEY = last char to transmit
+\   ========================================\
+\   ----------------------------------------\
+\   I2C_Master_TX_Start                     \ S = last char UART RXed
+\   ----------------------------------------\
+\   ^^^^^^^^^^^ Multi-Master-Mode ^^^^^^^^^^\
+    PUSH PC                                 \           PUSH next address as RET for START with collision detection
+\   vvvvvvvvvvv Multi-Master-Mode vvvvvvvvvv\
+    MOV #0,X                                \           to Start I2C_Master_TX
+    CALL #I2CM_START                        \WX use     return to I2C_Master_TX_Start if collision detection on I2C address
+    0<> ?GOTO FW2                           \           if Nack on address
+\   vvvvvvvvvvvvvvv OPTION vvvvvvvvvvvvvvvvv\
+    BIS.B #LED1,&LED1_OUT                   \           red led ON = I2C TX
+\   ^^^^^^^^^^^^^^^ OPTION ^^^^^^^^^^^^^^^^^\
+    MOV #PAD_ORG,Y                          \ 2         Y = buffer pointer for I2C_Master TX datas
+    BEGIN                                   \
+        MOV.B @Y,X                          \ 2 l       get first char to be TX
+\       ------------------------------------\
+\       I2C_Master_TX Data from PAD         \
+\       ------------------------------------\
+        MOV.B #8,W                          \ 1 l       count for 8 bits data
+        BEGIN                               \
+            ADD.B X,X                       \ 1 l       shift one left
+            U>= IF                          \ 2 l       carry set ?
+                BIC.B #SM_SDA,&I2CSM_DIR    \ 3 l       yes : SDA as input  ==> SDA high because pull up resistor
+            ELSE                            \ 2 l
+                BIS.B #SM_SDA,&I2CSM_DIR    \ 3 l       no  : SDA as output ==> SDA low
+            THEN                            \   l   _
+            BIC.B #SM_SCL,&I2CSM_DIR        \ 3 l _^    release SCL (high)
+\           --------------------------------\
+            BEGIN                           \
+                BIT.B #SM_SCL,&I2CSM_IN     \ 3 h       TERM2SD" doesn't work if you replace this test by NOP3 !
+            0<> UNTIL                       \ 2 h
+\           --------------------------------\     _
+            BIS.B #SM_SCL,&I2CSM_DIR        \ 3 h  v_   SCL as output : force SCL low
+            SUB #1,W                        \ 1 l       bits count-1
+        0= UNTIL                            \ 2 l
+\       ------------------------------------\
+        BIC.B #SM_SDA,&I2CSM_DIR            \ 3 l       after TX byte we must release SDA to read Ack/Nack from Slave
+\       ------------------------------------\
+\       I2C_Master_TX get Slave Ack/Nack    \
+\       ------------------------------------\       _
+        BIC.B #SM_SCL,&I2CSM_DIR            \ 3 l _^    release SCL (high)
+        BEGIN                               \
+            BIT.B #SM_SCL,&I2CSM_IN         \ 3 h
+        0<> UNTIL                           \ 2 h
+        BIT.B #SM_SDA,&I2CSM_IN             \ 3 h _     get SDA state
+        BIS.B #SM_SCL,&I2CSM_DIR            \ 3 h  v_   SCL as output : force SCL low, to keep I2C_BUS until next I2C_MASTER START (RX|TX)
+\   ----------------------------------------\
+    0= WHILE \ 1- Slave Ack received        \ 2 l       out of loop if Nack on data
+\   ----------------------------------------\
+\   I2C_Master_TX_Data_Loop                 \
+\   ----------------------------------------\
+        CMP.B @Y+,S                         \ 2         last char I2C TXed = last char UART RXed (LF|KEY) ?
+\   ----------------------------------------\
+    0= UNTIL  \ TXed char = last char       \ 2
+\   ----------------------------------------\
+    THEN                                    \           <-- WHILE1 case of I2C_Slave Nack on Master_TX
+\   vvvvvvvvvvvvvvv OPTION vvvvvvvvvvvvvvvvv\
+    BIC.B #LED1,&LED1_OUT                   \   red led OFF = endof I2C TX
+\   ^^^^^^^^^^^^^^^ OPTION ^^^^^^^^^^^^^^^^^\
+    GOTO FW1                                \   SCL is kept low   ──────────┐
+\   ========================================\                               |
+\   END OF I2C MASTER TX                    \                               |
+\   ========================================\                               |
+    ENDCODE                                 \                               |
+\   ****************************************\                               v
 
-\ **************************************\
-HDNCODE HALF_S_INT                          \ wakes up every 1/2s to listen I2C Slave or break from TERMINAL.
-\ **************************************\
-ADD #4,RSP                              \ 1 remove PC_RET and SR_RET        |
-\ --------------------------------------\                                   |
-FW1                                     \ <-- the next of TERM_INT above <--┘
-BW3                                     \ <-- the next of INI_U2I below  <--┐
-\ --------------------------------------\                                   |
-CMP #0,&KERNEL_ADDON                    \ 3 KERNEL_ADDON(BIT15) = LF XTAL flag
-0>= IF                                  \ if no LF XTAL
-\  MOV #%0001_0101_0110,&TA0CTL          \ 3 (re)starts RX_timer,ACLK=VLO=8kHz,/2=4096Hz,up mode,clear timer,enable TA0 int, clear IFG
-  MOV #%0001_0101_0110,&TB0CTL          \ 3 (re)starts RX_timer,ACLK=VLO=8kHz,/2=4096Hz,up mode,clear timer,enable TB0 int, clear IFG
-ELSE                                    \ if LF XTAL
-\  MOV #%0001_1101_0110,&TA0CTL          \ 3 (re)starts RX_timer,ACLK=LFXTAL=32768,/8=4096Hz,up mode,clear timer,enable TA0 int, clear IFG
-  MOV #%0001_1101_0110,&TB0CTL          \ 3 (re)starts RX_timer,ACLK=LFXTAL=32738,/8=4096Hz,up mode,clear timer,enable TB0 int, clear IFG
-THEN                                    \
-\ ======================================\
-\ I2C_MASTER RX                         \ le driver I2C_Master envoie START RX en boucle continue (X < 4) ou discontinue (X >= 4).
-\ ======================================\ le test d'un break en provenance de l'UART est intégré dans cette boucle.
-BEGIN \   I2C MASTER START RX           \ ABORT|WARM loop back
-\   ------------------------------------\       _
-    BIC.B #SM_SCL,&I2CSM_DIR            \ 3 l _^    release SCL to enable ReSTART RX
-    BIT #8,&TERM_STATW                  \ 3         break (Alt+B) sent by TERATERM ?
-    0<> ?GOTO BW1                       \           goto STOP_U2I, exit to WARM+4.
-\   ------------------------------------\
-\   I2C_Master_RX_Start_Cond            \   here, SDA and SCL must be in idle state
-\   ------------------------------------\     _
-    BIS.B   #SM_SDA,&I2CSM_DIR          \ 3 l  v_   force SDA as output (low)
-    MOV.B   &I2CS_ADR,Y                 \ 3 h       X = Slave_Address
-    BIS.B   #1,Y                        \ 1 h       set Master RX
-    NOP2                                \ 2   _
-    BIS.B   #SM_SCL,&I2CSM_DIR          \ 3 h  v_   force SCL as output (low)
-\   ------------------------------------\
-\   I2C_Master_RX_Send_address          \           may be SCL is held low by slave
-\   ------------------------------------\
-    MOV.B #8,W                          \ 1 l       prepare 8 bits address
-    BEGIN                               \
-        ADD.B Y,Y                       \ 1 l       shift one left
-        U>= IF                          \ 2 l       carry set ?
-           BIC.B #SM_SDA,&I2CSM_DIR     \ 3 l yes : SDA as input  ==> SDA high because pull up resistor
-        ELSE                            \ 2 l
-           BIS.B #SM_SDA,&I2CSM_DIR     \ 3 l no  : SDA as output ==> SDA low
-        THEN                            \       _
-        BIC.B #SM_SCL,&I2CSM_DIR        \ 3 l _^    release SCL (high)
-\        BEGIN                           \
-\            BIT.B #SM_SCL,&I2CSM_IN     \ 3 h      testing SCL released is useless
-\        0<> UNTIL                       \ 2 h      because no risk of Slave streching SCL low
-        NOP3                            \ 3         replaced by NOP3
-\ \       vvvvvvMulti-Master-Modevvvvvvvvv\
-\         BIT.B #SM_SDA,&I2CSM_IN         \ 3 h     test SDA
-\ \       ^^^^^^Multi-Master-Mode^^^^^^^^^\   _
-        BIS.B #SM_SCL,&I2CSM_DIR        \ 3 h  v_  force SCL as output (low)
-\ \       vvvvvvvvvvvvMulti-Master-Modevvvvvvvvvvv\
-\         0= IF                                   \ 2 l   SDA input low
-\             BIT.B #SM_SDA,&I2CSM_DIR            \ 3 l + SDA command high
-\             0= IF                               \ 2 l = collision detected
-\                 BIS.B #SM_SCL,&I2CSM_DIR        \ 4 l release SCL first
-\                 CALL #DO_IDLE                   \     wait stable idle state 
-\                 GOTO BW3                        \ 2 l goto START RX
-\             THEN                                \
-\         THEN                                    \
-\ \       ^^^^^^^^^^^^Multi-Master-Mode^^^^^^^^^^^\
-        SUB #1,W                        \ 1 l       bits count - 1
-    0= UNTIL                            \ 2 l
-\   ------------------------------------\
-\   Wait Ack/Nack on address            \           
-\   ------------------------------------\       _
-    BIC.B   #SM_SDA,&I2CSM_DIR          \ 3 l _^_   after TX address we must release SDA to read Ack/Nack from Slave
-    BIC.B   #SM_SCL,&I2CSM_DIR          \ 3 l _^    release SCL (high)
-    BEGIN                               \           we must wait I2C_Slave software
-        BIT.B #SM_SCL,&I2CSM_IN         \ 3 h       by testing SCL released
-    0<> UNTIL                           \ 2 h       (because Slave can strech SCL low)
-    BIT.B   #SM_SDA,&I2CSM_IN           \ 3 h _     get SDA
-    BIS.B   #SM_SCL,&I2CSM_DIR          \ 3 h  v_   SCL as output : force SCL low
-\   ------------------------------------\  
-    0<> IF   \ Nack_On_Address          \ 2 l
-\       --------------------------------\  
-\       I2C_Master Send STOP            \
-\       --------------------------------\
-        CALL #I2CSTOP                   \
-        MOV #SLEEP,PC                   \ 4         goto dodo for 1/2 s .. wake up by HALF_S_INT
-    THEN                                \ 2
-\   ------------------------------------\
-\   I2C_Master_RX_data                  \
-\ \   ------------------------------------\
-\     BIS.B #LED2,&LED2_DIR               \           green led ON = I2C RX
-\     BIS.B #LED2,&LED2_OUT               \           green led ON = I2C RX
-\ \   ------------------------------------\
-    BEGIN
-        BEGIN
-            BIC.B #SM_SDA,&I2CSM_DIR    \ 4 l       after Ack and before RX next byte, we must release SDA
-            MOV.B #8,W                  \ 1 l       prepare 8 bits transaction
-\           ----------------------------\
-            BEGIN                       \
-\              -------------------------\       _
-\              do SCL pulse             \ SCL _| |_
-\              -------------------------\       _
-               BIC.B #SM_SCL,&I2CSM_DIR \ 3 l _^    release SCL (high)
-\               BEGIN                   \
-\               BIT.B #SM_SCL,&I2CSM_IN \ 3 h       testing SCL released is useless
-\               0<> UNTIL               \ 2 h       because no risk of Slave streching SCL low
-               NOP3                     \ 3         replaced by NOP3 
-               BIT.B #SM_SDA,&I2CSM_IN  \ 3 h _     get SDA
-               BIS.B #SM_SCL,&I2CSM_DIR \ 3 h  v_   SCL as output : force SCL low   13~
-               ADDC.B X,X               \ 1 l       C <--- X(7) ... X(0) <--- SDA
-               SUB #1,W                 \ 1 l       count down of bits
-            0= UNTIL                    \ 2 l       here, slave releases SDA
-\           ----------------------------\
-\           case of RX data $FF         \
-\           ----------------------------\
-            CMP.B #-1,X                 \ 1
-            0= IF                       \ 2         received char $FF: let's consider that the slave is lost...
-                MOV #2,X                \           to do ABORT action
-            THEN                        \
-\           ----------------------------\
-            CMP.B #8,X                  \ 1 l       $08 = char BS
-        U>= WHILE                       \ 2 l       ASCII char received, from char 'BS' up to char $7F.
-\           ----------------------------\
-            BEGIN                       \
-                BIT #2,&TERM_IFG        \ 3 l       UART TX buffer empty ?
-            0<> UNTIL                   \ 2 l       loop if no
-\           ----------------------------\   
-            BIS.B #SM_SDA,&I2CSM_DIR    \ 3 l       prepare Ack
-\           ----------------------------\
-\           I2C_Master_RX Send Ack      \           on ASCII char >= $08
-\           ----------------------------\       _   
-            BIC.B #SM_SCL,&I2CSM_DIR    \ 3 l _^    release SCL (high)
-            BEGIN                       \           we must wait I2C_Slave software
-                BIT.B #SM_SCL,&I2CSM_IN \ 3 h       by testing SCL released
-            0<> UNTIL                   \ 2 h       (because Slave can strech SCL low)
-\           ----------------------------\
-            MOV.B X,&TERM_TXBUF         \ 3 h       send RXed ASCII char to UART TERMINAL
-\           ----------------------------\     _
-            BIS.B #SM_SCL,&I2CSM_DIR    \ 3 h  v_   SCL as output : force SCL low
-        REPEAT                          \ 2 l       loop back to I2C_Master_RX_data for chars >= 8
-\       --------------------------------\
-\       case of RX CTRL_Chars < $08     \           here Master holds SCL low, Slave can test it: CMP #8,&TERM_STATW
-\       --------------------------------\           see forthMSP430FR_TERM_I2C.asm
-        CMP.B #4,X                      \ 1         
-        U>= IF                          \ 2
-            MOV #0,&{UARTI2CS}+16         \           preset ECHO
-            0= IF                       \ 2
-                MOV #-1,&{UARTI2CS}+16    \ 3         set NOECHO if char $04
-            THEN
-            BIS.B #SM_SDA,&I2CSM_DIR    \ 3 l       prepare Ack for Ctrl_Chars $04 $05
+\ wakes up every 1/2s by P1.6 int to listen I2C Slave or
+\ break from TERMINAL/USB_to_I2C_bridge.
+\   ********************************************\                           |
+    HDNCODE 500MS_INT                           \                           |
+\   ********************************************\                           |
+    ADD #4,RSP                                  \ 1 remove PC_RET, SR_RET   |
+\   --------------------------------------------\                           |
+FW1                                             \ <────── does START <──────┘
+FW2                                             \ <────── if Nack on Address Master TX
+\   ^^^^^^^^^^^ Multi-Master-Mode ^^^^^^^^^^^^^^\
+    PUSH PC                                     \   PUSH next address as RET for START with collision detection
+\   vvvvvvvvvvv Multi-Master-Mode vvvvvvvvvvvvvv\
+\   ============================================\
+\   I2C_MASTER RX                               \ le driver I2C_Master envoie START RX en boucle continue (X < 4) ou discontinue (X >= 4).
+\   ============================================\ le test d'un break en provenance de l'UART est intégré dans cette boucle.
+    BEGIN                                       \
+\       ----------------------------------------\
+\       QUIT on user request tests              \
+\       ----------------------------------------\
+        BIT #8,&TERM_STATW                      \ 3         break sent by TERATERM (Alt+B) ?
+        0<> ?GOTO BW1                           \ 2         goto REMOVE_U2I, RET to WARM+4 with TOS=1.
+        BIT.B #SW2,&SW2_IN                      \ 3         USB_to_I2C_bridge(SW2) pressed ?
+        0= ?GOTO BW1                            \ 2         goto REMOVE_U2I, RET to WARM+4 with TOS=1.
+\       ----------------------------------------\
+\       I2C MASTER START RX                     \
+\       ----------------------------------------\       _
+        BIC.B #SM_SCL,&I2CSM_DIR                \ 3 l _^    release SCL to enable START RX
+        MOV #1,X                                \           to Start I2C_Master as RX
+            CALL #I2CM_START                    \           Start MASTER RX
+        0<> IF                                  \           if Nack_On_Address
+            CALL #I2CM_STOP                     \           I2C_Master Send STOP
+            MOV #'.',&TERM_TXBUF                \           to view the absence of I2C_target at the I2C_Addr provided.
+            MOV #SLEEP,PC                       \           which executes SLEEP_U2I then RXON before LPM0 shut down.
+        THEN                                    \
+\       ----------------------------------------\
+\       I2C_Master_RX_data                      \
+\       ----------------------------------------\
+\       vvvvvvvvvvvvv OPTION vvvvvvvvvvvvvvvvvvv\
+        BIS.B #LED2,&LED2_OUT                   \           green led ON = I2C RX
+\       ^^^^^^^^^^^^^ OPTION ^^^^^^^^^^^^^^^^^^^\
+        BEGIN                                   \
+            BEGIN                               \
+                BIC.B #SM_SDA,&I2CSM_DIR        \ 4 l       after Ack and before RX next byte, we must release SDA
+                MOV.B #8,W                      \ 1 l       prepare 8 bits transaction
+                BEGIN                           \
+\                   ----------------------------\       _
+                    BIC.B #SM_SCL,&I2CSM_DIR    \ 3 l _^    release SCL (high)
+\                   ----------------------------\
+                    BIT.B #SM_SDA,&I2CSM_IN     \ 3 h       get SDA
+\                   ----------------------------\     _
+                    BIS.B #SM_SCL,&I2CSM_DIR    \ 3 h  v_   SCL as output : force SCL low   13~
+                    ADDC.B X,X                  \ 1 l       C <--- X(7) ... X(0) <--- SDA
+                    SUB #1,W                    \ 1 l       count down of bits
+                0= UNTIL                        \ 2 l       here, slave has set SDA for next bit
+\               --------------------------------\
+\               case of RX data $FF             \               case of -1 SYS for example
+\               --------------------------------\
+                CMP.B #-1,X                     \ 1
+                0= IF                           \ 2         received char $FF: let's consider that the slave is lost...
+                    MOV #2,X                    \           to do ABORT action after Nack sent
+                THEN                            \
+\               --------------------------------\
+                CMP.B #8,X                      \ 1 l       $08 = char BS
+            U>= WHILE                           \ 2 l       ASCII char received, from char 'BS' up to char $7F.
+\               --------------------------------\
+\               I2C_Master_RX Send Ack          \           on ASCII char >= $08
+\               --------------------------------\
+                BIS.B #SM_SDA,&I2CSM_DIR        \ 3 l   _   set SDA as Ack
+                BIC.B #SM_SCL,&I2CSM_DIR        \ 3 l _^    release SCL (high)
+                BEGIN                           \           we must wait I2C_Slave software (data processing)
+                    BIT.B #SM_SCL,&I2CSM_IN     \ 3 h       by testing SCL released,
+                0<> UNTIL                       \ 2 h _     because Slave can strech SCL low
+                BIS.B #SM_SCL,&I2CSM_DIR        \ 3 h  v_   SCL as output : force SCL low
+\               --------------------------------\
+\               I2C_Master echoes to TERMINAL   \
+\               --------------------------------\
+                BEGIN                           \
+                    BIT #2,&TERM_IFG            \ 3 l       UART TX buffer empty ?
+                0<> UNTIL                       \ 2 l       loop if no
+                MOV.B X,&TERM_TXBUF             \ 3 h       send RXed ASCII char to UART TERMINAL
+            REPEAT                              \ 2 l       loop back to I2C_Master_RX_data for chars >= 8
+\           ------------------------------------\
+\           case of RX CTRL_Chars < $08         \           here Master holds SCL low, Slave can test it: CMP #8,&TERM_STATW
+\           ------------------------------------\           see forthMSP430FR_TERM_I2C.asm
+            CMP.B #4,X                          \ 1
+            U>= IF                              \ 2
+                MOV.B X,&{UARTI2CS}+9           \           set NOECHO = $04, ECHO = $05
+                BIS.B #SM_SDA,&I2CSM_DIR        \ 3 l       prepare Ack for Ctrl_Chars $04 $05
+            THEN                                \
+\           ------------------------------------\
+\           Master_RX send Ack/Nack on data     \           Ack for $04, $05, Nack for $00, $01, $02
+\           ------------------------------------\       _
+            BIC.B #SM_SCL,&I2CSM_DIR            \ 3 l _^    release SCL (high)
+            BEGIN                               \           we must wait I2C_Slave software (data processing)
+                BIT.B #SM_SCL,&I2CSM_IN         \ 3 h       by testing SCL released
+            0<> UNTIL                           \ 2 h       (because Slave can strech SCL low)
+            BIT.B #SM_SDA,&I2CSM_IN             \ 3 h _     get SDA as TX Ack/Nack state
+            BIS.B #SM_SCL,&I2CSM_DIR            \ 3 h  v_   SCL as output : force SCL low
+\           ------------------------------------\   l
+        0<> UNTIL                               \           if Ack, loop back to Master_RX data for CTRL_Char $04,$05
+\       ----------------------------------------\
+\       Nack is sent by Master                  \   l       case of CTRL-Char {$00|$01|$02}
+\       ----------------------------------------\
+        CMP.B #2,X                              \           $02 = ctrl_char for ABORT request
+    U>= WHILE                                   \
+\       ----------------------------------------\
+\       CTRL_Char $02|$03                       \   l       if ABORT request, SDA is high, SCL is low
+\       ----------------------------------------\
+        0= IF                                   \           if ABORT request $02 :
+            MOV.B #0,&{UARTI2CS}+9              \               set echo ON I2C_Master side
+            CALL #UART_RXON                     \               resume UART downloading source file
+            BEGIN                               \
+                BIC #UCRXIFG,&TERM_IFG          \               clear UCRXIFG
+                MOV &FREQ_KHZ,X                 \               1000, 2000, 4000, 8000, 16000, 240000
+\                BEGIN MOV #32,W                 \           2~        <-------+ windows 10 seems very slow...
+\                    BEGIN SUB #1,W              \           1~        <---+   | ==> ((32*3)+5)*FREQ_KHZ/1000 = 101ms delay
+\                    0= UNTIL                    \           2~ 3~ loop ---+   | to refill its USB buffer
+\                    SUB #1,X                    \           1~                |
+\                0= UNTIL                        \           2~ 101~ loop -----+
+               BEGIN MOV #65,W                  \           2~        <-------+ linux with minicom seems very very slow...
+                   BEGIN SUB #1,W               \           1~        <---+   | ==> ((65*3)+5)*FREQ_KHZ/1000 = 200ms delay
+                   0= UNTIL                     \           2~ 3~ loop ---+   | to refill its USB buffer
+                   SUB #1,X                     \           1~                |
+               0= UNTIL                         \           2~ 200~ loop -----+
+                BIT #UCRXIFG,&TERM_IFG          \               4 new char in TERMRXBUF during this delay ?
+            0= UNTIL                            \               2 yes, the input stream may be still active: loop back
         THEN
-\       --------------------------------\
-\       Master_RX send Ack/Nack on data \           Ack for $04, $05, Nack for $00, $01, $02, $03
-\       --------------------------------\       _   
-        BIC.B #SM_SCL,&I2CSM_DIR        \ 3 l _^    release SCL (high)
-        BEGIN                           \           we must wait I2C_Slave software
-            BIT.B #SM_SCL,&I2CSM_IN     \ 3 h       by testing SCL released
-        0<> UNTIL                       \ 2 h       (because Slave can strech SCL low)
-        BIT.B #SM_SDA,&I2CSM_IN         \ 3 h _     get SDA as TX Ack/Nack state
-        BIS.B #SM_SCL,&I2CSM_DIR        \ 3 h  v_   SCL as output : force SCL low
-\       --------------------------------\   l    
-    0<> UNTIL                           \           if Ack, loop back to Master_RX data for CTRL_Char $04,$05
-\   ------------------------------------\   
-\   Nack is sent by Master              \   l       case of CTRL-Char {$00|$01|$02|$03}
-\   ------------------------------------\   
-    CMP.B #2,X                          \           $02 = ctrl_char for ABORT request
-U>= WHILE                               \           $03 = Ctrl_Char for WARM request
-\   ------------------------------------\   
-\   CTRL_Char $02|$03                   \   l       if ABORT|WARM requests, SDA is high, SCL is low
-\   ------------------------------------\
-    0= IF                               \           if ABORT request:
-        MOV #0,&{UARTI2CS}+16             \               set echo ON I2C_Master side
-        CALL #UART_RXON                 \               resume UART downloading source file
-        BEGIN                           \   
-            BIC #UCRXIFG,&TERM_IFG      \               clear UCRXIFG
-            MOV &FREQ_KHZ,Y             \               1000, 2000, 4000, 8000, 16000, 240000
-            BEGIN MOV #32,W             \           2~        <-------+ windows 10 seems very slow...
-                BEGIN SUB #1,W          \           1~        <---+   | ==> ((32*3)+5)*1000 = 101ms delay
-                0= UNTIL                \           2~ 3~ loop ---+   | to refill its USB buffer
-                SUB #1,Y                \           1~                |
-            0= UNTIL                    \           2~ 101~ loop -----+
-\           BEGIN MOV #65,W             \                  <-------+ linux with minicom seems very very slow...
-\               BEGIN SUB #1,W          \                  <---+   | ==> ((65*3)+5)*1000 = 200ms delay
-\               0= UNTIL                \           3~ loop ---+   | to refill its USB buffer
-\               SUB #1,Y                \                          |
-\           0= UNTIL                    \           200~ loop -----+
-            BIT #UCRXIFG,&TERM_IFG      \               4 new char in TERMRXBUF during this delay ?
-        0= UNTIL                        \               2 yes, the input stream may be still active: loop back
-    THEN                                \
-REPEAT                                  \   l       loop back to reSTART RX
-\ --------------------------------------\
-\ I2C_Master_RX Send STOP               \   l       remainder: CTRL_Chars $00,$01
-\ --------------------------------------\ 
-CALL #I2CSTOP                           \
-\ \ --------------------------------------\
-\ BIC.B #LED2,&LED2_DIR                   \ green led OFF = endof I2C RX
-\ BIC.B #LED2,&LED2_OUT                   \ green led OFF = endof I2C RX
-\ ======================================\
-\ END OF I2C MASTER RX                  \   here I2C_bus is freed, Nack on Ctrl_char $FF|$00|$01 remains to be processed.
-\ ======================================\
-\ I2C_Slave KEY ctl_char $01            \ I2C_Slave request for KEY input
-\ --------------------------------------\
-CMP.B #1,X                              \
-\ Quand I2C_Master reçoit ce caractère de contrôle,
-\ il attend un caractère en provenance de TERMINAL UART
-\ et une fois ce caractère reçu reSTART TX pour l'envoyer à I2C_Slave
-0= IF                                   \
-    MOV #PAD_ORG,T                      \ ready to store KEY char: MOV.B S,0(T)
-    CALL #UART_RXON                     \ enables TERMINAL to TX; use no registers
-    BEGIN                               \ wait for a char
-        BIT #UCRXIFG,&TERM_IFG          \ received char ?
-    0<> UNTIL                           \ 
-    CALL #UART_RXOFF                    \ stops UART RX then
-    GOTO BW2                            \ goto end of UART RX line input, for receiving last char
-THEN                                    \                             
-\ --------------------------------------\
-\ I2C_Slave ACCEPT ctrl_char $00        \ I2C_Slave requests I2C_Master to stop RX and start TX
-\ --------------------------------------\
-\ en début de sa routine ACCEPT, I2C_Slave envoie sur le bus I2C le caractère de contrôle $00
-\ avant de s'endormir avec SLEEP
-\ I2C_Master envoie NACK + STOP pour signifier la fin de la transaction.
-\ --------------------------------------\
-\ et si I2C_Slave est sorti de son sommeil par un START RX, idem.
-\ --------------------------------------\
-MOV #SLEEP,PC                           \ executes RXON (that enables TERMINAL to TX) before LPM0 shut down.
-\ --------------------------------------\
-\ I2C_Master se réveillera au premier caractère saisi sur le TERMINAL ==> TERM_INT,
-\ ou en fin du temps TxIFG ==> HALF_S_INT\
-ENDCODE                                 \ 
-\ **************************************\
+    REPEAT                                      \           loop back to reSTART RX
+\   --------------------------------------------\
+\   I2C_Master_RX Send STOP                     \           remainder: CTRL_Chars $00,$01
+\   --------------------------------------------\
+    CALL #I2CM_STOP                             \
+\   vvvvvvvvvvvvvvv OPTION vvvvvvvvvvvvvvvvvvvvv\
+    BIC.B #LED2,&LED2_OUT                       \ green led OFF = endof I2C RX
+\   ^^^^^^^^^^^^^^^ OPTION ^^^^^^^^^^^^^^^^^^^^^\
+\   ============================================\
+\   END OF I2C MASTER RX                        \   here I2C_bus is freed, Nack on Ctrl_char $00|$01 remains to be processed.
+\   ============================================\
+    CMP.B #0,X                                  \
+\   --------------------------------------------\
+\   I2C_Slave ACCEPT ctrl_char $00              \ I2C_Slave requests I2C_Master to stop RX
+\   --------------------------------------------\
+\   en début de sa routine ACCEPT, I2C_Slave envoie sur le bus I2C le caractère de contrôle $00
+\   avant de s'endormir avec SLEEP.
+\   Quand I2C_Slave est sorti de son sommeil par un START RX, il renvoie aussi un $00.
+\   I2C_Master envoie alors ce NACK + STOP pour signifier la fin de la transaction.
+\   --------------------------------------------\
+\   I2C_Master se réveillera au premier caractère saisi sur le TERMINAL ==> TERM_INT,
+\   ou en fin du temps TxIFG ==> 500MS_INT      \
+    0= IF                                       \ prepare U2I_TERM_INT environment
+        MOV #SLEEP,PC                           \ which executes SLEEP_U2I then RXON, enabling TERMINAL TX, before LPM0 shut down.
+    THEN                                        \
+\   --------------------------------------------\
+\   I2C_Slave KEY ctl_char $01                  \ I2C_Slave request for KEY input
+\   --------------------------------------------\
+\   Quand I2C_Master reçoit ce caractère de contrôle,
+\   il attend un caractère en provenance de TERMINAL UART
+\   et une fois ce caractère reçu ReStart TX pour l'envoyer à I2C_Slave
+    CALL #UART_RXON                             \ enables TERMINAL to TX; use no registers
+    BEGIN                                       \ wait for a char
+        BIT #UCRXIFG,&TERM_IFG                  \ received char ?
+    0<> UNTIL                                   \
+    CALL #UART_RXOFF                            \ stops UART RX; use no registers
+    MOV #0,T                                    \ ready to store KEY char as last char to be received
+    GOTO BW2                                    \ goto end of UART RX line input
+    ENDCODE                                     \
+\   ********************************************\
 
-\---------------------------\
-HDNCODE INI_U2I             \ define INI_HARD_APP subroutine called by WARM
-\ --------------------------\
-CALL &{UARTI2CS}+10         \ previous INI_APP executing init TERM_UC, activates I/O and sets TOS = RSTIV_MEM.
-\ --------------------------\ TOS = SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures 
-CMP #$0E,TOS                \ SVSHIFG SVSH event ?
-0<> IF                      \ if not
-    CMP #$0A,TOS            \   RSTIV_MEM >= violation memory protected areas ?
-    U>= ?GOTO BW1           \   execute STOP_U2I then RET to BODY of WARM
-THEN                        \ RSTIV_MEM = {$00,$02,$04,$6,$0E} as: {WARM,PWR_ON,RST,COLD,SVSH_Threshold}
-BIT.B #SW2,&SW2_IN          \ SW2 pressed ?
-0= ?GOTO BW1                \   if yes execute STOP_U2I then RET to BODY of WARM
-MOV #0,&RSTIV_MEM           \ clear RSTIV_MEM before next RST event!
-\ --------------------------\ 
-\ init HALF_S_INT           \ used to scan I2C_Slave hard RESET and to slow (re)START RX loop
-\ --------------------------\ 
-MOV #$800,&TB0CCR0          \ time = (2047+1)/4096 = 0.5s
-\ MOV #$800,&TA0CCR0        \ time = (2047+1)/4096 = 0.5s
-\ --------------------------\ 
-\ init I2C_MASTER I/O       \ see \inc\your_target.pat to find I2C MASTER SDA & SCL pins (as SM_BUS)
-\ --------------------------\ 
-BIC.B #SM_BUS,&I2CSM_REN    \ remove internal pullup resistors to avoid pulling down resistors with next instruction:
-BIC.B #SM_BUS,&I2CSM_OUT    \ preset SDA + SCL output LOW
-\ --------------------------\ 
-GOTO BW3                    \ goto I2C_Master START RX loop, with no other return than ALT+B|SW2+RST 
-\ --------------------------\
-ENDCODE                     \
-\ --------------------------\
-\
-\ ==============================================================
-\ Driver UART to I2CM which does the bridge USB to I2C_FastForth
-\ ==============================================================
+\   --------------------------------------------\
+    HDNCODE SLEEP_U2I                           \ new SLEEP_APP subroutine called by SLEEP before shutdown
+\   --------------------------------------------\
+    KERNEL_ADDON LF_XTAL TSTBIT                 \
+    [IF]    MOV #%1_1001_0100,&TB0CTL ; if ACLK=LFXTAL  \ 3 (re)starts RX_timer,ACLK=LFXTAL=32768/4=8192Hz,up mode,clear timer
+    [ELSE]  MOV #%1_0001_0100,&TB0CTL ; if ACLK=VLO     \ 3 (re)starts RX_timer,ACLK=VLO=8kHz, up mode,clear timer
+    [THEN]                                      \
+    MOV.B &{UARTI2CS}+9,W                       \ 3 W = HALF_DUPLEX = $04 if NOECHO, $05 if ECHO
+    MOV #'CR',S                                 \ 2 S = 'CR' = penultimate char of line to be RXed by UART
+    MOV #0,T                                    \ 2 T = init buffer pointer for UART_TERMINAL input
+    BIC #BIT6,&P1IFG                            \ 3 clear P1.6 IFG
+    MOV &{UARTI2CS}+2,PC                        \ which executes RXON, enabling TERMINAL TX, before LPM0 shut down.
+    ENDCODE                                     \
+\   --------------------------------------------\
 
+\   ----------------------------\
+    HDNCODE INIT_U2I            \ adds the INIT_HARD_APP to HARD_APP called by PUC|WARM
+\   ----------------------------\
+\   init 500MS_INT              \ used to scan I2C_Slave hard RESET and to slow down (re)START RX loop
+\   ----------------------------\
+\    MOV #%10_1101_0100,&TB0_CTL \ ACLK/4=8192Hz, up mode, clear timer
+    MOV #4096,&TB0CCR0          \ time  0.5s
+\ ------------------------------\
+\ set TB0.2 to generate pulse   \
+\ ------------------------------\
+    MOV #$60,&TB0CCTL2          \ output mode = set/reset
+    MOV #4095,&TB0CCR2          \ 0.12 ms pulse
+    BIS.B #BIT7,&P1DIR          \ P1.7 as output
+    BIS.B #BIT7,&P1SEL1         \ P1.7 as TB0.2 output
+    BIS.B #BIT6,&P1IE
+\   ----------------------------\
+\   init I2C_MASTER I/O         \ see \inc\your_target.pat to find I2C MASTER SDA & SCL pins (as SM_BUS)
+\   ----------------------------\
+    BIC.B #SM_BUS,&I2CSM_REN    \ remove internal pull up resistors because the next instruction which change them to pull down resistors
+    BIC.B #SM_BUS,&I2CSM_OUT    \ preset SDA + SCL output LOW
+\   ----------------------------\
+\   vvvvvvvvv OPTION vvvvvvvvvvv\
+    BIS.B #LED1,&LED1_DIR       \ set red led (I2C TX) pin as output
+    BIS.B #LED2,&LED2_DIR       \ set green led (I2C RX) pin as output
+\   ^^^^^^^^^ OPTION ^^^^^^^^^^^\
+\   ----------------------------\
+\   run previous INIT_HARD_APP  \
+\   ----------------------------\
+    CALL &{UARTI2CS}            \ execute previous INIT_HARD_APP to init TERM_UC, activates I/O.
+\   ----------------------------\ TOS = SYSRSTIV = $00|$02|$04|$0E|$xx = POWER_ON|RST|SVSH_threshold|SYS_failures
+\   define new SYSRSTIV select  \
+\   ----------------------------\
+    CMP #$0E,TOS                \ SVSHIFG SVSH event ?
+    0<> IF                      \ if not
+        CMP #$0A,TOS            \   SYSRSTIV >= violation memory protected areas ?
+        U>= ?GOTO BW1           \   if yes goto REMOVE_U2I, RET to WARM+4.
+    THEN                        \ else TOS = SYSRSTIV = {$02,$06,$0E} as: {PWR_ON,RST,SVSH_Threshold}
+    BIS.B #BIT6,&P1IFG          \ to force wake up from SLEEP to execute 500MS_INT.
+\   ----------------------------\
+    MOV #ABORT,PC               \   skip WARM message, goto ABORT --> ACCEPT --> SLEEP.
+    ENDCODE                     \
+\   ----------------------------\
+\
+\
+\ ==============================================================================
+\ Driver UART to I2C to do a bridge USB to I2C_FastForth devices
+\ ==============================================================================
+\
 \ I2C address mini = 10h, maxi = 0EEh (I2C-bus specification and user manual V6)
-\ type on TERMINAL "16 UARTI2CS" to link teraterm TERMINAL with FastForth I2C_Slave at address $10
-\ you can also link with last known I2C_Slave address : "I2CS_ADR @ UARTI2CS"
-\
-: UARTI2CS                          \ I2C_Slave_Address_%0 --
-CR I2CS_ADR !                       \ --        save I2C_Slave_Address_%0
-HI2LO
-CMP #RET_ADR,&{UARTI2CS}+8          \
-0= IF                               \ save parameters only if MARKER_DOES is not initialized
-    MOV #STOP_U2I,&{UARTI2CS}+8     \ MARKER_DOES of {UARTI2CS} will do CALL &{UARTI2CS}+8 = CALL #STOP_U2I
-    MOV &WARM+2,&{UARTI2CS}+10      \ save previous INI_APP from WARM PFA to {UARTI2CS}+10
-    MOV &TERM_VEC,&{UARTI2CS}+12    \ save previous TERM_VEC value to {UARTI2CS}+12, see target.pat
-    MOV &TB0_X_VEC,&{UARTI2CS}+14   \ save previous TB0_X_VEC value to {UARTI2CS}+14
-    \ MOV &TA0_X_VEC,&{UARTI2CS}+14   \ save previous TA0_X_VEC value to {UARTI2CS}+14
-    MOV #0,&{UARTI2CS}+16           \ reset Half_Duplex variable (set ECHO ON)
-    MOV #INI_U2I,&WARM+2            \ replace INI_APP by new INI_U2I
-    MOV #U2I_TERM_INT,&TERM_VEC     \ set TERM_VEC with U2I_TERM_INT
-    MOV #HALF_S_INT,&TB0_X_VEC      \ set TB0_X_VEC with HALF_S_INT
-    \ MOV #HALF_S_INT,&TA0_X_VEC      \ set TA0_X_VEC with HALF_S_INT
-THEN
-MOV #WARM,PC                        \ execute INI_U2I then goto BW3; abort with Alt-B or SW2+RST.
-ENDCODE           
+\ type on TERMINAL "$12 UARTI2CS" to link teraterm TERMINAL with FastForth I2C_Slave target at address $12
+
+\ UARTI2CS starts the USB to I2C bridge, to quit: TERATERM(Alt-B) or USB_to_I2C_bridge(SW2)
+\   --------------------------------\
+    : UARTI2CS                      \ I2C_Addr&b0 --
+\   --------------------------------\               init UARTI2CS environment.
+    'CR' EMIT 'LF' EMIT             \
+    HI2LO
+    MOV @RSP+,IP                    \
+    BEGIN
+        BIT #1,&TERM_STATW          \               uart busy ?
+    0= UNTIL                        \               wait end of 'LF' TX
+    CMP #RET_ADR,&{UARTI2CS}-2      \
+    0= IF
+        MOV #REMOVE_U2I,&{UARTI2CS}-2   \               MARKER_DOES of {UARTI2CS} will CALL &{UARTI2CS}-2 = CALL #REMOVE_U2I
+        MOV &HARD_APP,&{UARTI2CS}       \               save previous HARD_APP to {UARTI2CS}
+        MOV &SLEEP_APP,&{UARTI2CS}+2    \               save previous SLEEP_APP to {UARTI2CS}+2
+        MOV &TERM_VEC,&{UARTI2CS}+4     \               save previous TERM_VEC value to {UARTI2CS}+4, see target.pat
+        MOV &P1_VEC,&{UARTI2CS}+6       \               save previous P1_VEC value to {UARTI2CS}+6
+        MOV TOS,&{UARTI2CS}+8           \ -- I2C_Addr&0 save I2C address, set ECHO
+\        MOV.B #0,&{UARTI2CS}+9          \               set ECHO ON
+    THEN
+    MOV #0,TOS                      \ -- 0          to enter in INIT_U2I with 0 SYS
+    MOV #INIT_U2I,&HARD_APP         \               replace HARD_APP by new INIT_U2I
+    MOV #SLEEP_U2I,&SLEEP_APP       \               replace HARD_APP by new INIT_U2I
+    MOV #U2I_TERM_INT,&TERM_VEC     \               set TERM_VEC with U2I_TERM_INT
+    MOV #500MS_INT,&P1_VEC          \               set P1_VEC as 500MS_INT
+    MOV #INIT_U2I,PC                \               load INIT_U2I
+    ENDCODE                         \
+\   --------------------------------\
+
+    RST_SET ECHO
 
-RST_HERE ECHO
-18 UARTI2CS     ; TERATERM(Alt-B) or I2C_Master(SW2+RST) to quit
+    $12 UARTI2CS   ; TERATERM(Alt-B) or USB_to_I2C_bridge(SW2) to quit
index b5cd556..3da33ee 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<
 
-; ------------------------------------------------------------------------------
+; --------------------------------
 ; UTILITY.f
-; ------------------------------------------------------------------------------
+; --------------------------------
 
 \ first, we test for downloading driver only if UART TERMINAL target
-CODE ABORT_UTILITY
-SUB #2,PSP
-MOV TOS,0(PSP)
-MOV &VERSION,TOS
-SUB #308,TOS        \ FastForth V3.8
-COLON
-'CR' EMIT           \ return to column 1 without 'LF'
-ABORT" FastForth V3.8 please!"
-PWR_STATE           \ remove ABORT_UTILITY definition before resuming
-;
+    CODE ABORT_UTILITY
+    SUB #2,PSP
+    MOV TOS,0(PSP)
+    MOV &VERSION,TOS
+    SUB #309,TOS        \                   FastForth V3.9
+    COLON
+    'CR' EMIT           \ return to column 1 without 'LF'
+    ABORT" FastForth V3.9 please!"
+    RST_RET             \ remove ABORT_UTILITY definition before resuming
+    ;
 
-ABORT_UTILITY
+    ABORT_UTILITY
 
-PWR_STATE
+    MARKER {UTILITY}
 
-[DEFINED] {TOOLS} [IF]  {TOOLS} [THEN]
-
-[UNDEFINED] {TOOLS} [IF]
-
-MARKER {TOOLS} 
-
-[UNDEFINED] EXIT [IF]
 \ https://forth-standard.org/standard/core/EXIT
 \ EXIT     --      exit a colon definition; CALL #EXIT performs ASMtoFORTH (10 cycles)
 \                                           JMP #EXIT performs EXIT
-CODE EXIT
-MOV @RSP+,IP    \ 2 pop previous IP (or next PC) from return stack
-MOV @IP+,PC     \ 4 = NEXT
-                \ 6 (ITC-2)
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
+    [UNDEFINED] EXIT
+    [IF]
+    CODE EXIT
+    MOV @RSP+,IP    \ 2 pop previous IP (or next PC) from return stack
+    MOV @IP+,PC     \ 4 = NEXT
+                    \ 6 (ITC-2)
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/SWAP
 \ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] SWAP
+    [IF]
+    CODE SWAP
+    MOV @PSP,W      \ 2
+    MOV TOS,0(PSP)  \ 3
+    MOV W,TOS       \ 1
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
 \ https://forth-standard.org/standard/core/Uless
 \ U<    u1 u2 -- flag       test u1<u2, unsigned
-[UNDEFINED] U< [IF]
-CODE U<
-SUB @PSP+,TOS   \ 2 u2-u1
-0<> IF
-    MOV #-1,TOS     \ 1
-    U< IF           \ 2 flag 
-        AND #0,TOS  \ 1 flag Z = 1
+    [UNDEFINED] U<
+    [IF]
+    CODE U<
+    SUB @PSP+,TOS       \ 2 u2-u1
+    0<> IF
+        MOV #-1,TOS     \ 1
+        U< IF           \ 2 flag
+            AND #0,TOS  \ 1 flag Z = 1
+        THEN
     THEN
-THEN
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] IF [IF]     \ define IF and THEN
 \ https://forth-standard.org/standard/core/IF
 \ IF       -- IFadr    initialize conditional forward branch
-CODE IF       \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-MOV &DP,TOS             \ -- HERE
-ADD #4,&DP            \           compile one word, reserve one word
-MOV #QFBRAN,0(TOS)      \ -- HERE   compile QFBRAN
-ADD #2,TOS              \ -- HERE+2=IFadr
-MOV @IP+,PC
-ENDCODE IMMEDIATE
+    [UNDEFINED] IF
+    [IF]     \ define IF and THEN
+    CODE IF             \ immediate
+    SUB #2,PSP          \
+    MOV TOS,0(PSP)      \
+    MOV &DP,TOS         \ -- HERE
+    ADD #4,&DP          \           compile one word, reserve one word
+    MOV #QFBRAN,0(TOS)  \ -- HERE   compile QFBRAN
+    ADD #2,TOS          \ -- HERE+2=IFadr
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/THEN
 \ THEN     IFadr --                resolve forward branch
-CODE THEN               \ immediate
-MOV &DP,0(TOS)          \ -- IFadr
-MOV @PSP+,TOS           \ --
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-[THEN]
-
-[UNDEFINED] BEGIN [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+    CODE THEN           \ immediate
+    MOV &DP,0(TOS)      \ -- IFadr
+    MOV @PSP+,TOS       \ --
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/BEGIN
 \ BEGIN    -- BEGINadr             initialize backward branch
-CODE BEGIN
+    [UNDEFINED] BEGIN [IF]  \ define BEGIN UNTIL AGAIN WHILE REPEAT
+    CODE BEGIN
     MOV #HEREXEC,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/UNTIL
 \ UNTIL    BEGINadr --             resolve conditional backward branch
-CODE UNTIL
+    CODE UNTIL              \ immediate
     MOV #QFBRAN,X
 BW1 ADD #4,&DP          \ compile two words
     MOV &DP,W           \ W = HERE
@@ -140,308 +138,362 @@ BW1 ADD #4,&DP          \ compile two words
     MOV TOS,-2(W)       \ compile bakcward adr at HERE+2
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/AGAIN
 \ AGAIN    BEGINadr --             resolve uncondionnal backward branch
-CODE AGAIN
-MOV #BRAN,X
-GOTO BW1
-ENDCODE IMMEDIATE
+    CODE AGAIN     \ immediate
+    MOV #BRAN,X
+    GOTO BW1
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/WHILE
 \ WHILE    BEGINadr -- WHILEadr BEGINadr
-: WHILE
-POSTPONE IF SWAP
-; IMMEDIATE
+    : WHILE     \ immediate
+    POSTPONE IF SWAP
+    ; IMMEDIATE
 
 \ https://forth-standard.org/standard/core/REPEAT
 \ REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
-: REPEAT
-POSTPONE AGAIN POSTPONE THEN
-; IMMEDIATE
-[THEN]
+    : REPEAT
+    POSTPONE AGAIN POSTPONE THEN
+    ; IMMEDIATE
+    [THEN]
 
-[UNDEFINED] DO [IF]     \ define DO LOOP +LOOP
 \ https://forth-standard.org/standard/core/DO
 \ DO       -- DOadr   L: -- 0
-CODE DO                 \ immediate
-SUB #2,PSP              \
-MOV TOS,0(PSP)          \
-ADD #2,&DP              \   make room to compile xdo
-MOV &DP,TOS             \ -- HERE+2
-MOV #XDO,-2(TOS)        \   compile xdo
-ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
-MOV &LEAVEPTR,W         \
-MOV #0,0(W)             \ -- HERE+2     L-- 0
-MOV @IP+,PC
-ENDCODE IMMEDIATE
-
-\ https://forth-standard.org/standard/core/LOOP
-\ LOOP    DOadr --         L-- an an-1 .. a1 0
-CODE LOOP               \ immediate
+    [UNDEFINED] DO
+    [IF]     \ define DO LOOP +LOOP
+    HDNCODE XDO         \ DO run time
+    MOV #$8000,X        \ 2 compute 8000h-limit = "fudge factor"
+    SUB @PSP+,X         \ 2
+    MOV TOS,Y           \ 1 loop ctr = index+fudge
+    ADD X,Y             \ 1 Y = INDEX
+    PUSHM #2,X          \ 4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
+    MOV @PSP+,TOS       \ 2
+    MOV @IP+,PC         \ 4
+    ENDCODE
+
+    CODE DO                 \ immediate
+    SUB #2,PSP              \
+    MOV TOS,0(PSP)          \
+    ADD #2,&DP              \   make room to compile xdo
+    MOV &DP,TOS             \ -- HERE+2
+    MOV #XDO,-2(TOS)        \   compile xdo
+    ADD #2,&LEAVEPTR        \ -- HERE+2     LEAVEPTR+2
+    MOV &LEAVEPTR,W         \
+    MOV #0,0(W)             \ -- HERE+2     L-- 0
+    MOV @IP+,PC
+    ENDCODE IMMEDIATE
+
+    HDNCODE XLOOP       \   LOOP run time
+    ADD #1,0(RSP)       \ 4 increment INDEX
+BW1 BIT #$100,SR        \ 2 is overflow bit set?
+    0= IF               \   branch if no overflow
+        MOV @IP,IP
+        MOV @IP+,PC
+    THEN
+    ADD #4,RSP          \ 1 empties RSP
+    ADD #2,IP           \ 1 overflow = loop done, skip branch ofs
+    MOV @IP+,PC         \ 4 14~ taken or not taken xloop/loop
+    ENDCODE             \
+
+    CODE LOOP
     MOV #XLOOP,X
-BW1 ADD #4,&DP          \ make room to compile two words
+BW2 ADD #4,&DP          \ make room to compile two words
     MOV &DP,W
     MOV X,-4(W)         \ xloop --> HERE
     MOV TOS,-2(W)       \ DOadr --> HERE+2
-BEGIN                   \ resolve all "leave" adr
-    MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
-    SUB #2,&LEAVEPTR    \ --
-    MOV @TOS,TOS        \ -- first LeaveStack value
-    CMP #0,TOS          \ -- = value left by DO ?
-0<> WHILE
-    MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
-REPEAT
+    BEGIN                   \ resolve all "leave" adr
+        MOV &LEAVEPTR,TOS   \ -- Adr of top LeaveStack cell
+        SUB #2,&LEAVEPTR    \ --
+        MOV @TOS,TOS        \ -- first LeaveStack value
+        CMP #0,TOS          \ -- = value left by DO ?
+    0<> WHILE
+        MOV W,0(TOS)        \ move adr after loop as UNLOOP adr
+    REPEAT
     MOV @PSP+,TOS
     MOV @IP+,PC
-ENDCODE IMMEDIATE
+    ENDCODE IMMEDIATE
 
 \ https://forth-standard.org/standard/core/PlusLOOP
 \ +LOOP   adrs --   L-- an an-1 .. a1 0
-CODE +LOOP
-MOV #XPLOOP,X
-GOTO BW1        \ goto BW1 LOOP
-ENDCODE IMMEDIATE
-[THEN]
+    HDNCODE XPLOO   \   +LOOP run time
+    ADD TOS,0(RSP)  \ 4 increment INDEX by TOS value
+    MOV @PSP+,TOS   \ 2 get new TOS, doesn't change flags
+    GOTO BW1        \ 2
+    ENDCODE         \
+
+    CODE +LOOP
+    MOV #XPLOO,X
+    GOTO BW2
+    ENDCODE IMMEDIATE
+    [THEN]
 
-[UNDEFINED] I [IF]
 \ https://forth-standard.org/standard/core/I
 \ I        -- n   R: sys1 sys2 -- sys1 sys2
 \                  get the innermost loop index
-CODE I
-SUB #2,PSP              \ 1 make room in TOS
-MOV TOS,0(PSP)          \ 3
-MOV @RSP,TOS            \ 2 index = loopctr - fudge
-SUB 2(RSP),TOS          \ 3
-MOV @IP+,PC             \ 4 13~
-ENDCODE
-[THEN]
-
-[UNDEFINED] DUP [IF]    \ define DUP and ?DUP
+    [UNDEFINED] I
+    [IF]
+    CODE I
+    SUB #2,PSP      \ 1 make room in TOS
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP,TOS    \ 2 index = loopctr - fudge
+    SUB 2(RSP),TOS  \ 3
+    MOV @IP+,PC     \ 4 13~
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/DUP
 \ DUP      x -- x x      duplicate top of stack
-CODE DUP
+    [UNDEFINED] DUP
+    [IF]    \ define DUP and ?DUP
+    CODE DUP
 BW1 SUB #2,PSP      \ 2  push old TOS..
     MOV TOS,0(PSP)  \ 3  ..onto stack
     MOV @IP+,PC     \ 4
-ENDCODE
+    ENDCODE
 
 \ https://forth-standard.org/standard/core/qDUP
 \ ?DUP     x -- 0 | x x    DUP if nonzero
-CODE ?DUP
-CMP #0,TOS      \ 2  test for TOS nonzero
-0<> ?GOTO BW1    \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] SWAP [IF]
-\ https://forth-standard.org/standard/core/SWAP
-\ SWAP     x1 x2 -- x2 x1    swap top two items
-CODE SWAP
-MOV @PSP,W      \ 2
-MOV TOS,0(PSP)  \ 3
-MOV W,TOS       \ 1
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
+    CODE ?DUP
+    CMP #0,TOS      \ 2  test for TOS nonzero
+    0<> ?GOTO BW1   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] DROP [IF]
 \ https://forth-standard.org/standard/core/DROP
 \ DROP     x --          drop top of stack
-CODE DROP
-MOV @PSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
+    [UNDEFINED] DROP
+    [IF]
+    CODE DROP
+    MOV @PSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] >R [IF]
 \ https://forth-standard.org/standard/core/toR
 \ >R    x --   R: -- x   push to return stack
-CODE >R
-PUSH TOS
-MOV @PSP+,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] R> [IF]
+    [UNDEFINED] >R
+    [IF]
+    CODE >R
+    PUSH TOS
+    MOV @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/Rfrom
 \ R>    -- x    R: x --   pop from return stack ; CALL #RFROM performs DOVAR
-CODE R>
-SUB #2,PSP      \ 1
-MOV TOS,0(PSP)  \ 3
-MOV @RSP+,TOS   \ 2
-MOV @IP+,PC     \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] SPACE [IF]
+    [UNDEFINED] R>
+    [IF]
+    CODE R>
+    SUB #2,PSP      \ 1
+    MOV TOS,0(PSP)  \ 3
+    MOV @RSP+,TOS   \ 2
+    MOV @IP+,PC     \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/SPACE
 \ SPACE   --               output a space
-: SPACE
-$20 EMIT ;
-[THEN]
+    [UNDEFINED] SPACE
+    [IF]
+    : 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] SPACES
+    [IF]
+    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] 2DUP [IF]    \
 \ https://forth-standard.org/standard/core/TwoDUP
 \ 2DUP   x1 x2 -- x1 x2 x1 x2   dup top 2 cells
-CODE 2DUP
-MOV TOS,-2(PSP)     \ 3
-MOV @PSP,-4(PSP)    \ 4
-SUB #4,PSP          \ 1
-MOV @IP+,PC         \ 4
-ENDCODE
-[THEN]
-
-[UNDEFINED] 1+ [IF]
+    [UNDEFINED] 2DUP
+    [IF]    \
+    CODE 2DUP
+    MOV TOS,-2(PSP)     \ 3
+    MOV @PSP,-4(PSP)    \ 4
+    SUB #4,PSP          \ 1
+    MOV @IP+,PC         \ 4
+    ENDCODE
+    [THEN]
+
 \ https://forth-standard.org/standard/core/OnePlus
 \ 1+      n1/u1 -- n2/u2       add 1 to TOS
-CODE 1+
-ADD #1,TOS
-MOV @IP+,PC
-ENDCODE
-[THEN]
+    [UNDEFINED] 1+
+    [IF]
+    CODE 1+
+    ADD #1,TOS
+    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]
+    [UNDEFINED] +
+    [IF]
+    CODE +
+    ADD @PSP+,TOS
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] - [IF]
 \ https://forth-standard.org/standard/core/Minus
 \ -      n1/u1 n2/u2 -- n3/u3      n3 = n1-n2
-CODE -
-SUB @PSP+,TOS   \ 2  -- n2-n1
-XOR #-1,TOS     \ 1
-ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
-MOV @IP+,PC
-ENDCODE
-[THEN]
-
-[UNDEFINED] C@ [IF]
+    [UNDEFINED] -
+    [IF]
+    CODE -
+    SUB @PSP+,TOS   \ 2  -- n2-n1
+    XOR #-1,TOS     \ 1
+    ADD #1,TOS      \ 1  -- n3 = -(n2-n1) = n1-n2
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
 \ 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]
+    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] AND
+    [IF]
+    CODE AND
+    AND @PSP+,TOS
+    MOV @IP+,PC
+    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] MAX [IF]    \ define MAX and MIN
-    CODE MAX    \    n1 n2 -- n3       signed maximum
-        CMP @PSP,TOS    \ n2-n1
-        S< ?GOTO FW1    \ n2<n1
-BW1     ADD #2,PSP
-        MOV @IP+,PC
+    [UNDEFINED] ROT
+    [IF]
+    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] MAX
+    [IF]            \ define MAX and MIN
+    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 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]
+    [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] MOVE [IF]
+    [UNDEFINED] OVER
+    [IF]
+    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/MOVE
 \ MOVE    addr1 addr2 u --     smart move
 \             VERSION FOR 1 ADDRESS UNIT = 1 CHAR
-CODE MOVE
-MOV TOS,W           \ W = cnt
-MOV @PSP+,Y         \ Y = addr2 = dst
-MOV @PSP+,X         \ X = addr1 = src
-MOV @PSP+,TOS       \ pop new TOS
-CMP #0,W            \ count = 0 ?
-0<> IF              \ if 0, already done !
-    CMP X,Y         \ Y-X \ dst - src
-    0= ?GOTO FW1    \ already done !
-    U< IF           \ U< if src > dst
-        BEGIN       \ copy W bytes
-            MOV.B @X+,0(Y)
-            ADD #1,Y
-            SUB #1,W
-        0= UNTIL
-        MOV @IP+,PC
-    ELSE            \ U>= if dst > src
-        ADD W,Y     \ copy W bytes beginning with the end
-        ADD W,X
-        BEGIN
-            SUB #1,X
-            SUB #1,Y
-            MOV.B @X,0(Y)
-            SUB #1,W
-        0= UNTIL
+    [UNDEFINED] MOVE
+    [IF]
+    CODE MOVE
+    MOV TOS,W           \ W = cnt
+    MOV @PSP+,Y         \ Y = addr2 = dst
+    MOV @PSP+,X         \ X = addr1 = src
+    MOV @PSP+,TOS       \ pop new TOS
+    CMP #0,W            \ count = 0 ?
+    0<> IF              \ if 0, already done !
+        CMP X,Y         \ Y-X \ dst - src
+        0= ?GOTO FW1    \ already done !
+        U< IF           \ U< if src > dst
+            BEGIN       \ copy W bytes
+                MOV.B @X+,0(Y)
+                ADD #1,Y
+                SUB #1,W
+            0= UNTIL
+            MOV @IP+,PC
+        ELSE            \ U>= if dst > src
+            ADD W,Y     \ copy W bytes beginning with the end
+            ADD W,X
+            BEGIN
+                SUB #1,X
+                SUB #1,Y
+                MOV.B @X,0(Y)
+                SUB #1,W
+            0= UNTIL
+        THEN
     THEN
-THEN
 FW1 MOV @IP+,PC
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CONSTANT
+\ CONSTANT <name>     n --                      define a Forth CONSTANT
+    [UNDEFINED] CONSTANT
+    [IF]
+    : CONSTANT
+    CREATE
+    HI2LO
+    MOV TOS,-2(W)           \   PFA = n
+    MOV @PSP+,TOS
+    MOV @RSP+,IP
+    MOV @IP+,PC
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/BASE
+\ BASE    -- a-addr       holds conversion radix
+    [UNDEFINED] BASE
+    [IF]
+    BASEADR  CONSTANT BASE
+    [THEN]
 
-[UNDEFINED] .S [IF]    \
 \ https://forth-standard.org/standard/tools/DotS
-\ .S        TOS -- TOS          display <depth> of param Stack and stack contents in hedadecimal if not empty
-CODE .S
+\ .S        TOS -- TOS          display <depth> of param Stack and stack contents in hexadecimal if not empty
+    [UNDEFINED] .S
+    [IF]    \
+    CODE .S
     MOV     TOS,-2(PSP) \ -- TOS ( TOS x x )
     MOV     PSP,TOS     \ -- PSP ( TOS x x )
     SUB     #2,TOS      \ -- PSP ( TOS x x )  to take count that TOS is first cell
@@ -449,115 +501,144 @@ CODE .S
     MOV     #PSTACK,TOS \ -- P0  ( TOS x  PSP )
     SUB     #2,TOS      \ -- P0  ( TOS x  PSP ) to take count that TOS is first cell
 BW1 MOV     TOS,-4(PSP) \ -- S0  ( TOS S0 PSP ) |  -- TOS ( TOS R0 RSP )
-    SUB     #6,PSP      \ -- TOS S0 PSP S0      |  -- TOS R0 RSP R0 
-    SUB     @PSP,TOS    \ -- TOS S0 PSP S0-SP   |  -- TOS R0 RSP R0-RSP 
-    RRA     TOS         \ -- TOS S0 PSP #cells  |  -- TOS R0 RSP #cells 
-COLON
+    SUB     #6,PSP      \ -- TOS S0 PSP S0      |  -- TOS R0 RSP R0
+    SUB     @PSP,TOS    \ -- TOS S0 PSP S0-SP   |  -- TOS R0 RSP R0-RSP
+    RRA     TOS         \ -- TOS S0 PSP #cells  |  -- TOS R0 RSP #cells
+    COLON
     $3C EMIT            \ char '<'
     .                   \ display #cells
     $08 EMIT            \ backspace
     $3E EMIT SPACE      \ char '>' SPACE
-    2DUP 1+             \ 
-    U< IF 
+    2DUP 1+             \
+    U< IF
         DROP DROP EXIT
     THEN                \ display content of stack in hexadecimal
-    BASEADR @ >R
-    $10 BASEADR !
-    DO 
+    BASE @ >R   \ base_address @ >R
+    $10 BASE !
+    DO
+        '$' EMIT
         I @ U.
     2 +LOOP
-    R> BASEADR !
-;
-[THEN]
+    R> BASE !
+    ;
+    [THEN]
 
-[UNDEFINED] .RS [IF]    \
 \ .RS         TOS -- TOS           display <depth> of Return Stack and stack contents if not empty
-CODE .RS
-    MOV     TOS,-2(PSP) \ -- TOS ( TOS x x ) 
+    [UNDEFINED] .RS
+    [IF]    \
+    CODE .RS
+    MOV     TOS,-2(PSP) \ -- TOS ( TOS x x )
     MOV     RSP,-6(PSP) \ -- TOS ( TOS x  RSP )
     MOV     #RSTACK,TOS \ -- R0  ( TOS x  RSP )
     GOTO    BW1
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
 
-[UNDEFINED] ? [IF]    \
 \ https://forth-standard.org/standard/tools/q
 \ ?         adr --            display the content of adr
-CODE ?          
+    [UNDEFINED] ?
+    [IF]    \
+    CODE ?
     MOV @TOS,TOS
     MOV #U.,PC  \ goto U.
-ENDCODE
-[THEN]
+    ENDCODE
+    [THEN]
+
+\ https://forth-standard.org/standard/core/CR
+\ CR      --               send CR+LF to the output device
+    [UNDEFINED] CR
+    [IF]
+
+\    DEFER CR       \ DEFERed definition, by default executes that of :NONAME
+    CODE CR         \ create a DEFER definition of CR
+    MOV #NEXT_ADR,PC
+    ENDCODE
+
+    :NONAME
+    'CR' EMIT 'LF' EMIT
+    ; IS CR
+    [THEN]
+
+\ https://forth-standard.org/standard/core/TwoDiv
+\ 2/      x1 -- x2        arithmetic right shift
+    [UNDEFINED] 2/
+    [IF]
+    CODE 2/
+    RRA TOS
+    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_ORG                   \ -- VOC_BODY PAD_ORG                  MOVE all threads of VOC_BODY in PAD_ORG
-THREADS @ DUP +                 \ -- VOC_BODY PAD_ORG THREAD*2
-MOVE                            \ -- vocabumary entries are copied in PAD_ORG
-BEGIN                           \ -- 
-    0 DUP                       \ -- ptr=0 MAX=0                
-    THREADS @ DUP + 0           \ -- ptr=0 MAX=0 THREADS*2 0
-        DO                      \ -- ptr MAX            I =  PAD_ptr = thread*2
-        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_ORG + @   \ -- new_ptr new_MAX
-            THEN                \ 
-        2 +LOOP                 \ -- ptr MAX
-    ?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_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
-    C@ $0F AND                  \ -- count_of_chars
-    $10 SWAP - SPACES           \ --                    complete with spaces modulo 16 chars
-REPEAT                          \ --
-DROP                            \ ptr --
-;                               \ all threads in PAD_ORG are filled with 0
-[THEN]
-
-[UNDEFINED] U.R [IF]
-: 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]    \
+    [UNDEFINED] WORDS
+    [IF]
+    : WORDS                         \ --
+    CR
+    CONTEXT @ PAD_ORG               \ -- VOC_BODY PAD_ORG                  MOVE all threads of VOC_BODY in PAD_ORG
+    THREADS @ DUP +                 \ -- VOC_BODY PAD_ORG THREAD*2
+    MOVE                            \ -- vocabumary entries are copied in PAD_ORG
+    BEGIN                           \ --
+        0 DUP                       \ -- ptr=0 MAX=0
+        THREADS @ DUP + 0           \ -- ptr=0 MAX=0 THREADS*2 0
+            DO                      \ -- ptr MAX            I =  PAD_ptr = thread*2
+            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_ORG + @     \ -- new_ptr new_MAX
+                THEN                \
+            2 +LOOP                 \ -- ptr MAX
+        ?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_ORG +                   \ -- MAX [LFA] thread
+        !                           \ -- MAX                MAX=highest_NFA [LFA]=new_NFA updates PAD_ORG+ptr
+        COUNT 2/                    \ -- addr count         2/ to hide Immediate flag
+        DUP >R TYPE                 \ --      R-- count
+        R> $10 SWAP - SPACES        \ --      R--           complete with spaces modulo 16 chars
+    REPEAT                          \ --
+    DROP                            \ ptr --
+    ;                               \ all threads in PAD_ORG are filled with 0
+    [THEN]
+
+    [UNDEFINED] U.R
+    [IF]
+    : U.R                       \ u n --           display u unsigned in n width (n >= 2)
+    >R  <# 0 # #S #>
+    R> OVER - 0 MAX SPACES TYPE
+    ;
+    [THEN]
+
 \ 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 2DUP                 \ -- END ORG END ORG 
-  U. U.                     \ -- END ORG        display org end 
-  $FFF0 AND                 \ -- END ORG_modulo_16
-  DO  CR                    \ generate line
-    I 4 U.R SPACE           \ generate address
-      I 8 + I               \ display first 8 bytes
-      DO I C@ 3 U.R LOOP
-      SPACE
-      I $10 + I 8 +         \ display last 8 bytes
-      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]  \ endof [UNDEFINED] DUMP
-
-RST_HERE
-
-[THEN]  \ endof [UNDEFINED] {TOOLS}
-ECHO
+    [UNDEFINED] DUMP
+    [IF]
+    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
+    $FFF0 AND                   \ -- END ORG_modulo_16
+    DO  CR                      \ generate line
+        I 4 U.R SPACE           \ generate address
+        I 8 + I                 \ display first 8 bytes
+        DO I C@ 3 U.R LOOP
+        SPACE
+        I $10 + I 8 +           \ display last 8 bytes
+        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> BASE  !                 \ restore current base
+    ;
+    [THEN]  \ endof [UNDEFINED] DUMP
+
+    RST_SET
+
+    [THEN] ECHO ; endof [UNDEFINED] {TOOLS}
+
index 3fcf3c4..2d91837 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,46 +1,67 @@
-# FastForth for all MSP430FRxxxx TI's devices,  light, fast, efficient, reliable.
+## FastForth for MSP430FRxxxx TI's CPUs, light, fast, reliable.
 
-Tested on TI MSP-EXP430FR(5739,5969,5994,6989,4133,2355,2433) launchpads, at 1, 2, 4, 8, 12, 16 MHz plus 20MHz & 24MHz with MSP430FR(23xx,57xx) devices.
+Tested on TI MSP-EXP430FR 5739,
+[5969](https://duckduckgo.com/?q=MSP-EXP430FR5969),
+[5994](https://duckduckgo.com/?q=MSP-EXP430FR5994),
+6989,
+4133,
+[2476](https://duckduckgo.com/?q=Lp-MSP430FR2476),
+[2355](https://duckduckgo.com/?q=MSP-EXP430FR2355),
+2433) launchpads, at 1, 2, 4, 8, 12, 16 MHz plus 20 & 24 MHz with MSP430FR(23xx,57xx) devices.
 
-FastForth is a **5kB size** "load interpret compile" operating system for MSP430 devices with FRAM which includes:
+FastForth is a "load interpret compile execute" operating system for the CPU's MSP430 Texas Instruments with FRAM:
 
-* FORTH kernel with interpreting decimal, hex, binary numbers (#,$,% prefixes), double numbers and Q15.16 numbers,
+* LOAD: choice of the TERMINAL (TERATERM.exe) interface:
 
-* the assembler, **label free, with TI's syntax**,
+    * UART TERMINAL up to 6MBds @ MCLK=24MHz, with software (XON/XOFF) and/or hardware (RTS) control flow, **transmit delay: 0 ms/char, 0 ms/line**
 
-* easy roundtrip between FORTH and ASSEMBLER in definitions, with only 2 switches: `HI2LO` and `LO2HI`,
+    * a very well designed **I2C TERMINAL up to 1MHz**, with a behaviour full duplex, ready to communicate with all modules **I2C_FastForth** wired onto bus,
+    
+* INTERPRET: with a 16-entry word-set that speeds up the FORTH interpreter by 4,
 
-* conditional compilation,
+* COMPILE: in addition to the FORTH engine, the **MSP430 assembler (label free) with syntax TI's**,
 
-* efficient memory management which can be modulated according to these 3 levels: power on, reset, deep reset,
+and as result **"load interpret compile" a source file is faster and easier than loading its binary equivalent** via the TI's eZFET interface:    
+For example, with MCLK=24MHz, THREADS=16, UART=6MBds 8n1, a [PL2303GC](https://duckduckgo.com/?q=DSD+TECH+SH-U06A+PL2303GC) and Teraterm.exe as TERMINAL, the download/interpret/execute process of the file CORETEST is done at an effective rate close to 43KB/s (430kBds).     
+with a bridge UARTtoI2C and an I2C_Slave target MCLK=24MHz, THREADS=16, the effective rate is the same ( I don't understand but it's like this...)
 
-* automatic memory releasing with MARKER tags,
+Despite its **size of 5 kb** FastForth includes:
 
-* robust and visual error handling,
+* FORTH kernel with interpreting decimal, hex, binary (#,$,% prefixed) numbers, digits separator '_', 'char', double numbers and Q15.16 numbers,
 
-* choice of the TERMINAL (TERATERM.exe) interface:
+* the MSP430 16 bits assembler (1,5 kb),
 
-    * UART TERMINAL up to 6MBds @ MCLK=24MHz, with software (XON/XOFF) and/or hardware (RTS) control flow, **transmit delay: 0 ms/char, 0 ms/line**
+* a good error management which interrupts the downloading at the slightest error,
 
-    * **I2C TERMINAL up to 1MHz**, "full duplex" like, allowing to communicate with several **I2C_FastForth** targets,
-    
-* and therefore, **"loading, interpreting, compiling" a source file is faster and easier than loading its binary equivalent**,
+* a memory management which can be modulated according to these 3 levels: MARKER, RESET, DEEP_RESET,
+
+* everything you need to write a real time application made of a mix of FORTH/assembler:
+
+    * the complete set of the FORTH building words,
+
+    * conditional compilation,
+
+    * thanks to [GEMA preprocessor](http://gema.sourceforge.net/new/index.shtml), the compilation of all symbolic addresses without having to declare them in FORTH, 
 
-* transmission errors, if any, are automatically rejected by the on-board interpreter,
+    * easy roundtrip between FORTH and assembler with only two switches 'one word' `HI2LO` and `LO2HI`,
 
-* CPU in sleep mode LPM0:LPM4, awaiting a command from UART:I2C TERMINAL, or any user interrupt event,
+    * automatic releasing memory with MARKER tags,
 
-* direct access to all SFR and other symbolic addresses by use of [GEMA preprocessor](https://github.com/NeonMan/gema),
+    * Fully configurable sequences: reset, initialisation and background,
 
-* Fully configurable reset, initialisation and background sequences.
+    * CPU in sleep mode LPM0|LPM4 in awaiting a command from UART|I2C TERMINAL, and ready to process any interrupts.
 
-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 also copy them from PC to the SD_Card. It works with all SD\_CARD memories from 64MB to 64GB. The cycle to read/write a byte is below 1 us @ 16 MHz.
+For only 3 kbytes in addition, we have the primitives to access the SD_CARD FAT16 and FAT32: read, write, del, download source files and also to copy them from PC to the SD_Card.
+It works with all SD\_CARD memories from 64MB to 64GB with FAT32 format.
+The cycle to read/write a **byte** is below 1us @ 16 MHz.
 
-With all the kernel addons, including extended\_ASM and SD\_Card driver, FastForth size is **10 kB**.
+With all the kernel addons, including the 20 bits MSP430\_X assembler and the SD\_Card driver, FastForth size is **10 kB**.
+
+After downloading CORE_ANS.f file (+2 kb), FastForth passes successfully the CORE ANS94 + COREPLUSTEST tests.
 
 However, if all works well with Windows 10, it works less well with Linux due to the lack of a good alternative to TERATERM...
 
-Note: for every update, download all subdirectories to correctly update the project, without missing configurations files.
+Note: please, for each update download all subdirectories to correctly update the project.
 
 ## how to connect TERMINAL
 
@@ -51,22 +72,28 @@ Note: for every update, download all subdirectories to correctly update the proj
     ------------------------------------------------------------------------------------------
     (modify this first: open the box and weld red wire on 3.3V pad).
 
-### programming with MSP430Flasher/UniFlash and FET interface
+### programming with MSP430Flasher/UniFlash and FET interface:
 
-     TI Launchpad <--> CP2102/PL2302TA cable <------> USB <-------------> TERATERM.exe 
-               RX <--- TX            )
-              GND <--> GND           > used by FastForth TERMINAL
-               TX ---> RX            )
-              RTS ---> CTS (optionnal) RTS pin Px.y is described in your \inc\launchpad.asm)
-    
+            J101 connector
+                    |
+                    v
      TI Launchpad <--> FET interface  <-------------> USB <-------------> MSP430Flasher.exe/UniFlash
               Vcc <--- 3V3
        TST/SBWTCK <--> SBWTCK
               GND <--> GND
       RST/SBWTDIO <--> SBWTDIO
 
-### programming with BSL_Scripter.exe
+     TI Launchpad <--> CP2102/PL2302TA cable <------> USB <-------------> TERATERM.exe 
+               RX <--- TX            )
+              GND <--> GND           > used by FastForth TERMINAL
+               TX ---> RX            )
+              RTS ---> CTS (optionnal) RTS pin Px.y is described in your \inc\launchpad.asm)
+    
+### programming with BSL_Scripter.exe (don't work with MSP-EXP430FR2355 launchpad)
 
+            J101 connector
+                    |
+                    v
      MSP430FRxxxx <--> CP2102/PL2303TA cable <------> USB <-------->+<--> TERATERM.exe
                RX <--- TX   )                                       |
               GND <--> GND  > used by FastForth TERMINAL            +<--> BSL_Scripter.exe
@@ -91,17 +118,16 @@ A set of .bat files in \MSP430-FORTH folder is furnished to do all this automati
     
 To see all specifications of FastForth, download \MSP430-FORTH\FF_SPECS.f.
 
-To change the terminal baudrate on the fly, 9600 Bauds up to 6 MBds, download \MSP430-FORTH\CHNGBAUD.f.
+To change the UART TERMINAL baudrate on the fly, 9600 Bauds up to 6 MBds, download \MSP430-FORTH\CHNGBAUD.f.
 Beyond 1 MBds, shorten the PL2303HXD cable, down to 50 cm for 6MBds.
 
 XON/XOFF flow control allows 3.75kV galvanic isolation of terminal input with SOIC8 Si8622EC|ISO7021.
-With powered SOIC16W ISOW7821, you have 5kV rms isolation for both XON/XOFF TERMINAL and a 3V3 75mA supply.
 
-If you choose I2C_FastForth for your target, you will need of one more to make the USBtoI2C bridge.
+If you choose I2C_FastForth for your project, you will need of one more launchpad to make the USBtoI2C bridge.
 See driver for I2C_FastForth:  \MSP430-FORTH\UARTI2CS.f.
 
 After downloading of complementary words in \MSP430-FORTH\ANS_COMP.f, FastForth executes CORETEST.4th
-in less than a second, and without errors which ensures its compatibility with the FORTH CORE ANS94 standard.
+in one second, and 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. 
@@ -112,22 +138,62 @@ Finally, using the SCITE editor as IDE, all is ready to do everything from its "
 What is new ?
 -------------
 
+### V309   
+
+* = V308 - 344 bytes.
+
+* removed `INTERPRET`, `CR` and the useless error line displaying.
+
+* Removed `PWR_HERE` and `PWR_STATE`, replaced `RST_HERE` by `RST_SET` and `RST_STATE` by `RST_RET`.
+
+* Replaced `WIPE` by `-1 SYS`, `COLD` by `6 SYS` and `WARM` by `0 SYS` or simply `SYS`.
+
+* replaced `VOCABULARY` with `WORDSET`. `ALSO` is also :-) removed because the executing of a definition created by `WORDSET` adds it into the CONTEXT stack. For example, typing `FORTH` adds it into CONTEXT. Note that as result the use of ONLY is modified: `FORTH ONLY` instead of `ONLY FORTH`.
+
+* modified QNUMBER QABORT `ABORT` `QUIT` `HI2LO` `PREVIOUS` `WORD` `FIND` `>NUMBER` `TYPE` `#>` `COUNT` `SWAP` `TICK` `POSTPONE` `COLON` `[ELSE]` plus the assembler.
+
+* The bootstrap ON/OFF is modified: `BOOT` / `NOBOOT` to enable / disable it.
+
+* the word-set `ASSEMBLER` is renamed `hidden` because it stores not only the ASM instructions definitions but also HDNCODE definitions.
+
+* when you executes a `MARKER` definition, it starts by removing its previous definition if exists.
+
+* Some bugs corrected:  
+    * QNUMBER FORWDOES `TYPE` `WORD`, 
+    * `M*/` in \MSP430-FORTH\DOUBLE.f file, 
+    * the assembler handles correctly argument+/-offset.
+
+* User can choose floored or symmetric division. See \MSP430-FORTH\ANS_CORE.f
+
+* the words `:NONAME` `IS` `DOES>` `CODENNM` are added to the core and there is still enough room in its 5kb for the VOCABULARY_SET add-on.  
+  DEFER is not included because too easy to replace by a CODE definition, see CR in file CORE_ANS.f. 
+
+* When used with VOCABULARY_SET activated, `RST_SET`/`RST_RET` and definition/use of `MARKER` tags save/restore the full word-set environment: DP, CURRENT, CONTEXT stack, VOCLINK.
+
+* FF_SPECS.f displays all word-sets, including the `hidden` one.
+
+* the SD_Card driver is rewritten. Only FAT32 format is supported. I suggest 4kb sized clusters.   
+  The old WRITE" command is duplicated :  
+    ** `WRITE"` to create a new file (or to overwrite it if exists),  
+    ** `APPEND"` to append to a file (or to create it if not exists)
+
+
 ### V308
 
-* 16 bytes removed from (Kernel + Conditional_Compilation + Assembler).
+* = V307 - 16 bytes.
     
 * Source file copy from TERMINAL to the SD\_Card of any I2C\_FastForth target works fine.
     
-* The bootstrap call is modified: `' BOOT IS WARM` to enable it, `' BOOT [PFA] IS WARM` to remove it.
+* ~~The bootstrap call is modified: `' BOOT IS WARM` to enable it, `' BOOT [PFA] IS WARM` to remove it~~.
 
-* ASM definitions are renamed HDNCODE (HiDdeN CODE), ENDASM is replaced by ENDCODE.
+* `ASM` definitions are renamed `HDNCODE` (HiDdeN CODE), `ENDASM` is replaced by `ENDCODE`.
 
-    HDNCODE definitions are identical to low level CODE ones, but are hidden because defined in the ASSEMBLER word set, and can be used only
+    `HDNCODE` definitions are identical to low level `CODE` ones, but are hidden because defined in the ~~`ASSEMBLER`~~ `hidden` word set, and must be used only
     in the scope of another low level CODE definition. See use in \MSP430-FORTH\UARTI2CS.f.
     
 * FastForth passes CORETEST + COREPLUSTEST tests. See modified \MSP430-FORTH\CORETEST.4TH
 
-* Double number word D< corrected in \MSP430-FORTH\DOUBLE.f
+* Double number word `D<` corrected in \MSP430-FORTH\DOUBLE.f
 
 
 ### V307
@@ -149,57 +215,58 @@ What is new ?
  `MOV #RXON,&SLEEP+2` to store RXON addr at SLEEP+2 addr.  
  `MOV.B BUFFER+-1(X),TOS` to load the byte at BUFFER-1(X) addr in the register TOS.
     
-* COLD does same than hardware RST.  
-  WIPE does same than hardware SW1+RST (DEEP_RESET).
+* ~~`COLD` does same than hardware RST~~.  
+  `6 SYS` does same than hardware RST.  
+  ~~`WIPE` does same than hardware SW1+RST (DEEP_RESET)~~.  
+  `-1 SYS` does same than hardware SW1+RST (DEEP_RESET).  
 
 
 * More complicated:
 
-In the FastForth init process, COLD WARM SLEEP are modified and INI_FORTH is added.
-They start each with an immediate call to a paired assembly subroutine:
-      
-          RST_SYS failures ->+       +<- ABORT_TERM <- ABORT" <-(error)<-+-<-COMPILE/EXECUTE<-INTERPRET<-+
-                             |       |                                   |                               ^
-                             |       v                                   v                               |
-          SW1+RST->+<-RST    |       +--> INI_FORTH -> ABORT" ->+->QUIT>-+->ACCEPT->+         +->ACCEPT->+
-                   |         |            ---------             ^                   |         ^
-                   v         v                                  |                   v         |  
-          WIPE --->+->COLD-->+--> PUC --> INI_FORTH --> WARM -->+                   +->SLEEP->+  
-                      ----                ---------     ----                           -----  
+In the FastForth init process, COLD WARM SLEEP are modified and INIT_FORTH is added.
+They start each with a call to a paired assembly subroutine:
       
-    subroutine:       COLD_APP            INI_SOFT_APP  INI_HARD_APP                   BACKGND_APP
-    default CALL#     COLD_TERM           RET_ADR       INIT_TERM                      RXON
-    Default action:   wait TERMINAL idle  do nothing    init TERM UCAx                 enable TERMINAL TX
-                                                        + unlock I/O's                 (send RXON + /RTS)
+          RST_SYS failures --------->+       +<- ABORT_TERM <--------(error)<------------+<--COMPILE/EXECUTE<-INTERPRET<-+
+                                     |       |                                           |                               ^
+          RST ------------>+         |       v                                           v                               |
+                           v         |       +-> INIT_FORTH -> ABORT" ->+-> ABORT->QUIT->+->ACCEPT->+         +->ACCEPT->+
+          SW1+RST -------->+         |           ==========             ^                           |         ^
+                           v         v                                  |                           v         |  
+          -n SYS --------->+->COLD-->+->PUC->+-> INIT_FORTH --> WARM" ->+                           +->SLEEP->+  
+                           ^  ====           ^   ==========     ====                                   =====  
+                           |                 |
+          +n SYS (even) -->+              (NOPUC)
+                                             |
+          +n SYS (odd) --------------------->+
+                                             ^ 
+          [0] SYS -------------------------->+
+
+                  CALL...     &COLD_APP          &SOFT_APP      &HARD_APP                              &SLEEP_APP
+                              =========          =========      =========                              ==========
+    Default subroutine...     COLD_TERM          RET_ADR        INIT_TERM                              RXON
+        Default action...     wait TERM idle     do nothing     init TERM UC, unlock I/O               enable TERMINAL to TX
+                                                        
+    note: -n SYS|SW1+RST reset the default subroutine of these four calls.  
 
-   
 On the other hand, MARKER is modified in such a way that MARKER\_DOES executes a CALL to
-the content of BODY+4,   by default RET_ADR:
+the content of USER_BODY-2,   by default RET_ADR:
     
-    MARKER [CFA]    = DODOES
-           [PFA]    = MARKER_DOES
-           [BODY]   = previous DP (Dictionnary Pointer)
-           [BODY+2] = previous VOCLINK (if word-set addon)
-           [BODY+4] = RET_ADR
-
-By replacing [BODY+4] with the address of a new defined subroutine (named for example: STOP_XXX), 
-MARKER_DOES will execute it to restore all critical pointers saved at BODY+6, BODY+8...
-
-Thus, with MARKER and the definition of subroutines COLD_XXX, INI_SOFT_XXX, INI_HARD_XXX, BACKGND_XXX 
-the programmer has full control of his "XXX" real time application using interrupts, 
-with everything he needs to start it, stop it, and also to properly remove it with
-a 'soft' MARKER word, avoiding the use of a WIPE or a SW1+RST of the last chance. 
-
-See examples in  /MSP430-FORTH/UARTI2CS.f,  /MSP430-FORTH/RTC.f.
+    MARKER [CFA]         = DODOES
+           [PFA]         = MARKER_DOES
+           [BODY]        = previous DP (Dictionnary Pointer)
+           ...
+           [USER_PARAM-2] = RET_ADR  as REMOVE_APP by default
 
-notes:
 
-* RST and SW1+RST (deep RST) are hardware redirected to COLD via NMI and the USER\_NMI vector. 
-* INI\_SOFT\_SD is used as INI\_SOFT\_APP alias by the SD_CARD driver to reinit handles.  
+By replacing [USER_PARAM-2] with the address of a new defined subroutine (named for example: REMOVE_XXX), 
+MARKER_DOES will execute it to restore n critical pointers (room made by 2n ALLOT) at USER_PARAM, USER_PARAM+2, ...
 
-* WIPE|SW1+RST initialises this four APP calls plus TERMINAL\_INT Vector.  
+Thus, with MARKER and the definition of subroutines STOP_XXX, INIT_SOFT_XXX, INIT_HARD_XXX, BACKGND_XXX, 
+the programmer has full control of his "XXX" real time application using interrupts, 
+with everything he needs to start, stop and remove it properly, thanks to a 'soft' MARKER definition, 
+avoiding the (SW1+RST) of the last chance. 
 
+See example in  /MSP430-FORTH/UARTI2CS.f.
 
 
 ### V306
@@ -263,13 +330,13 @@ notes:
     A newcomer: FastForth for I2C TERMINAL. With the driver UART2I2CS running on another FastForth target,
                 we have the USB to I2C_Slave bridge we need: one TERMINAL for up to 112 I2C_FastForth targets.
 
-                                                                                    +---------------------------+
-      notebook                     USB to I2C_Slave bridge                    +-I2C-| others I2C_slave target   |
-    +-----------+      +-------------------------------------------------+   /    +--------------------------+  |
-    |           |      ¦ PL2303HXD         target running UARTI2CS @24MHz¦  +-I2C-|  MSP430FR4133 @ 1 MHz    |  |
-    |           |      ¦------------+       +----------------------------¦ /   +--------------------------+  |--+
-    |           |      ¦            | 3wires|   MSP430FR2355 @ 24MHz     ¦/    |   MSP430FR5738 @ 24 MHz  |  |
-    | TERATERM -o->USB-o->USB2UART->o->UART-o-> FAST FORTH -> UARTI2CS  -o-I2C-o-> FAST FORTH with option |--+
+                                                                                    +-------------------------+
+      notebook                     USB to I2C_Slave bridge                    +-I2C-| others I2C_slave target |
+    +-----------+      +-------------------------------------------------+   /    +-------------------------+ |
+    |           |      ¦ PL2303HXD         target running UARTI2CS @24MHz¦  +-I2C-|  MSP430FR4133 @ 1 MHz   | |
+    |           |      ¦------------+       +----------------------------¦ /   +--------------------------+ |-+
+    |           |      ¦            | 3wires|   MSP430FR2355 @ 24MHz     ¦/    |   MSP430FR5738 @ 24 MHz  | |
+    | TERATERM -o->USB-o->USB2UART->o->UART-o-> FAST FORTH -> UARTI2CS  -o-I2C-o-> FAST FORTH with option |-+
     | terminal  |      ¦            | 6MBds |               (I2C MASTER) ¦     |  TERMINAL_I2C (I2C SLAVE)| 
     |           |      ¦------------+       +----------------------------¦     +--------------------------+
     |           |      ¦            |< 20cm>|                            ¦       up to 112 I2C_Slave targets  
@@ -277,29 +344,28 @@ notes:
 
     With the indicated MCLK and UART speed, Coretest.4th is downloaded to (and executed by) I2C_Slave in 800ms.
     The driver UARTI2CS works without error from 1MHz to 24MHz MCLK and from 115200Bds up to 6MBds UART.
-    With I2C_Master running at 24 MHz, the I2C bus frequency is about 1MHz, and it works fine even if I2C_slave is running at 1 MHz.
+    With I2C_Master running at 24 MHz, the I2C bus frequency is about 1MHz, and it works fine
+    even if I2C_slave is running at 1 MHz.
     Don't forget to add two 3k3 pullup resistors on SCL and SDA...
 
     the Multi Master Mode works but is not tested in multi master environment.
     
     "cerise sur le gâteau": when they wait for a TERMINAL input (idle state), 
     both I2C_Master and I2C_Slave(s) are sleeping in LPMx mode and the bus I2C is freed. 
-    LPM4 mode is available for I2C_Slave devices.
-    
-    The driver UART2I2CS doesn't use the UCBx I2C_Master hardware, really too bad, but
-    profitably its software version, much more faster, which consumes just two I/O (better in the range Px0-Px3),
-    the UCBx remaining available for another I2C_Slave or SPI driver.
+    The I2C_slave driver handles LPM4 mode.
     
+    The UART2I2CS does not use TI's horrible UCBx_I2C_Master driver, but a much faster software driver,
+    with the UCBx still available for an I2C_Slave or SPI driver.
 
 ##### HOW TO DO ?
 
-    first you make a I2C cable (GND,SDA,SCL,3V3) between your 2 LaunchPad, with 3,3k pullup resistors on SDA and SCL lines.
-    see each of two /inc/target.pat files to know SDA ans SCL pins.
+    first you make the I2C cable (GND,SDA,SCL,3V3) between your 2 LaunchPad, with 3,3k pullup resistors
+    on SDA and SCL lines. See in forthMSP430FR_TERM_I2C.asm to select SDA and SCL pins.
     
     to compile FastForth for I2C TERMINAL from forthMSP430FR.asm file:
-    1-  uncomment the line "TERMINAL_I2C".
-    2-  search "I2CSLAVEADR" line and set your <slave address you want>, i.e. 10h.
-    3-  compile file then prog your I2C_Slave LaunchPad.
+    -  uncomment the line "TERMINAL_I2C".
+    -  search "I2CSLAVEADR" line and set your <slave address you want>, i.e. 10h.
+    -  compile file then prog your I2C_Slave LaunchPad.
     
     with the another LaunchPad running FastForth:
     At the end of UART2I2CS.f file set the <slave address you want>, i.e. $10.
@@ -362,7 +428,7 @@ notes:
 ### PREVIOUS versions
     
 Unlocking I/O's is transfered from RESET to WARM.
-Thus, by redirecting WARM, you can add I/O's configuration of your application before unlock them.
+Thus, by redirecting WARM, you can add I/O's configuration of your application before unlocking.
 
 
 The structure of primary DEFERred words as KEY,EMIT,CR,WARM... is modified,
@@ -406,7 +472,7 @@ to build the primary DEFERred low level definition "machin" :
 
 you can obviously mix LOW/HIGH levels in CODENNM and :NONAME
 
-All interpretation/compilation errors now execute PWR_STATE, so any incorrect definition
+All interpretation/compilation errors now execute ~~`PWR_RET`~~~ `RST_RET`, so any incorrect definition
 and all its source file will be automatically erased.
     
 
@@ -484,32 +550,34 @@ In explorer you should obtain this back your driver letter:
              \prog(.bat)             to do what ?...
    
     \config\
-           \asm.properties                     configuration for *.inc,*.asm files
-           \forth.properties                   configuration for *.f,*.4th files
-           \fortran.properties                 configuration for *.pat files
-           \SendFile.ttl                       TERATERM macro file to send source file to FASTFORTH
-           \SendToSD.ttl                       TERATERM macro file to send source file to embedded SD_CARD 
-           \build(.bat)                        called by scite to build target.txt program 
-           \BSL_prog(.bat)                     to flash target with target.txt file with BSL_Scripter
-           \FET_prog(.bat)                     to flash target with target.txt file with MSP430Flasher
-           \CopyTo_SD_Card(.bat)               to copy in your MSP430-FORTH
-           \SendSource(.bat)                   to send file to FASTFORTH
-           \Preprocess(.bat)                   to convert generic .f file to specific .4th file
-           \CopySourceFileToTarget_SD_Card.bat copy it in any user folder for drag'n drop use
-           \SendSourceFileToTarget.bat         copy it in any user folder for drag'n drop use
-           \PreprocessSourceFile.bat           copy it in any user folder for drag'n drop use
-           \SelectTarget.bat                   called to select target, device and deviceID
+           \asm.properties                      configuration for *.inc,*.asm files
+           \forth.properties                    configuration for *.f,*.4th files
+           \fortran.properties                  configuration for *.pat files
+           \SciTEDirectory.properties           copy it to your project root folder
+           \SciTEUser.properties                copy it in your home directory
+           \SendFile.ttl                        TERATERM macro file to send source file to FASTFORTH
+           \SendToSD.ttl                        TERATERM macro file to send source file to embedded SD_CARD 
+           \build(.bat)                         called by scite to build target.txt program 
+           \BSL_prog(.bat)                      to flash target with target.txt file with BSL_Scripter
+           \FET_prog(.bat)                      to flash target with target.txt file with MSP430Flasher
+           \CopyTo_SD_Card(.bat)                to copy in your MSP430-FORTH
+           \SendSource(.bat)                    to send file to FASTFORTH
+           \Preprocess(.bat)                    to convert generic .f file to specific .4th file
+           \CopySourceFileToTarget_SD_Card.bat  copy it in any user folder for drag'n drop use
+           \SendSourceFileToTarget.bat          copy it in any user folder for drag'n drop use
+           \PreprocessSourceFile.bat            copy it in any user folder for drag'n drop use
+           \SelectTarget.bat                    called to select target, device and deviceID
     
     \inc\                         MACRO ASsembler files.inc, files.asm, GEMA preprocessor files.pat
-        \MSP430FRxxxx.inc         device configuration for AS assembler
-        \MSP430FRxxxx.asm         device init code for AS assembler 
-        \MSP_EXP430FRxxxx.asm     target configuration for AS assembler
+        \TargetInit.asm           select target configuration file for AS assembler
+        \MSP_EXP430FRxxxx.asm     target minimalist hardware config to compile FastForth
+        \ThingsInFirst.inc        general configuration for AS assembler
+        \MSP430FRxxxx.inc         device declarations
+        \ThingsInLast.inc         general post configuration for AS assembler
         \FastForthREGtoTI.pat     converts FORTH symbolic registers names to TI Rx registers
         \tiREGtoFastForth.pat     converts TI Rx registers to FORTH symbolic registers names 
         \MSP430FRxxxx.pat         device configuration for gema preprocessor
         \MSP_EXP430FRxxxx.pat     target configuration for gema preprocessor
-        \ThingsInFirst.inc        general pre configuration for AS assembler
-        \ThingsInLast.inc         general post configuration for AS assembler
 
     \prog\        SciTEGlobal.properties, TERATERM.INI + programs.url
         
@@ -532,7 +600,7 @@ In explorer you should obtain this back your driver letter:
                  \FF_SPECS.f     shows all specificities of FAST-FORTH compiled on your target 
                  \RTC.f          set date and time, one example of MARKER use.
                  \RC5toLCD.f     multitasking example 
-                 \SD_test.f      tests for SD_CARD driver
+                 \SD_TEST.f      tests for SD_CARD driver
                  \SD_TOOLS.f     same as SD_TOOLS.asm, (but erasable)
                  \TESTASM.f      some tests for embedded assembler
                  \TESTXASM.f     some tests for embedded extended assembler
@@ -540,7 +608,7 @@ In explorer you should obtain this back your driver letter:
                  \UTILITY.f      same as UTILITY.asm, (but erasable)
     
 
-Note: all actions (flashing target, download files) can be made by using bat files directly,.
+Note: all actions (flashing target, download files) can be made by using bat files directly.
 The next is to download IDE (WINDOWS):
 
 ## First get TI's programs
@@ -559,7 +627,7 @@ install in the suggested directory, then copy MSP430Flasher.exe and MSP430.dll t
 
 * [sCiTE single file executable](https://www.scintilla.org/SciTEDownload.html) to drive:\prog\, then rename Scxxx.exe to scite.exe
 
-* [Macro AS](http://john.ccac.rwth-aachen.de:8000/ftp/as/precompiled/i386-unknown-win32/aswcurr.zip), unzip in drive:\prog\  
+* [Macro AS](http://john.ccac.rwth-aachen.de:8000/ftp/as/precompiled/i386-unknown-win32/aswcurr-142-bld158.zip), unzip in drive:\prog\  
 
 * [srecord](https://sourceforge.net/projects/srecord/files/srecord-win32/1.64/), unzip in drive:\prog\  
 
@@ -622,7 +690,7 @@ IT's done ! See  forthMSP430FRxxxx.asm to configure TeraTerm
 
 * assemble (CTRL+0). A window asks you for 4 parameters:
 
-* set target as first param, i.e. MSP_EXP430FR5969
+* set your target as first param, i.e. MSP_EXP430FR5969
 
 * then execute. the output will be \binaries\MSP_EXP430FR5969.txt
 
@@ -639,17 +707,17 @@ to same pins of the launchpad, on eZ-FET side of the programming connector.
 
 ## Connect the FAST FORTH target to a serial terminal
 
-you will need an USBtoUART cable with a PL2303TA or PL2303HXD device that allows both XON/XOFF 
+you will need an USBtoUART cable with a PL2303TA|PL2303HXD|PL1303GC device that allows both XON/XOFF 
 and hardware control flow :
 
-[PL2303HXD 3.3V](http://www.google.com/search?q=PL2303HXD+3.3V+cable)
+[PL2303GC](https://duckduckgo.com/?q=DSD+TECH+SH-U06A+PL2303GC)
 [PL2303 driver](http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41)
 
 WARNING! always verify VCC PIN = 3.3V before use to supply your target with.
 
 or with a CP2102 device and 3.3V/5V that allows XON/XOFF control flow up to 921600 Bds:
 
-[CP2102 3.3V](https://www.google.com/search?q=cp2102+3.3V+6PIN)
+[CP2102 3.3V](https://duckduckgo.com/q=cp2102+3.3V+6PIN)
 [CP2102 driver](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers)
 
 WARNING! always verify VCC PIN = 3.3V before use to supply your target with.
@@ -671,7 +739,7 @@ correctly ended with CR+LF.
 If you have MSP-EXP430FR5994, nothing to do.
 
 For the choice of a SD card socket be carefull, pin CD (Card Detect) must be present! 
-google search: "micro SD card 9 pin"
+web search: "micro SD card 9 pin"
 Look for the good wiring in /Launchpad.asm file
 
 #### Compile with SD_Card addon
@@ -688,7 +756,8 @@ See "SD_TESTS.f", a FORTH program done for example
 If you remove the SD memory card reader and then reset, all SD\_IO pins are available except SD_CD.  
 Drive letters are always ignored.  
 
-    LOAD" path\filename.4th".
+    LOAD" path\filename.4th" relative path,
+    LOAD" \path\filename.4th" absolute path.
 
 The file is interpreted by FORTH in same manner than from the serial terminal.  
 When EOF is reached, the file is automatically closed.  
@@ -701,30 +770,34 @@ LOAD" may be used as Change Directory command:
     LOAD" \"            Root becomes the current folder.
 
 
-     READ" path\filename.ext".  
+    READ" filename.ext" reads a file in current directory,
+    READ" \filename.ext" reads a file in root directory.
 
 The first sector of this file is loaded in BUFFER.
-To read next sectors, use the command READ that loads the next sector in the buffer, 
-and leaves on the stack a flag that is true when the EOF is reached. 
+To read next sectors, use the command READ which loads the next sector in the buffer
+and leaves on the stack a true flag when the EOF is reached. 
 The file is automatically closed. See tstwords.4th for basic usage.
 
-The variable BufferLen keep the count of bytes to be read (0 to 512).
+The variable BufferLen keep the count of bytes to be read (1 to 512).
 
-If you want to anticipate the end, use the CLOSE command.
+If you want to anticipate the end, remove the false flag left by the previous READ then use the CLOSE command.
 
     WRITE" path\filename.ext".
 
-If the file does not exist, create it, else open it and set the write pointer at the end of the file, 
+If the file does not exist, create it else open it, and set the write pointer at the end of the file, 
 ready to append chars.
 
+The command WRITE writes the buffer and increments the current sector.
+
 See example of use in \MSP430-FORTH\SD_TEST.f.
 
-To overwrite an existing file: DEL" file" then  WRITE" file".
+To overwrite an existing file:
 
-Use CLOSE to close the file.
+    DEL" path\filename.ext" (no error issued),
+    WRITE" path\filename.ext".
 
+Use CLOSE to close this file.
 
-    DEL" path\filename.ext". If the file is not found, do nothing, no error.
 
 
 #### Copy source file to SD_Card
@@ -741,103 +814,88 @@ correctly ended with CR+LF.
 
 First, remove the USBtoUART bridge then reconnect it. Perhaps it was in suspend state...
 
-If the system is always freezed, press <reset> button on the MSP-EXP430FR5xxx ; FORTH restarts 
-as it was after the last RST_HERE command.
+If the system is always freezed, press `RST` button on the MSP-EXP430FR5xxx ; FORTH restarts 
+as it was after the last `RST_SET` command.
 
 If the system does not restart again, press `SW1+RESET`. 
-FORTH restarts in the state it is in its object txt file.
-
-Here is the FastForth memory management, one of its major assets :
+FORTH restarts in the state of its object file.
 
-    case 1 : when you type `PWR_STATE` the program beyond PWR_HERE marker is lost.
+Here is the FastForth memory management, one of its major assets, with both hardware events and software equivalent for COLD and WIPE levels:
 
-    case 1.1 : when you type `WARM`, FORTH interpreter is restarted, the program beyond PWR_HERE is lost. 
-               The WARM display starts with "#0". 
+*  RST_RET 
     
-    case 1.2 : Power ON performs a reset and the program beyond PWR_HERE is lost.
-               the WARM display starts with the SYSRSTIV value "#2".
-    
-    case 1.3 : SVSHIFG SVSH event, same effects,
-               the WARM display starts with the SYSRSTIV decimal value "#14".
+    *  when you type `RST_RET` the program beyond the last RST_SET is lost.
 
-    
-    case 2 : when you type `RST_STATE` the program beyond RST_HERE marker is lost.
+    *  Running a `MARKER` definition will remove it and the program beyond. In addition the user can link it a routine to remove modified configuration in system: vectors, hardware, IOs... 
 
-    case 2.1 : <RESET> performs reset and the program beyond RST_HERE is lost,
-               the WARM display starts with the SYSRSTIV value "#4".
+*  WARM level :  SYS --> WARM display --> SLEEP.
+
+    *  when you type `0 SYS`, FORTH interpreter is restarted without program lost, without WARM display. 
     
-    case 2.2 : when you type `COLD` (software reset), same effects,
-               the WARM display starts with the SYSRSTIV value "#6".
+    *  when you type `SYS`, FORTH restarts, the program beyond RST_SET is lost, INIT_FORTH and INIT_HARD_APP (INIT_TERM by default) are executed, the WARM display starts by "#1". 
     
-    case 2.3 : PUC on failure, same effects,
-               The WARM display starts with the SYSRSTIV decimal value.
+    *  when you type `+n SYS` (n>0, odd), same effects, the WARM display starts by "#+n". 
+
+*  COLD level : PUC --> `SYS` --> WARM display --> SLEEP.
 
+    *  Power ON : the WARM display starts with the SYSRSTIV value "#2".
     
-    case 3 : when you type `WIPE` (software Deep Reset) 
-            * all programs donwloaded from the terminal or the SD_Card are lost,
-            * the default state of COLD_APP, INI_SOFT_APP, INI_HARD_APP and BACKGND_APP are restored,
-            * all "defered" words are initialised with their default value,
-            * same thing for interrupts vectors, 
-            * and SIGNATURES area is cleared (FFh).
-             The WARM display starts with #-1.
+    *  SVSHIFG SVSH event (dropout supply) : the WARM display starts with the SYSRSTIV value: "#14".
 
-    case 3.1 : <SW1+RESET> performs hardware deep reset, same effects. 
-               The WARM display starts with #-1.
+    *  hardware `RST` : the WARM display starts with the SYSRSTIV value "#4".
     
-    case 3.2 : after compiling new FastForth, same effects obviously!
-               The WARM display starts with #-3.
+    *  PUC on failure : the WARM display starts with the SYSRSTIV value: #n.
 
+    *  `+n SYS` (n>0 and even) is the software RESET : the WARM display starts with the SYSRSTIV value "#+n" (even).
+    
 
-    case 4 : FastForth keeps the memory of all resident definitions. During source file download the
-             conditionnal compilation allows to compile only non-resident definitions.
+*  WIPE level : PUC --> `-n SYS` --> WARM display --> SLEEP
 
-    case 4.1 : Running a "MARKER" definition will delete anything compiled beyond that.
-               By starting a source file with this "MARKER" tag, the memory is first cleared of
-               all the contents of that source file each time it is reloaded.
+    *  `-n SYS` (n<0) performs the software Deep Reset:
+        *  INIT_FORTH and INIT_HARD_APP (INIT_TERM by default) are executed,
+        *  all programs donwloaded from the terminal or from the SD_Card are lost,
+        *  the default state of COLD_APP, INI_SOFT_APP, INI_HARD_APP and BACKGND_APP is restored,
+        *  all "defered" words are initialised with their default value,
+        *  all interrupts vectors also, 
+        *  SIGNATURES area is FFh full filled.
+        *  WARM display = #-n.
 
+    *  hardware `SW1+RESET` does same effects, WARM display = #-1.
+    
+    *  recompiling FastForth, too, WARM display = #-3.
 
+* ERROR : ABORT" --> ABORT" display --> SLEEP.  
+    
+    *  when an error occurs, FASTFORTH discards the end of current downloading if any, does same as `SYS` then displays the error message. In this way, any error is followed by the complete erasure of the bad defined word causing this error, and also by discarding the end of downloading of the source file including it. 
 
-As all other words FORTH, PWR_STATE PWR_HERE RST_STATE RST_HERE and MARKER defn. may be also used in definitions.    
+    *  It is strongly recommended to end any source file with `RST_SET` to protect it program from any subsequent error.
 
-If you have previously set 'NOECHO', there is no WARM display.
 
-With I2C_FastForth, WARM display is preceded by the I2C slave address, example; `@18`. 
 
-If an error occurs from the interpreter, FORTH is restarted, the error is always displayed and the program beyond PWR_HERE is lost. 
+As all other words FORTH, RST_SET RST_RET and MARKER definitions may be freely used in compiling mode.    
 
-In this way, any error is followed by the complete erasure of a bad definined word causing this error, 
-or by that of the downloaded source file including it. 
+If you have previously set 'NOECHO', there is no WARM, COLD, WIPE display.
 
-It is therefore recommended to end a source file with at least 'PWR_HERE' to protect it
-from any subsequent error.
+With I2C_FastForth version, WARM display is preceded by the decimal I2C slave address, example: `@18`. 
 
 
 ## VOCABULARY ADD-ON
 
-These words are not ANS94 compliant, they are those of F83 standard.
-
-For example, after loading SD_TOOLS add-on, you can type: ALSO ASSEMBLER WORDS PREVIOUS WORDS
+These words are not ANS94 compliant.
 
-    With `ALSO ASSEMBLER`, the vocabulary ASSEMBLER is added to the search CONTEXT thus the ASSEMBLER words
-    become visible,
-    
-    WORDS display the words of ASSEMBLER then those of FORTH,
-    
-    PREVIOUS remove the vocabulary ASSEMBLER form the CONTEXT, and the ASSEMBLER words become hidden,
-    
-    so the last WORDS display only FORTH words.
-
-In the forthMSP430FR_ASM.asm, see the FORTH word CODE that add ASSEMBLER to the search CONTEXT and the ASSEMBLER word ENDCODE
- that remove ASSEMBLER from search CONTEXT. Thus, the assembler words can be used only between CODE and ENDCODE.
+The CONTEXT stack is 8 word_set sized.
 
-The CONTEXT can grow up to 6 vocabularies by using the word ALSO.
+after typing: WORDSET TRUC   \ a new word-set called TRUC is created
 
-If you want add words to the assembler you must type: ALSO ASSEMBLER DEFINITIONS,
-The vocabulary ASSEMBLER is added to the search CONTEXT as previously but also becomes the CURRENT vocabulary in which the new words will be stored.
+    TRUC            adds the word-set TRUC first in the CONTEXT stack, the interpreter search existing definitions first in TRUC
+    PREVIOUS        removes TRUC from CONTEXT
 
-Finally, `FORTH ONLY DEFINITIONS` limits the search CONTEXT to FORTH and the CURRENT vocabulary is FORTH. 
+    DEFINITIONS     adds news definitions in the first word-set in the CONTEXT stack, i.e. TRUC,
+    PREVIOUS        removes TRUC from CONTEXT but new definitions are still added in TRUC
+    DEFINITIONS     new definitions are added into the previous first word-set in the CONTEXT stack,
+                    after `-1 SYS`: the FORTH word-set.
 
-**WARNING !** it is discouraged to execute any definition included in the assembler word-set.
 
 ## EMBEDDED ASSEMBLER
 
@@ -848,16 +906,15 @@ See files \\inc\\Target.pat.
 
 FAST FORTH knows three kinds of definitions :
 
-* high level FORTH definitions : <name> ... ;
+* high level FORTH definitions `: <name> ... ;`
 
-* low level definitions CODE <name> ... ENDCODE
+* low level definitions `CODE <name> ... ENDCODE`
 
-* low level hidden definitions HDNCODE <name> ... ENDCODE
-    they are hidden because not FORTH executable.
+* low level hidden definitions `HDNCODE <name> ... ENDCODE` which are deliberately hidden because they are not executable by FORTH.
     
 Examples:
     
-    : NOOP              \ FORTH definiton "NOOP", do nothing
+    : NOOP              \ FORTH definition "NOOP", does nothing
         DUP
         DROP
     ;
@@ -876,18 +933,18 @@ Examples:
     THEN
                         \ else return to background task SLEEP
     MOV @RSP+,SR        \ restore SR flags
-    BIC #%1111_1000,SR  \ but force CPU Active Mode
+    BIC #%0111_1000,SR  \ but force CPU Active Mode, disable all interrupts
     RET                 \ (instead of RETI)
     ENDCODE
     
     
-A the end of low level CODE definition, the instruction MOV @IP+,PC jumps to the next definition. 
+At the end of low level CODE definition, the instruction MOV @IP+,PC jumps to the next definition. 
 This faster (4 cycles) and shorter (one word) instruction replaces the famous pair of assembly 
 instructions : CALL #LABEL ... RET (4+4 cycles, 2+1 words). The register IP is the Interpretative Pointer. 
 
-High level FORTH definitions starts with a boot code "DOCOL" that save the IP pointer, reload it with the first address
-of a list of execution addresses, then performs a postincrement branch to this first address
-The list ends with the address of another piece of code: EXIT (6 cycles) that restores IP before the instruction MOV @IP+,PC.
+High level FORTH definitions starts with a boot code "DOCOL" which saves the IP pointer and loads it with the first address
+of a list of execution addresses, then performs a postincrement branch to the first one
+The list ends with the address of another piece of code: EXIT (6 cycles) which restores IP before the instruction MOV @IP+,PC.
 
 here, the compilation of low level ADD definition :
 
@@ -898,7 +955,9 @@ here, the compilation of low level ADD definition :
 and the one of the high level word NOOP :
 
                     header          \ compiled by the word :
-    execution addr  CALL rDOCOL     \ boot code "DOCOL" compiled by the word :
+    execution addr
+    DOCOL           PUSH IP         \ boot code "DOCOL"...
+                    CALL rDOCOL     \ ...compiled by the word :
                     addr of DUP     \ execution addr of DUP
                     addr of DROP    \ execution addr of DROP
                     addr of EXIT    \ execution addr of EXIT compiled by the word ;
@@ -944,7 +1003,8 @@ A little more complex, the case of mixing FORTH and assembly with use of the wor
 If we see the code "MIX\_FORTH\_ASM" after compilation :
 
             header              \ compiled by :
-    exec@   CALL rDOCOL         \ boot code "DOCOL" (which saves IP onto stack) compiled by :
+    exec@   PUSH IP             \ 
+            CALL rDOCOL
             addr of SWAP
             addr of DUP
             next addr           \ addr of asm1, compiled by HI2LO
@@ -970,12 +1030,13 @@ If we see this code "MIX\_ASM\_FORTH" after compilation :
             header              \ compiled by CODE
     exec@   asm1
             asm2
+    DOCOL   PUSH IP
             CALL rDOCOL         \ "DOCOL" compiled by COLON
             addr of word1
             addr of word2
             addr of EXIT        \ EXIT restores IP from stack then executes MOV @IP+,PC
 
-A new step
+A new step:
 
         : MIX_FORTH_ASM_FORTH   \ definition of a FORTH word starts with :
             word1
@@ -992,8 +1053,9 @@ A new step
 
 the compiled result    
 
-            header              \ compiled by :
-    exec@   CALL rDOCOL         \ "DOCOL" boot code compiled by :
+            header              \ )
+    exec@   PUSH IP             \ > compiled by :
+            CALL rDOCOL         \ )
             addr of word1
             addr of word2
             ...
@@ -1001,32 +1063,20 @@ the compiled result
             MOV #0,IP           \ IP is free for use
             asm1                \ assembly instruction
             ...
-            CALL #EXIT          \ compiled by LO2HI
+            CALL rDOCOL         \ compiled by LO2HI
             addr of word3
             addr of word4
             addr of EXIT        \ compiled by ;
 
-EXIT is used twice !
-
-the first time, by LO2HI :
-
-    EXIT    MOV @RSP+,IP    \ 2 pop into IP the PC pushed on return stack by CALL #EXIT
-            MOV @IP+,PC     \ 4 execute the routine at addr3 
-
-then at the end of FORTH word (addr5):
-
-    EXIT    MOV @RSP+,IP    \ 2 pop old IP from return stack
-            MOV @IP+,PC     \ 4 execute the routine pointed by the old IP
-
 Still another step : 
 
         CODE MIX_ASM_FORTH_ASM  \ CODE starts a low level word
             asm1
             asm2
-        COLON                   \ switch to start FORTH word (COLON saves IP)
+        COLON                   \ start high level definition
             word
             ... 
-        HI2LO                   \ FORTH to assembler switch
+        HI2LO                   \ switch high to low level
             asm3
             asm4
             MOV @RSP+,IP        \ restore IP
@@ -1039,7 +1089,7 @@ In fact, an exclusive of FAST FORTH, the start of a word FORTH can be placed any
             asm1
             asm2
             ...
-        COLON                   \ starts high level
+        COLON                   \ starts high level definition
             word1
             word2
             ...
@@ -1058,13 +1108,14 @@ with the compiled result :
             header              \ compiled by CODE
     exec@   asm
             asm
-            CALL rDOCOL         \ "DOCOL" compiled by COLON
+    DOCOL   PUSH IP             \ compiled... 
+            CALL rDOCOL         \ ...by COLON
             addr
             addr
             next address        \ compiled by HI2LO
             asm
             asm
-            CALL #EXIT          \ compiled by LO2HI
+            CALL rDOCOL         \ compiled by LO2HI
             addr
             addr
             EXIT addr           \ that restores IP from return stack and then executes MOV @IP+,PC
@@ -1168,7 +1219,7 @@ another nest :
 you can MIX conditional branches with a mix of FORTH/assembly: see TEST5 in the demo file \MSP430-FORTH\TESTASM.4TH
 
 
-FAST FORTH have one pass assembler, not able to make forward jump.
+FAST FORTH have one pass assembler, not able to resolve forward jumps.
 
 I have added possibility of several "non canonical" jumps, up to 3 backward and up to 3 forward jumps to label :
 
@@ -1203,7 +1254,7 @@ I have added possibility of several "non canonical" jumps, up to 3 backward and
     ENDCODE
 
 Forward labels FWx are for single use, backward labels BWx can solve several jumps,
-until new definition.
+until their new definition.
 
 ### SYMBOLIC ASSEMBLER ? YES !
 
@@ -1216,6 +1267,38 @@ Gema translates FORTH registers in ASM registers (R0 to R15) via \inc\ThingsInFi
 
 With the three bat files in \MSP430_FORTH folder all is done automatically.
 
+### WHAT ABOUT VARIABLES, CONSTANTS...
+
+In addition to the FORTH VARIABLE and CONSTANT definitions, the macroassembler allows to use symbolic variables and constants
+which are compiled / executed as number by the FORTH interpreter, also by the assembler, but only in the scope of a source use.f file with their declaration done in a use.pat file.
+
+On the other hand, the CONSTANT, VARIABLE and MARKER definitions are correctly handled by the assembler which provides for each case the expected argument: the constant, the address of the variable and the address of the first user variable with MARKER.
+
+Example:
+
+    VARIABLE BASE 
+    $10 BASE !
+    2 CONSTANT TWO
+    MARKER {MYAPP}
+    'ESC' , 'XON' C, 'XOFF' C,
+    
+    HDNCODE EXAMPLE         \ hidden definition because linked in the hidden word-set
+    CMP #RET_ADR,&{MYAPP}-2 \ compare content of {MYAPP}-2 address with RET_ADR
+    MOV &BASE,X             \ X = 16
+    MOV #BASE,X             \ X = address of base
+    MOV @X,X                \ X = 16
+    MOV #TWO,Y              \ Y = 2
+    MOV &{MYAPP},W          \ W = $1B
+    MOV.B &{MYAPP}+2,W      \ W = 17
+    MOV.B &{MYAPP}+3,W      \ W = 19
+    MOV @IP+PC
+    ENDCODE
+
+    CODE RUN_EXAMPLE
+    MOV #EXAMPLE,PC         \ = BR EXAMPLE      runs EXAMPLE, without return
+    ENDCODE
+
+
 # COMPILE FAST FORTH FOR YOUR TARGET
 
 1- in forthMSP430FR.asm "TARGET configuration"  create a line for your target, example:
@@ -1228,7 +1311,7 @@ Notice that you must define here only the necessary for FAST-FORTH compilation.
 3- in \inc\ThingsInFirst.inc add one "device.inc" item:
 
         .IFDEF MY_MSP430FR5738_1
-    UCA0_UART   ; defines uart used by FORTH input terminal 
+    UCA0_UART   ; defines uart used for TERMINAL 
     LF_XTAL     ; defines if your module have a 32768 Hz xtal, to enable it.
     UCB0_SD     ; defines UC used for SD Card driver if any
         .include "MSP430FR5738.inc"  ; include device declarations
@@ -1252,14 +1335,14 @@ that is the reset state of FastForth...
 
 # ANNEXES
 
-Here you have a good view of MSP430 assembly:
+Here you have a good overview of MSP430 assembly:
 [MSP430 ISA](http://www.ece.utep.edu/courses/web3376/Notes_files/ee3376-isa.pdf)
 
 FastForth embedded assembler doesn't recognize the (useless) TI's symbolic addressing mode: ADD.B EDE,TONI.
 
-REGISTERS correspondence (you can use freely ASM or TI or FASTFORTH registers's names).
+REGISTERS correspondence (you can freely use ASM or TI or FASTFORTH registers's names).
 
-        ASSEMBLER   TI      FASTFORTH   comment 
+        ASM         TI      FASTFORTH   comment 
     
         R0          PC      PC          Program Counter
         R1          SP      RSP         Return Stack Pointer
@@ -1281,13 +1364,32 @@ REGISTERS correspondence (you can use freely ASM or TI or FASTFORTH registers's
 **REGISTERS use**
 
 The FASTFORTH registers rDOCOL, rDOVAR, rDOCON and rDODOES must be preserved. 
-If you use them you may either PUSHM #4,M before and POPM #4,M after,
-or use then restore FastForth default values:
-xdocol, xdovar, xdocon, xdodoes. See device.pat.
+If you use them you may either `PUSHM #4,M` before and `POPM #4,M after`,
+or use them directly then restore FastForth default values:
+
+`MOV #INIT_DOXXX,X`  
+`MOV @X+,rDOCOL`  
+`MOV @X+,rDODOES`  
+`MOV @X+,rDOCON`  
+`MOV @X,rDOVAR`
+
+(Search `INIT_DOXXX` in your \inc\device.pat)
+
+If you want to restore only rDODOES, rDOCON and rDOVAR:
+
+`MOV #INIT_DOXXX+4,X`  
+`MOV @X+,rDODOES`  
+`MOV @X+,rDOCON`  
+`MOV @X,rDOVAR`
+
+If you want to restore only rDODOES and rDOCON:
+
+`MOV #XDODOES,rDODOES`  
+`MOV #XDOCON,rDOCON`  
 
 When you use these registers you can't call any FORTH words created by them at the same time! 
 
-don't use R3 and use R2 only with BIC, BIT, BIS instructions in register mode.
+don't use R3 and use R2 (SR) only with BIC, BIT, BIS instructions in register mode.
 
 The bits 0-11 of SR register are saved by interrupts and restored by the instruction RETI.
 you can use freely UF9 UF10 and UF11 as SR bits 9-11. 
@@ -1315,32 +1417,32 @@ don't never pop a byte with instruction MOV.B @PSP+, because it generates a stac
 
 register RSP is the Return Stack Pointer (SP).
 
-to push one cell on the RSP stack : `PUSH <what you want>`
+to push one cell on the RSP stack: `PUSH <what you want>`
 
-to pop one cell from the RSP stack : `MOV @RSP+,<where you want>`
+to pop one cell from the RSP stack: `MOV @RSP+,<where you want>`
 
-don't never pop a byte with instruction `MOV.B @RSP+, ...`
+don't never push or pop a byte on RSP stack !
 
 
 to push multiple registers on the RSP stack :
 
-    PUSHM #n,Rx                 \  with 0 <= x-(n-1) < 16
+`PUSHM #n,Rx`,  with 0 <= x-(n-1) < 16
 
 to pop multiple registers from the RSP stack :
 
-    POPM #n,Rx                  \  with 0 <= x-(n-1) < 16
+`POPM #n,Rx`,  with 0 <= x-(n-1) < 16
 
     PUSHM order : PSP,TOS, IP, S , T , W , X , Y ,rDOVAR,rDOCON,rDODOES,rDOCOL, 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
+example : `PUSHM #6,IP` pushes IP,S,T,W,X,Y registers to return stack
 
     POPM  order :  PC,RSP, SR, R3,rDOCOL,rDODOES,rDOCON,rDOVAR, 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
+example : `POPM #6,IP` pulls Y,X,W,T,S,IP registers from return stack
 
-Error occurs if `#n` is out of bounds.
+Error occurs if #n is out of bounds.
 
 **conditionnal jumps use**
 
@@ -1353,187 +1455,145 @@ Error occurs if `#n` is out of bounds.
     0>=   with IF UNTIL WHILE
     0<    with ?GOTO 
 
-
 # FAST FORTH resumed
 
-
-    RETURN-STACK-CELLS  = 48            maximum size of the return stack, in cells  
-    STACK-CELLS         = 48            maximum size of the data stack, in cells  
-    /COUNTED-STRING     = 255           maximum size of a counted string, in characters  
+    RETURN-STACK-CELLS  = 48            max size of the return stack, in cells  
+    STACK-CELLS         = 48            max size of the data stack, in cells  
+    /COUNTED-STRING     = 255           max size of a counted string, in characters  
     /HOLD                 = 34            size of the pictured numeric output string buffer, in characters  
     /PAD                   = 84            size of the scratch area pointed to by PAD, in characters  
-    ADDRESS-UNIT-BITS   = 16            size of one address unit, in bits  
-    FLOORED             = true          true if floored division is the default  
-    MAX-CHAR           = 255           maximum value of any character in the implementation-defined character set  
+    ADDRESS-UNIT-BITS   = 16            size of one address unit, in bits
+    FLOORED             = true          true if floored division is the default
+    MAX-CHAR           = 255           max value of any character in the implementation-defined character set
     MAX-N               = 32767         largest usable signed integer  
     MAX-U               = 65535         largest usable unsigned integer  
     MAX-D                 = 2147483647    largest usable signed double number  
     MAX-UD              = 4294967295    largest usable unsigned double number  
-    DeFiNiTiOnS aRe CaSe-InSeNsItIvE    Strings are case-sensitive
-
+    DeFiNiTiOnS aRe CaSe-InSeNsItIvE    they are compiled in their CAPS_ON form.
 
 ## FORTH word-set
 
-It is reduced to a minimum, but nevertheless extensible up to ... $FF80 !
-
-    RST_HERE        PWR_HERE        RST_STATE       PWR_STATE       CREATE          ;               :               IMMEDIATE       
-    POSTPONE        ]               [               \               '               [']             ABORT"          INTERPRET       
-    COUNT           LITERAL         ALLOT           ,               >NUMBER         FIND            WORD            ."              
-    S"              .               U.              SIGN            HOLD            #>              #S              #               
-    <#              !               @               CR              TYPE            NOECHO          ECHO            EMIT            
-    KEY             ACCEPT          COLD            WARM            WIPE            
-
-[CREATE     ](https://forth-standard.org/standard/core/CREATE)
-[;          ](https://forth-standard.org/standard/core/Semi)
-[:          ](https://forth-standard.org/standard/core/Colon)
-[IMMEDIATE  ](https://forth-standard.org/standard/core/IMMEDIATE)
-[POSTPONE   ](https://forth-standard.org/standard/core/POSTPONE)
-[\]         ](https://forth-standard.org/standard/core/right-bracket)
-[\[         ](https://forth-standard.org/standard/core/Bracket)
-[\\         ](https://forth-standard.org/standard/block/bs)
-[\[\'\]     ](https://forth-standard.org/standard/core/BracketTick)
-[\'         ](https://forth-standard.org/standard/core/Tick)
-[ABORT"     ](https://forth-standard.org/standard/core/ABORTq)
-[COUNT      ](https://forth-standard.org/standard/core/COUNT)
-[LITERAL    ](https://forth-standard.org/standard/core/LITERAL)
-[ALLOT      ](https://forth-standard.org/standard/core/ALLOT)
-[,          ](https://forth-standard.org/standard/core/Comma)
-[>NUMBER    ](https://forth-standard.org/standard/core/toNUMBER)
-[FIND       ](https://forth-standard.org/standard/core/FIND)
-[WORD       ](https://forth-standard.org/standard/core/WORD)
-[."         ](https://forth-standard.org/standard/core/Dotq)
-[S"         ](https://forth-standard.org/standard/core/Sq)
-[.          ](https://forth-standard.org/standard/core/d)
-[U.         ](https://forth-standard.org/standard/core/Ud)
-[SIGN       ](https://forth-standard.org/standard/core/SIGN)
-[HOLD       ](https://forth-standard.org/standard/core/HOLD)
-[#>         ](https://forth-standard.org/standard/core/num-end)
-[#S         ](https://forth-standard.org/standard/core/numS)
-[#          ](https://forth-standard.org/standard/core/num)
-[<#         ](https://forth-standard.org/standard/core/num-start)
-[!          ](https://forth-standard.org/standard/core/Store)
-[@          ](https://forth-standard.org/standard/core/Fetch)
-[CR         ](https://forth-standard.org/standard/core/CR)
-[TYPE       ](https://forth-standard.org/standard/core/TYPE)
-[EMIT       ](https://forth-standard.org/standard/core/EMIT)
-[KEY        ](https://forth-standard.org/standard/core/KEY)
-[ACCEPT     ](https://forth-standard.org/standard/core/ACCEPT)  
-
-    COLD            PFA of COLD content = STOP_APP subroutine address, by default --> STOP_TERM  
-    WARM            PFA of WARM content = INI_APP subroutine address, by default --> ENABLE_IO  
-    WIPE            resets the program memory to its original state (Deep_RST have same effect).
-    RST_HERE        defines the bound of the program memory protected against COLD or hardware reset.  
-    PWR_HERE        defines the bound of the program memory protected against ON/OFF and also against any error occurring.  
-    RST_STATE       removes all words defined after RST_HERE (COLD or <reset> have same effet)  
-    PWR_STATE       removes all words defined after PWR_HERE (an error has same effect)  
-    INTERPRET       text interpreter, common part of EVALUATE and QUIT.  
-    NOECHO          stop display on output   
-    ECHO            start display on output  
-
-### words added by the option MSP430ASSEMBLER:
-
-    HDNCODE         CODE            HI2LO
-
-    CODE <word>     creates a word written in assembler.
-                    this defined <word> must be ended with ENDCODE unless COLON or LO2HI use.  
-    HDNCODE <word>  creates a word written in assembler but not interpretable by FORTH (because ended by RET instr.).  
-                    Visible only from assembler  
+Reduced to 53 definitions, but with everything necessary to be expandable up to $FF80.
+
+RST_SET,
+RST_RET,
+[MARKER     ](https://forth-standard.org/standard/core/MARKER),
+HI2LO,
+CODENNM,
+HDNCODE,
+CODE,
+[IS         ](https://forth-standard.org/standard/core/IS),
+[\:NONAME   ](https://forth-standard.org/standard/core/ColonNONAME),
+[DOES>      ](https://forth-standard.org/standard/core/DOES),
+[CREATE     ](https://forth-standard.org/standard/core/CREATE),
+[IMMEDIATE  ](https://forth-standard.org/standard/core/IMMEDIATE),
+[;          ](https://forth-standard.org/standard/core/Semi),
+[:          ](https://forth-standard.org/standard/core/Colon),
+[POSTPONE   ](https://forth-standard.org/standard/core/POSTPONE),
+[\\         ](https://forth-standard.org/standard/core/bs),
+[\]         ](https://forth-standard.org/standard/core/right-bracket),
+[\[         ](https://forth-standard.org/standard/core/Bracket),
+[\[\'\]     ](https://forth-standard.org/standard/core/BracketTick),
+[\'         ](https://forth-standard.org/standard/core/Tick),
+[ABORT"     ](https://forth-standard.org/standard/core/ABORTq),
+[ALLOT      ](https://forth-standard.org/standard/core/ALLOT),
+[COUNT      ](https://forth-standard.org/standard/core/COUNT),
+[LITERAL    ](https://forth-standard.org/standard/core/LITERAL),
+[,          ](https://forth-standard.org/standard/core/Comma),
+[>NUMBER    ](https://forth-standard.org/standard/core/toNUMBER),
+[FIND       ](https://forth-standard.org/standard/core/FIND),
+[WORD       ](https://forth-standard.org/standard/core/WORD),
+[."         ](https://forth-standard.org/standard/core/Dotq),
+[S"         ](https://forth-standard.org/standard/core/Sq),
+[.          ](https://forth-standard.org/standard/core/d),
+[U.         ](https://forth-standard.org/standard/core/Ud),
+[SIGN       ](https://forth-standard.org/standard/core/SIGN),
+[HOLD       ](https://forth-standard.org/standard/core/HOLD),
+[#>         ](https://forth-standard.org/standard/core/num-end),
+[#S         ](https://forth-standard.org/standard/core/numS),
+[#          ](https://forth-standard.org/standard/core/num),
+[<#         ](https://forth-standard.org/standard/core/num-start),
+[\[UNDEFINED\]  ](https://forth-standard.org/standard/tools/BracketUNDEFINED),
+[\[DEFINED\]    ](https://forth-standard.org/standard/tools/BracketDEFINED),
+[\[IF\]         ](https://forth-standard.org/standard/tools/BracketIF),
+[\[THEN\]       ](https://forth-standard.org/standard/tools/BracketTHEN)
+[\[ELSE\]       ](https://forth-standard.org/standard/tools/BracketELSE),
+[!          ](https://forth-standard.org/standard/core/Store),
+[@          ](https://forth-standard.org/standard/core/Fetch),
+[TYPE       ](https://forth-standard.org/standard/core/TYPE),
+NOECHO,
+ECHO,
+[EMIT       ](https://forth-standard.org/standard/core/EMIT),
+[KEY        ](https://forth-standard.org/standard/core/KEY),
+[ACCEPT     ](https://forth-standard.org/standard/core/ACCEPT),
+SYS.
+
+Words ACCEPT KEY EMIT are DEFERred definitions. ACCEPT doesn't use KEY.
+
+    RST_SET         defines the bound of the program memory protected against any PUC.  
+    RST_RET         removes all words defined after RST_SET  
     HI2LO           used to switch compilation from high level (FORTH) to low level (assembler).
-
-### Other words are useable in any source_files.f, see \inc\device.pat file :
-
-    SLEEP               CODE_WITHOUT_RETURN: CPU shutdown  
+    CODENNM         the assembler counterpart of :NONAME.
+    CODE <name>     creates a definition written in assembler.
+                    this defined <name> must be ended with ENDCODE unless COLON or LO2HI use. 
+    HDNCODE <name>  creates a word same as CODE but in the hidden word-set to be visible only in the assembly mode.
+    NOECHO          disables display on the TERMINAL  
+    ECHO            enables display on the TERMINAL
+    SYS             0 SYS | SYS   restarts the interpreter,
+                    +n (odd) SYS  initializes the hardware and restarts the FORTH engine,
+                    +n (even) SYS does software RESET, initializes the hardware and restarts the FORTH engine, 
+                    -n SYS        same as +n (even) SYS, plus resets the program memory to its original state.
+
+### Other words/addresses which are usable in any generic source_files.f
+
+**All constants, variables and definitions included in \inc\device.pat and \inc\target.pat files are usable by
+the assembler and also by the FORTH interpreter (except the definitions).**
+
+    see definitions in forthMSP430FR.asm:
+    SLEEP               ASM CODE_WITHOUT_RETURN: CPU shutdown  
     LIT                 CODE compiled by LITERAL  
     XSQUOTE             CODE compiled by S" and S_  
     HEREXEC             CODE HERE and BEGIN execute address  
     QFBRAN              CODE compiled by IF UNTIL  
     BRAN                CODE compiled by ELSE REPEAT AGAIN  
     NEXT_ADR            CODE NEXT instruction (MOV @IP+,PC)  
-    XDO                 CODE compiled by DO  
-    XPLOOP              CODE compiled by +LOOP  
-    XLOOP               CODE compiled by LOOP  
     MUSMOD              ASM 32/16 unsigned division, used by ?NUMBER, UM/MOD  
     MDIV1DIV2           ASM input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/  
     MDIV1               ASM input for 48/16 unsigned division, see DOUBLE M*/  
-    RET_ADR             ASM content of INI_FORTH_PFA and MARKER+8 definitions,  
+    RET_ADR             ASM RET address,  
     SETIB               CODE Set Input Buffer with org & len values, reset >IN pointer  
     REFILL              CODE accept one line from input and leave org len of input buffer  
-    CIB_ADR             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG  
+    CIB_ORG             Current Input Buffer address, default value: TIB_ORG; may be redirected to SDIB_ORG  
     XDODOES             to restore rDODOES: `MOV #XDODOES,rDODOES`  
     XDOCON              to restore rDOCON: `MOV #XDOCON,rDOCON`  
     XDOVAR              to restore rDOVAR: `MOV #XDOVAR,rDOVAR`  
-    !                   to restore rDOCOL: `MOV &WIPE_DOCOL,rDOCOL`  
-    INI_FORTH           CODE_WITHOUT_RETURN common part of RST and QABORT, starts FORTH engine  
-    QABORT              CODE_WITHOUT_RETURN run-time part of ABORT"  
-    ABORT_TERM          CODE_WITHOUT_RETURN called by QABORT, also by QREVEAL and INTERPRET     
-    UART_COLD_TERM      ASM, content of COLD_PFA by default  
-    UART_INIT_TERM      ASM, content of WARM_PFA by default  
-    UART_RXON           ASM, content of SLEEP_PFA by default  
-    UART_RXOFF          ASM, called by ACCEPT before Receiving char LF.  
-    I2C_COLD_TERM       ASM, content of COLD_PFA by default  
-    I2C_INIT_TERM       ASM, content of WARM_PFA by default  
-    I2C_RXON            ASM, content of SLEEP_PFA by default  
-    I2C_CTRL_CH         ASM, used as is: `MOV.B #CTRL_CHAR,Y`  
-    !                                    `CALL #I2C_CTRL_CH`
+                        to restore rDOCOL: `MOV &INIT_DOCOL,rDOCOL`  
+    INIT_FORTH          CODE_WITHOUT_RETURN, common part of SYS and QABORT, starts FORTH engine  
+    QABORT              CODE_WITHOUT_RETURN, run-time part of ABORT"  
     ABORT               ABORT address
     QUIT                QUIT address
 
+    see definitions in forthMSP430FR_TERM_UART.asm:
+    ABORT_TERM          CODE_WITHOUT_RETURN, called by QABORT, QREVEAL and INTERPRET     
+    UART_WARM
+    UART_INIT_TERM      ASM CODE, content of UART_WARM+2 by default
+    UART_COLD_TERM      ASM CODE, content of UART_COLD+2 by default 
+    UART_INIT_SOFT      ASM CODE, content of INIT_FORTH+2 by default = RET address
+    UART_RXON           ASM CODE, content of SLEEP+2 by default
+    UART_RXOFF          ASM CODE, called by ACCEPT
 
-### Other variables useable in source_files.f, see \inc\device.pat file :
-
-    FREQ_KHZ        FREQUENCY (in kHz)
-    TERMBRW_RST     TERMBRW_RST
-    TERMMCTLW_RST   TERMMCTLW_RST
-    I2CSLAVEADR     I2C_SLAVE address
-    I2CSLAVEADR1       
-    LPM_MODE        LPM_MODE value, LPM0+GIE is the default value
-    RSTIV_MEM       SYSRSTIV memory, set to -1 to do Deep RESET
-    RST_DP          RST value for DP
-    RST_VOC         RST value for VOClink
-    VERSION 
-    THREADS 
-    KERNEL_ADDON    
-
-    WIPE_INI                MOV #WIPE_INI,X
-    WIPE_COLD       WIPE value for PFA_COLD
-    WIPE_INI_FORTH  WIPE value for PFA_INI_FORTH
-    WIPE_SLEEP      WIPE value for PFA_SLEEP
-    WIPE_WARM       WIPE value for PFA_WARM
-    WIPE_TERM_INT   WIPE value for TERMINAL vector
-    WIPE_DP         WIPE value for RST_DP   
-    WIPE_VOC        WIPE value for RST_VOC
-
-    INI_FORTH_INI   MOV #INI_FORTH_INI,X    \ >BODY instruction of default INI_SOFT_APP
-    INIT_ACCEPT     FORTH value for PFAACCEPT
-    INIT_CR         FORTH value for PFACR
-    INIT_EMIT       FORTH value for PFAEMIT
-    INIT_KEY        FORTH value for PFAKEY
-    INIT_CIB        FORTH value for CIB_ADR
-    HALF_FORTH_INI  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-    !                   ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-    !                   MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-    !                   MOV @RSP+,PC            \ then RET
-    INIT_DOCOL      FORTH value for rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-    INIT_DODOES     FORTH value for rDODOES  (R5)
-    INIT_DOCON      FORTH value for rDOCON   (R6)
-    INIT_DOVAR      FORTH value for rDOVAR   (R7)
-    INIT_CAPS       FORTH value for CAPS
-    INIT_BASE       FORTH value for BASE
-    
-
-
-## MSP430ASSEMBLER word-set
-
-    ?GOTO           GOTO            FW3             FW2             FW1             BW3             BW2             
-    BW1             REPEAT          WHILE           AGAIN           UNTIL           ELSE            THEN            
-    IF              0=              0<>             U>=             U<              0<              0>=             
-    S<              S>=             RRUM            RLAM            RRAM            RRCM            POPM            
-    PUSHM           CALL            PUSH.B          PUSH            SXT             RRA.B           RRA             
-    SWPB            RRC.B           RRC             AND.B           AND             XOR.B           XOR             
-    BIS.B           BIS             BIC.B           BIC             BIT.B           BIT             DADD.B          
-    DADD            CMP.B           CMP             SUB.B           SUB             SUBC.B          SUBC            
-    ADDC.B          ADDC            ADD.B           ADD             MOV.B           MOV             RETI            
-    LO2HI           COLON           ENDASM          ENDCODE
+    see definitions in forthMSP430FR_TERM_I2C.asm:
+    ABORT_TERM          CODE_WITHOUT_RETURN, called by QABORT, QREVEAL and INTERPRET     
+    I2C_WARM
+    I2C_INIT_TERM       ASM CODE, content of I2C_WARM+2 by default
+    I2C_COLD_TERM       ASM CODE, content of I2C_COLD+2 by default = RET address
+    I2C_INIT_SOFT       ASM CODE, content of INIT_FORTH+2 by default = RET address
+    I2C_RXON            ASM CODE, content of SLEEP+2 by default
+    I2C_CTRL_CH         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+                                              CALL #I2C_CTRL_CH
+
+
+## MSP430ASSEMBLER word-set (in the hidden word-set)
 
 [ADD, ADD.B     ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=135),
 [ADDC, ADDC.B   ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=136),
@@ -1548,18 +1608,44 @@ It is reduced to a minimum, but nevertheless extensible up to ... $FF80 !
 [PUSH, PUSH.B   ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=168),
 [RETI           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=170),
 [RRA, RRA.B     ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=173),
-[RRC, RRC.B     ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=174)
-[SUB, SUB.B     ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=179)
-[SUBC, SUBC.B   ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=180)
-[SWPB           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=181)
-[SXT            ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=182)
-[XOR, XOR.B     ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=184)
-[RRUM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=218)
-[RLAM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=208)
-[RRAM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=211)
-[RRCM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=214)
-[POPM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204)
-[PUSHM          ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205)
+[RRC, RRC.B     ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=174),
+[SUB, SUB.B     ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=179),
+[SUBC, SUBC.B   ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=180),
+[SWPB           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=181),
+[SXT            ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=182),
+[XOR, XOR.B     ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=184),
+[RRUM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=218),
+[RLAM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=208),
+[RRAM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=211),
+[RRCM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=214),
+[POPM           ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=204),
+[PUSHM          ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=205),
+?GOTO,
+GOTO, 
+BW3, 
+BW2,
+BW1,
+FW3,
+FW2,
+FW1,
+REPEAT,
+WHILE,
+AGAIN,
+UNTIL,
+ELSE,
+THEN,
+IF,
+0=,
+0<>,
+U>=,
+U<,
+0<,
+0>=,
+S<,
+S>=,
+LO2HI,
+COLON,
+ENDCODE.
 
     ?GOTO           used after a conditionnal (0=,0<>,U>=,U<,0<,S<,S>=) to branch to a label FWx or BWx  
     GOTO            used as unconditionnal branch to a label FWx or BWx  
@@ -1584,8 +1670,8 @@ It is reduced to a minimum, but nevertheless extensible up to ... $FF80 !
     0>=             conditionnal, to use only with IF UNTIL WHILE  
     S<              conditionnal  
     S>=             conditionnal  
-    LO2HI           switches compilation between low level and high level modes without saving IP register.  
-    COLON           pushes IP then performs LO2HI, used as: CODE <word> ... assembler instr ... COLON ... FORTH words ... ;
+    LO2HI           switches compilation from low level to high level modes without saving IP register.  
+    COLON           pushes IP then performs LO2HI.
     ENDCODE         to end a CODE or HDNCODE definition.  
 
 #### EXTENDED_MEM WORDS set:
@@ -1624,187 +1710,177 @@ Full 20 bits address/data assembler
 [XORX, XORX.A, XORX.B   ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=227),
 [RPT                    ](http://www.ti.com/lit/ug/slau272d/slau272d.pdf#page=119)
 
-### CONDCOMP ADD-ON
-
-[MARKER         ](https://forth-standard.org/standard/core/MARKER),
-[\[DEFINED\]    ](https://forth-standard.org/standard/tools/BracketDEFINED),
-[\[UNDEFINED\]  ](https://forth-standard.org/standard/tools/BracketUNDEFINED),
-[\[IF\]         ](https://forth-standard.org/standard/tools/BracketIF),
-[\[ELSE\]       ](https://forth-standard.org/standard/tools/BracketELSE),
-[\[THEN\]       ](https://forth-standard.org/standard/tools/BracketTHEN)
-
-
 ### VOCABULARY ADD-ON
 
 [DEFINITIONS     ](https://forth-standard.org/standard/search/DEFINITIONS),
-[ONLY            ](https://forth-standard.org/standard/search/ONLY),
 [PREVIOUS        ](https://forth-standard.org/standard/search/PREVIOUS),
-[ALSO            ](https://forth-standard.org/standard/search/ALSO)  
-
-ASSEMBLER sets ASSEMBLER as CONTEXT word set  
-FORTH sets FORTH as CONTEXT word set  
-VOCABULARY <name> creates a new word-set 
-
+ONLY,
+FORTH,
+WORDSET.
 
-### NONAME ADD-ON
-
-[\:NONAME      ](https://forth-standard.org/standard/core/ColonNONAME),
-[DEFER         ](https://forth-standard.org/standard/core/DEFER),
-[IS            ](https://forth-standard.org/standard/core/IS)
-
-CODENNM is the assembly counterpart of :NONAME.
+    FORTH               adds FORTH as first CONTEXT word-set  
+    FORTH ONLY          clears the CONTEXT stack, same as `-1 SYS`
+    WORDSET <name>      creates a new word-set named <name>
+    <name>              adds this named word-set in the CONTEXT stack
 
 
 ### SD_CARD_LOADER ADD-ON
 
-    LOAD"           LOAD" SD_TEST.4TH" loads source file SD_TEST.4TH from SD_Card and compile it.
+    LOAD" SD_TEST.4TH"  loads source file SD_TEST.4TH from SD_Card and compile it.
+    BOOT                enable bootstrap
+    NOBOOT              disable bootstrap
 
+Once bootloader is enabled, any PUC event loads (and executes) the file \BOOT.4TH from the SD_Card.
 
 ### SD_CARD_READ_WRITE ADD-ON
 
-    TERM2SD"        SD_EMIT         WRITE           READ            CLOSE           DEL"            WRITE"          
-    READ"
-
-    TERM2SD"        TERM2SD" SD_TEST.4TH" copy input file to SD_CARD (use CopySourceFileToTarget_SD_Card.bat to do)
+TERM2SD",
+SD_EMIT,
+WRITE,
+READ,
+CLOSE,
+DEL",
+WRITE",
+APPEND",
+READ".
+
+    TERM2SD"        TERM2SD" SD_TEST.4TH" copy input file to SD_CARD
+                       (use CopySourceFileToTarget_SD_Card.bat to do)
     SD_EMIT         sends output stream at the end of last opened as write file.
-    WRITE           write sequentially BUFFER content to a sector
-    READ            read sequentially a sector to BUFFER
+    WRITE           write sequentially the content of SD_buf to a file
+    READ            read sequentially a file in SD_buf, leave a flag, false when the file is automatically closed.
     CLOSE           close last opened file.
     DEL"            DEL" SD_TEST.4TH" remove this file from SD_CARD.
-    WRITE"          WRITE" TRUC" open or create TRUC file ready to write to the end of this file
-    READ"           READ" TRUC" open TRUC and load its first sector in BUFFER
-
-
-
-### BOOTLOADER
-
-to enable bootloader: `' BOOT IS WARM`,
-to disable bootloader: `' BOOT [PFA] IS WARM`
-
-Once bootloader enabled, any PUC event loads (and executes) the file \BOOT.4TH from the SD_Card.
+    WRITE"          WRITE" TRUC" create or overwrite a file TRUC ready to write to its beginning.
+    APPEND"         APPEND" TRUC" open or create a file TRUC ready to write to the end of this file
+    READ"           READ" TRUC" open TRUC and load its first sector in SD_buf
 
 
 ## OPTIONNAL ADD-ON
 
-* when ADD-ONs are compiled with the kernel, their respective MARKER word identified with braces {} does nothing.  
-  Sources are in the folder \ADDON, as source.asm file.
-
-* when ADD-ONs are downloaded, their respective MARKER word identified with braces {} removes all ADD-ONs words.  
+* Their respective MARKER word identified with braces {} removes all ADD-ONs words.  
   Sources are in the folder \MSP430-FORTH\, as source.f file.
 
 ### ANS_COMP
 
 Adds complement to pass FORTH ANS94 core test.
 
-[VALUE           ](https://forth-standard.org/standard/core/VALUE),
-[TO              ](https://forth-standard.org/standard/core/TO),
-[BEGIN           ](https://forth-standard.org/standard/core/BEGIN),
-[DOES>           ](https://forth-standard.org/standard/core/DOES),
-[SPACES          ](https://forth-standard.org/standard/core/SPACES),
-[SPACE           ](https://forth-standard.org/standard/core/SPACE),
-[BL              ](https://forth-standard.org/standard/core/BL),
-[PAD             ](https://forth-standard.org/standard/core/PAD),       
-[>IN             ](https://forth-standard.org/standard/core/toIN),
-[BASE            ](https://forth-standard.org/standard/core/BASE),
-[STATE           ](https://forth-standard.org/standard/core/STATE),
-[CONSTANT        ](https://forth-standard.org/standard/core/CONSTANT),
-[VARIABLE        ](https://forth-standard.org/standard/core/VARIABLE),
-[SOURCE          ](https://forth-standard.org/standard/core/SOURCE),
-[RECURSE         ](https://forth-standard.org/standard/core/RECURSE),
-[EVALUATE        ](https://forth-standard.org/standard/core/EVALUATE),
-[EXECUTE         ](https://forth-standard.org/standard/core/EXECUTE),
-[>BODY           ](https://forth-standard.org/standard/core/toBODY),
-[.(              ](https://forth-standard.org/standard/core/Dotp),
-[(               ](https://forth-standard.org/standard/core/p),
-[DECIMAL         ](https://forth-standard.org/standard/core/DECIMAL),
-[HEX             ](https://forth-standard.org/standard/core/HEX),
-[HERE            ](https://forth-standard.org/standard/core/HERE),
-[FILL            ](https://forth-standard.org/standard/core/FILL),
-[MOVE            ](https://forth-standard.org/standard/core/MOVE),
-[+!              ](https://forth-standard.org/standard/core/PlusStore),
-[[CHAR]          ](https://forth-standard.org/standard/core/BracketCHAR),
-[CHAR            ](https://forth-standard.org/standard/core/CHAR),
-[CELL+           ](https://forth-standard.org/standard/core/CELLPlus),
-[CELLS           ](https://forth-standard.org/standard/core/CELLS),
-[CHAR+           ](https://forth-standard.org/standard/core/CHARPlus),
-[CHARS           ](https://forth-standard.org/standard/core/CHARS),
-[ALIGN           ](https://forth-standard.org/standard/core/ALIGN),
-[ALIGNED         ](https://forth-standard.org/standard/core/ALIGNED),
-[2OVER           ](https://forth-standard.org/standard/core/TwoOVER),
-[2SWAP           ](https://forth-standard.org/standard/core/TwoSWAP),
-[2DROP           ](https://forth-standard.org/standard/core/TwoDROP),
-[2DUP            ](https://forth-standard.org/standard/core/TwoDUP),
-[2!              ](https://forth-standard.org/standard/core/TwoStore),
-[2@              ](https://forth-standard.org/standard/core/TwoFetch),
-[R@              ](https://forth-standard.org/standard/core/RFetch),
-[ROT             ](https://forth-standard.org/standard/core/ROT),
-[OVER            ](https://forth-standard.org/standard/core/OVER),
-[*/              ](https://forth-standard.org/standard/core/TimesDiv),
-[*/MOD           ](https://forth-standard.org/standard/core/TimesDivMOD),
-[MOD             ](https://forth-standard.org/standard/core/MOD),
-[/               ](https://forth-standard.org/standard/core/Div),
-[/MOD            ](https://forth-standard.org/standard/core/DivMOD),
-[*               ](https://forth-standard.org/standard/core/Times),
-[FM/MOD          ](https://forth-standard.org/standard/core/FMDivMOD),
-[ABS             ](https://forth-standard.org/standard/core/ABS),
-[NEGATE          ](https://forth-standard.org/standard/core/NEGATE),
-[SM/REM          ](https://forth-standard.org/standard/core/SMDivREM),
-[UM/MOD          ](https://forth-standard.org/standard/core/UMDivMOD),
-[M*              ](https://forth-standard.org/standard/core/MTimes),
-[UM*             ](https://forth-standard.org/standard/core/UMTimes),
-[2/              ](https://forth-standard.org/standard/core/TwoDiv),
-[2*              ](https://forth-standard.org/standard/core/TwoTimes),
-[MIN             ](https://forth-standard.org/standard/core/MIN),
-[MAX             ](https://forth-standard.org/standard/core/MAX),
-[RSHIFT          ](https://forth-standard.org/standard/core/RSHIFT),
-[LSHIFT          ](https://forth-standard.org/standard/core/LSHIFT),
-[INVERT          ](https://forth-standard.org/standard/core/INVERT),
-[1-              ](https://forth-standard.org/standard/core/OneMinus),
-[1+              ](https://forth-standard.org/standard/core/OnePlus),
-[S>D             ](https://forth-standard.org/standard/core/StoD),
-[XOR             ](https://forth-standard.org/standard/core/XOR),
-[OR              ](https://forth-standard.org/standard/core/OR),
-[AND             ](https://forth-standard.org/standard/core/AND),
-[LEAVE           ](https://forth-standard.org/standard/core/LEAVE),
-[UNLOOP          ](https://forth-standard.org/standard/core/UNLOOP),
-[J               ](https://forth-standard.org/standard/core/J),
-[I               ](https://forth-standard.org/standard/core/I),
-[+LOOP           ](https://forth-standard.org/standard/core/PlusLOOP),
-[LOOP            ](https://forth-standard.org/standard/core/LOOP),
-[DO              ](https://forth-standard.org/standard/core/DO),  
-[REPEAT          ](https://forth-standard.org/standard/core/REPEAT),
-[WHILE           ](https://forth-standard.org/standard/core/WHILE),
-[AGAIN           ](https://forth-standard.org/standard/core/AGAIN),
-[UNTIL           ](https://forth-standard.org/standard/core/UNTIL),
-[THEN            ](https://forth-standard.org/standard/core/THEN),
-[ELSE            ](https://forth-standard.org/standard/core/ELSE),
-[IF              ](https://forth-standard.org/standard/core/IF),
-[>               ](https://forth-standard.org/standard/core/more),
-[<               ](https://forth-standard.org/standard/core/less),
-[U<              ](https://forth-standard.org/standard/core/Uless),
-[=               ](https://forth-standard.org/standard/core/Equal),
-[0<              ](https://forth-standard.org/standard/core/Zeroless),
-[0=              ](https://forth-standard.org/standard/core/ZeroEqual),
-[C,              ](https://forth-standard.org/standard/core/CComma),
-[C!              ](https://forth-standard.org/standard/core/CStore),
-[C@              ](https://forth-standard.org/standard/core/CFetch),
-[R>              ](https://forth-standard.org/standard/core/Rfrom),
-[>R              ](https://forth-standard.org/standard/core/toR),
-[NIP             ](https://forth-standard.org/standard/core/NIP),
-[DROP            ](https://forth-standard.org/standard/core/DROP),
-[SWAP            ](https://forth-standard.org/standard/core/SWAP),
-[DEPTH           ](https://forth-standard.org/standard/core/DEPTH),
-[EXIT            ](https://forth-standard.org/standard/core/EXIT),
-[?DUP            ](https://forth-standard.org/standard/core/qDUP),
-[DUP             ](https://forth-standard.org/standard/core/DUP),
-[-               ](https://forth-standard.org/standard/core/Minus),
-[+               ](https://forth-standard.org/standard/core/Plus)
+[VALUE      ](https://forth-standard.org/standard/core/VALUE),
+[TO         ](https://forth-standard.org/standard/core/TO),
+[DEFER      ](https://forth-standard.org/standard/core/DEFER),
+[BEGIN      ](https://forth-standard.org/standard/core/BEGIN),
+[SPACES     ](https://forth-standard.org/standard/core/SPACES),
+[SPACE      ](https://forth-standard.org/standard/core/SPACE),
+[BL         ](https://forth-standard.org/standard/core/BL),
+[PAD        ](https://forth-standard.org/standard/core/PAD),
+[>IN        ](https://forth-standard.org/standard/core/toIN),
+[BASE       ](https://forth-standard.org/standard/core/BASE),
+[STATE      ](https://forth-standard.org/standard/core/STATE),
+[CONSTANT   ](https://forth-standard.org/standard/core/CONSTANT),
+[VARIABLE   ](https://forth-standard.org/standard/core/VARIABLE),
+[SOURCE     ](https://forth-standard.org/standard/core/SOURCE),
+[RECURSE    ](https://forth-standard.org/standard/core/RECURSE),
+[EVALUATE   ](https://forth-standard.org/standard/core/EVALUATE),
+[EXECUTE    ](https://forth-standard.org/standard/core/EXECUTE),
+[>BODY      ](https://forth-standard.org/standard/core/toBODY),
+[.(         ](https://forth-standard.org/standard/core/Dotp),
+[(          ](https://forth-standard.org/standard/core/p),
+[DECIMAL    ](https://forth-standard.org/standard/core/DECIMAL),
+[HEX        ](https://forth-standard.org/standard/core/HEX),
+[HERE       ](https://forth-standard.org/standard/core/HERE),
+[FILL       ](https://forth-standard.org/standard/core/FILL),
+[MOVE       ](https://forth-standard.org/standard/core/MOVE),
+[+!         ](https://forth-standard.org/standard/core/PlusStore),
+[[CHAR]     ](https://forth-standard.org/standard/core/BracketCHAR),
+[CHAR       ](https://forth-standard.org/standard/core/CHAR),
+[CELL+      ](https://forth-standard.org/standard/core/CELLPlus),
+[CELLS      ](https://forth-standard.org/standard/core/CELLS),
+[CHAR+      ](https://forth-standard.org/standard/core/CHARPlus),
+[CHARS      ](https://forth-standard.org/standard/core/CHARS),
+[ALIGN      ](https://forth-standard.org/standard/core/ALIGN),
+[ALIGNED    ](https://forth-standard.org/standard/core/ALIGNED),
+[2OVER      ](https://forth-standard.org/standard/core/TwoOVER),
+[2SWAP      ](https://forth-standard.org/standard/core/TwoSWAP),
+[2DROP      ](https://forth-standard.org/standard/core/TwoDROP),
+[2DUP       ](https://forth-standard.org/standard/core/TwoDUP),
+[2!         ](https://forth-standard.org/standard/core/TwoStore),
+[2@         ](https://forth-standard.org/standard/core/TwoFetch),
+[R@         ](https://forth-standard.org/standard/core/RFetch),
+[ROT        ](https://forth-standard.org/standard/core/ROT),
+[OVER       ](https://forth-standard.org/standard/core/OVER),
+[*/         ](https://forth-standard.org/standard/core/TimesDiv),
+[*/MOD      ](https://forth-standard.org/standard/core/TimesDivMOD),
+[MOD        ](https://forth-standard.org/standard/core/MOD),
+[/          ](https://forth-standard.org/standard/core/Div),
+[/MOD       ](https://forth-standard.org/standard/core/DivMOD),
+[*          ](https://forth-standard.org/standard/core/Times),
+[FM/MOD     ](https://forth-standard.org/standard/core/FMDivMOD),
+[ABS        ](https://forth-standard.org/standard/core/ABS),
+[NEGATE     ](https://forth-standard.org/standard/core/NEGATE),
+[SM/REM     ](https://forth-standard.org/standard/core/SMDivREM),
+[UM/MOD     ](https://forth-standard.org/standard/core/UMDivMOD),
+[M*         ](https://forth-standard.org/standard/core/MTimes),
+[UM*        ](https://forth-standard.org/standard/core/UMTimes),
+[2/         ](https://forth-standard.org/standard/core/TwoDiv),
+[2*         ](https://forth-standard.org/standard/core/TwoTimes),
+[MIN        ](https://forth-standard.org/standard/core/MIN),
+[MAX        ](https://forth-standard.org/standard/core/MAX),
+[RSHIFT     ](https://forth-standard.org/standard/core/RSHIFT),
+[LSHIFT     ](https://forth-standard.org/standard/core/LSHIFT),
+[INVERT     ](https://forth-standard.org/standard/core/INVERT),
+[1-         ](https://forth-standard.org/standard/core/OneMinus),
+[1+         ](https://forth-standard.org/standard/core/OnePlus),
+[S>D        ](https://forth-standard.org/standard/core/StoD),
+[XOR        ](https://forth-standard.org/standard/core/XOR),
+[OR         ](https://forth-standard.org/standard/core/OR),
+[AND        ](https://forth-standard.org/standard/core/AND),
+[LEAVE      ](https://forth-standard.org/standard/core/LEAVE),
+[UNLOOP     ](https://forth-standard.org/standard/core/UNLOOP),
+[J          ](https://forth-standard.org/standard/core/J),
+[I          ](https://forth-standard.org/standard/core/I),
+[+LOOP      ](https://forth-standard.org/standard/core/PlusLOOP),
+[LOOP       ](https://forth-standard.org/standard/core/LOOP),
+[DO         ](https://forth-standard.org/standard/core/DO),
+[REPEAT     ](https://forth-standard.org/standard/core/REPEAT),
+[WHILE      ](https://forth-standard.org/standard/core/WHILE),
+[AGAIN      ](https://forth-standard.org/standard/core/AGAIN),
+[UNTIL      ](https://forth-standard.org/standard/core/UNTIL),
+[THEN       ](https://forth-standard.org/standard/core/THEN),
+[ELSE       ](https://forth-standard.org/standard/core/ELSE),
+[IF         ](https://forth-standard.org/standard/core/IF),
+[>          ](https://forth-standard.org/standard/core/more),
+[<          ](https://forth-standard.org/standard/core/less),
+[U<         ](https://forth-standard.org/standard/core/Uless),
+[=          ](https://forth-standard.org/standard/core/Equal),
+[0<         ](https://forth-standard.org/standard/core/Zeroless),
+[0=         ](https://forth-standard.org/standard/core/ZeroEqual),
+[C,         ](https://forth-standard.org/standard/core/CComma),
+[C!         ](https://forth-standard.org/standard/core/CStore),
+[C@         ](https://forth-standard.org/standard/core/CFetch),
+[R>         ](https://forth-standard.org/standard/core/Rfrom),
+[>R         ](https://forth-standard.org/standard/core/toR),
+[NIP        ](https://forth-standard.org/standard/core/NIP),
+[DROP       ](https://forth-standard.org/standard/core/DROP),
+[SWAP       ](https://forth-standard.org/standard/core/SWAP),
+[DEPTH      ](https://forth-standard.org/standard/core/DEPTH),
+[EXIT       ](https://forth-standard.org/standard/core/EXIT),
+[?DUP       ](https://forth-standard.org/standard/core/qDUP),
+[DUP        ](https://forth-standard.org/standard/core/DUP),
+[-          ](https://forth-standard.org/standard/core/Minus),
+[+          ](https://forth-standard.org/standard/core/Plus),
+[CR         ](https://forth-standard.org/standard/core/CR).
 
 
 ### FIXPOINT
 
-    S>F             F.              F*              F#S             F/              F-              F+              
-    HOLDS           {FIXPOINT}
+S>F,
+F.,
+F*,
+F#S,
+F/,
+F-,
+F+,
+[HOLDS          ](https://forth-standard.org/standard/core/HOLDS).
 
     S>F             u/n -- Qlo Qhi       convert u/n in a Q15.16 value
     F.              display a Q15.16 value
@@ -1814,29 +1890,25 @@ Adds complement to pass FORTH ANS94 core test.
     F/              Q15.16 division        
     F-              Q15.16 soustraction
     F+              Q15.16 addition
-    HOLDS           https://forth-standard.org/standard/core/HOLDS
 
 
 ### UTILITY
 
-    DUMP            U.R             WORDS           ?               .RS             .S              {TOOLS}
-
 [DUMP           ](https://forth-standard.org/standard/tools/DUMP), 
 [U.R            ](https://forth-standard.org/standard/core/UDotR),
-[WORDS          ](https://forth-standard.org/standard/tools/WORDS),  
+[WORDS          ](https://forth-standard.org/standard/tools/WORDS),
 [?              ](https://forth-standard.org/standard/tools/q), 
 [.S             ](https://forth-standard.org/standard/tools/DotS),
+.RS.
 
     .RS             displays Return Stack content  
 
 ### SD_TOOLS
 
-    DIR             FAT             CLUSTER         SECTOR          {SD_TOOLS}
-
     DIR             dump first sector of current directory  
     FAT             dump first sector of FAT1  
-    CLUSTER         .123 CLUSTER displays first sector of cluster 123  
-    SECTOR          .123456789 SECTOR displays sector 123456789  
+    CLUSTER.        .123 CLUSTER. displays first sector of cluster 123  
+    SECTOR.         .123456789 SECTOR. displays sector 123456789  
 
 ### DOUBLE word set
 
@@ -1873,6 +1945,7 @@ Adds complement to pass FORTH ANS94 core test.
 First search from ti.com: [MSP430Flasher](http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSP430Flasher/latest/index_FDS.html)
 
 untar in a home folder then:
+* set executable flag in permission of this file
 * open MSPFlasher-1.3.16-linux-x64-installer.run
 * install in MSP430Flasher (under home)
 
index efd288c..6889387 100644 (file)
-# SciTEDirectoriy.properties\r
+# SciTEDirectory.properties\r
 # For Windows, place in your directory project folder\r
 # Documentation at http://www.scintilla.org/SciTEDoc.html\r
 \r
-# Globals\r
-buffers.zorder.switching=1\r
+# # Globals\r
+# \r
+# PLAT_WIN=1\r
+# PLAT_GTK=0\r
+# position.maximize=1\r
+# \r
+# save.session=1\r
+# save.recent=1\r
+# save.session=1\r
+# session.bookmarks=1\r
+# \r
+# buffers.zorder.switching=1\r
+# properties.directory.enable=1\r
+# check.if.already.open=1\r
+\r
+\r
+# \r
+# # Window sizes and visibility\r
+# if PLAT_WIN\r
+#     position.left=-1\r
+#     position.top=0\r
+# if PLAT_GTK\r
+#     position.left=5\r
+#     position.top=22\r
+# \r
+# position.width=1000\r
+# position.height=768\r
+# position.maximize=1\r
+# #position.tile=1\r
+# #full.screen.hides.menu=1\r
+# minimize.to.tray=0\r
+# split.vertical=1\r
+# output.horizontal.size=400\r
+# output.vertical.size=600\r
+# output.initial.hide=1\r
+# #horizontal.scrollbar=0\r
+# #horizontal.scroll.width=10000\r
+# #horizontal.scroll.width.tracking=0\r
+# #output.horizontal.scrollbar=0\r
+# #output.horizontal.scroll.width=10000\r
+# #output.horizontal.scroll.width.tracking=0\r
+# #output.scroll=0\r
+# error.select.line=1\r
+# #end.at.last.line=0\r
+# tabbar.visible=1\r
+# #tabbar.hide.one=1\r
+# tabbar.multiline=0\r
+# toolbar.large=1\r
+# toolbar.visible=1\r
+# #toolbar.detachable=1\r
+# #toolbar.usestockicons=1\r
+# #menubar.detachable=1\r
+# #undo.redo.lazy=1\r
+# statusbar.visible=1\r
+# #fileselector.width=800\r
+# #fileselector.height=600\r
+# #fileselector.show.hidden=1\r
+# magnification=0\r
+# output.magnification=-4\r
+# \r
+# # Sizes and visibility in edit pane\r
+# line.margin.visible=1\r
+# line.margin.width=4\r
+# margin.width=16\r
+# fold.margin.width=0\r
+# #fold.margin.colour=#00FF00\r
+# #fold.margin.highlight.colour=#0000FF\r
+# blank.margin.left=20\r
+# #blank.margin.right=4\r
+# buffered.draw=1\r
+# #two.phase.draw=0\r
+# use.palette=0\r
+\r
+\r
+# #Element styles\r
+# \r
+# #view.eol=1\r
+# #control.char.symbol=. \r
+# caret.period=500\r
+# view.whitespace=0\r
+# view.indentation.whitespace=1\r
+# view.indentation.guides=0\r
+# view.indentation.examine=3\r
+# highlight.indentation.guides=1\r
+# caret.fore=#FF0000\r
+# #caret.additional.blinks=0\r
+# caret.width=3\r
+# caret.line.back=#222222\r
+# calltip.back=#FFF0FE\r
 \r
-# Window sizes and visibility\r
-#if PLAT_WIN\r
-#    position.left=-1\r
-#    position.top=0\r
-#if PLAT_GTK\r
-#    position.left=5\r
-#    position.top=22\r
-#position.width=-1\r
-#position.height=-1\r
-#position.maximize=1\r
-#position.tile=1\r
-#full.screen.hides.menu=1\r
-minimize.to.tray=0\r
-split.vertical=1\r
-output.horizontal.size=400\r
-output.vertical.size=600\r
-output.initial.hide=1\r
-#horizontal.scrollbar=0\r
-#horizontal.scroll.width=10000\r
-#horizontal.scroll.width.tracking=0\r
-#output.horizontal.scrollbar=0\r
-#output.horizontal.scroll.width=10000\r
-#output.horizontal.scroll.width.tracking=0\r
-#output.scroll=0\r
-error.select.line=1\r
-#end.at.last.line=0\r
-tabbar.visible=1\r
-#tabbar.hide.one=1\r
-tabbar.multiline=0\r
-toolbar.visible=1\r
-#toolbar.detachable=1\r
-#toolbar.usestockicons=1\r
-#menubar.detachable=1\r
-#undo.redo.lazy=1\r
-statusbar.visible=1\r
-#fileselector.width=800\r
-#fileselector.height=600\r
-#fileselector.show.hidden=1\r
-magnification=0\r
-output.magnification=-4\r
-\r
-# Sizes and visibility in edit pane\r
-line.margin.visible=1\r
-line.margin.width=4\r
-margin.width=16\r
-fold.margin.width=0\r
-#fold.margin.colour=#00FF00\r
-#fold.margin.highlight.colour=#0000FF\r
-blank.margin.left=20\r
-#blank.margin.right=4\r
-buffered.draw=1\r
-#two.phase.draw=0\r
-use.palette=0\r
-\r
-\r
-#Element styles\r
-\r
-\r
-#view.eol=1\r
-#control.char.symbol=. \r
-caret.period=500\r
-view.whitespace=0\r
-view.indentation.whitespace=1\r
-view.indentation.guides=0\r
-view.indentation.examine=3\r
-highlight.indentation.guides=1\r
-caret.fore=#FF0000\r
-#caret.additional.blinks=0\r
-caret.width=3\r
-caret.line.back=#222222\r
-calltip.back=#FFF0FE\r
 edge.column=80\r
 edge.mode=1\r
 edge.colour=#404040\r
+\r
 braces.check=1\r
 braces.sloppy=1\r
 \r
 # black background\r
-selection.fore=#000000\r
-selection.alpha=256\r
-selection.back=#808080\r
+selection.fore=#FFFFFF\r
+#selection.alpha=256\r
+selection.back=#808080A0\r
 #selection.additional.fore=#0000A0\r
 #selection.additional.back=#000080\r
 #selection.additional.alpha=20\r
@@ -108,11 +125,6 @@ selection.back=#808080
 #indicators.under=1\r
 \r
 \r
-# Scripting\r
-ext.lua.startup.script=$(SciteUserHome)/SciTEStartup.lua\r
-ext.lua.auto.reload=1\r
-#ext.lua.reset=1\r
-\r
 \r
 # Checking\r
 are.you.sure=1\r
@@ -123,14 +135,13 @@ load.on.activate=1
 #save.on.deactivate=1\r
 are.you.sure.on.reload=1\r
 reload.preserves.undo=1\r
-check.if.already.open=1\r
+#check.if.already.open=1\r
 #temp.files.sync.load=1\r
 default.file.ext=.txt\r
 #source.default.extensions=.h|.cxx|.bat\r
 title.full.path=1\r
 title.show.buffers=1\r
 pathbar.visible=1\r
-#save.session=1\r
 #save.recent=1\r
 #save.session=1\r
 #session.bookmarks=1\r
@@ -236,13 +247,13 @@ caret.policy.yjumps=0
 #visible.policy.lines=4\r
 #time.commands=1\r
 #caret.sticky=1\r
-properties.directory.enable=1\r
+#properties.directory.enable=1\r
 \r
 # Status Bar\r
 statusbar.number=4\r
-statusbar.text.2=\\r
-li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)\r
 statusbar.text.1=\\r
+li=$(LineNumber) co=$(ColumnNumber) $(OverType) ($(EOLMode)) $(FileAttr)\r
+statusbar.text.2=\\r
 $(BufferLength) chars in $(NbOfLines) lines. Sel: $(SelHeight) lines, $(SelLength) chars.\r
 statusbar.text.3=\\r
 Now is: Date=$(CurrentDate) Time=$(CurrentTime)\r
@@ -250,56 +261,55 @@ statusbar.text.4=\
 $(FileNameExt) : $(FileDate) \97 $(FileTime) | $(FileAttr)\r
 \r
 if PLAT_WIN\r
-       command.scite.help="https://www.scintilla.org/SciTEDoc.html"\r
-       command.scite.help.subsystem=2\r
+         command.scite.help=C:\Program Files\SRWare Iron\iron.exe "C:\Program Files\SciTE\SciTEDoc.html"\r
+         command.scite.help.subsystem=2\r
 if PLAT_GTK\r
-       command.print.*=a2ps "$(FileNameExt)"\r
-       command.scite.help=file://$(SciteDefaultHome)/SciTEDoc.html\r
-\r
-# Internationalisation\r
-# Japanese input code page 932 and ShiftJIS character set 128\r
-#code.page=932\r
-#character.set=128\r
-# Unicode\r
-#code.page=65001\r
-code.page=0\r
-#character.set=204\r
-# Required for Unicode to work on GTK+:\r
-#LC_CTYPE=en_US.UTF-8\r
-if PLAT_GTK\r
-       output.code.page=65001\r
-if PLAT_MAC\r
-       output.code.page=65001\r
-\r
-# Export\r
-#export.keep.ext=1\r
-export.html.wysiwyg=1\r
-#export.html.tabs=1\r
-#export.html.folding=1\r
-export.html.styleused=1\r
-export.html.title.fullpath=1\r
-#export.rtf.tabs=1\r
-#export.rtf.font.face=Arial\r
-#export.rtf.font.size=9\r
-#export.rtf.tabsize=8\r
-#export.rtf.wysiwyg=0\r
-#export.tex.title.fullpath=1\r
-# Magnification (added to default screen font size)\r
-export.pdf.magnification=-2\r
-# Font: Courier, Helvetica or Times (Courier line-wraps)\r
-export.pdf.font=Courier\r
-# Page size (in points): width, height\r
-# E.g. Letter 612,792; A4 595,842; maximum 14400,14400\r
-#export.pdf.pagesize=595,842\r
-export.pdf.pagesize=842,595\r
-# Margins (in points): left, right, top, bottom\r
-export.pdf.margins=28,28,28,28\r
-export.xml.collapse.spaces=1\r
-export.xml.collapse.lines=1\r
+         command.print.*=a2ps "$(FileNameExt)"\r
+         command.scite.help=xdg-open "file://$(SciteDefaultHome)/SciTEDoc.html"\r
\r
+#  # Internationalisation\r
+#  # Japanese input code page 932 and ShiftJIS character set 128\r
+#  #code.page=932\r
+#  #character.set=128\r
+#  # Unicode\r
+#  #code.page=65001\r
+#  code.page=0\r
+#  #character.set=204\r
+#  # Required for Unicode to work on GTK+:\r
+#  #LC_CTYPE=en_US.UTF-8\r
+#  if PLAT_GTK\r
+#         output.code.page=65001\r
+#  if PLAT_MAC\r
+#         output.code.page=65001\r
+\r
+# # Export\r
+# #export.keep.ext=1\r
+# export.html.wysiwyg=1\r
+# #export.html.tabs=1\r
+# #export.html.folding=1\r
+# export.html.styleused=1\r
+# export.html.title.fullpath=1\r
+# #export.rtf.tabs=1\r
+# #export.rtf.font.face=Arial\r
+# #export.rtf.font.size=9\r
+# #export.rtf.tabsize=8\r
+# #export.rtf.wysiwyg=0\r
+# #export.tex.title.fullpath=1\r
+# # Magnification (added to default screen font size)\r
+# export.pdf.magnification=0\r
+# # Font: Courier, Helvetica or Times (Courier line-wraps)\r
+# export.pdf.font=Courier\r
+# # Page size (in points): width, height\r
+# # E.g. Letter 612,792; A4 595,842; maximum 14400,14400\r
+# export.pdf.pagesize=595,842\r
+# # Margins (in points): left, right, top, bottom\r
+# export.pdf.margins=56,28,28,28\r
+# export.xml.collapse.spaces=1\r
+# export.xml.collapse.lines=1\r
 \r
 # Define values for use in the imported properties files\r
 chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\r
-chars.numeric=0123456789ABCDEFabcdefx\r
+chars.numeric=0123456789ABCDEFabcdef\r
 chars.accented=\8a\9a\8c\9c\9fÿÀàÁáÂâÃãÄäÅåÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö\r
 # This is a better set for Russian:\r
 #chars.accented=ÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÚúÛûÜüÝýÞþßÿ\r
@@ -383,51 +393,49 @@ $(filter.web)\
 #save.filter=$(open.filter)\r
 \r
 # Give symbolic names to the set of fonts used in the standard styles.\r
-if PLAT_WIN\r
-       font.base=font:Lucida Console,size:10\r
-       font.small=font:Lucida Console,size:10\r
-       font.comment=font:Lucida Console,size:10\r
-       font.code.comment.box=$(font.comment)\r
-       font.code.comment.line=$(font.comment)\r
-       font.code.comment.doc=$(font.comment)\r
-       font.code.comment.nested=$(font.comment)\r
-       font.text=font:Lucida Console,size:10\r
-       font.text.comment=font:Lucida Console,size:10\r
-       font.embedded.base=font:Lucida Console,size:10\r
-       font.embedded.comment=font:Lucida Console,size:10\r
-       font.monospace=font:Lucida Console,size:10\r
-       font.vbs=font:Lucida Sans Unicode,size:10\r
-\r
-if PLAT_GTK\r
-       font.base=font:Bitstream Vera Sans Mono,size:10\r
-       font.small=font:Bitstream Vera Sans Mono,size:10\r
-       font.comment=font:Bitstream Vera Sans Mono,size:10\r
-       font.code.comment.box=$(font.comment)\r
-       font.code.comment.line=$(font.comment)\r
-       font.code.comment.doc=$(font.comment)\r
-       font.code.comment.nested=$(font.comment)\r
-       font.text=font:Bitstream Vera Sans Mono,size:10\r
-       font.text.comment=font:Bitstream Vera Sans Mono,size:10\r
-       font.embedded.base=font:Bitstream Vera Sans Mono,size:10\r
-       font.embedded.comment=font:Bitstream Vera Sans Mono,size:10\r
-       font.monospace=font:Bitstream Vera Sans Mono,size:10\r
-       font.vbs=font:Bitstream Vera Sans Mono,size:10\r
-\r
-if PLAT_MAC\r
-       font.base=font:Verdana,size:12\r
-       font.small=font:Verdana,size:10\r
-       font.comment=font:Georgia,size:13\r
-       font.code.comment.box=$(font.comment)\r
-       font.code.comment.line=$(font.comment)\r
-       font.code.comment.doc=$(font.comment)\r
-       font.code.comment.nested=$(font.comment)\r
-       font.text=font:Times New Roman,size:13\r
-       font.text.comment=font:Verdana,size:11\r
-       font.embedded.base=font:Verdana,size:11\r
-       font.embedded.comment=font:Comic Sans MS,size:10\r
-       font.monospace=font:Courier New,size:12\r
-       font.vbs=font:Lucida Sans Unicode,size:12\r
-    font.js=$(font.comment)\r
+#if PLAT_WIN\r
+#      font.base=font:Lucida Console,size:10\r
+#      font.small=font:Lucida Console,size:10\r
+#      font.comment=font:Lucida Console,size:10\r
+#      font.code.comment.box=$(font.comment)\r
+#      font.code.comment.line=$(font.comment)\r
+#      font.code.comment.doc=$(font.comment)\r
+#      font.code.comment.nested=$(font.comment)\r
+#      font.text=font:Lucida Console,size:10\r
+#      font.text.comment=font:Lucida Console,size:10\r
+#      font.embedded.base=font:Lucida Console,size:10\r
+#      font.embedded.comment=font:Lucida Console,size:10\r
+#      font.monospace=font:Lucida Console,size:10\r
+#      font.vbs=font:Lucida Sans Unicode,size:10\r
+#if PLAT_GTK\r
+#      font.base=font:Bitstream Vera Sans Mono,size:10\r
+#      font.small=font:Bitstream Vera Sans Mono,size:10\r
+#      font.comment=font:Bitstream Vera Sans Mono,size:10\r
+#      font.code.comment.box=$(font.comment)\r
+#      font.code.comment.line=$(font.comment)\r
+#      font.code.comment.doc=$(font.comment)\r
+#      font.code.comment.nested=$(font.comment)\r
+#      font.text=font:Bitstream Vera Sans Mono,size:10\r
+#      font.text.comment=font:Bitstream Vera Sans Mono,size:10\r
+#      font.embedded.base=font:Bitstream Vera Sans Mono,size:10\r
+#      font.embedded.comment=font:Bitstream Vera Sans Mono,size:10\r
+#      font.monospace=font:Bitstream Vera Sans Mono,size:10\r
+#      font.vbs=font:Bitstream Vera Sans Mono,size:10\r
+#if PLAT_MAC\r
+#      font.base=font:Verdana,size:12\r
+#      font.small=font:Verdana,size:10\r
+#      font.comment=font:Georgia,size:13\r
+#      font.code.comment.box=$(font.comment)\r
+#      font.code.comment.line=$(font.comment)\r
+#      font.code.comment.doc=$(font.comment)\r
+#      font.code.comment.nested=$(font.comment)\r
+#      font.text=font:Times New Roman,size:13\r
+#      font.text.comment=font:Verdana,size:11\r
+#      font.embedded.base=font:Verdana,size:11\r
+#      font.embedded.comment=font:Comic Sans MS,size:10\r
+#      font.monospace=font:Courier New,size:12\r
+#      font.vbs=font:Lucida Sans Unicode,size:12\r
+#   font.js=$(font.comment)\r
 \r
 # Old GTK+ font settings are faster but not antialiased\r
        #~ font.base=font:lucidatypewriter,size:12\r
@@ -443,58 +451,59 @@ if PLAT_MAC
        #~ font.monospace=font:courier,size:12\r
        #~ font.vbs=font:new century schoolbook,size:12\r
 \r
-# Give symbolic names to the set of colours used in the standard styles.\r
-colour.code.comment.box=fore:#00FF00\r
-colour.code.comment.line=fore:#00FF00\r
-colour.code.comment.doc=fore:#3F703F\r
-colour.code.comment.nested=fore:#A0C0A0\r
-colour.text.comment=fore:#0000FF,back:#FFFFFF\r
-colour.other.comment=fore:#00FF00\r
-colour.embedded.comment=back:#E0EEFF\r
-colour.embedded.js=back:#F0F0FF\r
-colour.notused=back:#FF0000\r
-#couleur des nombres\r
-colour.number=fore:#FF00FF\r
-#couleur des instructions du langage\r
-colour.keyword=fore:#FF0000\r
-#couleur chaînes entre guillemets\r
-colour.string=fore:#00FFFF\r
-colour.char=fore:#7F7F7F\r
-colour.operator=fore:#00FF00\r
-colour.preproc=fore:#FF7F00\r
-colour.error=fore:#FFFF00,back:#FF0000\r
-\r
-# Global default styles for all languages\r
-# Default style, black background\r
-style.*.32=back:#000000,fore:#FFFFFF,font:Lucida Console,size:10\r
-# Line number\r
-style.*.33=back:#404040,$(font.base))\r
-# Brace highlight\r
-style.*.34=back:#222222,fore:#8080FF,bold\r
-# Brace incomplete highlight\r
-style.*.35=back:#222222,fore:#FF0000,bold\r
-# Control characters\r
-style.*.36=\r
-# Indentation guides\r
-style.*.37=fore:#C0C0C0,back:#FFFFFF\r
-\r
-# Printing - only works on Windows\r
-if PLAT_WIN\r
-       #print.colour.mode=1\r
-       print.magnification=-1\r
-       # Setup: left, right, top, bottom margins, in local units:\r
-       # hundredths of millimeters or thousandths of inches\r
-       print.margins=2000,1000,1000,1000\r
-       # Header/footer:\r
-       # && = &; &p = current page\r
-       # &f = file name; &F = full path\r
-       # &d = file date; &D = current date\r
-       # &t = file time; &T = full time\r
-       print.header.format=$(FileNameExt) \97 Printed on $(CurrentDate), $(CurrentTime) \97 Page $(CurrentPage)\r
-       print.footer.format=$(FilePath) \97 File date: $(FileDate) \97 File time: $(FileTime)\r
-       # Header/footer style\r
-       print.header.style=font:Arial,size:12,bold\r
-       print.footer.style=font:Arial Narrow,size:10,italics\r
+## Give symbolic names to the set of colours used in the standard styles.\r
+#colour.code.comment.box=fore:#00FF00\r
+#colour.code.comment.line=fore:#00FF00\r
+#colour.code.comment.doc=fore:#3F703F\r
+#colour.code.comment.nested=fore:#A0C0A0\r
+#colour.text.comment=fore:#0000FF,back:#FFFFFF\r
+#colour.other.comment=fore:#00FF00\r
+#colour.embedded.comment=back:#E0EEFF\r
+#colour.embedded.js=back:#F0F0FF\r
+#colour.notused=back:#FF0000\r
+##couleur des nombres\r
+#colour.number=fore:#FF00FF\r
+##couleur des instructions du langage\r
+#colour.keyword=fore:#FF0000\r
+##couleur chaînes entre guillemets\r
+#colour.string=fore:#00FFFF\r
+#colour.char=fore:#7F7F7F\r
+#colour.operator=fore:#00FF00\r
+#colour.preproc=fore:#FF7F00\r
+#colour.error=fore:#FFFF00,back:#FF0000\r
+#\r
+# command or return status\r
+## Global default styles for all languages\r
+## Default style, black background\r
+#style.*.32=back:#000000,fore:#FFFFFF,font:Lucida Console,size:10\r
+## Line number\r
+#style.*.33=back:#404040,$(font.base))\r
+## Brace highlight\r
+#style.*.34=back:#222222,fore:#8080FF,bold\r
+## Brace incomplete highlight\r
+#style.*.35=back:#222222,fore:#FF0000,bold\r
+## Control characters\r
+#style.*.36=\r
+## Indentation guides\r
+#style.*.37=fore:#C0C0C0,back:#FFFFFF\r
+\r
+## Printing - only works on Windows\r
+#if PLAT_WIN\r
+#      #print.colour.mode=1\r
+#      print.magnification=-1\r
+#      # Setup: left, right, top, bottom margins, in local units:\r
+#      # hundredths of millimeters or thousandths of inches\r
+#      print.margins=2000,1000,1000,1000\r
+#      # Header/footer:\r
+#      # && = &; &p = current page\r
+#      # &f = file name; &F = full path\r
+#      # &d = file date; &D = current date\r
+#      # &t = file time; &T = full time\r
+#      print.header.format=$(FileNameExt) \97 Printed on $(CurrentDate), $(CurrentTime) \97 Page $(CurrentPage)\r
+#      print.footer.format=$(FilePath) \97 File date: $(FileDate) \97 File time: $(FileTime)\r
+#      # Header/footer style\r
+#      print.header.style=font:Arial,size:12,bold\r
+#      print.footer.style=font:Arial Narrow,size:10,italics\r
 \r
 # Warnings - only works on Windows and needs to be pointed at files on machine\r
 #if PLAT_WIN\r
@@ -524,12 +533,74 @@ if PLAT_MAC
 \r
 menu.language=\\r
 Text|txt|Shift+F11|\\r
+#Ada|ads||\\r
+#Apache Confi&g|conf||\\r
+Assembler|asm||\\r
+#ASN.1|asn1||\\r
+#Avenue|ave||\\r
+#Baan|bc||\\r
 &Batch|bat||\\r
+#Bullant|ant||\\r
+#&C / C++|c||\\r
+#CMake|cmake||\\r
+#C&#|cs||\\r
+#COBOL|cob||\\r
+#Csound|orc||\\r
+#CSS|css||\\r
+#D|d||\\r
 &Difference|diff||\\r
+#&Eiffel|e||\\r
+#Erlang|erl||\\r
 &Errorlist|err||\\r
+#FlagShip|prg||\\r
+Forth|forth||\\r
+&Fortran|f90||\\r
+#Gap|g||\\r
+#Haskell|hs||\\r
 H&ypertext|html|F12|\\r
+#&InnoSetup|iss||\\r
+#&Java|java||\\r
+#Java&Script|js||\\r
+#&Kix|kix||\\r
+#Lisp|lisp||\\r
+#Lot|lot||\\r
+#Lout|lt||\\r
+#Lu&a|lua||\\r
+#Matlab|m.matlab||\\r
 &Makefile|mak|Ctrl+Shift+F11|\\r
+#MetaPost|mp||\\r
+#MMIXAL|mms||\\r
+#Modula-3|m3||\\r
+#&nnCron crontab|tab||\\r
+#NSIS|nsis||\\r
+#Objective Caml|ml||\\r
+#Octave|m.octave||\\r
+#Opal|impl||\\r
+#Pascal|pas||\\r
+#Pe&rl|pl||\\r
+#P&HP|php||\\r
+#P&LSQL|spec||\\r
+#P&ostScript|ps||\\r
+#P&OV-Ray SDL|pov||\\r
+#PowerShell|ps1||\\r
+#PowerPro|powerpro||\\r
 &Properties|properties||\\r
+#Pytho&n|py||\\r
+#R|R||\\r
+#Reso&urce|rc||\\r
+#Ruby|rb||\\r
+#Shell|sh||\\r
+#S&QL|sql||\\r
+#Specman|e||\\r
+#&TCL|tcl||\\r
+#TeX|tex||\\r
+#&txt2tags|t2t||\\r
+#&VB|vb||\\r
+#VBScr&ipt|vbs||\\r
+#Verilog|v||\\r
+#VHDL|vhd||\\r
+#&XML|xml|$(keyXML)|\\r
+#YAML|yaml||\r
 \r
 # User defined key commands\r
 user.shortcuts=\\r
@@ -545,49 +616,30 @@ Ctrl+PageDown|IDM_NEXTFILE|
 #Next File|IDM_NEXTFILE|\\r
 #Prev File|IDM_PREVFILE|\r
 \r
-if PLAT_WIN\r
-    import \config\asm\r
-    import \config\forth\r
-    import \config\fortran\r
-    import \config\hex\r
-    import \config\others\r
-if PLAT_GTK\r
-FF=$HOME/CloudStation/projets/msp430\r
-export FF\r
-PATH=/usr/local/MSPFlasher:$PATH\r
-export PATH\r
-#    import /home/thoorens/CloudStation/projets/msp430/config/asm\r
-#    import /home/thoorens/CloudStation/projets/msp430/config/forth\r
-#    import /home/thoorens/CloudStation/projets/msp430/config/fortran\r
-#    import /home/thoorens/CloudStation/projets/msp430/config/hex\r
-#    import /home/thoorens/CloudStation/projets/msp430/config/others\r
-\r
-\r
-\r
+#if PLAT_WIN\r
+import A:\projets\msp430\config\asm\r
+import A:\projets\msp430\config\forth\r
+import A:\projets\msp430\config\fortran\r
+import A:\projets\msp430\config\hex\r
+import A:\projets\msp430\config\others\r
 import Z:\config\asm\r
 import Z:\config\forth\r
 import Z:\config\fortran\r
 import Z:\config\hex\r
 import Z:\config\others\r
 \r
+#if PLAT_GTK\r
 import /home/thoorens/CloudStation/projets/msp430/config/asm\r
 import /home/thoorens/CloudStation/projets/msp430/config/forth\r
 import /home/thoorens/CloudStation/projets/msp430/config/fortran\r
 import /home/thoorens/CloudStation/projets/msp430/config/hex\r
 import /home/thoorens/CloudStation/projets/msp430/config/others\r
 \r
-# Error list styles\r
-\r
-style.errorlist.32=fore:#B0B000,$(font.small)\r
-# Default\r
-style.errorlist.0=fore:#FFFFFF\r
-# Microsoft Error\r
-style.errorlist.3=fore:#0080FF\r
-# command or return status\r
-style.errorlist.4=fore:#FF00FF\r
-\r
-# Text matched with find in files and message part of GCC errors\r
-style.errorlist.21=fore:#FF0000\r
+import /home/jean_mi/CloudStation/projets/msp430/config/asm\r
+import /home/jean_mi/CloudStation/projets/msp430/config/forth\r
+import /home/jean_mi/CloudStation/projets/msp430/config/fortran\r
+import /home/jean_mi/CloudStation/projets/msp430/config/hex\r
+import /home/jean_mi/CloudStation/projets/msp430/config/others\r
 \r
 \r
 \r
diff --git a/binaries/CHIPSTICK_FR2433_16MHz_115200.txt b/binaries/CHIPSTICK_FR2433_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..efa21d8
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A0 19
+CA C6 7E C5 84 C5 54 C5 3A C7 28 D7 E0 CF 9A CF
+9A CF B0 C6 6E C7 36 C7 3C 21 E0 20 8E C9 B6 C4
+C4 C4 AA C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+3A C7 28 D7 E0 CF 9A CF 9A CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 00 3D 0E 93 3E 4F
+95 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 AE C6 B2 49
+6C C7 B2 49 34 C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 54 D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3A C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 B4 C8 AC C4 52 C5 7C C7 1E C4 04 1B
+5B 37 6D 00 9E C7 9E C7 1E C4 04 1B 5B 30 6D 00
+9E C7 EA CC B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 7C C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 9E C7 02 CA 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 9E C7 0A C4 40 FF 32 C4
+CA C8 CE C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 10 00 00 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40
+E0 20 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 D0 10 00 86 01 B2 40 00 02 88 01 F2 C3
+82 01 F2 D0 0A 00 82 01 B2 40 E8 01 84 01 39 40
+80 00 18 42 00 18 18 83 FE 23 19 83 FA 23 39 40
+00 10 29 83 89 43 00 20 FC 23 19 42 5E 01 1E 42
+08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 C4
+86 C5 00 00 0C 41 43 43 45 50 54 00 30 40 B0 C6
+08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40
+0E C7 3C 40 1A C7 5D 15 9B 3E 21 52 3A 17 58 42
+0C 05 48 9B 09 20 A2 B3 1C 05 FD 27 B2 40 13 00
+0E 05 E2 D2 22 02 30 41 48 9C 06 2C 78 92 11 20
+2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00
+1E 53 A2 B3 1C 05 FD 27 C2 48 0E 05 30 4D 10 C7
+2D 83 92 B3 1C 05 DB 23 FC 3F 3E 8F 3D 41 92 B3
+1C 05 FD 27 58 42 0C 05 08 4C EB 3F 00 00 06 4B
+45 59 30 40 36 C7 30 12 4C C7 A2 B3 1C 05 FD 27
+B2 40 11 00 0E 05 E2 C2 22 02 30 41 2F 83 8F 4E
+00 00 92 B3 1C 05 FD 27 B0 12 D6 C6 1E 42 0C 05
+30 4D 00 00 08 45 4D 49 54 00 30 40 6E C7 08 4E
+3E 4F C7 3F 64 C7 08 45 43 48 4F 00 B2 40 C2 48
+08 C7 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D 08 C7 30 4D 00 00 08 54 59 50 45 00 0D 12
+3D 40 AE C7 29 4F 8F 4E 00 00 7E 49 DE 3F B0 C7
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 71 22
+F9 98 00 00 6E 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 65 22 9B 24 2E C7 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A C4 00 00 CE C8 C0 C7
+12 CA CC CC B0 C4 3C C8 14 C4 06 5B 54 48 45 4E
+5D 00 C4 C7 1A C8 E0 C7 FE C7 14 C4 06 5B 45 4C
+53 45 5D 00 C4 C7 2C C8 E0 C7 FC C7 1E C4 04 5B
+49 46 5D 00 C4 C7 FE C7 B2 C4 FC C7 1E C4 05 0D
+6B 6F 20 0A 9E C7 9A C4 84 C4 B2 C4 FE C7 EC C7
+0D 5B 54 48 45 4E 5D 00 30 4D 50 C8 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D 5C C8 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 C0 C7 12 CA 7A CA
+1E CC 8E C9 6C C8 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 C0 C7 12 CA 7A CA 9E C8 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D A4 C6 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 C5 05 53 22 00 82 43 C0 21
+0D 12 84 12 0A C4 1E C4 7C CC 0A C4 22 00 12 CA
+12 C9 B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21
+3E 4F 3D 41 30 4D 86 C7 05 2E 22 00 0D 12 84 12
+FC C8 0A C4 9E C7 7C CC 8E C9 00 00 04 3C 23 00
+B2 40 B2 21 B2 21 30 4D F8 C8 02 23 1B 42 BE 21
+2C 4F 2F 83 B0 12 46 C4 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 4A C9 04 23 53 00 0D 12
+84 12 4C C9 86 C9 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D 7A C9 04 23 3E 00 9F 42 B2 21 00 00 3E 40
+B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 94 C9 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 76 C7 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 40 C9 C0 C7
+AE C9 7E C9 AA C8 BC C9 98 C9 9E C7 8E C9 28 C9
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D 00 CA 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 84 CB
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 86 CB 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 3C C9 03 5C 92 42 C2 21 C6 21 30 4D 0D 12
+84 12 84 C4 C0 C7 12 CA B0 C4 56 CD 7A CA 40 CC
+0A 4E 3E 4F 3D 40 5A CC 6D 27 3D 40 34 CC 1A E2
+BC 21 14 24 0E 12 3E 4F 30 41 5C CC 3E 4F 3D 40
+34 CC 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 32 CE 2A 3C 24 CC 02 2C A2 53 C8 21
+1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 7A CC 0F 4C
+49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42
+C8 21 A2 52 C8 21 BA 40 0A C4 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D B6 C9 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D DC C8 0A 41 4C 4C
+4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43
+84 12 1E C4 02 0D 0A 00 9E C7 94 C4 2E CC BC C8
+E6 C8 1E C4 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 C5 32 C4 0A C4 40 FF EE C8 1E C4 09 46 52 41
+4D 20 66 75 6C 6C 08 C5 B2 C4 F2 CC DC CC 0D 41
+42 4F 52 54 22 00 0D 12 84 12 FC C8 0A C4 08 C5
+7C CC 8E C9 0C CA 02 27 0D 12 84 12 C0 C7 12 CA
+7A CA B0 C4 58 CD 20 C9 64 CC 86 C8 07 5B 27 5D
+0D 12 84 12 48 CD 0A C4 0A C4 7C CC 7C CC 8E C9
+5C CD 03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43
+BC 21 30 4D D4 C8 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 C0 C7 12 CA 7A CA B0 C4 58 CD E6 C8
+AC C4 B0 CD 0A C4 0A C4 7C CC 7C CC 0A C4 7C CC
+7C CC 8E C9 00 00 02 3A 30 12 06 CE 92 B3 C8 21
+A2 63 C8 21 0D 12 84 12 C0 C7 12 CA CE CD 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52
+82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12
+1E C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 C5 72 CD 03 3B 82 93 BC 21 F4 26 0D 12
+84 12 0A C4 8E C9 7C CC 18 CE 74 CD 8E C9 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3
+00 00 30 4D C6 CC 0C 43 52 45 41 54 45 00 B0 12
+BC CD BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 98 C7
+0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D B6 CD 0E 3A 4E 4F 4E 41
+4D 45 30 12 06 CE 2F 83 8F 4E 00 00 1A 42 C8 21
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F 50 CE
+05 49 53 00 0D 12 82 93 BC 21 08 20 84 12 48 CD
+D2 CE 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 60 CD
+0A C4 D4 CE 7C CC 8E C9 66 CE 08 43 4F 44 45 00
+B0 12 BC CD A2 82 C8 21 61 3C A8 C9 0E 48 44 4E
+43 4F 44 45 B2 40 C0 CF CC 21 F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 18 CE 1E CF 3D 41
+92 42 D0 21 CC 21 5D 3C EA CE 0E 43 4F 44 45 4E
+4E 4D 30 12 F4 CE B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 21 1A 42 C8 21 EF 3F FC CE 0B 48
+49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF
+82 43 BC 21 B9 3F 88 CF B2 40 9A CF D0 21 82 4E
+CE 21 30 40 20 C9 85 12 86 CF 86 CD 2E CD 18 D0
+2A CF 80 CE CA C9 74 CA 46 CD 6E CF C0 CE 9A CE
+36 CE 8E CC A2 D0 CC CA 00 00 00 00 85 12 86 CF
+1C D7 A0 D5 00 D7 C8 D4 24 D5 72 D5 4E D6 5A D6
+EA D3 0E D5 00 00 00 00 5C CF DA D2 00 00 76 D6
+BA CF B2 40 9A CF CE 21 82 43 D0 21 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18
+B0 12 EE CF 30 4D 00 D0 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 21 B0 12 EE CF 1A 42
+CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 08 C6 FE FF 29 83 B9 40 F2 C5
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 E4 FF
+3B 40 10 00 3A 40 3A 18 B0 12 F2 CF 82 43 4A 18
+C7 3F 94 D0 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+7C CD 0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12
+84 12 C0 C7 12 CA 7A CA AC C4 C0 D0 B4 C8 54 CC
+C2 D0 3E 4F 3D 41 B2 41 C6 21 B0 12 BC CD BA 40
+85 12 FC FF BA 40 92 D0 FE FF 28 83 8A 48 00 00
+BA 40 82 C4 02 00 A2 52 C8 21 18 42 B4 21 19 42
+B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21
+84 12 12 CA 7A CA AC C4 2C D1 0C D1 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 92 D0
+00 00 01 20 3E 52 2E 83 21 53 30 41 24 CB AC C4
+34 D1 28 D1 36 D1 B2 41 C6 21 30 41 92 83 C6 21
+3E 40 28 00 0A 4E 3D 15 B0 12 FC D0 15 20 3E 40
+2B 00 B0 12 FC D0 06 20 3E 40 2D 00 B0 12 FC D0
+92 83 C6 21 0E 12 1E 41 02 00 84 12 12 CA 24 CB
+AC C4 58 CD 76 D1 3E 51 3A 17 30 41 B0 12 3C D1
+19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00
+92 53 C6 21 1A 42 C6 21 3D 15 84 12 12 CA 24 CB
+AC C4 AE D1 A6 D1 3E 90 10 00 E6 2B 7C 2D B0 D1
+A2 41 C6 21 E1 3F 03 20 B0 12 94 D1 43 3C 7A 90
+23 00 24 20 B0 12 44 D1 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 C8 21
+A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 44 D1 F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 90 D1 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 94 D1 92 92 C2 21 C6 21 02 24
+92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+7C D1 F2 3F 03 20 B0 12 94 D1 F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 7C D1
+EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00
+19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF
+19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A C4 00 13 7C CC
+8E C9 0A C4 2C 00 72 D2 B6 D1 C0 C7 7C D2 54 D2
+C2 D2 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 B2 D2 00 40 CE D2 0A 4D 4F 56 2E 42
+85 12 B2 D2 40 40 00 00 06 41 44 44 85 12 B2 D2
+00 50 E8 D2 0A 41 44 44 2E 42 85 12 B2 D2 40 50
+F4 D2 08 41 44 44 43 00 85 12 B2 D2 00 60 02 D3
+0C 41 44 44 43 2E 42 00 85 12 B2 D2 40 60 3A CF
+08 53 55 42 43 00 85 12 B2 D2 00 70 20 D3 0C 53
+55 42 43 2E 42 00 85 12 B2 D2 40 70 2E D3 06 53
+55 42 85 12 B2 D2 00 80 3E D3 0A 53 55 42 2E 42
+85 12 B2 D2 40 80 4A D3 06 43 4D 50 85 12 B2 D2
+00 90 58 D3 0A 43 4D 50 2E 42 85 12 B2 D2 40 90
+00 00 08 44 41 44 44 00 85 12 B2 D2 00 A0 72 D3
+0C 44 41 44 44 2E 42 00 85 12 B2 D2 40 A0 A0 D2
+06 42 49 54 85 12 B2 D2 00 B0 90 D3 0A 42 49 54
+2E 42 85 12 B2 D2 40 B0 9C D3 06 42 49 43 85 12
+B2 D2 00 C0 AA D3 0A 42 49 43 2E 42 85 12 B2 D2
+40 C0 B6 D3 06 42 49 53 85 12 B2 D2 00 D0 C4 D3
+0A 42 49 53 2E 42 85 12 B2 D2 40 D0 00 00 06 58
+4F 52 85 12 B2 D2 00 E0 DE D3 0A 58 4F 52 2E 42
+85 12 B2 D2 40 E0 10 D3 06 41 4E 44 85 12 B2 D2
+00 F0 F8 D3 0A 41 4E 44 2E 42 85 12 B2 D2 40 F0
+C0 C7 72 D2 B6 D1 18 D4 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F D0 D3 06 52 52 43 85 12
+10 D4 00 10 2A D4 0A 52 52 43 2E 42 85 12 10 D4
+40 10 64 D3 08 53 57 50 42 00 85 12 10 D4 80 10
+36 D4 06 52 52 41 85 12 10 D4 00 11 52 D4 0A 52
+52 41 2E 42 85 12 10 D4 40 11 44 D4 06 53 58 54
+85 12 10 D4 80 11 00 00 08 50 55 53 48 00 85 12
+10 D4 00 12 78 D4 0C 50 55 53 48 2E 42 00 85 12
+10 D4 40 12 6C D4 08 43 41 4C 4C 00 85 12 10 D4
+80 12 1A 53 0E 4A 84 12 02 CA 1E C4 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 C5 96 D4 06 53
+3E 3D 86 12 00 38 BE D4 04 53 3C 00 86 12 00 34
+86 D4 06 30 3E 3D 86 12 00 30 D2 D4 04 30 3C 00
+86 12 00 30 0E CF 04 55 3C 00 86 12 00 2C E6 D4
+06 55 3E 3D 86 12 00 28 DC D4 06 30 3C 3E 86 12
+00 24 FA D4 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A
+30 4D 80 D3 08 54 48 45 4E 00 1A 42 C8 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D F0 D4 08 45 4C 53 45 00 1A 42
+C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A
+00 00 E3 3F 5E D4 0A 42 45 47 49 4E 30 40 32 C4
+48 D5 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D 04 D4
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 12 D5 A8 C8 8E C9
+66 D5 0C 52 45 50 45 41 54 00 0D 12 84 12 A6 D5
+2A D5 8E C9 D6 D5 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 21 CB 2F 98 42 C8 21 00 00 30 4D C2 D5 06 42
+57 31 85 12 D4 D5 00 00 EE D5 06 42 57 32 85 12
+D4 D5 00 00 FA D5 06 42 57 33 85 12 D4 D5 00 00
+12 D6 3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92
+C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 10 D6 00 00
+36 D6 06 46 57 32 85 12 10 D6 00 00 42 D6 06 46
+57 33 85 12 10 D6 00 00 B0 D5 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 48 CD
+54 CC 8E C9 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F 7C D2 0A C4 2C 00 12 CA 24 CB AC C4 58 CD
+C0 C7 72 D2 54 D2 A8 D6 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E 06 D6 08 52 52 43 4D 00 85 12 92 D6
+50 00 D6 D6 08 52 52 41 4D 00 85 12 92 D6 50 01
+E4 D6 08 52 4C 41 4D 00 85 12 92 D6 50 02 F2 D6
+08 52 52 55 4D 00 85 12 92 D6 50 03 04 D5 0A 50
+55 53 48 4D 85 12 92 D6 00 15 0E D7 08 50 4F 50
+4D 00 85 12 92 D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 CA C6 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 08 C6
+q
diff --git a/binaries/CHIPSTICK_FR2433_16MHz_4MBds.txt b/binaries/CHIPSTICK_FR2433_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..34e1696
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A0 19
+CA C6 7E C5 84 C5 54 C5 3A C7 28 D7 E0 CF 9A CF
+9A CF B0 C6 6E C7 36 C7 3C 21 E0 20 8E C9 B6 C4
+C4 C4 AA C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+3A C7 28 D7 E0 CF 9A CF 9A CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 00 3D 0E 93 3E 4F
+95 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 AE C6 B2 49
+6C C7 B2 49 34 C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 54 D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3A C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 B4 C8 AC C4 52 C5 7C C7 1E C4 04 1B
+5B 37 6D 00 9E C7 9E C7 1E C4 04 1B 5B 30 6D 00
+9E C7 EA CC B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 7C C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 9E C7 02 CA 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 9E C7 0A C4 40 FF 32 C4
+CA C8 CE C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 10 00 00 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40
+E0 20 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 D0 10 00 86 01 B2 40 00 02 88 01 F2 C3
+82 01 F2 D0 0A 00 82 01 B2 40 E8 01 84 01 39 40
+80 00 18 42 00 18 18 83 FE 23 19 83 FA 23 39 40
+00 10 29 83 89 43 00 20 FC 23 19 42 5E 01 1E 42
+08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 C4
+86 C5 00 00 0C 41 43 43 45 50 54 00 30 40 B0 C6
+08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40
+0E C7 3C 40 1A C7 5D 15 9B 3E 21 52 3A 17 58 42
+0C 05 48 9B 09 20 A2 B3 1C 05 FD 27 B2 40 13 00
+0E 05 E2 D2 22 02 30 41 48 9C 06 2C 78 92 11 20
+2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00
+1E 53 A2 B3 1C 05 FD 27 C2 48 0E 05 30 4D 10 C7
+2D 83 92 B3 1C 05 DB 23 FC 3F 3E 8F 3D 41 92 B3
+1C 05 FD 27 58 42 0C 05 08 4C EB 3F 00 00 06 4B
+45 59 30 40 36 C7 30 12 4C C7 A2 B3 1C 05 FD 27
+B2 40 11 00 0E 05 E2 C2 22 02 30 41 2F 83 8F 4E
+00 00 92 B3 1C 05 FD 27 B0 12 D6 C6 1E 42 0C 05
+30 4D 00 00 08 45 4D 49 54 00 30 40 6E C7 08 4E
+3E 4F C7 3F 64 C7 08 45 43 48 4F 00 B2 40 C2 48
+08 C7 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D 08 C7 30 4D 00 00 08 54 59 50 45 00 0D 12
+3D 40 AE C7 29 4F 8F 4E 00 00 7E 49 DE 3F B0 C7
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 71 22
+F9 98 00 00 6E 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 65 22 9B 24 2E C7 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A C4 00 00 CE C8 C0 C7
+12 CA CC CC B0 C4 3C C8 14 C4 06 5B 54 48 45 4E
+5D 00 C4 C7 1A C8 E0 C7 FE C7 14 C4 06 5B 45 4C
+53 45 5D 00 C4 C7 2C C8 E0 C7 FC C7 1E C4 04 5B
+49 46 5D 00 C4 C7 FE C7 B2 C4 FC C7 1E C4 05 0D
+6B 6F 20 0A 9E C7 9A C4 84 C4 B2 C4 FE C7 EC C7
+0D 5B 54 48 45 4E 5D 00 30 4D 50 C8 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D 5C C8 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 C0 C7 12 CA 7A CA
+1E CC 8E C9 6C C8 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 C0 C7 12 CA 7A CA 9E C8 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D A4 C6 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 C5 05 53 22 00 82 43 C0 21
+0D 12 84 12 0A C4 1E C4 7C CC 0A C4 22 00 12 CA
+12 C9 B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21
+3E 4F 3D 41 30 4D 86 C7 05 2E 22 00 0D 12 84 12
+FC C8 0A C4 9E C7 7C CC 8E C9 00 00 04 3C 23 00
+B2 40 B2 21 B2 21 30 4D F8 C8 02 23 1B 42 BE 21
+2C 4F 2F 83 B0 12 46 C4 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 4A C9 04 23 53 00 0D 12
+84 12 4C C9 86 C9 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D 7A C9 04 23 3E 00 9F 42 B2 21 00 00 3E 40
+B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 94 C9 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 76 C7 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 40 C9 C0 C7
+AE C9 7E C9 AA C8 BC C9 98 C9 9E C7 8E C9 28 C9
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D 00 CA 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 84 CB
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 86 CB 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 3C C9 03 5C 92 42 C2 21 C6 21 30 4D 0D 12
+84 12 84 C4 C0 C7 12 CA B0 C4 56 CD 7A CA 40 CC
+0A 4E 3E 4F 3D 40 5A CC 6D 27 3D 40 34 CC 1A E2
+BC 21 14 24 0E 12 3E 4F 30 41 5C CC 3E 4F 3D 40
+34 CC 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 32 CE 2A 3C 24 CC 02 2C A2 53 C8 21
+1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 7A CC 0F 4C
+49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42
+C8 21 A2 52 C8 21 BA 40 0A C4 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D B6 C9 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D DC C8 0A 41 4C 4C
+4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43
+84 12 1E C4 02 0D 0A 00 9E C7 94 C4 2E CC BC C8
+E6 C8 1E C4 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 C5 32 C4 0A C4 40 FF EE C8 1E C4 09 46 52 41
+4D 20 66 75 6C 6C 08 C5 B2 C4 F2 CC DC CC 0D 41
+42 4F 52 54 22 00 0D 12 84 12 FC C8 0A C4 08 C5
+7C CC 8E C9 0C CA 02 27 0D 12 84 12 C0 C7 12 CA
+7A CA B0 C4 58 CD 20 C9 64 CC 86 C8 07 5B 27 5D
+0D 12 84 12 48 CD 0A C4 0A C4 7C CC 7C CC 8E C9
+5C CD 03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43
+BC 21 30 4D D4 C8 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 C0 C7 12 CA 7A CA B0 C4 58 CD E6 C8
+AC C4 B0 CD 0A C4 0A C4 7C CC 7C CC 0A C4 7C CC
+7C CC 8E C9 00 00 02 3A 30 12 06 CE 92 B3 C8 21
+A2 63 C8 21 0D 12 84 12 C0 C7 12 CA CE CD 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52
+82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12
+1E C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 C5 72 CD 03 3B 82 93 BC 21 F4 26 0D 12
+84 12 0A C4 8E C9 7C CC 18 CE 74 CD 8E C9 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3
+00 00 30 4D C6 CC 0C 43 52 45 41 54 45 00 B0 12
+BC CD BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 98 C7
+0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D B6 CD 0E 3A 4E 4F 4E 41
+4D 45 30 12 06 CE 2F 83 8F 4E 00 00 1A 42 C8 21
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F 50 CE
+05 49 53 00 0D 12 82 93 BC 21 08 20 84 12 48 CD
+D2 CE 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 60 CD
+0A C4 D4 CE 7C CC 8E C9 66 CE 08 43 4F 44 45 00
+B0 12 BC CD A2 82 C8 21 61 3C A8 C9 0E 48 44 4E
+43 4F 44 45 B2 40 C0 CF CC 21 F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 18 CE 1E CF 3D 41
+92 42 D0 21 CC 21 5D 3C EA CE 0E 43 4F 44 45 4E
+4E 4D 30 12 F4 CE B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 21 1A 42 C8 21 EF 3F FC CE 0B 48
+49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF
+82 43 BC 21 B9 3F 88 CF B2 40 9A CF D0 21 82 4E
+CE 21 30 40 20 C9 85 12 86 CF 86 CD 2E CD 18 D0
+2A CF 80 CE CA C9 74 CA 46 CD 6E CF C0 CE 9A CE
+36 CE 8E CC A2 D0 CC CA 00 00 00 00 85 12 86 CF
+1C D7 A0 D5 00 D7 C8 D4 24 D5 72 D5 4E D6 5A D6
+EA D3 0E D5 00 00 00 00 5C CF DA D2 00 00 76 D6
+BA CF B2 40 9A CF CE 21 82 43 D0 21 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18
+B0 12 EE CF 30 4D 00 D0 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 21 B0 12 EE CF 1A 42
+CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 08 C6 FE FF 29 83 B9 40 F2 C5
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 E4 FF
+3B 40 10 00 3A 40 3A 18 B0 12 F2 CF 82 43 4A 18
+C7 3F 94 D0 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+7C CD 0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12
+84 12 C0 C7 12 CA 7A CA AC C4 C0 D0 B4 C8 54 CC
+C2 D0 3E 4F 3D 41 B2 41 C6 21 B0 12 BC CD BA 40
+85 12 FC FF BA 40 92 D0 FE FF 28 83 8A 48 00 00
+BA 40 82 C4 02 00 A2 52 C8 21 18 42 B4 21 19 42
+B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21
+84 12 12 CA 7A CA AC C4 2C D1 0C D1 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 92 D0
+00 00 01 20 3E 52 2E 83 21 53 30 41 24 CB AC C4
+34 D1 28 D1 36 D1 B2 41 C6 21 30 41 92 83 C6 21
+3E 40 28 00 0A 4E 3D 15 B0 12 FC D0 15 20 3E 40
+2B 00 B0 12 FC D0 06 20 3E 40 2D 00 B0 12 FC D0
+92 83 C6 21 0E 12 1E 41 02 00 84 12 12 CA 24 CB
+AC C4 58 CD 76 D1 3E 51 3A 17 30 41 B0 12 3C D1
+19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00
+92 53 C6 21 1A 42 C6 21 3D 15 84 12 12 CA 24 CB
+AC C4 AE D1 A6 D1 3E 90 10 00 E6 2B 7C 2D B0 D1
+A2 41 C6 21 E1 3F 03 20 B0 12 94 D1 43 3C 7A 90
+23 00 24 20 B0 12 44 D1 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 C8 21
+A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 44 D1 F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 90 D1 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 94 D1 92 92 C2 21 C6 21 02 24
+92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+7C D1 F2 3F 03 20 B0 12 94 D1 F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 7C D1
+EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00
+19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF
+19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A C4 00 13 7C CC
+8E C9 0A C4 2C 00 72 D2 B6 D1 C0 C7 7C D2 54 D2
+C2 D2 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 B2 D2 00 40 CE D2 0A 4D 4F 56 2E 42
+85 12 B2 D2 40 40 00 00 06 41 44 44 85 12 B2 D2
+00 50 E8 D2 0A 41 44 44 2E 42 85 12 B2 D2 40 50
+F4 D2 08 41 44 44 43 00 85 12 B2 D2 00 60 02 D3
+0C 41 44 44 43 2E 42 00 85 12 B2 D2 40 60 3A CF
+08 53 55 42 43 00 85 12 B2 D2 00 70 20 D3 0C 53
+55 42 43 2E 42 00 85 12 B2 D2 40 70 2E D3 06 53
+55 42 85 12 B2 D2 00 80 3E D3 0A 53 55 42 2E 42
+85 12 B2 D2 40 80 4A D3 06 43 4D 50 85 12 B2 D2
+00 90 58 D3 0A 43 4D 50 2E 42 85 12 B2 D2 40 90
+00 00 08 44 41 44 44 00 85 12 B2 D2 00 A0 72 D3
+0C 44 41 44 44 2E 42 00 85 12 B2 D2 40 A0 A0 D2
+06 42 49 54 85 12 B2 D2 00 B0 90 D3 0A 42 49 54
+2E 42 85 12 B2 D2 40 B0 9C D3 06 42 49 43 85 12
+B2 D2 00 C0 AA D3 0A 42 49 43 2E 42 85 12 B2 D2
+40 C0 B6 D3 06 42 49 53 85 12 B2 D2 00 D0 C4 D3
+0A 42 49 53 2E 42 85 12 B2 D2 40 D0 00 00 06 58
+4F 52 85 12 B2 D2 00 E0 DE D3 0A 58 4F 52 2E 42
+85 12 B2 D2 40 E0 10 D3 06 41 4E 44 85 12 B2 D2
+00 F0 F8 D3 0A 41 4E 44 2E 42 85 12 B2 D2 40 F0
+C0 C7 72 D2 B6 D1 18 D4 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F D0 D3 06 52 52 43 85 12
+10 D4 00 10 2A D4 0A 52 52 43 2E 42 85 12 10 D4
+40 10 64 D3 08 53 57 50 42 00 85 12 10 D4 80 10
+36 D4 06 52 52 41 85 12 10 D4 00 11 52 D4 0A 52
+52 41 2E 42 85 12 10 D4 40 11 44 D4 06 53 58 54
+85 12 10 D4 80 11 00 00 08 50 55 53 48 00 85 12
+10 D4 00 12 78 D4 0C 50 55 53 48 2E 42 00 85 12
+10 D4 40 12 6C D4 08 43 41 4C 4C 00 85 12 10 D4
+80 12 1A 53 0E 4A 84 12 02 CA 1E C4 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 C5 96 D4 06 53
+3E 3D 86 12 00 38 BE D4 04 53 3C 00 86 12 00 34
+86 D4 06 30 3E 3D 86 12 00 30 D2 D4 04 30 3C 00
+86 12 00 30 0E CF 04 55 3C 00 86 12 00 2C E6 D4
+06 55 3E 3D 86 12 00 28 DC D4 06 30 3C 3E 86 12
+00 24 FA D4 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A
+30 4D 80 D3 08 54 48 45 4E 00 1A 42 C8 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D F0 D4 08 45 4C 53 45 00 1A 42
+C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A
+00 00 E3 3F 5E D4 0A 42 45 47 49 4E 30 40 32 C4
+48 D5 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D 04 D4
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 12 D5 A8 C8 8E C9
+66 D5 0C 52 45 50 45 41 54 00 0D 12 84 12 A6 D5
+2A D5 8E C9 D6 D5 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 21 CB 2F 98 42 C8 21 00 00 30 4D C2 D5 06 42
+57 31 85 12 D4 D5 00 00 EE D5 06 42 57 32 85 12
+D4 D5 00 00 FA D5 06 42 57 33 85 12 D4 D5 00 00
+12 D6 3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92
+C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 10 D6 00 00
+36 D6 06 46 57 32 85 12 10 D6 00 00 42 D6 06 46
+57 33 85 12 10 D6 00 00 B0 D5 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 48 CD
+54 CC 8E C9 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F 7C D2 0A C4 2C 00 12 CA 24 CB AC C4 58 CD
+C0 C7 72 D2 54 D2 A8 D6 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E 06 D6 08 52 52 43 4D 00 85 12 92 D6
+50 00 D6 D6 08 52 52 41 4D 00 85 12 92 D6 50 01
+E4 D6 08 52 4C 41 4D 00 85 12 92 D6 50 02 F2 D6
+08 52 52 55 4D 00 85 12 92 D6 50 03 04 D5 0A 50
+55 53 48 4D 85 12 92 D6 00 15 0E D7 08 50 4F 50
+4D 00 85 12 92 D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 CA C6 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 08 C6
+q
index 2b62606..4261f56 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF E6 D7 F2 CF 34 01
-10 00 41 07 B6 C5 AA C4 B8 C5 8C C5 84 C6 E6 D7
-F2 CF 72 C6 82 C7 00 C7 DC C6 3C 21 50 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 03
+C4 C6 56 C5 56 C5 58 C5 44 C5 04 D7 BC CF 76 CF
+76 CF B2 C6 36 C7 0E C7 3C 21 E0 20 6A C9 B6 C4
+C4 C4 86 C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 04 D7 BC CF 76 CF 76 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 70 C6 B2 49 80 C7 B2 49 FE C6 B2 49 DA C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BE D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 D0 C7 18 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4C C7 0A C4 02 18 D0 C7
-C6 C8 98 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4C C7 90 C8 4C C7
-14 C4 04 1B 5B 30 6D 00 4C C7 18 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 F2 B0 10 00 00 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00
-B0 12 8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4
-07 0D 0A 1B 5B 37 6D 40 4C C7 0A C4 02 18 D0 C7
-C6 C8 0A C4 23 00 FC C6 C6 C8 14 C4 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 4C C7 0A C4 40 FF 28 C4 C4 C7
-90 C8 14 C4 0A 62 79 74 65 73 20 66 72 65 65 00
-3A C4 7E C5 00 00 06 41 43 43 45 50 54 00 30 40
-72 C6 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05
-B7 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 01 3D 0E 93 3E 4F
+83 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B0 C6 B2 49
+34 C7 B2 49 0C C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 30 D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 90 C8 AC C4
+42 C5 4E C7 1E C4 05 1B 5B 37 6D 40 7A C7 0A C4
+02 18 B2 C8 DE C9 7A C7 1E C4 04 1B 5B 30 6D 00
+7A C7 C6 CC 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 4E C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 7A C7 0A C4 02 18 B2 C8 DE C9 0A C4 23 00
+32 C7 DE C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+7A C7 0A C4 40 FF 32 C4 A6 C8 AA C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+10 00 00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+CC 01 31 40 E0 20 3F 40 80 20 B2 43 02 02 B2 D3
+06 02 D2 43 24 02 F2 D3 26 02 F2 40 FD 00 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 D0 10 00 86 01 B2 40 00 02
+88 01 F2 C3 82 01 F2 D0 0A 00 82 01 B2 40 E8 01
+84 01 39 40 80 00 18 42 00 18 18 83 FE 23 19 83
+FA 23 39 40 00 10 29 83 89 43 00 20 FC 23 1E 42
+08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01 B0 12
+D0 C4 80 C5 00 00 0C 41 43 43 45 50 54 00 30 40
+B2 C6 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
+3D 15 9E 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05
+97 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B
 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC C6 2F 83 8F 4E
-00 00 58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42
-4C 05 30 4D 00 00 04 45 4D 49 54 00 30 40 00 C7
-08 4E 3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D
-F6 C6 04 45 43 48 4F 00 B2 40 C2 48 0A C7 82 43
-DE 21 38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A C7 92 43 DE 21
-28 42 F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 68 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 FE C6 6A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40
-82 C7 0D 12 84 12 14 C4 02 0D 0A 00 4C C7 50 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 66 C6 01 40
-2E 4E 30 4D CE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 7A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 0A C8 02 23 53 00 0D 12
-84 12 0C C8 46 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 3A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 46 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-00 C8 3E C8 EE C4 7E C8 5A C8 4C C7 04 CC FC C6
-50 C8 2E C7 01 2E 0E 93 E3 37 38 43 E2 3F 78 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-4A CB 0A C4 22 00 1C C9 EA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-C4 C8 82 2E 22 00 0D 12 84 12 D4 C8 0A C4 4C C7
-4A CB 50 C8 FA C5 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 00 00 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
+F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F
+08 4C 1B 3C 00 00 06 4B 45 59 30 40 0E C7 58 43
+B0 12 46 C5 2F 83 8F 4E 00 00 92 B3 6C 05 FD 27
+1E 42 4C 05 B0 12 44 C5 30 4D 00 00 08 45 4D 49
+54 00 30 40 36 C7 08 4E 3E 4F A2 B3 6C 05 FD 27
+C2 48 4E 05 30 4D 2C C7 08 45 43 48 4F 00 B2 40
+C2 48 40 C7 38 40 05 00 B0 12 46 C5 30 4D 00 00
+0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 40 C7 28 42
+F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40 8A C7
+29 4F 8F 4E 00 00 7E 49 D4 3F 8C C7 2D 83 2F 83
+5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00
+0C 4E 38 4F 3C 9F 39 4F 3E 4F 83 22 F9 98 00 00
+80 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F
+1E 83 77 22 9B 24 06 C7 0D 5B 45 4C 53 45 5D 00
+0D 12 84 12 0A C4 00 00 AA C8 9C C7 EE C9 A8 CC
+B0 C4 18 C8 14 C4 06 5B 54 48 45 4E 5D 00 A0 C7
+F6 C7 BC C7 DA C7 14 C4 06 5B 45 4C 53 45 5D 00
+A0 C7 08 C8 BC C7 D8 C7 1E C4 04 5B 49 46 5D 00
+A0 C7 DA C7 B2 C4 D8 C7 1E C4 05 0D 6B 6F 20 0A
+7A C7 9A C4 84 C4 B2 C4 DA C7 C8 C7 0D 5B 54 48
+45 4E 5D 00 30 4D 2C C8 09 5B 49 46 5D 00 0E 93
+3E 4F C6 27 30 4D 38 C8 13 5B 44 45 46 49 4E 45
+44 5D 0D 12 84 12 9C C7 EE C9 56 CA FA CB 6A C9
+48 C8 17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
+84 12 9C C7 EE C9 56 CA 7A C8 3D 41 2F 53 1E 83
+0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D
+8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 20
+0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00
+02 40 2E 4E 30 4D A6 C6 02 21 BE 4F 00 00 3E 4F
+30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3
+30 4D E0 C5 05 53 22 00 82 43 C0 21 0D 12 84 12
+0A C4 1E C4 58 CC 0A C4 22 00 EE C9 EE C8 B2 40
+20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F 3D 41
+30 4D 60 C7 05 2E 22 00 0D 12 84 12 D8 C8 0A C4
+7A C7 58 CC 6A C9 00 00 04 3C 23 00 B2 40 B2 21
+B2 21 30 4D D4 C8 02 23 1B 42 BE 21 2C 4F 2F 83
+B0 12 46 C4 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 26 C9 04 23 53 00 0D 12 84 12 28 C9
+62 C9 2D 83 09 DE 09 93 E1 23 3D 41 30 4D 56 C9
+04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F
+70 C9 08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00
+D2 33 30 4D 48 C7 04 55 2E 00 0C 43 2F 83 8F 4E
+00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3
+9F 53 00 00 0E 63 84 12 1C C9 9C C7 8A C9 5A C9
+86 C8 98 C9 74 C9 7A C7 6A C9 04 C9 02 2E 0E 93
+E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40
+C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24
+7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00 00 00
+04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98
+0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B
+7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21 82 48
+C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D 00 00
+08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58
+2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11
+68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
+FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83
+8F 4C 00 00 30 4D DC C9 0E 3E 4E 55 4D 42 45 52
+1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04
+6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50
+0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 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 9E CA
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F A0 CA
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 48 CB 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 56 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 6A C8 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C4 04 CC 1C C9 C0 CB
-9C 26 3D 40 C8 CB DE 3E CA CB 0A 4E 3E 4F 3D 40
-E4 CB 36 27 3D 40 BA CB 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 E6 CB 3E 4F 3D 40 BA CB BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 86 CD
-CC 3F EE CB 86 12 20 00 D6 C7 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 7E C7
-BC C4 B4 CB B4 C7 E6 C7 14 C4 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4
-EE C7 14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C5 3A C4 2E CC 0A CC 86 41 42 4F 52 54 22 00
-0D 12 84 12 D4 C8 0A C4 2A C5 4A CB 50 C8 7E C9
-01 27 0D 12 84 12 04 CC 1C C9 84 C9 34 C4 02 CC
-50 C8 00 00 83 5B 27 5D 0D 12 84 12 82 CC 0A C4
-0A C4 4A CB 4A CB 50 C8 94 CC 81 5B 82 43 BE 21
-30 4D FC C7 01 5D B2 43 BE 21 30 4D B4 CC 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 04 CC 1C C9 84 C9 98 C7
-34 C4 02 CC E6 C7 34 C4 F6 CC 0A C4 0A C4 4A CB
-4A CB 0A C4 4A CB 4A CB 50 C8 AA CC 01 3A 30 12
-46 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 04 CC
-1C C9 14 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C5 FC CC 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A C4 50 C8 4A CB 58 CD AC CC
-50 C8 AA CB 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D 94 CB 06 43 52 45
-41 54 45 00 B0 12 02 CD BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F BC CD 04 43 4F 44 45 00 B0 12 02 CD
-A2 82 C6 21 0D 12 84 12 F4 CF CE CF 50 C8 A4 CD
-07 48 44 4E 43 4F 44 45 B2 40 D2 CF DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 58 CD
-0E D0 2C D0 50 C8 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 0E D0 2C D0 50 C8
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F F0 CD 85 48 49 32 4C 4F 0D 12 84 12 28 C4
-9C CF 4A CB AC CC E4 CD 50 C8 8A CD 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 6C CE 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C4 00 00 C8 C7 04 CC 1C C9
-9A CB 90 C7 34 C4 04 CF 9E C7 14 C4 06 5B 54 48
-45 4E 5D 00 76 CE DE CE 9A CE BC CE 50 C8 9E C7
-14 C4 06 5B 45 4C 53 45 5D 00 76 CE F4 CE 9A CE
-BA CE 50 C8 14 C4 04 5B 49 46 5D 00 76 CE BC CE
-3A C4 BA CE 72 C7 14 C4 05 0D 0A 6B 6F 20 4C C7
-BC C4 AC C4 3A C4 BC CE AA CE 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 1A CF 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 04 CC 1C C9
-84 C9 28 CF 50 C8 2E CF 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 38 CF E0 C7 50 C8 60 CF
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5C CB
-06 4D 41 52 4B 45 52 00 B0 12 02 CD BA 40 85 12
-FC FF BA 40 5E CF FE FF 28 83 8A 48 00 00 BA 40
-AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A C4 CA 21 D8 C7 50 C8 85 12 A0 CF 68 CC D6 CD
-12 C7 80 CC 54 CE D4 C6 70 CF 02 C9 98 D0 AC D0
-8C C8 16 C9 00 00 48 CF BE CC E4 C9 00 00 85 12
-A0 CF 5C D6 C2 D6 04 D6 12 D7 CA D5 00 00 96 D3
-00 00 DA D7 BE D7 2E D6 6C D6 A6 D4 00 00 00 00
-2E D7 CC CF 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D A8 CF 26 D0 2C D0 3C D0 1A 42 20 18
-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
-CA CC 09 50 57 52 5F 53 54 41 54 45 85 12 34 D0
-E6 D7 D0 C8 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 80 D0 F3 3F 72 D0 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 80 D0 30 4D 84 D0 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 0A D1 FE FF 29 83
-B9 40 E2 C5 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 E4 C5 B2 49 FA C4 B2 49 02 C4 B2 49 02 C6
-B2 49 E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 43 02 02 B2 D3 06 02 D2 43 24 02 F2 D3 26 02
-F2 40 FD 00 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 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 38 40 17 11 18 83 FE 23
-19 83 FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01
-B0 12 F8 C4 00 C6 38 40 C0 21 0A 4E 39 48 2E 48
-09 5E 1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83
-0A 4E 2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12
-C4 21 84 12 1C C9 84 C9 E0 C7 34 C4 D6 D1 40 CA
-34 C4 F0 D1 EA D1 D8 D1 3C 4E 3C 80 87 12 05 24
-1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41
-F2 D1 B2 41 C4 21 3E 41 84 12 0A C4 2B 00 1C C9
-84 C9 E0 C7 34 C4 0E D2 40 CA 34 C4 02 CC AA C7
-1C C9 40 CA 34 C4 02 CC 1A D2 3E 5F E7 3F 3E 40
-28 00 B0 12 BA D1 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40
-70 CD 1C 15 12 12 C4 21 92 53 C4 21 84 12 1C C9
-40 CA 34 C4 62 D2 58 D2 21 53 3E 90 10 00 C6 2B
-7F 2D 64 D2 B2 41 C4 21 C1 3F 0D 12 84 12 04 CC
-96 D1 74 D2 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 BA D1
-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 BA D1 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 21 B0 12 42 D2 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 42 D2 92 92 C0 21 C4 21
-02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 42 D2
-FA 23 3C 50 10 00 B0 12 1E D2 EF 3F 0C 43 1B 42
-C6 21 A2 53 C6 21 0D 12 84 12 04 CC 96 D1 40 D3
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C7 3F B0 12 42 D2 E0 23 3C 50 80 00 B0 12 1E D2
-DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12 0A C4
-00 13 4A CB 50 C8 0A C4 2C 00 6A D2 36 D3 80 D3
-09 4B 2E 4E 0E DC A2 3F 42 CE 03 4D 4F 56 85 12
-76 D3 00 40 8A D3 05 4D 4F 56 2E 42 85 12 76 D3
-40 40 00 00 03 41 44 44 85 12 76 D3 00 50 A4 D3
-05 41 44 44 2E 42 85 12 76 D3 40 50 B0 D3 04 41
-44 44 43 00 85 12 76 D3 00 60 BE D3 06 41 44 44
-43 2E 42 00 85 12 76 D3 40 60 64 D3 04 53 55 42
-43 00 85 12 76 D3 00 70 DC D3 06 53 55 42 43 2E
-42 00 85 12 76 D3 40 70 EA D3 03 53 55 42 85 12
-76 D3 00 80 FA D3 05 53 55 42 2E 42 85 12 76 D3
-40 80 18 CE 03 43 4D 50 85 12 76 D3 00 90 14 D4
-05 43 4D 50 2E 42 85 12 76 D3 40 90 02 CE 04 44
-41 44 44 00 85 12 76 D3 00 A0 2E D4 06 44 41 44
-44 2E 42 00 85 12 76 D3 40 A0 20 D4 03 42 49 54
-85 12 76 D3 00 B0 4C D4 05 42 49 54 2E 42 85 12
-76 D3 40 B0 58 D4 03 42 49 43 85 12 76 D3 00 C0
-66 D4 05 42 49 43 2E 42 85 12 76 D3 40 C0 72 D4
-03 42 49 53 85 12 76 D3 00 D0 80 D4 05 42 49 53
-2E 42 85 12 76 D3 40 D0 00 00 03 58 4F 52 85 12
-76 D3 00 E0 9A D4 05 58 4F 52 2E 42 85 12 76 D3
-40 E0 CC D3 03 41 4E 44 85 12 76 D3 00 F0 B4 D4
-05 41 4E 44 2E 42 85 12 76 D3 40 F0 04 CC 6A D2
-D2 D4 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
-4F 3F 06 D4 03 52 52 43 85 12 CC D4 00 10 E4 D4
-05 52 52 43 2E 42 85 12 CC D4 40 10 F0 D4 04 53
-57 50 42 00 85 12 CC D4 80 10 FE D4 03 52 52 41
-85 12 CC D4 00 11 0C D5 05 52 52 41 2E 42 85 12
-CC D4 40 11 18 D5 03 53 58 54 85 12 CC D4 80 11
-00 00 04 50 55 53 48 00 85 12 CC D4 00 12 32 D5
-06 50 55 53 48 2E 42 00 85 12 CC D4 40 12 8C D4
-04 43 41 4C 4C 00 85 12 CC D4 80 12 1A 53 0E 4A
-0D 12 84 12 C6 C8 14 C4 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 36 C5 26 D5 03 53 3E 3D 86 12
-00 38 7A D5 02 53 3C 00 86 12 00 34 40 D5 03 30
-3E 3D 86 12 00 30 8E D5 02 30 3C 00 86 12 00 30
-00 00 02 55 3C 00 86 12 00 2C A2 D5 03 55 3E 3D
-86 12 00 28 98 D5 03 30 3C 3E 86 12 00 24 B6 D5
-02 30 3D 00 86 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 AC D5
-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 B1 2F 88 DA 00 00
-30 4D 3C D4 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
-50 D5 05 42 45 47 49 4E 30 40 28 C4 E0 D5 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 8A 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 21 30 4D C0 D4 05 41 47 41
-49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
-4C 45 0D 12 84 12 CE D5 AA C7 50 C8 84 D5 06 52
-45 50 45 41 54 00 0D 12 84 12 62 D6 E6 D5 50 C8
-92 D6 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F
-98 42 C6 21 00 00 30 4D 22 D6 03 42 57 31 85 12
-90 D6 00 00 AA D6 03 42 57 32 85 12 90 D6 00 00
-B6 D6 03 42 57 33 85 12 90 D6 00 00 CE D6 3D 41
-1A 42 C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00
-A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 85 12 CC D6 00 00 EE D6 03 46 57 32 85 12
-CC D6 00 00 FA D6 03 46 57 33 85 12 CC D6 00 00
-06 D7 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
-00 3C 0D 12 84 12 82 CC DE CB 50 C8 00 00 05 3F
-47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
-00 10 EF 27 3E E0 00 08 EC 3F 04 CC 96 D1 50 D7
-92 53 C4 21 3E 40 2C 00 84 12 1C C9 40 CA 34 C4
-02 CC 2C D3 66 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06
-A6 3E 7E D6 04 52 52 43 4D 00 85 12 4A D7 50 00
-94 D7 04 52 52 41 4D 00 85 12 4A D7 50 01 A2 D7
-04 52 4C 41 4D 00 85 12 4A D7 50 02 B0 D7 04 52
-52 55 4D 00 85 12 4A D7 50 03 C0 D5 05 50 55 53
-48 4D 85 12 4A D7 00 15 CC D7 04 50 4F 50 4D 00
-85 12 4A D7 00 17
+E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42
+BE 21 0C 4E 0E 43 1E 15 3D 40 60 CB 7E 4C 6A 4C
+7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52
+6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20
+3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00
+38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27
+62 CB 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0
+00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53
+20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12
+3E C4 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4A 93 1D 17 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 18 C9
+03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12 84 C4
+9C C7 EE C9 B0 C4 32 CD 56 CA 1C CC 0A 4E 3E 4F
+3D 40 36 CC 6D 27 3D 40 10 CC 1A E2 BC 21 14 24
+0E 12 3E 4F 30 41 38 CC 3E 4F 3D 40 10 CC 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+0E CE 2A 3C 00 CC 02 2C A2 53 C8 21 1A 42 C8 21
+8A 4E FE FF 3E 4F 30 4D 56 CC 0F 4C 49 54 45 52
+41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21 A2 52
+C8 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F 32 B0
+00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
+92 C9 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D B8 C8 0A 41 4C 4C 4F 54 82 5E
+C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12 1E C4
+02 0D 0A 00 7A C7 94 C4 0A CC 98 C8 C2 C8 1E C4
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 C5 32 C4
+0A C4 40 FF CA C8 1E C4 09 46 52 41 4D 20 66 75
+6C 6C 08 C5 B2 C4 CE CC B8 CC 0D 41 42 4F 52 54
+22 00 0D 12 84 12 D8 C8 0A C4 08 C5 58 CC 6A C9
+E8 C9 02 27 0D 12 84 12 9C C7 EE C9 56 CA B0 C4
+34 CD FC C8 40 CC 62 C8 07 5B 27 5D 0D 12 84 12
+24 CD 0A C4 0A C4 58 CC 58 CC 6A C9 38 CD 03 5B
+82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21 30 4D
+B0 C8 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+9C C7 EE C9 56 CA B0 C4 34 CD C2 C8 AC C4 8C CD
+0A C4 0A C4 58 CC 58 CC 0A C4 58 CC 58 CC 6A C9
+00 00 02 3A 30 12 E2 CD 92 B3 C8 21 A2 63 C8 21
+0D 12 84 12 9C C7 EE C9 AA CD 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21 82 49
+B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A C8 21
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 21 30 4D 82 9F BA 21 66 25 84 12 1E C4 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 C5
+4E CD 03 3B 82 93 BC 21 F4 26 0D 12 84 12 0A C4
+6A C9 58 CC F4 CD 50 CD 6A C9 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00 30 4D
+A2 CC 0C 43 52 45 41 54 45 00 B0 12 98 CD BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D 74 C7 0A 44 4F 45
+53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D 92 CD 0E 3A 4E 4F 4E 41 4D 45 30 12
+E2 CD 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F 2C CE 05 49 53 00
+0D 12 82 93 BC 21 08 20 84 12 24 CD AE CE 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 3C CD 0A C4 B0 CE
+58 CC 6A C9 42 CE 08 43 4F 44 45 00 B0 12 98 CD
+A2 82 C8 21 61 3C 84 C9 0E 48 44 4E 43 4F 44 45
+B2 40 9C CF CC 21 F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 F4 CD FA CE 3D 41 92 42 D0 21
+CC 21 5D 3C C6 CE 0E 43 4F 44 45 4E 4E 4D 30 12
+D0 CE B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 21
+B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 21 1A 42 C8 21 EF 3F D8 CE 0B 48 49 32 4C 4F
+A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43 BC 21
+B9 3F 64 CF B2 40 76 CF D0 21 82 4E CE 21 30 40
+FC C8 85 12 62 CF 62 CD 0A CD F4 CF 06 CF 5C CE
+A6 C9 50 CA 22 CD 4A CF 9C CE 76 CE 12 CE 6A CC
+7E D0 A8 CA 00 00 00 00 85 12 62 CF F8 D6 7C D5
+DC D6 A4 D4 00 D5 4E D5 2A D6 36 D6 C6 D3 EA D4
+00 00 00 00 38 CF B6 D2 00 00 52 D6 96 CF B2 40
+76 CF CE 21 82 43 D0 21 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12 CA CF
+30 4D DC CF 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 21 B0 12 CA CF 1A 42 CA 21 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 10 C6 FE FF 29 83 B9 40 FA C5 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 E0 FF 3B 40 10 00
+3A 40 3A 18 B0 12 CE CF 82 43 4A 18 C7 3F 70 D0
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 58 CD 0C 4D
+41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12 9C C7
+EE C9 56 CA AC C4 9C D0 90 C8 30 CC 9E D0 3E 4F
+3D 41 B2 41 C6 21 B0 12 98 CD BA 40 85 12 FC FF
+BA 40 6E D0 FE FF 28 83 8A 48 00 00 BA 40 82 C4
+02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21 A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12 EE C9
+56 CA AC C4 08 D1 E8 D0 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 6E D0 00 00 01 20
+3E 52 2E 83 21 53 30 41 00 CB AC C4 10 D1 04 D1
+12 D1 B2 41 C6 21 30 41 92 83 C6 21 3E 40 28 00
+0A 4E 3D 15 B0 12 D8 D0 15 20 3E 40 2B 00 B0 12
+D8 D0 06 20 3E 40 2D 00 B0 12 D8 D0 92 83 C6 21
+0E 12 1E 41 02 00 84 12 EE C9 00 CB AC C4 34 CD
+52 D1 3E 51 3A 17 30 41 B0 12 18 D1 19 42 C8 21
+89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53 C6 21
+1A 42 C6 21 3D 15 84 12 EE C9 00 CB AC C4 8A D1
+82 D1 3E 90 10 00 E6 2B 7C 2D 8C D1 A2 41 C6 21
+E1 3F 03 20 B0 12 70 D1 43 3C 7A 90 23 00 24 20
+B0 12 20 D1 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 C8 21 A2 53 C8 21
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 20 D1 F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 6C D1 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 70 D1 92 92 C2 21 C6 21 02 24 92 53 C6 21
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 58 D1 F2 3F
+03 20 B0 12 70 D1 F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 58 D1 EA 3F 0C 43
+1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42 C6 21
+19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82 C4 21
+82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A C4 00 13 58 CC 6A C9 0A C4
+2C 00 4E D2 92 D1 9C C7 58 D2 30 D2 9E D2 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+8E D2 00 40 AA D2 0A 4D 4F 56 2E 42 85 12 8E D2
+40 40 00 00 06 41 44 44 85 12 8E D2 00 50 C4 D2
+0A 41 44 44 2E 42 85 12 8E D2 40 50 D0 D2 08 41
+44 44 43 00 85 12 8E D2 00 60 DE D2 0C 41 44 44
+43 2E 42 00 85 12 8E D2 40 60 16 CF 08 53 55 42
+43 00 85 12 8E D2 00 70 FC D2 0C 53 55 42 43 2E
+42 00 85 12 8E D2 40 70 0A D3 06 53 55 42 85 12
+8E D2 00 80 1A D3 0A 53 55 42 2E 42 85 12 8E D2
+40 80 26 D3 06 43 4D 50 85 12 8E D2 00 90 34 D3
+0A 43 4D 50 2E 42 85 12 8E D2 40 90 00 00 08 44
+41 44 44 00 85 12 8E D2 00 A0 4E D3 0C 44 41 44
+44 2E 42 00 85 12 8E D2 40 A0 7C D2 06 42 49 54
+85 12 8E D2 00 B0 6C D3 0A 42 49 54 2E 42 85 12
+8E D2 40 B0 78 D3 06 42 49 43 85 12 8E D2 00 C0
+86 D3 0A 42 49 43 2E 42 85 12 8E D2 40 C0 92 D3
+06 42 49 53 85 12 8E D2 00 D0 A0 D3 0A 42 49 53
+2E 42 85 12 8E D2 40 D0 00 00 06 58 4F 52 85 12
+8E D2 00 E0 BA D3 0A 58 4F 52 2E 42 85 12 8E D2
+40 E0 EC D2 06 41 4E 44 85 12 8E D2 00 F0 D4 D3
+0A 41 4E 44 2E 42 85 12 8E D2 40 F0 9C C7 4E D2
+92 D1 F4 D3 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F AC D3 06 52 52 43 85 12 EC D3 00 10
+06 D4 0A 52 52 43 2E 42 85 12 EC D3 40 10 40 D3
+08 53 57 50 42 00 85 12 EC D3 80 10 12 D4 06 52
+52 41 85 12 EC D3 00 11 2E D4 0A 52 52 41 2E 42
+85 12 EC D3 40 11 20 D4 06 53 58 54 85 12 EC D3
+80 11 00 00 08 50 55 53 48 00 85 12 EC D3 00 12
+54 D4 0C 50 55 53 48 2E 42 00 85 12 EC D3 40 12
+48 D4 08 43 41 4C 4C 00 85 12 EC D3 80 12 1A 53
+0E 4A 84 12 DE C9 1E C4 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 C5 72 D4 06 53 3E 3D 86 12
+00 38 9A D4 04 53 3C 00 86 12 00 34 62 D4 06 30
+3E 3D 86 12 00 30 AE D4 04 30 3C 00 86 12 00 30
+EA CE 04 55 3C 00 86 12 00 2C C2 D4 06 55 3E 3D
+86 12 00 28 B8 D4 06 30 3C 3E 86 12 00 24 D6 D4
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D 5C D3
+08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D CC D4 08 45 4C 53 45 00 1A 42 C8 21 BA 40
+00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F
+3A D4 0A 42 45 47 49 4E 30 40 32 C4 24 D5 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 21 30 4D E0 D3 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 EE D4 84 C8 6A C9 42 D5 0C 52
+45 50 45 41 54 00 0D 12 84 12 82 D5 06 D5 6A C9
+B2 D5 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F
+98 42 C8 21 00 00 30 4D 9E D5 06 42 57 31 85 12
+B0 D5 00 00 CA D5 06 42 57 32 85 12 B0 D5 00 00
+D6 D5 06 42 57 33 85 12 B0 D5 00 00 EE D5 3D 41
+1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21 86 2B
+BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 EC D5 00 00 12 D6 06 46
+57 32 85 12 EC D5 00 00 1E D6 06 46 57 33 85 12
+EC D5 00 00 8C D5 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 24 CD 30 CC 6A C9
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 58 D2
+0A C4 2C 00 EE C9 00 CB AC C4 34 CD 9C C7 4E D2
+30 D2 84 D6 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+E2 D5 08 52 52 43 4D 00 85 12 6E D6 50 00 B2 D6
+08 52 52 41 4D 00 85 12 6E D6 50 01 C0 D6 08 52
+4C 41 4D 00 85 12 6E D6 50 02 CE D6 08 52 52 55
+4D 00 85 12 6E D6 50 03 E0 D4 0A 50 55 53 48 4D
+85 12 6E D6 00 15 EA D6 08 50 4F 50 4D 00 85 12
+6E D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-84 C6 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 0A D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+C4 C6 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 10 C6
 q
diff --git a/binaries/CHIPSTICK_FR2433_16MHz_UART.txt b/binaries/CHIPSTICK_FR2433_16MHz_UART.txt
deleted file mode 100644 (file)
index 52235ad..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF FC D7 04 D0 34 01
-10 00 41 33 94 C5 AA C4 DA C5 9C C5 96 C6 FC D7
-04 D0 7C C6 94 C7 26 C7 00 C7 3C 21 62 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 7A C6 B2 49 92 C7 B2 49 24 C7 B2 49 FE C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 D0 D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E2 C7 34 C7
-14 C4 04 1B 5B 37 6D 00 5E C7 AA C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5E C7 A2 C8 5E C7 14 C4 04 1B 5B 30 6D 00
-5E C7 2A CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 E2 D2 22 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 E2 C2 22 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 F2 B0 10 00 00 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00
-B0 12 9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23
-5E C7 D8 C8 14 C4 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
-5E C7 0A C4 40 FF 28 C4 D6 C7 A2 C8 14 C4 0A 62
-79 74 65 73 20 66 72 65 65 00 3A C4 86 C5 00 00
-06 41 43 43 45 50 54 00 30 40 7C C6 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 C6 3C 40
-D4 C6 5D 15 B5 3E 21 52 3A 17 58 42 0C 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 0E 05 30 4D CA C6 2D 83 92 B3 1C 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-1C 05 FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53
-DE 21 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 C7
-2F 83 8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27
-1E 42 0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 C7 08 4E 3E 4F C8 3F 1C C7 04 45
-43 48 4F 00 B2 40 C2 48 C2 C6 82 43 DE 21 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 C6
-92 43 DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93
-11 24 0D 12 3D 40 7A C7 28 4F 2F 83 8F 4E 00 00
-7E 48 8F 48 02 00 10 42 24 C7 7C C7 2D 83 1E 83
-F3 23 3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00
-30 40 94 C7 0D 12 84 12 14 C4 02 0D 0A 00 5E C7
-62 C8 2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D
-8F 4E FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E
-00 00 0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F
-0E 11 2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 C6
-01 40 2E 4E 30 4D E0 C7 01 21 BE 4F 00 00 3E 4F
-30 4D 1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D
-3E 8F 03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 8C C7 01 23 1B 42
-DC 21 2C 4F 2F 83 B0 12 6E C4 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 1C C8 02 23 53 00
-0D 12 84 12 1E C8 58 C8 2D 83 09 93 E2 23 0E 93
-E0 23 3D 41 30 4D 4C C8 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 4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00
-0E 93 3E 4F 7A 40 2D 00 D1 33 30 4D 58 C7 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12
-3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
-84 12 12 C8 50 C8 EE C4 90 C8 6C C8 5E C7 16 CC
-22 C7 62 C8 42 C7 01 2E 0E 93 E3 37 38 43 E2 3F
-8A C8 82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4
-14 C4 5C CB 0A C4 22 00 2E C9 FC C8 B2 40 20 00
-B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41
-30 4D D6 C8 82 2E 22 00 0D 12 84 12 E6 C8 0A C4
-5E C7 5C CB 62 C8 1A C6 04 57 4F 52 44 00 3C 40
-C0 21 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24
-7E 9A FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90
-27 00 00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24
-7C 4A 4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00
-F3 2F 4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00
-1E 43 01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40
-D4 C4 30 4D 00 00 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
-B0 CA 09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C
-FC 90 27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00
-7E 90 03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23
-B1 43 02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53
-04 24 3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F
-B2 CA 31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02
-2A 20 32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00
-22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00
-AF 4F 04 00 4A 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 00 00 01 2C 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D 5A CB 87 4C
-49 54 45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42
-C6 21 A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00
-3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
-EE 3F 30 4D 68 C8 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 7C C8 09 49 4E 54
-45 52 50 52 45 54 0D 12 84 12 AC C4 16 CC 2E C9
-D2 CB 9C 26 3D 40 DA CB DE 3E DC CB 0A 4E 3E 4F
-3D 40 F6 CB 36 27 3D 40 CC CB 1A E2 BE 21 B6 27
-0E 12 3E 4F 30 41 F8 CB 3E 4F 3D 40 CC CB BB 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-98 CD CC 3F 00 CC 86 12 20 00 E8 C7 05 41 4C 4C
-4F 54 82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43
-31 40 E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12
-90 C7 BC C4 C6 CB C6 C7 F8 C7 14 C4 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF
-28 C4 00 C8 14 C4 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 2A C5 3A C4 40 CC 1C CC 86 41 42 4F 52 54
-22 00 0D 12 84 12 E6 C8 0A C4 2A C5 5C CB 62 C8
-90 C9 01 27 0D 12 84 12 16 CC 2E C9 96 C9 34 C4
-14 CC 62 C8 00 00 83 5B 27 5D 0D 12 84 12 94 CC
-0A C4 0A C4 5C CB 5C CB 62 C8 A6 CC 81 5B 82 43
-BE 21 30 4D 0E C8 01 5D B2 43 BE 21 30 4D C6 CC
-81 5C 92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53
-54 50 4F 4E 45 00 0D 12 84 12 16 CC 2E C9 96 C9
-AA C7 34 C4 14 CC F8 C7 34 C4 08 CD 0A C4 0A C4
-5C CB 5C CB 0A C4 5C CB 5C CB 62 C8 BC CC 01 3A
-30 12 58 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12
-16 CC 2E C9 26 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 BA 40 0D 12 FC FF BA 40
-84 12 FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20
-18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
-30 4D 0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D
-69 73 6D 61 74 63 68 21 36 C5 0E CD 81 3B 82 93
-BE 21 97 27 0D 12 84 12 0A C4 62 C8 5C CB 6A CD
-BE CC 62 C8 BC CB 09 49 4D 4D 45 44 49 41 54 45
-18 42 B6 21 F8 D0 80 00 00 00 30 4D A6 CB 06 43
-52 45 41 54 45 00 B0 12 14 CD BA 40 86 12 FC FF
-8A 4A FE FF C9 3F CE CD 04 43 4F 44 45 00 B0 12
-14 CD A2 82 C6 21 0D 12 84 12 06 D0 E0 CF 62 C8
-B6 CD 07 48 44 4E 43 4F 44 45 B2 40 E4 CF DA 21
-EE 3F 00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12
-6A CD 20 D0 3E D0 62 C8 00 00 05 43 4F 4C 4F 4E
-1A 42 C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
-A2 52 C6 21 B2 43 BE 21 0D 12 84 12 20 D0 3E D0
-62 C8 00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42
-C6 21 EB 3F 02 CE 85 48 49 32 4C 4F 0D 12 84 12
-28 C4 AE CF 5C CB BE CC F6 CD 62 C8 9C CD 86 5B
-54 48 45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53
-F9 98 FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83
-00 00 F9 23 2F 53 2D 53 F7 3F 7E CE 86 5B 45 4C
-53 45 5D 00 0D 12 84 12 0A C4 00 00 DA C7 16 CC
-2E C9 AC CB A2 C7 34 C4 16 CF B0 C7 14 C4 06 5B
-54 48 45 4E 5D 00 88 CE F0 CE AC CE CE CE 62 C8
-B0 C7 14 C4 06 5B 45 4C 53 45 5D 00 88 CE 06 CF
-AC CE CC CE 62 C8 14 C4 04 5B 49 46 5D 00 88 CE
-CE CE 3A C4 CC CE 84 C7 14 C4 05 0D 0A 6B 6F 20
-5E C7 BC C4 AC C4 3A C4 CE CE BC CE 84 5B 49 46
-5D 00 0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2C CF
-89 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 16 CC
-2E C9 96 C9 3A CF 62 C8 40 CF 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 0D 12 84 12 4A CF F2 C7 62 C8
-72 CF B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C
-6E CB 06 4D 41 52 4B 45 52 00 B0 12 14 CD BA 40
-85 12 FC FF BA 40 70 CF FE FF 28 83 8A 48 00 00
-BA 40 AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53
-30 4D 0A C4 CA 21 EA C7 62 C8 85 12 B2 CF 7A CC
-E8 CD 2E C7 92 CC 66 CE F8 C6 82 CF 14 C9 AA D0
-BE D0 9E C8 28 C9 00 00 5A CF D0 CC F6 C9 00 00
-85 12 B2 CF 72 D6 D8 D6 1A D6 28 D7 E0 D5 00 00
-AC D3 00 00 F0 D7 D4 D7 44 D6 82 D6 BC D4 00 00
-00 00 44 D7 DE CF 3A 40 0C 00 39 40 D6 21 08 49
-28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-3A 40 0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42
-CA 21 DA 21 30 4D BA CF 38 D0 3E D0 4E D0 1A 42
-20 18 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 DC CC 09 50 57 52 5F 53 54 41 54 45 85 12
-46 D0 FC D7 E2 C8 09 52 53 54 5F 53 54 41 54 45
-92 42 0A 18 92 D0 F3 3F 84 D0 08 50 57 52 5F 48
-45 52 45 00 92 42 C6 21 92 D0 30 4D 96 D0 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F
-3E 90 0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40
-10 00 29 83 B9 43 80 FF FC 23 B9 40 1C D1 FE FF
-29 83 B9 40 02 C6 FE FF 39 90 AE FF F9 23 39 40
-14 18 B2 49 04 C6 B2 49 FA C4 B2 49 02 C4 B2 49
-22 C6 B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00
-04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40
-E0 20 3F 40 80 20 39 40 00 10 29 83 89 43 00 20
-FC 23 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 38 40
-17 11 18 83 FE 23 19 83 FA 23 1E 42 08 18 82 43
-08 18 1E D2 5E 01 B0 12 F8 C4 20 C6 38 40 C0 21
-0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E 03 24
-7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21 30 4D
-1C 15 0E 12 12 12 C4 21 84 12 2E C9 96 C9 F2 C7
-34 C4 EC D1 52 CA 34 C4 06 D2 00 D2 EE D1 3C 4E
-3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83
-21 52 1B 17 30 41 08 D2 B2 41 C4 21 3E 41 84 12
-0A C4 2B 00 2E C9 96 C9 F2 C7 34 C4 24 D2 52 CA
-34 C4 14 CC BC C7 2E C9 52 CA 34 C4 14 CC 30 D2
-3E 5F E7 3F 3E 40 28 00 B0 12 D0 D1 19 42 C6 21
-A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92 C0 21
-C4 21 02 20 30 40 82 CD 1C 15 12 12 C4 21 92 53
-C4 21 84 12 2E C9 52 CA 34 C4 78 D2 6E D2 21 53
-3E 90 10 00 C6 2B 7F 2D 7A D2 B2 41 C4 21 C1 3F
-0D 12 84 12 16 CC AC D1 8A D2 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 D0 D1 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 D0 D1 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12
-58 D2 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 58 D2
-92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E
-DA 3F B0 12 58 D2 FA 23 3C 50 10 00 B0 12 34 D2
-EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12 84 12
-16 CC AC D1 56 D3 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C7 3F B0 12 58 D2 E0 23 3C 50
-80 00 B0 12 34 D2 DB 3F 00 00 04 52 45 54 49 00
-0D 12 84 12 0A C4 00 13 5C CB 62 C8 0A C4 2C 00
-80 D2 4C D3 96 D3 09 4B 2E 4E 0E DC A2 3F 54 CE
-03 4D 4F 56 85 12 8C D3 00 40 A0 D3 05 4D 4F 56
-2E 42 85 12 8C D3 40 40 00 00 03 41 44 44 85 12
-8C D3 00 50 BA D3 05 41 44 44 2E 42 85 12 8C D3
-40 50 C6 D3 04 41 44 44 43 00 85 12 8C D3 00 60
-D4 D3 06 41 44 44 43 2E 42 00 85 12 8C D3 40 60
-7A D3 04 53 55 42 43 00 85 12 8C D3 00 70 F2 D3
-06 53 55 42 43 2E 42 00 85 12 8C D3 40 70 00 D4
-03 53 55 42 85 12 8C D3 00 80 10 D4 05 53 55 42
-2E 42 85 12 8C D3 40 80 2A CE 03 43 4D 50 85 12
-8C D3 00 90 2A D4 05 43 4D 50 2E 42 85 12 8C D3
-40 90 14 CE 04 44 41 44 44 00 85 12 8C D3 00 A0
-44 D4 06 44 41 44 44 2E 42 00 85 12 8C D3 40 A0
-36 D4 03 42 49 54 85 12 8C D3 00 B0 62 D4 05 42
-49 54 2E 42 85 12 8C D3 40 B0 6E D4 03 42 49 43
-85 12 8C D3 00 C0 7C D4 05 42 49 43 2E 42 85 12
-8C D3 40 C0 88 D4 03 42 49 53 85 12 8C D3 00 D0
-96 D4 05 42 49 53 2E 42 85 12 8C D3 40 D0 00 00
-03 58 4F 52 85 12 8C D3 00 E0 B0 D4 05 58 4F 52
-2E 42 85 12 8C D3 40 E0 E2 D3 03 41 4E 44 85 12
-8C D3 00 F0 CA D4 05 41 4E 44 2E 42 85 12 8C D3
-40 F0 16 CC 80 D2 E8 D4 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F 1C D4 03 52 52 43 85 12
-E2 D4 00 10 FA D4 05 52 52 43 2E 42 85 12 E2 D4
-40 10 06 D5 04 53 57 50 42 00 85 12 E2 D4 80 10
-14 D5 03 52 52 41 85 12 E2 D4 00 11 22 D5 05 52
-52 41 2E 42 85 12 E2 D4 40 11 2E D5 03 53 58 54
-85 12 E2 D4 80 11 00 00 04 50 55 53 48 00 85 12
-E2 D4 00 12 48 D5 06 50 55 53 48 2E 42 00 85 12
-E2 D4 40 12 A2 D4 04 43 41 4C 4C 00 85 12 E2 D4
-80 12 1A 53 0E 4A 0D 12 84 12 D8 C8 14 C4 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 36 C5 3C D5
-03 53 3E 3D 86 12 00 38 90 D5 02 53 3C 00 86 12
-00 34 56 D5 03 30 3E 3D 86 12 00 30 A4 D5 02 30
-3C 00 86 12 00 30 00 00 02 55 3C 00 86 12 00 2C
-B8 D5 03 55 3E 3D 86 12 00 28 AE D5 03 30 3C 3E
-86 12 00 24 CC D5 02 30 3D 00 86 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 C2 D5 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
-B1 2F 88 DA 00 00 30 4D 52 D4 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 66 D5 05 42 45 47 49 4E 30 40
-28 C4 F6 D5 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 8A 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D
-D6 D4 05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
-00 00 05 57 48 49 4C 45 0D 12 84 12 E4 D5 BC C7
-62 C8 9A D5 06 52 45 50 45 41 54 00 0D 12 84 12
-78 D6 FC D5 62 C8 A8 D6 3D 41 08 4E 3E 4F 2A 48
-B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D 38 D6
-03 42 57 31 85 12 A6 D6 00 00 C0 D6 03 42 57 32
-85 12 A6 D6 00 00 CC D6 03 42 57 33 85 12 A6 D6
-00 00 E4 D6 3D 41 1A 42 C6 21 28 4E B2 92 C4 21
-88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 85 12 E2 D6 00 00 04 D7
-03 46 57 32 85 12 E2 D6 00 00 10 D7 03 46 57 33
-85 12 E2 D6 00 00 1C D7 04 47 4F 54 4F 00 2F 83
-8F 4E 00 00 3E 40 00 3C 0D 12 84 12 94 CC F0 CB
-62 C8 00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27
-3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
-16 CC AC D1 66 D7 92 53 C4 21 3E 40 2C 00 84 12
-2E C9 52 CA 34 C4 14 CC 42 D3 7C D7 0A 4E 3E 4F
-1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92
-E8 2E 8A 10 5A 06 A6 3E 94 D6 04 52 52 43 4D 00
-85 12 60 D7 50 00 AA D7 04 52 52 41 4D 00 85 12
-60 D7 50 01 B8 D7 04 52 4C 41 4D 00 85 12 60 D7
-50 02 C6 D7 04 52 52 55 4D 00 85 12 60 D7 50 03
-D6 D5 05 50 55 53 48 4D 85 12 60 D7 00 15 E2 D7
-04 50 4F 50 4D 00 85 12 60 D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 96 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 1C D1
-q
diff --git a/binaries/CHIPSTICK_FR2433_1MHz_115200.txt b/binaries/CHIPSTICK_FR2433_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..4c48e10
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A0 19
+B4 C6 7E C5 84 C5 54 C5 24 C7 12 D7 CA CF 84 CF
+84 CF 9A C6 58 C7 20 C7 3C 21 E0 20 78 C9 B6 C4
+C4 C4 94 C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+24 C7 12 D7 CA CF 84 CF 84 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F5 3C 0E 93 3E 4F
+8A 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 98 C6 B2 49
+56 C7 B2 49 1E C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 3E D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 24 C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 9E C8 AC C4 52 C5 66 C7 1E C4 04 1B
+5B 37 6D 00 88 C7 88 C7 1E C4 04 1B 5B 30 6D 00
+88 C7 D4 CC B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 66 C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 88 C7 EC C9 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 88 C7 0A C4 40 FF 32 C4
+B4 C8 B8 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 10 00 00 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40
+E0 20 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 D0 10 00 86 01 B2 40 00 02 88 01 F2 C3
+82 01 B2 40 1E 00 84 01 39 40 80 00 18 42 00 18
+18 83 FE 23 19 83 FA 23 39 40 00 10 29 83 89 43
+00 20 FC 23 19 42 5E 01 1E 42 08 18 82 43 08 18
+3E F3 01 20 0E 49 B0 12 D0 C4 86 C5 00 00 0C 41
+43 43 45 50 54 00 30 40 9A C6 08 4E 2E 4F 08 5E
+39 40 0D 00 3A 40 20 00 3B 40 F8 C6 3C 40 04 C7
+5D 15 A6 3E 21 52 3A 17 58 42 0C 05 48 9B 09 20
+A2 B3 1C 05 FD 27 B2 40 13 00 0E 05 E2 D2 22 02
+30 41 48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 C2 48 0E 05 30 4D FA C6 2D 83 92 B3 1C 05
+DB 23 FC 3F 3E 8F 3D 41 92 B3 1C 05 FD 27 58 42
+0C 05 08 4C EB 3F 00 00 06 4B 45 59 30 40 20 C7
+30 12 36 C7 A2 B3 1C 05 FD 27 B2 40 11 00 0E 05
+E2 C2 22 02 30 41 2F 83 8F 4E 00 00 92 B3 1C 05
+FD 27 B0 12 C0 C6 1E 42 0C 05 30 4D 00 00 08 45
+4D 49 54 00 30 40 58 C7 08 4E 3E 4F C7 3F 4E C7
+08 45 43 48 4F 00 B2 40 C2 48 F2 C6 30 4D 00 00
+0C 4E 4F 45 43 48 4F 00 B2 40 30 4D F2 C6 30 4D
+00 00 08 54 59 50 45 00 0D 12 3D 40 98 C7 29 4F
+8F 4E 00 00 7E 49 DE 3F 9A C7 2D 83 2F 83 5E 83
+F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E
+38 4F 3C 9F 39 4F 3E 4F 7C 22 F9 98 00 00 79 22
+19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83
+70 22 9B 24 18 C7 0D 5B 45 4C 53 45 5D 00 0D 12
+84 12 0A C4 00 00 B8 C8 AA C7 FC C9 B6 CC B0 C4
+26 C8 14 C4 06 5B 54 48 45 4E 5D 00 AE C7 04 C8
+CA C7 E8 C7 14 C4 06 5B 45 4C 53 45 5D 00 AE C7
+16 C8 CA C7 E6 C7 1E C4 04 5B 49 46 5D 00 AE C7
+E8 C7 B2 C4 E6 C7 1E C4 05 0D 6B 6F 20 0A 88 C7
+9A C4 84 C4 B2 C4 E8 C7 D6 C7 0D 5B 54 48 45 4E
+5D 00 30 4D 3A C8 09 5B 49 46 5D 00 0E 93 3E 4F
+C6 27 30 4D 46 C8 13 5B 44 45 46 49 4E 45 44 5D
+0D 12 84 12 AA C7 FC C9 64 CA 08 CC 78 C9 56 C8
+17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
+AA C7 FC C9 64 CA 88 C8 3D 41 2F 53 1E 83 0E 7E
+30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E
+FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F
+0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40
+2E 4E 30 4D 8E C6 02 21 BE 4F 00 00 3E 4F 30 4D
+0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D
+D8 C5 05 53 22 00 82 43 C0 21 0D 12 84 12 0A C4
+1E C4 66 CC 0A C4 22 00 FC C9 FC C8 B2 40 20 00
+C0 21 1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D
+70 C7 05 2E 22 00 0D 12 84 12 E6 C8 0A C4 88 C7
+66 CC 78 C9 00 00 04 3C 23 00 B2 40 B2 21 B2 21
+30 4D E2 C8 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12
+46 C4 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 34 C9 04 23 53 00 0D 12 84 12 36 C9 70 C9
+2D 83 09 DE 09 93 E1 23 3D 41 30 4D 64 C9 04 23
+3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D
+00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 7E C9
+08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33
+30 4D 60 C7 04 55 2E 00 0C 43 2F 83 8F 4E 00 00
+0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 84 12 2A C9 AA C7 98 C9 68 C9 94 C8
+A6 C9 82 C9 88 C7 78 C9 12 C9 02 2E 0E 93 E4 37
+3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21
+39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98
+FC 27 18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20
+E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24
+7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90
+7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21
+1E 42 C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46
+49 4E 44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53
+1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C
+00 00 30 4D EA C9 0E 3E 4E 55 4D 42 45 52 1B 42
+BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C
+7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00
+0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42
+E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23
+8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0
+00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 21
+0C 4E 0E 43 1E 15 3D 40 6E CB 7E 4C 6A 4C 7A 80
+2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53
+11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90
+03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C
+B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27 70 CB
+2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02
+27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00
+09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E C4
+2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93
+1D 17 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 26 C9 03 5C
+92 42 C2 21 C6 21 30 4D 0D 12 84 12 84 C4 AA C7
+FC C9 B0 C4 40 CD 64 CA 2A CC 0A 4E 3E 4F 3D 40
+44 CC 6D 27 3D 40 1E CC 1A E2 BC 21 14 24 0E 12
+3E 4F 30 41 46 CC 3E 4F 3D 40 1E CC 19 20 DE 53
+00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 1C CE
+2A 3C 0E CC 02 2C A2 53 C8 21 1A 42 C8 21 8A 4E
+FE FF 3E 4F 30 4D 64 CC 0F 4C 49 54 45 52 41 4C
+82 93 BC 21 0D 24 09 4E 1A 42 C8 21 A2 52 C8 21
+BA 40 0A C4 00 00 8A 49 02 00 3E 4F 32 B0 00 02
+32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D A0 C9
+0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A
+3E F3 30 4D C6 C8 0A 41 4C 4C 4F 54 82 5E C8 21
+3E 4F 30 4D 3F 40 80 20 0E 43 84 12 1E C4 02 0D
+0A 00 88 C7 94 C4 18 CC A6 C8 D0 C8 1E C4 0B 73
+74 61 63 6B 20 65 6D 70 74 79 08 C5 32 C4 0A C4
+40 FF D8 C8 1E C4 09 46 52 41 4D 20 66 75 6C 6C
+08 C5 B2 C4 DC CC C6 CC 0D 41 42 4F 52 54 22 00
+0D 12 84 12 E6 C8 0A C4 08 C5 66 CC 78 C9 F6 C9
+02 27 0D 12 84 12 AA C7 FC C9 64 CA B0 C4 42 CD
+0A C9 4E CC 70 C8 07 5B 27 5D 0D 12 84 12 32 CD
+0A C4 0A C4 66 CC 66 CC 78 C9 46 CD 03 5B 82 43
+BC 21 30 4D 00 00 02 5D B2 43 BC 21 30 4D BE C8
+11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12 AA C7
+FC C9 64 CA B0 C4 42 CD D0 C8 AC C4 9A CD 0A C4
+0A C4 66 CC 66 CC 0A C4 66 CC 66 CC 78 C9 00 00
+02 3A 30 12 F0 CD 92 B3 C8 21 A2 63 C8 21 0D 12
+84 12 AA C7 FC C9 B8 CD 3D 41 5A D3 5A 53 0A 5E
+19 42 CC 21 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E
+09 5E 3E 4F E8 58 00 00 82 48 B4 21 82 49 B6 21
+82 4A B8 21 82 4F BA 21 2A 52 82 4A C8 21 30 41
+BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 21
+30 4D 82 9F BA 21 66 25 84 12 1E C4 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 12 C5 5C CD
+03 3B 82 93 BC 21 F4 26 0D 12 84 12 0A C4 78 C9
+66 CC 02 CE 5E CD 78 C9 00 00 12 49 4D 4D 45 44
+49 41 54 45 18 42 B4 21 D8 D3 00 00 30 4D B0 CC
+0C 43 52 45 41 54 45 00 B0 12 A6 CD BA 40 86 12
+FC FF 8A 4A FE FF 3A 3D 82 C7 0A 44 4F 45 53 3E
+1A 42 B8 21 BA 40 85 12 00 00 8A 4D 02 00 3D 41
+30 4D A0 CD 0E 3A 4E 4F 4E 41 4D 45 30 12 F0 CD
+2F 83 8F 4E 00 00 1A 42 C8 21 1A B3 0A 63 0E 4A
+39 40 12 02 08 49 98 3F 3A CE 05 49 53 00 0D 12
+82 93 BC 21 08 20 84 12 32 CD BC CE 3D 41 BE 4F
+02 00 3E 4F 30 4D 84 12 4A CD 0A C4 BE CE 66 CC
+78 C9 50 CE 08 43 4F 44 45 00 B0 12 A6 CD A2 82
+C8 21 61 3C 92 C9 0E 48 44 4E 43 4F 44 45 B2 40
+AA CF CC 21 F2 3F 00 00 0E 45 4E 44 43 4F 44 45
+0D 12 84 12 02 CE 08 CF 3D 41 92 42 D0 21 CC 21
+5D 3C D4 CE 0E 43 4F 44 45 4E 4E 4D 30 12 DE CE
+B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40
+0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 21 B2 43
+BC 21 E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 21
+1A 42 C8 21 EF 3F E6 CE 0B 48 49 32 4C 4F A2 53
+C8 21 1A 42 C8 21 8A 4A FE FF 82 43 BC 21 B9 3F
+72 CF B2 40 84 CF D0 21 82 4E CE 21 30 40 0A C9
+85 12 70 CF 70 CD 18 CD 02 D0 14 CF 6A CE B4 C9
+5E CA 30 CD 58 CF AA CE 84 CE 20 CE 78 CC 8C D0
+B6 CA 00 00 00 00 85 12 70 CF 06 D7 8A D5 EA D6
+B2 D4 0E D5 5C D5 38 D6 44 D6 D4 D3 F8 D4 00 00
+00 00 46 CF C4 D2 00 00 60 D6 A4 CF B2 40 84 CF
+CE 21 82 43 D0 21 30 4D 3B 40 0A 00 BA 49 00 00
+2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53
+45 54 39 40 C8 21 3A 40 42 18 B0 12 D8 CF 30 4D
+EA CF 0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49
+3A 40 C8 21 B0 12 D8 CF 1A 42 CA 21 3B 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48
+00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93
+E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40
+08 C6 FE FF 29 83 B9 40 F2 C5 FE FF 39 90 AE FF
+F9 23 39 40 10 18 B2 49 E4 FF 3B 40 10 00 3A 40
+3A 18 B0 12 DC CF 82 43 4A 18 C7 3F 7E D0 B2 4E
+42 18 BE 12 3E 4F 3D 41 C0 3F 66 CD 0C 4D 41 52
+4B 45 52 00 12 12 C6 21 0D 12 84 12 AA C7 FC C9
+64 CA AC C4 AA D0 9E C8 3E CC AC D0 3E 4F 3D 41
+B2 41 C6 21 B0 12 A6 CD BA 40 85 12 FC FF BA 40
+7C D0 FE FF 28 83 8A 48 00 00 BA 40 82 C4 02 00
+A2 52 C8 21 18 42 B4 21 19 42 B6 21 A8 49 FE FF
+89 48 00 00 30 4D 12 12 C6 21 84 12 FC C9 64 CA
+AC C4 16 D1 F6 D0 3C 4E 3C 80 87 12 0A 24 1C 53
+02 20 2E 4E 06 3C BE 90 7C D0 00 00 01 20 3E 52
+2E 83 21 53 30 41 0E CB AC C4 1E D1 12 D1 20 D1
+B2 41 C6 21 30 41 92 83 C6 21 3E 40 28 00 0A 4E
+3D 15 B0 12 E6 D0 15 20 3E 40 2B 00 B0 12 E6 D0
+06 20 3E 40 2D 00 B0 12 E6 D0 92 83 C6 21 0E 12
+1E 41 02 00 84 12 FC C9 0E CB AC C4 42 CD 60 D1
+3E 51 3A 17 30 41 B0 12 26 D1 19 42 C8 21 89 4E
+00 00 A2 53 C8 21 3E 40 29 00 92 53 C6 21 1A 42
+C6 21 3D 15 84 12 FC C9 0E CB AC C4 98 D1 90 D1
+3E 90 10 00 E6 2B 7C 2D 9A D1 A2 41 C6 21 E1 3F
+03 20 B0 12 7E D1 43 3C 7A 90 23 00 24 20 B0 12
+2E D1 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 C8 21 A2 53 C8 21 89 4E
+00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02
+B0 12 2E D1 F0 3F 7A 90 40 00 14 20 3C 40 20 00
+B0 12 7A D1 0C 20 3C D0 10 00 3E 40 2B 00 B0 12
+7E D1 92 92 C2 21 C6 21 02 24 92 53 C6 21 8E 10
+0C 5E DF 3F 3C D0 10 00 B0 12 66 D1 F2 3F 03 20
+B0 12 7E D1 F5 3F 7A 90 26 00 03 20 3C D0 82 00
+D7 3F 3C D0 80 00 B0 12 66 D1 EA 3F 0C 43 1B 42
+C8 21 A2 53 C8 21 3A 40 20 00 19 42 C6 21 19 52
+C4 21 7A 99 FE 27 5A 49 FF FF 19 82 C4 21 82 49
+C6 21 7A 90 52 00 30 4D 00 00 08 52 45 54 49 00
+0D 12 84 12 0A C4 00 13 66 CC 78 C9 0A C4 2C 00
+5C D2 A0 D1 AA C7 66 D2 3E D2 AC D2 3D 41 2C DE
+8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12 9C D2
+00 40 B8 D2 0A 4D 4F 56 2E 42 85 12 9C D2 40 40
+00 00 06 41 44 44 85 12 9C D2 00 50 D2 D2 0A 41
+44 44 2E 42 85 12 9C D2 40 50 DE D2 08 41 44 44
+43 00 85 12 9C D2 00 60 EC D2 0C 41 44 44 43 2E
+42 00 85 12 9C D2 40 60 24 CF 08 53 55 42 43 00
+85 12 9C D2 00 70 0A D3 0C 53 55 42 43 2E 42 00
+85 12 9C D2 40 70 18 D3 06 53 55 42 85 12 9C D2
+00 80 28 D3 0A 53 55 42 2E 42 85 12 9C D2 40 80
+34 D3 06 43 4D 50 85 12 9C D2 00 90 42 D3 0A 43
+4D 50 2E 42 85 12 9C D2 40 90 00 00 08 44 41 44
+44 00 85 12 9C D2 00 A0 5C D3 0C 44 41 44 44 2E
+42 00 85 12 9C D2 40 A0 8A D2 06 42 49 54 85 12
+9C D2 00 B0 7A D3 0A 42 49 54 2E 42 85 12 9C D2
+40 B0 86 D3 06 42 49 43 85 12 9C D2 00 C0 94 D3
+0A 42 49 43 2E 42 85 12 9C D2 40 C0 A0 D3 06 42
+49 53 85 12 9C D2 00 D0 AE D3 0A 42 49 53 2E 42
+85 12 9C D2 40 D0 00 00 06 58 4F 52 85 12 9C D2
+00 E0 C8 D3 0A 58 4F 52 2E 42 85 12 9C D2 40 E0
+FA D2 06 41 4E 44 85 12 9C D2 00 F0 E2 D3 0A 41
+4E 44 2E 42 85 12 9C D2 40 F0 AA C7 5C D2 A0 D1
+02 D4 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4D 3F BA D3 06 52 52 43 85 12 FA D3 00 10 14 D4
+0A 52 52 43 2E 42 85 12 FA D3 40 10 4E D3 08 53
+57 50 42 00 85 12 FA D3 80 10 20 D4 06 52 52 41
+85 12 FA D3 00 11 3C D4 0A 52 52 41 2E 42 85 12
+FA D3 40 11 2E D4 06 53 58 54 85 12 FA D3 80 11
+00 00 08 50 55 53 48 00 85 12 FA D3 00 12 62 D4
+0C 50 55 53 48 2E 42 00 85 12 FA D3 40 12 56 D4
+08 43 41 4C 4C 00 85 12 FA D3 80 12 1A 53 0E 4A
+84 12 EC C9 1E C4 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 12 C5 80 D4 06 53 3E 3D 86 12 00 38
+A8 D4 04 53 3C 00 86 12 00 34 70 D4 06 30 3E 3D
+86 12 00 30 BC D4 04 30 3C 00 86 12 00 30 F8 CE
+04 55 3C 00 86 12 00 2C D0 D4 06 55 3E 3D 86 12
+00 28 C6 D4 06 30 3C 3E 86 12 00 24 E4 D4 04 30
+3D 00 86 12 00 20 00 00 04 49 46 00 1A 42 C8 21
+8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D 6A D3 08 54
+48 45 4E 00 1A 42 C8 21 08 4E 3E 4F 09 48 29 53
+0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D
+DA D4 08 45 4C 53 45 00 1A 42 C8 21 BA 40 00 3C
+00 00 A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F 48 D4
+0A 42 45 47 49 4E 30 40 32 C4 32 D5 0A 55 4E 54
+49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83 0A 89
+0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48
+00 00 A2 53 C8 21 30 4D EE D3 0A 41 47 41 49 4E
+0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45
+0D 12 84 12 FC D4 92 C8 78 C9 50 D5 0C 52 45 50
+45 41 54 00 0D 12 84 12 90 D5 14 D5 78 C9 C0 D5
+3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42
+C8 21 00 00 30 4D AC D5 06 42 57 31 85 12 BE D5
+00 00 D8 D5 06 42 57 32 85 12 BE D5 00 00 E4 D5
+06 42 57 33 85 12 BE D5 00 00 FC D5 3D 41 1A 42
+C8 21 28 4E 8E 43 00 00 B2 92 C6 21 86 2B BA 4F
+00 00 A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D 00 00
+06 46 57 31 85 12 FA D5 00 00 20 D6 06 46 57 32
+85 12 FA D5 00 00 2C D6 06 46 57 33 85 12 FA D5
+00 00 9A D5 08 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C 0D 12 84 12 32 CD 3E CC 78 C9 00 00
+0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
+3E B0 00 10 EF 27 3E E0 00 08 EC 3F 66 D2 0A C4
+2C 00 FC C9 0E CB AC C4 42 CD AA C7 5C D2 3E D2
+92 D6 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28
+08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E
+5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E F0 D5
+08 52 52 43 4D 00 85 12 7C D6 50 00 C0 D6 08 52
+52 41 4D 00 85 12 7C D6 50 01 CE D6 08 52 4C 41
+4D 00 85 12 7C D6 50 02 DC D6 08 52 52 55 4D 00
+85 12 7C D6 50 03 EE D4 0A 50 55 53 48 4D 85 12
+7C D6 00 15 F8 D6 08 50 4F 50 4D 00 85 12 7C D6
+00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 B4 C6 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 08 C6
+q
index 342233d..204b997 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF D4 D7 F2 CF 34 01
-10 00 41 07 B6 C5 AA C4 B8 C5 8C C5 84 C6 D4 D7
-F2 CF 72 C6 82 C7 00 C7 DC C6 3C 21 50 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 03
+AE C6 56 C5 56 C5 58 C5 44 C5 EE D6 A6 CF 60 CF
+60 CF 9C C6 20 C7 F8 C6 3C 21 E0 20 54 C9 B6 C4
+C4 C4 70 C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 EE D6 A6 CF 60 CF 60 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 70 C6 B2 49 80 C7 B2 49 FE C6 B2 49 DA C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BE D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 D0 C7 18 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4C C7 0A C4 02 18 D0 C7
-C6 C8 98 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4C C7 90 C8 4C C7
-14 C4 04 1B 5B 30 6D 00 4C C7 18 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 F2 B0 10 00 00 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00
-B0 12 8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4
-07 0D 0A 1B 5B 37 6D 40 4C C7 0A C4 02 18 D0 C7
-C6 C8 0A C4 23 00 FC C6 C6 C8 14 C4 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 4C C7 0A C4 40 FF 28 C4 C4 C7
-90 C8 14 C4 0A 62 79 74 65 73 20 66 72 65 65 00
-3A C4 7E C5 00 00 06 41 43 43 45 50 54 00 30 40
-72 C6 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05
-B7 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B
-0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC C6 2F 83 8F 4E
-00 00 58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42
-4C 05 30 4D 00 00 04 45 4D 49 54 00 30 40 00 C7
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F6 3C 0E 93 3E 4F
+78 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 9A C6 B2 49
+1E C7 B2 49 F6 C6 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 1A D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 7A C8 AC C4
+42 C5 38 C7 1E C4 05 1B 5B 37 6D 40 64 C7 0A C4
+02 18 9C C8 C8 C9 64 C7 1E C4 04 1B 5B 30 6D 00
+64 C7 B0 CC 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 38 C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 64 C7 0A C4 02 18 9C C8 C8 C9 0A C4 23 00
+1C C7 C8 C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+64 C7 0A C4 40 FF 32 C4 90 C8 94 C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+10 00 00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+CC 01 31 40 E0 20 3F 40 80 20 B2 43 02 02 B2 D3
+06 02 D2 43 24 02 F2 D3 26 02 F2 40 FD 00 22 02
+B2 40 00 A5 60 01 B2 D0 10 00 86 01 B2 40 00 02
+88 01 F2 C3 82 01 B2 40 1E 00 84 01 39 40 80 00
+18 42 00 18 18 83 FE 23 19 83 FA 23 39 40 00 10
+29 83 89 43 00 20 FC 23 1E 42 08 18 82 43 08 18
+3E F3 02 20 1E 42 5E 01 B0 12 D0 C4 80 C5 00 00
+0C 41 43 43 45 50 54 00 30 40 9C C6 0A 4E 2E 4F
+0A 5E 3B 40 0A 00 3C 40 20 00 3D 15 A9 3E 21 52
+A2 C2 6C 05 B2 B0 10 00 40 05 A2 22 3A 17 92 B3
+6C 05 FD 27 58 42 4C 05 48 9B 0E 24 48 9C 06 2C
+78 92 F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F
+CE 48 00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00
+06 4B 45 59 30 40 F8 C6 58 43 B0 12 46 C5 2F 83
+8F 4E 00 00 92 B3 6C 05 FD 27 1E 42 4C 05 B0 12
+44 C5 30 4D 00 00 08 45 4D 49 54 00 30 40 20 C7
 08 4E 3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D
-F6 C6 04 45 43 48 4F 00 B2 40 C2 48 0A C7 82 43
-DE 21 38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A C7 92 43 DE 21
-28 42 F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 68 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 FE C6 6A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40
-82 C7 0D 12 84 12 14 C4 02 0D 0A 00 4C C7 50 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 66 C6 01 40
-2E 4E 30 4D CE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 7A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 0A C8 02 23 53 00 0D 12
-84 12 0C C8 46 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 3A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 46 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-00 C8 3E C8 EE C4 7E C8 5A C8 4C C7 04 CC FC C6
-50 C8 2E C7 01 2E 0E 93 E3 37 38 43 E2 3F 78 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-4A CB 0A C4 22 00 1C C9 EA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-C4 C8 82 2E 22 00 0D 12 84 12 D4 C8 0A C4 4C C7
-4A CB 50 C8 FA C5 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 00 00 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 9E CA
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F A0 CA
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 48 CB 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 56 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 6A C8 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C4 04 CC 1C C9 C0 CB
-9C 26 3D 40 C8 CB DE 3E CA CB 0A 4E 3E 4F 3D 40
-E4 CB 36 27 3D 40 BA CB 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 E6 CB 3E 4F 3D 40 BA CB BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 86 CD
-CC 3F EE CB 86 12 20 00 D6 C7 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 7E C7
-BC C4 B4 CB B4 C7 E6 C7 14 C4 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4
-EE C7 14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C5 3A C4 2E CC 0A CC 86 41 42 4F 52 54 22 00
-0D 12 84 12 D4 C8 0A C4 2A C5 4A CB 50 C8 7E C9
-01 27 0D 12 84 12 04 CC 1C C9 84 C9 34 C4 02 CC
-50 C8 00 00 83 5B 27 5D 0D 12 84 12 82 CC 0A C4
-0A C4 4A CB 4A CB 50 C8 94 CC 81 5B 82 43 BE 21
-30 4D FC C7 01 5D B2 43 BE 21 30 4D B4 CC 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 04 CC 1C C9 84 C9 98 C7
-34 C4 02 CC E6 C7 34 C4 F6 CC 0A C4 0A C4 4A CB
-4A CB 0A C4 4A CB 4A CB 50 C8 AA CC 01 3A 30 12
-46 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 04 CC
-1C C9 14 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C5 FC CC 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A C4 50 C8 4A CB 58 CD AC CC
-50 C8 AA CB 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D 94 CB 06 43 52 45
-41 54 45 00 B0 12 02 CD BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F BC CD 04 43 4F 44 45 00 B0 12 02 CD
-A2 82 C6 21 0D 12 84 12 F4 CF CE CF 50 C8 A4 CD
-07 48 44 4E 43 4F 44 45 B2 40 D2 CF DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 58 CD
-0E D0 2C D0 50 C8 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 0E D0 2C D0 50 C8
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F F0 CD 85 48 49 32 4C 4F 0D 12 84 12 28 C4
-9C CF 4A CB AC CC E4 CD 50 C8 8A CD 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 6C CE 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C4 00 00 C8 C7 04 CC 1C C9
-9A CB 90 C7 34 C4 04 CF 9E C7 14 C4 06 5B 54 48
-45 4E 5D 00 76 CE DE CE 9A CE BC CE 50 C8 9E C7
-14 C4 06 5B 45 4C 53 45 5D 00 76 CE F4 CE 9A CE
-BA CE 50 C8 14 C4 04 5B 49 46 5D 00 76 CE BC CE
-3A C4 BA CE 72 C7 14 C4 05 0D 0A 6B 6F 20 4C C7
-BC C4 AC C4 3A C4 BC CE AA CE 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 1A CF 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 04 CC 1C C9
-84 C9 28 CF 50 C8 2E CF 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 38 CF E0 C7 50 C8 60 CF
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5C CB
-06 4D 41 52 4B 45 52 00 B0 12 02 CD BA 40 85 12
-FC FF BA 40 5E CF FE FF 28 83 8A 48 00 00 BA 40
-AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A C4 CA 21 D8 C7 50 C8 85 12 A0 CF 68 CC D6 CD
-12 C7 80 CC 54 CE D4 C6 70 CF 02 C9 98 D0 AC D0
-8C C8 16 C9 00 00 48 CF BE CC E4 C9 00 00 85 12
-A0 CF 4A D6 B0 D6 F2 D5 00 D7 B8 D5 00 00 84 D3
-00 00 C8 D7 AC D7 1C D6 5A D6 94 D4 00 00 00 00
-1C D7 CC CF 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D A8 CF 26 D0 2C D0 3C D0 1A 42 20 18
-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
-CA CC 09 50 57 52 5F 53 54 41 54 45 85 12 34 D0
-D4 D7 D0 C8 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 80 D0 F3 3F 72 D0 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 80 D0 30 4D 84 D0 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 0A D1 FE FF 29 83
-B9 40 E2 C5 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 E4 C5 B2 49 FA C4 B2 49 02 C4 B2 49 02 C6
-B2 49 E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 43 02 02 B2 D3 06 02 D2 43 24 02 F2 D3 26 02
-F2 40 FD 00 22 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 38 40 17 11 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 C4 00 C6 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 1C C9 84 C9 E0 C7 34 C4 C4 D1 40 CA 34 C4
-DE D1 D8 D1 C6 D1 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 E0 D1
-B2 41 C4 21 3E 41 84 12 0A C4 2B 00 1C C9 84 C9
-E0 C7 34 C4 FC D1 40 CA 34 C4 02 CC AA C7 1C C9
-40 CA 34 C4 02 CC 08 D2 3E 5F E7 3F 3E 40 28 00
-B0 12 A8 D1 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 70 CD
-1C 15 12 12 C4 21 92 53 C4 21 84 12 1C C9 40 CA
-34 C4 50 D2 46 D2 21 53 3E 90 10 00 C6 2B 7F 2D
-52 D2 B2 41 C4 21 C1 3F 0D 12 84 12 04 CC 84 D1
-62 D2 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 A8 D1 3C 40
+16 C7 08 45 43 48 4F 00 B2 40 C2 48 2A C7 38 40
+05 00 B0 12 46 C5 30 4D 00 00 0C 4E 4F 45 43 48
+4F 00 B2 40 30 4D 2A C7 28 42 F3 3F 00 00 08 54
+59 50 45 00 0D 12 3D 40 74 C7 29 4F 8F 4E 00 00
+7E 49 D4 3F 76 C7 2D 83 2F 83 5E 83 F7 23 3D 41
+2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F
+39 4F 3E 4F 8E 22 F9 98 00 00 8B 22 19 53 1C 83
+FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 82 22 9B 24
+F0 C6 0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C4
+00 00 94 C8 86 C7 D8 C9 92 CC B0 C4 02 C8 14 C4
+06 5B 54 48 45 4E 5D 00 8A C7 E0 C7 A6 C7 C4 C7
+14 C4 06 5B 45 4C 53 45 5D 00 8A C7 F2 C7 A6 C7
+C2 C7 1E C4 04 5B 49 46 5D 00 8A C7 C4 C7 B2 C4
+C2 C7 1E C4 05 0D 6B 6F 20 0A 64 C7 9A C4 84 C4
+B2 C4 C4 C7 B2 C7 0D 5B 54 48 45 4E 5D 00 30 4D
+16 C8 09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
+22 C8 13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12
+86 C7 D8 C9 40 CA E4 CB 54 C9 32 C8 17 5B 55 4E
+44 45 46 49 4E 45 44 5D 0D 12 84 12 86 C7 D8 C9
+40 CA 64 C8 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12
+2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83
+30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F
+3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D
+90 C6 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E
+3E E3 30 4D 3E 8F 01 28 0E F3 30 4D E0 C5 05 53
+22 00 82 43 C0 21 0D 12 84 12 0A C4 1E C4 42 CC
+0A C4 22 00 D8 C9 D8 C8 B2 40 20 00 C0 21 1A 53
+1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 4A C7 05 2E
+22 00 0D 12 84 12 C2 C8 0A C4 64 C7 42 CC 54 C9
+00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D BE C8
+02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4 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 10 C9
+04 23 53 00 0D 12 84 12 12 C9 4C C9 2D 83 09 DE
+09 93 E1 23 3D 41 30 4D 40 C9 04 23 3E 00 9F 42
+B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 08 48
+4F 4C 44 00 4A 4E 3E 4F DB 3F 5A C9 08 53 49 47
+4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 32 C7
+04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15
+3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
+84 12 06 C9 86 C7 74 C9 44 C9 70 C8 82 C9 5E C9
+64 C7 54 C9 EE C8 02 2E 0E 93 E4 37 3C 43 E3 3F
+00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C 38 4C
+09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83
+1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98 02 00
+01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C
+09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F
+4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42 C8 21
+0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00
+2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C
+01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF
+0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C
+FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
+0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D
+C6 C9 0E 3E 4E 55 4D 42 45 52 1B 42 BE 21 3C 4F
+38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00
+03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3
+0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82
+8F 4E 06 00 08 43 09 43 1B 42 BE 21 0C 4E 0E 43
+1E 15 3D 40 4A CB 7E 4C 6A 4C 7A 80 2D 00 16 24
+CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40
+10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20
+FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00
+1E 83 FC 9C 00 00 E0 23 AE 27 4C CB 2F 24 2D 83
+6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0
+00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43
+8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00
+03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C
+8F 49 00 00 0E 4B 2C 15 B0 12 3E C4 2A 17 E8 3F
+9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 02 C9 03 5C 92 42 C2 21
+C6 21 30 4D 0D 12 84 12 84 C4 86 C7 D8 C9 B0 C4
+1C CD 40 CA 06 CC 0A 4E 3E 4F 3D 40 20 CC 6D 27
+3D 40 FA CB 1A E2 BC 21 14 24 0E 12 3E 4F 30 41
+22 CC 3E 4F 3D 40 FA CB 19 20 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 F8 CD 2A 3C EA CB
+02 2C A2 53 C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F
+30 4D 40 CC 0F 4C 49 54 45 52 41 4C 82 93 BC 21
+0D 24 09 4E 1A 42 C8 21 A2 52 C8 21 BA 40 0A C4
+00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
+03 24 8A 4E 02 00 EE 3F 30 4D 7C C9 0A 43 4F 55
+4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D
+A2 C8 0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D
+3F 40 80 20 0E 43 84 12 1E C4 02 0D 0A 00 64 C7
+94 C4 F4 CB 82 C8 AC C8 1E C4 0B 73 74 61 63 6B
+20 65 6D 70 74 79 08 C5 32 C4 0A C4 40 FF B4 C8
+1E C4 09 46 52 41 4D 20 66 75 6C 6C 08 C5 B2 C4
+B8 CC A2 CC 0D 41 42 4F 52 54 22 00 0D 12 84 12
+C2 C8 0A C4 08 C5 42 CC 54 C9 D2 C9 02 27 0D 12
+84 12 86 C7 D8 C9 40 CA B0 C4 1E CD E6 C8 2A CC
+4C C8 07 5B 27 5D 0D 12 84 12 0E CD 0A C4 0A C4
+42 CC 42 CC 54 C9 22 CD 03 5B 82 43 BC 21 30 4D
+00 00 02 5D B2 43 BC 21 30 4D 9A C8 11 50 4F 53
+54 50 4F 4E 45 00 0D 12 84 12 86 C7 D8 C9 40 CA
+B0 C4 1E CD AC C8 AC C4 76 CD 0A C4 0A C4 42 CC
+42 CC 0A C4 42 CC 42 CC 54 C9 00 00 02 3A 30 12
+CC CD 92 B3 C8 21 A2 63 C8 21 0D 12 84 12 86 C7
+D8 C9 94 CD 3D 41 5A D3 5A 53 0A 5E 19 42 CC 21
+08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F
+E8 58 00 00 82 48 B4 21 82 49 B6 21 82 4A B8 21
+82 4F BA 21 2A 52 82 4A C8 21 30 41 BA 40 0D 12
+FC FF BA 40 84 12 FE FF B2 43 BC 21 30 4D 82 9F
+BA 21 66 25 84 12 1E C4 0F 73 74 61 63 6B 20 6D
+69 73 6D 61 74 63 68 21 12 C5 38 CD 03 3B 82 93
+BC 21 F4 26 0D 12 84 12 0A C4 54 C9 42 CC DE CD
+3A CD 54 C9 00 00 12 49 4D 4D 45 44 49 41 54 45
+18 42 B4 21 D8 D3 00 00 30 4D 8C CC 0C 43 52 45
+41 54 45 00 B0 12 82 CD BA 40 86 12 FC FF 8A 4A
+FE FF 3A 3D 5E C7 0A 44 4F 45 53 3E 1A 42 B8 21
+BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D 7C CD
+0E 3A 4E 4F 4E 41 4D 45 30 12 CC CD 2F 83 8F 4E
+00 00 1A 42 C8 21 1A B3 0A 63 0E 4A 39 40 12 02
+08 49 98 3F 16 CE 05 49 53 00 0D 12 82 93 BC 21
+08 20 84 12 0E CD 98 CE 3D 41 BE 4F 02 00 3E 4F
+30 4D 84 12 26 CD 0A C4 9A CE 42 CC 54 C9 2C CE
+08 43 4F 44 45 00 B0 12 82 CD A2 82 C8 21 61 3C
+6E C9 0E 48 44 4E 43 4F 44 45 B2 40 86 CF CC 21
+F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12
+DE CD E4 CE 3D 41 92 42 D0 21 CC 21 5D 3C B0 CE
+0E 43 4F 44 45 4E 4E 4D 30 12 BA CE B7 3F 00 00
+0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12 00 00
+BA 40 84 12 02 00 A2 52 C8 21 B2 43 BC 21 E3 3F
+00 00 0A 4C 4F 32 48 49 A2 83 C8 21 1A 42 C8 21
+EF 3F C2 CE 0B 48 49 32 4C 4F A2 53 C8 21 1A 42
+C8 21 8A 4A FE FF 82 43 BC 21 B9 3F 4E CF B2 40
+60 CF D0 21 82 4E CE 21 30 40 E6 C8 85 12 4C CF
+4C CD F4 CC DE CF F0 CE 46 CE 90 C9 3A CA 0C CD
+34 CF 86 CE 60 CE FC CD 54 CC 68 D0 92 CA 00 00
+00 00 85 12 4C CF E2 D6 66 D5 C6 D6 8E D4 EA D4
+38 D5 14 D6 20 D6 B0 D3 D4 D4 00 00 00 00 22 CF
+A0 D2 00 00 3C D6 80 CF B2 40 60 CF CE 21 82 43
+D0 21 30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83
+FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54 39 40
+C8 21 3A 40 42 18 B0 12 B4 CF 30 4D C6 CF 0E 52
+53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 21
+B0 12 B4 CF 1A 42 CA 21 3B 40 10 00 09 4A 08 49
+29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83
+F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40
+10 00 29 83 B9 43 80 FF FC 23 B9 40 10 C6 FE FF
+29 83 B9 40 FA C5 FE FF 39 90 AE FF F9 23 39 40
+10 18 B2 49 E0 FF 3B 40 10 00 3A 40 3A 18 B0 12
+B8 CF 82 43 4A 18 C7 3F 5A D0 B2 4E 42 18 BE 12
+3E 4F 3D 41 C0 3F 42 CD 0C 4D 41 52 4B 45 52 00
+12 12 C6 21 0D 12 84 12 86 C7 D8 C9 40 CA AC C4
+86 D0 7A C8 1A CC 88 D0 3E 4F 3D 41 B2 41 C6 21
+B0 12 82 CD BA 40 85 12 FC FF BA 40 58 D0 FE FF
+28 83 8A 48 00 00 BA 40 82 C4 02 00 A2 52 C8 21
+18 42 B4 21 19 42 B6 21 A8 49 FE FF 89 48 00 00
+30 4D 12 12 C6 21 84 12 D8 C9 40 CA AC C4 F2 D0
+D2 D0 3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E
+06 3C BE 90 58 D0 00 00 01 20 3E 52 2E 83 21 53
+30 41 EA CA AC C4 FA D0 EE D0 FC D0 B2 41 C6 21
+30 41 92 83 C6 21 3E 40 28 00 0A 4E 3D 15 B0 12
+C2 D0 15 20 3E 40 2B 00 B0 12 C2 D0 06 20 3E 40
+2D 00 B0 12 C2 D0 92 83 C6 21 0E 12 1E 41 02 00
+84 12 D8 C9 EA CA AC C4 1E CD 3C D1 3E 51 3A 17
+30 41 B0 12 02 D1 19 42 C8 21 89 4E 00 00 A2 53
+C8 21 3E 40 29 00 92 53 C6 21 1A 42 C6 21 3D 15
+84 12 D8 C9 EA CA AC C4 74 D1 6C D1 3E 90 10 00
+E6 2B 7C 2D 76 D1 A2 41 C6 21 E1 3F 03 20 B0 12
+5A D1 43 3C 7A 90 23 00 24 20 B0 12 0A D1 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 A8 D1 ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 30 D2 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 30 D2 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 30 D2 FA 23
-3C 50 10 00 B0 12 0C D2 EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 04 CC 84 D1 2E D3 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 30 D2 E0 23 3C 50 80 00 B0 12 0C D2 DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A C4 00 13
-4A CB 50 C8 0A C4 2C 00 58 D2 24 D3 6E D3 09 4B
-2E 4E 0E DC A2 3F 42 CE 03 4D 4F 56 85 12 64 D3
-00 40 78 D3 05 4D 4F 56 2E 42 85 12 64 D3 40 40
-00 00 03 41 44 44 85 12 64 D3 00 50 92 D3 05 41
-44 44 2E 42 85 12 64 D3 40 50 9E D3 04 41 44 44
-43 00 85 12 64 D3 00 60 AC D3 06 41 44 44 43 2E
-42 00 85 12 64 D3 40 60 52 D3 04 53 55 42 43 00
-85 12 64 D3 00 70 CA D3 06 53 55 42 43 2E 42 00
-85 12 64 D3 40 70 D8 D3 03 53 55 42 85 12 64 D3
-00 80 E8 D3 05 53 55 42 2E 42 85 12 64 D3 40 80
-18 CE 03 43 4D 50 85 12 64 D3 00 90 02 D4 05 43
-4D 50 2E 42 85 12 64 D3 40 90 02 CE 04 44 41 44
-44 00 85 12 64 D3 00 A0 1C D4 06 44 41 44 44 2E
-42 00 85 12 64 D3 40 A0 0E D4 03 42 49 54 85 12
-64 D3 00 B0 3A D4 05 42 49 54 2E 42 85 12 64 D3
-40 B0 46 D4 03 42 49 43 85 12 64 D3 00 C0 54 D4
-05 42 49 43 2E 42 85 12 64 D3 40 C0 60 D4 03 42
-49 53 85 12 64 D3 00 D0 6E D4 05 42 49 53 2E 42
-85 12 64 D3 40 D0 00 00 03 58 4F 52 85 12 64 D3
-00 E0 88 D4 05 58 4F 52 2E 42 85 12 64 D3 40 E0
-BA D3 03 41 4E 44 85 12 64 D3 00 F0 A2 D4 05 41
-4E 44 2E 42 85 12 64 D3 40 F0 04 CC 58 D2 C0 D4
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-F4 D3 03 52 52 43 85 12 BA D4 00 10 D2 D4 05 52
-52 43 2E 42 85 12 BA D4 40 10 DE D4 04 53 57 50
-42 00 85 12 BA D4 80 10 EC D4 03 52 52 41 85 12
-BA D4 00 11 FA D4 05 52 52 41 2E 42 85 12 BA D4
-40 11 06 D5 03 53 58 54 85 12 BA D4 80 11 00 00
-04 50 55 53 48 00 85 12 BA D4 00 12 20 D5 06 50
-55 53 48 2E 42 00 85 12 BA D4 40 12 7A D4 04 43
-41 4C 4C 00 85 12 BA D4 80 12 1A 53 0E 4A 0D 12
-84 12 C6 C8 14 C4 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 C5 14 D5 03 53 3E 3D 86 12 00 38
-68 D5 02 53 3C 00 86 12 00 34 2E D5 03 30 3E 3D
-86 12 00 30 7C D5 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C 90 D5 03 55 3E 3D 86 12
-00 28 86 D5 03 30 3C 3E 86 12 00 24 A4 D5 02 30
-3D 00 86 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 9A D5 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 B1 2F 88 DA 00 00 30 4D
-2A D4 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 D5
-05 42 45 47 49 4E 30 40 28 C4 CE D5 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D AE D4 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 BC D5 AA C7 50 C8 72 D5 06 52 45 50
-45 41 54 00 0D 12 84 12 50 D6 D4 D5 50 C8 80 D6
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 10 D6 03 42 57 31 85 12 7E D6
-00 00 98 D6 03 42 57 32 85 12 7E D6 00 00 A4 D6
-03 42 57 33 85 12 7E D6 00 00 BC D6 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 BA D6 00 00 DC D6 03 46 57 32 85 12 BA D6
-00 00 E8 D6 03 46 57 33 85 12 BA D6 00 00 F4 D6
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 82 CC DE CB 50 C8 00 00 05 3F 47 4F
+30 00 19 42 C8 21 A2 53 C8 21 89 4E 00 00 3E 4F
+30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12 0A D1
+F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12 56 D1
+0C 20 3C D0 10 00 3E 40 2B 00 B0 12 5A D1 92 92
+C2 21 C6 21 02 24 92 53 C6 21 8E 10 0C 5E DF 3F
+3C D0 10 00 B0 12 42 D1 F2 3F 03 20 B0 12 5A D1
+F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0
+80 00 B0 12 42 D1 EA 3F 0C 43 1B 42 C8 21 A2 53
+C8 21 3A 40 20 00 19 42 C6 21 19 52 C4 21 7A 99
+FE 27 5A 49 FF FF 19 82 C4 21 82 49 C6 21 7A 90
+52 00 30 4D 00 00 08 52 45 54 49 00 0D 12 84 12
+0A C4 00 13 42 CC 54 C9 0A C4 2C 00 38 D2 7C D1
+86 C7 42 D2 1A D2 88 D2 3D 41 2C DE 8B 4C 00 00
+9E 3F 00 00 06 4D 4F 56 85 12 78 D2 00 40 94 D2
+0A 4D 4F 56 2E 42 85 12 78 D2 40 40 00 00 06 41
+44 44 85 12 78 D2 00 50 AE D2 0A 41 44 44 2E 42
+85 12 78 D2 40 50 BA D2 08 41 44 44 43 00 85 12
+78 D2 00 60 C8 D2 0C 41 44 44 43 2E 42 00 85 12
+78 D2 40 60 00 CF 08 53 55 42 43 00 85 12 78 D2
+00 70 E6 D2 0C 53 55 42 43 2E 42 00 85 12 78 D2
+40 70 F4 D2 06 53 55 42 85 12 78 D2 00 80 04 D3
+0A 53 55 42 2E 42 85 12 78 D2 40 80 10 D3 06 43
+4D 50 85 12 78 D2 00 90 1E D3 0A 43 4D 50 2E 42
+85 12 78 D2 40 90 00 00 08 44 41 44 44 00 85 12
+78 D2 00 A0 38 D3 0C 44 41 44 44 2E 42 00 85 12
+78 D2 40 A0 66 D2 06 42 49 54 85 12 78 D2 00 B0
+56 D3 0A 42 49 54 2E 42 85 12 78 D2 40 B0 62 D3
+06 42 49 43 85 12 78 D2 00 C0 70 D3 0A 42 49 43
+2E 42 85 12 78 D2 40 C0 7C D3 06 42 49 53 85 12
+78 D2 00 D0 8A D3 0A 42 49 53 2E 42 85 12 78 D2
+40 D0 00 00 06 58 4F 52 85 12 78 D2 00 E0 A4 D3
+0A 58 4F 52 2E 42 85 12 78 D2 40 E0 D6 D2 06 41
+4E 44 85 12 78 D2 00 F0 BE D3 0A 41 4E 44 2E 42
+85 12 78 D2 40 F0 86 C7 38 D2 7C D1 DE D3 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F 96 D3
+06 52 52 43 85 12 D6 D3 00 10 F0 D3 0A 52 52 43
+2E 42 85 12 D6 D3 40 10 2A D3 08 53 57 50 42 00
+85 12 D6 D3 80 10 FC D3 06 52 52 41 85 12 D6 D3
+00 11 18 D4 0A 52 52 41 2E 42 85 12 D6 D3 40 11
+0A D4 06 53 58 54 85 12 D6 D3 80 11 00 00 08 50
+55 53 48 00 85 12 D6 D3 00 12 3E D4 0C 50 55 53
+48 2E 42 00 85 12 D6 D3 40 12 32 D4 08 43 41 4C
+4C 00 85 12 D6 D3 80 12 1A 53 0E 4A 84 12 C8 C9
+1E C4 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+12 C5 5C D4 06 53 3E 3D 86 12 00 38 84 D4 04 53
+3C 00 86 12 00 34 4C D4 06 30 3E 3D 86 12 00 30
+98 D4 04 30 3C 00 86 12 00 30 D4 CE 04 55 3C 00
+86 12 00 2C AC D4 06 55 3E 3D 86 12 00 28 A2 D4
+06 30 3C 3E 86 12 00 24 C0 D4 04 30 3D 00 86 12
+00 20 00 00 04 49 46 00 1A 42 C8 21 8A 4E 00 00
+A2 53 C8 21 0E 4A 30 4D 46 D3 08 54 48 45 4E 00
+1A 42 C8 21 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
+3A 90 00 02 B2 2F 88 DA 00 00 30 4D B6 D4 08 45
+4C 53 45 00 1A 42 C8 21 BA 40 00 3C 00 00 A2 53
+C8 21 2F 83 8F 4A 00 00 E3 3F 24 D4 0A 42 45 47
+49 4E 30 40 32 C4 0E D5 0A 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C8 21 2A 83 0A 89 0A 11 3A 90
+00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C8 21 30 4D CA D3 0A 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12
+D8 D4 6E C8 54 C9 2C D5 0C 52 45 50 45 41 54 00
+0D 12 84 12 6C D5 F0 D4 54 C9 9C D5 3D 41 08 4E
+3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42 C8 21 00 00
+30 4D 88 D5 06 42 57 31 85 12 9A D5 00 00 B4 D5
+06 42 57 32 85 12 9A D5 00 00 C0 D5 06 42 57 33
+85 12 9A D5 00 00 D8 D5 3D 41 1A 42 C8 21 28 4E
+8E 43 00 00 B2 92 C6 21 86 2B BA 4F 00 00 A2 53
+C8 21 8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31
+85 12 D6 D5 00 00 FC D5 06 46 57 32 85 12 D6 D5
+00 00 08 D6 06 46 57 33 85 12 D6 D5 00 00 76 D5
+08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
+0D 12 84 12 0E CD 1A CC 54 C9 00 00 0A 3F 47 4F
 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 04 CC 84 D1 3E D7 92 53
-C4 21 3E 40 2C 00 84 12 1C C9 40 CA 34 C4 02 CC
-1A D3 54 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-6C D6 04 52 52 43 4D 00 85 12 38 D7 50 00 82 D7
-04 52 52 41 4D 00 85 12 38 D7 50 01 90 D7 04 52
-4C 41 4D 00 85 12 38 D7 50 02 9E D7 04 52 52 55
-4D 00 85 12 38 D7 50 03 AE D5 05 50 55 53 48 4D
-85 12 38 D7 00 15 BA D7 04 50 4F 50 4D 00 85 12
-38 D7 00 17
+EF 27 3E E0 00 08 EC 3F 42 D2 0A C4 2C 00 D8 C9
+EA CA AC C4 1E CD 86 C7 38 D2 1A D2 6E D6 0A 4E
+3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E
+2A 92 EA 2E 8A 10 5A 06 A8 3E CC D5 08 52 52 43
+4D 00 85 12 58 D6 50 00 9C D6 08 52 52 41 4D 00
+85 12 58 D6 50 01 AA D6 08 52 4C 41 4D 00 85 12
+58 D6 50 02 B8 D6 08 52 52 55 4D 00 85 12 58 D6
+50 03 CA D4 0A 50 55 53 48 4D 85 12 58 D6 00 15
+D4 D6 08 50 4F 50 4D 00 85 12 58 D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-84 C6 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 0A D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+AE C6 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 10 C6
 q
diff --git a/binaries/CHIPSTICK_FR2433_1MHz_UART.txt b/binaries/CHIPSTICK_FR2433_1MHz_UART.txt
deleted file mode 100644 (file)
index 9449611..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF EA D7 04 D0 34 01
-10 00 41 33 94 C5 AA C4 DA C5 9C C5 96 C6 EA D7
-04 D0 7C C6 94 C7 26 C7 00 C7 3C 21 62 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 7A C6 B2 49 92 C7 B2 49 24 C7 B2 49 FE C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 D0 D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E2 C7 34 C7
-14 C4 04 1B 5B 37 6D 00 5E C7 AA C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5E C7 A2 C8 5E C7 14 C4 04 1B 5B 30 6D 00
-5E C7 2A CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 E2 D2 22 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 E2 C2 22 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 F2 B0 10 00 00 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00
-B0 12 9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23
-5E C7 D8 C8 14 C4 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
-5E C7 0A C4 40 FF 28 C4 D6 C7 A2 C8 14 C4 0A 62
-79 74 65 73 20 66 72 65 65 00 3A C4 86 C5 00 00
-06 41 43 43 45 50 54 00 30 40 7C C6 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 C6 3C 40
-D4 C6 5D 15 B5 3E 21 52 3A 17 58 42 0C 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 0E 05 30 4D CA C6 2D 83 92 B3 1C 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-1C 05 FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53
-DE 21 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 C7
-2F 83 8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27
-1E 42 0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 C7 08 4E 3E 4F C8 3F 1C C7 04 45
-43 48 4F 00 B2 40 C2 48 C2 C6 82 43 DE 21 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 C6
-92 43 DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93
-11 24 0D 12 3D 40 7A C7 28 4F 2F 83 8F 4E 00 00
-7E 48 8F 48 02 00 10 42 24 C7 7C C7 2D 83 1E 83
-F3 23 3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00
-30 40 94 C7 0D 12 84 12 14 C4 02 0D 0A 00 5E C7
-62 C8 2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D
-8F 4E FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E
-00 00 0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F
-0E 11 2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 C6
-01 40 2E 4E 30 4D E0 C7 01 21 BE 4F 00 00 3E 4F
-30 4D 1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D
-3E 8F 03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 8C C7 01 23 1B 42
-DC 21 2C 4F 2F 83 B0 12 6E C4 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 1C C8 02 23 53 00
-0D 12 84 12 1E C8 58 C8 2D 83 09 93 E2 23 0E 93
-E0 23 3D 41 30 4D 4C C8 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 4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00
-0E 93 3E 4F 7A 40 2D 00 D1 33 30 4D 58 C7 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12
-3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
-84 12 12 C8 50 C8 EE C4 90 C8 6C C8 5E C7 16 CC
-22 C7 62 C8 42 C7 01 2E 0E 93 E3 37 38 43 E2 3F
-8A C8 82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4
-14 C4 5C CB 0A C4 22 00 2E C9 FC C8 B2 40 20 00
-B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41
-30 4D D6 C8 82 2E 22 00 0D 12 84 12 E6 C8 0A C4
-5E C7 5C CB 62 C8 1A C6 04 57 4F 52 44 00 3C 40
-C0 21 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24
-7E 9A FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90
-27 00 00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24
-7C 4A 4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00
-F3 2F 4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00
-1E 43 01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40
-D4 C4 30 4D 00 00 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
-B0 CA 09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C
-FC 90 27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00
-7E 90 03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23
-B1 43 02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53
-04 24 3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F
-B2 CA 31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02
-2A 20 32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00
-22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00
-AF 4F 04 00 4A 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 00 00 01 2C 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D 5A CB 87 4C
-49 54 45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42
-C6 21 A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00
-3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
-EE 3F 30 4D 68 C8 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 7C C8 09 49 4E 54
-45 52 50 52 45 54 0D 12 84 12 AC C4 16 CC 2E C9
-D2 CB 9C 26 3D 40 DA CB DE 3E DC CB 0A 4E 3E 4F
-3D 40 F6 CB 36 27 3D 40 CC CB 1A E2 BE 21 B6 27
-0E 12 3E 4F 30 41 F8 CB 3E 4F 3D 40 CC CB BB 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-98 CD CC 3F 00 CC 86 12 20 00 E8 C7 05 41 4C 4C
-4F 54 82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43
-31 40 E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12
-90 C7 BC C4 C6 CB C6 C7 F8 C7 14 C4 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF
-28 C4 00 C8 14 C4 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 2A C5 3A C4 40 CC 1C CC 86 41 42 4F 52 54
-22 00 0D 12 84 12 E6 C8 0A C4 2A C5 5C CB 62 C8
-90 C9 01 27 0D 12 84 12 16 CC 2E C9 96 C9 34 C4
-14 CC 62 C8 00 00 83 5B 27 5D 0D 12 84 12 94 CC
-0A C4 0A C4 5C CB 5C CB 62 C8 A6 CC 81 5B 82 43
-BE 21 30 4D 0E C8 01 5D B2 43 BE 21 30 4D C6 CC
-81 5C 92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53
-54 50 4F 4E 45 00 0D 12 84 12 16 CC 2E C9 96 C9
-AA C7 34 C4 14 CC F8 C7 34 C4 08 CD 0A C4 0A C4
-5C CB 5C CB 0A C4 5C CB 5C CB 62 C8 BC CC 01 3A
-30 12 58 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12
-16 CC 2E C9 26 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 BA 40 0D 12 FC FF BA 40
-84 12 FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20
-18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
-30 4D 0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D
-69 73 6D 61 74 63 68 21 36 C5 0E CD 81 3B 82 93
-BE 21 97 27 0D 12 84 12 0A C4 62 C8 5C CB 6A CD
-BE CC 62 C8 BC CB 09 49 4D 4D 45 44 49 41 54 45
-18 42 B6 21 F8 D0 80 00 00 00 30 4D A6 CB 06 43
-52 45 41 54 45 00 B0 12 14 CD BA 40 86 12 FC FF
-8A 4A FE FF C9 3F CE CD 04 43 4F 44 45 00 B0 12
-14 CD A2 82 C6 21 0D 12 84 12 06 D0 E0 CF 62 C8
-B6 CD 07 48 44 4E 43 4F 44 45 B2 40 E4 CF DA 21
-EE 3F 00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12
-6A CD 20 D0 3E D0 62 C8 00 00 05 43 4F 4C 4F 4E
-1A 42 C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
-A2 52 C6 21 B2 43 BE 21 0D 12 84 12 20 D0 3E D0
-62 C8 00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42
-C6 21 EB 3F 02 CE 85 48 49 32 4C 4F 0D 12 84 12
-28 C4 AE CF 5C CB BE CC F6 CD 62 C8 9C CD 86 5B
-54 48 45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53
-F9 98 FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83
-00 00 F9 23 2F 53 2D 53 F7 3F 7E CE 86 5B 45 4C
-53 45 5D 00 0D 12 84 12 0A C4 00 00 DA C7 16 CC
-2E C9 AC CB A2 C7 34 C4 16 CF B0 C7 14 C4 06 5B
-54 48 45 4E 5D 00 88 CE F0 CE AC CE CE CE 62 C8
-B0 C7 14 C4 06 5B 45 4C 53 45 5D 00 88 CE 06 CF
-AC CE CC CE 62 C8 14 C4 04 5B 49 46 5D 00 88 CE
-CE CE 3A C4 CC CE 84 C7 14 C4 05 0D 0A 6B 6F 20
-5E C7 BC C4 AC C4 3A C4 CE CE BC CE 84 5B 49 46
-5D 00 0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2C CF
-89 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 16 CC
-2E C9 96 C9 3A CF 62 C8 40 CF 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 0D 12 84 12 4A CF F2 C7 62 C8
-72 CF B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C
-6E CB 06 4D 41 52 4B 45 52 00 B0 12 14 CD BA 40
-85 12 FC FF BA 40 70 CF FE FF 28 83 8A 48 00 00
-BA 40 AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53
-30 4D 0A C4 CA 21 EA C7 62 C8 85 12 B2 CF 7A CC
-E8 CD 2E C7 92 CC 66 CE F8 C6 82 CF 14 C9 AA D0
-BE D0 9E C8 28 C9 00 00 5A CF D0 CC F6 C9 00 00
-85 12 B2 CF 60 D6 C6 D6 08 D6 16 D7 CE D5 00 00
-9A D3 00 00 DE D7 C2 D7 32 D6 70 D6 AA D4 00 00
-00 00 32 D7 DE CF 3A 40 0C 00 39 40 D6 21 08 49
-28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-3A 40 0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42
-CA 21 DA 21 30 4D BA CF 38 D0 3E D0 4E D0 1A 42
-20 18 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 DC CC 09 50 57 52 5F 53 54 41 54 45 85 12
-46 D0 EA D7 E2 C8 09 52 53 54 5F 53 54 41 54 45
-92 42 0A 18 92 D0 F3 3F 84 D0 08 50 57 52 5F 48
-45 52 45 00 92 42 C6 21 92 D0 30 4D 96 D0 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F
-3E 90 0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40
-10 00 29 83 B9 43 80 FF FC 23 B9 40 1C D1 FE FF
-29 83 B9 40 02 C6 FE FF 39 90 AE FF F9 23 39 40
-14 18 B2 49 04 C6 B2 49 FA C4 B2 49 02 C4 B2 49
-22 C6 B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00
-04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40
-E0 20 3F 40 80 20 39 40 00 10 29 83 89 43 00 20
-FC 23 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 38 40 17 11
-18 83 FE 23 19 83 FA 23 1E 42 08 18 82 43 08 18
-1E D2 5E 01 B0 12 F8 C4 20 C6 38 40 C0 21 0A 4E
-39 48 2E 48 09 5E 1E 52 C4 21 09 9E 03 24 7A 9E
-FC 27 1E 83 0A 4E 2A 88 82 4A C4 21 30 4D 1C 15
-0E 12 12 12 C4 21 84 12 2E C9 96 C9 F2 C7 34 C4
-DA D1 52 CA 34 C4 F4 D1 EE D1 DC D1 3C 4E 3C 80
-87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52
-1B 17 30 41 F6 D1 B2 41 C4 21 3E 41 84 12 0A C4
-2B 00 2E C9 96 C9 F2 C7 34 C4 12 D2 52 CA 34 C4
-14 CC BC C7 2E C9 52 CA 34 C4 14 CC 1E D2 3E 5F
-E7 3F 3E 40 28 00 B0 12 BE D1 19 42 C6 21 A2 53
-C6 21 89 4E 00 00 3E 40 29 00 92 92 C0 21 C4 21
-02 20 30 40 82 CD 1C 15 12 12 C4 21 92 53 C4 21
-84 12 2E C9 52 CA 34 C4 66 D2 5C D2 21 53 3E 90
-10 00 C6 2B 7F 2D 68 D2 B2 41 C4 21 C1 3F 0D 12
-84 12 16 CC 9A D1 78 D2 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 BE D1 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 BE D1 ED 3F 7A 90
-40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12 46 D2
-0C 20 3C 50 10 00 3E 40 2B 00 B0 12 46 D2 92 92
-C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F
-B0 12 46 D2 FA 23 3C 50 10 00 B0 12 22 D2 EF 3F
-0C 43 1B 42 C6 21 A2 53 C6 21 0D 12 84 12 16 CC
-9A D1 44 D3 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C7 3F B0 12 46 D2 E0 23 3C 50 80 00
-B0 12 22 D2 DB 3F 00 00 04 52 45 54 49 00 0D 12
-84 12 0A C4 00 13 5C CB 62 C8 0A C4 2C 00 6E D2
-3A D3 84 D3 09 4B 2E 4E 0E DC A2 3F 54 CE 03 4D
-4F 56 85 12 7A D3 00 40 8E D3 05 4D 4F 56 2E 42
-85 12 7A D3 40 40 00 00 03 41 44 44 85 12 7A D3
-00 50 A8 D3 05 41 44 44 2E 42 85 12 7A D3 40 50
-B4 D3 04 41 44 44 43 00 85 12 7A D3 00 60 C2 D3
-06 41 44 44 43 2E 42 00 85 12 7A D3 40 60 68 D3
-04 53 55 42 43 00 85 12 7A D3 00 70 E0 D3 06 53
-55 42 43 2E 42 00 85 12 7A D3 40 70 EE D3 03 53
-55 42 85 12 7A D3 00 80 FE D3 05 53 55 42 2E 42
-85 12 7A D3 40 80 2A CE 03 43 4D 50 85 12 7A D3
-00 90 18 D4 05 43 4D 50 2E 42 85 12 7A D3 40 90
-14 CE 04 44 41 44 44 00 85 12 7A D3 00 A0 32 D4
-06 44 41 44 44 2E 42 00 85 12 7A D3 40 A0 24 D4
-03 42 49 54 85 12 7A D3 00 B0 50 D4 05 42 49 54
-2E 42 85 12 7A D3 40 B0 5C D4 03 42 49 43 85 12
-7A D3 00 C0 6A D4 05 42 49 43 2E 42 85 12 7A D3
-40 C0 76 D4 03 42 49 53 85 12 7A D3 00 D0 84 D4
-05 42 49 53 2E 42 85 12 7A D3 40 D0 00 00 03 58
-4F 52 85 12 7A D3 00 E0 9E D4 05 58 4F 52 2E 42
-85 12 7A D3 40 E0 D0 D3 03 41 4E 44 85 12 7A D3
-00 F0 B8 D4 05 41 4E 44 2E 42 85 12 7A D3 40 F0
-16 CC 6E D2 D6 D4 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F 0A D4 03 52 52 43 85 12 D0 D4
-00 10 E8 D4 05 52 52 43 2E 42 85 12 D0 D4 40 10
-F4 D4 04 53 57 50 42 00 85 12 D0 D4 80 10 02 D5
-03 52 52 41 85 12 D0 D4 00 11 10 D5 05 52 52 41
-2E 42 85 12 D0 D4 40 11 1C D5 03 53 58 54 85 12
-D0 D4 80 11 00 00 04 50 55 53 48 00 85 12 D0 D4
-00 12 36 D5 06 50 55 53 48 2E 42 00 85 12 D0 D4
-40 12 90 D4 04 43 41 4C 4C 00 85 12 D0 D4 80 12
-1A 53 0E 4A 0D 12 84 12 D8 C8 14 C4 0D 6F 75 74
-20 6F 66 20 62 6F 75 6E 64 73 36 C5 2A D5 03 53
-3E 3D 86 12 00 38 7E D5 02 53 3C 00 86 12 00 34
-44 D5 03 30 3E 3D 86 12 00 30 92 D5 02 30 3C 00
-86 12 00 30 00 00 02 55 3C 00 86 12 00 2C A6 D5
-03 55 3E 3D 86 12 00 28 9C D5 03 30 3C 3E 86 12
-00 24 BA D5 02 30 3D 00 86 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 B0 D5 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 B1 2F
-88 DA 00 00 30 4D 40 D4 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 D5 05 42 45 47 49 4E 30 40 28 C4
-E4 D5 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 8A 3B 3A F0
-FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D C4 D4
-05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
-05 57 48 49 4C 45 0D 12 84 12 D2 D5 BC C7 62 C8
-88 D5 06 52 45 50 45 41 54 00 0D 12 84 12 66 D6
-EA D5 62 C8 96 D6 3D 41 08 4E 3E 4F 2A 48 B2 92
-C4 21 CB 2F 98 42 C6 21 00 00 30 4D 26 D6 03 42
-57 31 85 12 94 D6 00 00 AE D6 03 42 57 32 85 12
-94 D6 00 00 BA D6 03 42 57 33 85 12 94 D6 00 00
-D2 D6 3D 41 1A 42 C6 21 28 4E B2 92 C4 21 88 2B
-BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D
-00 00 03 46 57 31 85 12 D0 D6 00 00 F2 D6 03 46
-57 32 85 12 D0 D6 00 00 FE D6 03 46 57 33 85 12
-D0 D6 00 00 0A D7 04 47 4F 54 4F 00 2F 83 8F 4E
-00 00 3E 40 00 3C 0D 12 84 12 94 CC F0 CB 62 C8
-00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
-00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 16 CC
-9A D1 54 D7 92 53 C4 21 3E 40 2C 00 84 12 2E C9
-52 CA 34 C4 14 CC 30 D3 6A D7 0A 4E 3E 4F 1A 83
-F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
-08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E
-8A 10 5A 06 A6 3E 82 D6 04 52 52 43 4D 00 85 12
-4E D7 50 00 98 D7 04 52 52 41 4D 00 85 12 4E D7
-50 01 A6 D7 04 52 4C 41 4D 00 85 12 4E D7 50 02
-B4 D7 04 52 52 55 4D 00 85 12 4E D7 50 03 C4 D5
-05 50 55 53 48 4D 85 12 4E D7 00 15 D0 D7 04 50
-4F 50 4D 00 85 12 4E D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 96 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 1C D1
-q
diff --git a/binaries/CHIPSTICK_FR2433_8MHz_115200.txt b/binaries/CHIPSTICK_FR2433_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..a5a2cef
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A0 19
+BA C6 7E C5 84 C5 54 C5 2A C7 18 D7 D0 CF 8A CF
+8A CF A0 C6 5E C7 26 C7 3C 21 E0 20 7E C9 B6 C4
+C4 C4 9A C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+2A C7 18 D7 D0 CF 8A CF 8A CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F8 3C 0E 93 3E 4F
+8D 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 9E C6 B2 49
+5C C7 B2 49 24 C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 44 D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 2A C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 A4 C8 AC C4 52 C5 6C C7 1E C4 04 1B
+5B 37 6D 00 8E C7 8E C7 1E C4 04 1B 5B 30 6D 00
+8E C7 DA CC B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 6C C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 8E C7 F2 C9 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 8E C7 0A C4 40 FF 32 C4
+BA C8 BE C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 10 00 00 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40
+E0 20 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 D0 10 00 86 01 B2 40 00 02 88 01 F2 C3
+82 01 F2 D0 06 00 82 01 B2 40 F4 00 84 01 39 40
+80 00 18 42 00 18 18 83 FE 23 19 83 FA 23 39 40
+00 10 29 83 89 43 00 20 FC 23 19 42 5E 01 1E 42
+08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 C4
+86 C5 00 00 0C 41 43 43 45 50 54 00 30 40 A0 C6
+08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40
+FE C6 3C 40 0A C7 5D 15 A3 3E 21 52 3A 17 58 42
+0C 05 48 9B 09 20 A2 B3 1C 05 FD 27 B2 40 13 00
+0E 05 E2 D2 22 02 30 41 48 9C 06 2C 78 92 11 20
+2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00
+1E 53 A2 B3 1C 05 FD 27 C2 48 0E 05 30 4D 00 C7
+2D 83 92 B3 1C 05 DB 23 FC 3F 3E 8F 3D 41 92 B3
+1C 05 FD 27 58 42 0C 05 08 4C EB 3F 00 00 06 4B
+45 59 30 40 26 C7 30 12 3C C7 A2 B3 1C 05 FD 27
+B2 40 11 00 0E 05 E2 C2 22 02 30 41 2F 83 8F 4E
+00 00 92 B3 1C 05 FD 27 B0 12 C6 C6 1E 42 0C 05
+30 4D 00 00 08 45 4D 49 54 00 30 40 5E C7 08 4E
+3E 4F C7 3F 54 C7 08 45 43 48 4F 00 B2 40 C2 48
+F8 C6 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D F8 C6 30 4D 00 00 08 54 59 50 45 00 0D 12
+3D 40 9E C7 29 4F 8F 4E 00 00 7E 49 DE 3F A0 C7
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 79 22
+F9 98 00 00 76 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 6D 22 9B 24 1E C7 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A C4 00 00 BE C8 B0 C7
+02 CA BC CC B0 C4 2C C8 14 C4 06 5B 54 48 45 4E
+5D 00 B4 C7 0A C8 D0 C7 EE C7 14 C4 06 5B 45 4C
+53 45 5D 00 B4 C7 1C C8 D0 C7 EC C7 1E C4 04 5B
+49 46 5D 00 B4 C7 EE C7 B2 C4 EC C7 1E C4 05 0D
+6B 6F 20 0A 8E C7 9A C4 84 C4 B2 C4 EE C7 DC C7
+0D 5B 54 48 45 4E 5D 00 30 4D 40 C8 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D 4C C8 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 B0 C7 02 CA 6A CA
+0E CC 7E C9 5C C8 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 B0 C7 02 CA 6A CA 8E C8 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D 94 C6 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 C5 05 53 22 00 82 43 C0 21
+0D 12 84 12 0A C4 1E C4 6C CC 0A C4 22 00 02 CA
+02 C9 B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21
+3E 4F 3D 41 30 4D 76 C7 05 2E 22 00 0D 12 84 12
+EC C8 0A C4 8E C7 6C CC 7E C9 00 00 04 3C 23 00
+B2 40 B2 21 B2 21 30 4D E8 C8 02 23 1B 42 BE 21
+2C 4F 2F 83 B0 12 46 C4 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 3A C9 04 23 53 00 0D 12
+84 12 3C C9 76 C9 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D 6A C9 04 23 3E 00 9F 42 B2 21 00 00 3E 40
+B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 84 C9 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 66 C7 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 30 C9 B0 C7
+9E C9 6E C9 9A C8 AC C9 88 C9 8E C7 7E C9 18 C9
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D F0 C9 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 74 CB
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 76 CB 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 2C C9 03 5C 92 42 C2 21 C6 21 30 4D 0D 12
+84 12 84 C4 B0 C7 02 CA B0 C4 46 CD 6A CA 30 CC
+0A 4E 3E 4F 3D 40 4A CC 6D 27 3D 40 24 CC 1A E2
+BC 21 14 24 0E 12 3E 4F 30 41 4C CC 3E 4F 3D 40
+24 CC 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 22 CE 2A 3C 14 CC 02 2C A2 53 C8 21
+1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 6A CC 0F 4C
+49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42
+C8 21 A2 52 C8 21 BA 40 0A C4 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D A6 C9 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D CC C8 0A 41 4C 4C
+4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43
+84 12 1E C4 02 0D 0A 00 8E C7 94 C4 1E CC AC C8
+D6 C8 1E C4 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 C5 32 C4 0A C4 40 FF DE C8 1E C4 09 46 52 41
+4D 20 66 75 6C 6C 08 C5 B2 C4 E2 CC CC CC 0D 41
+42 4F 52 54 22 00 0D 12 84 12 EC C8 0A C4 08 C5
+6C CC 7E C9 FC C9 02 27 0D 12 84 12 B0 C7 02 CA
+6A CA B0 C4 48 CD 10 C9 54 CC 76 C8 07 5B 27 5D
+0D 12 84 12 38 CD 0A C4 0A C4 6C CC 6C CC 7E C9
+4C CD 03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43
+BC 21 30 4D C4 C8 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 B0 C7 02 CA 6A CA B0 C4 48 CD D6 C8
+AC C4 A0 CD 0A C4 0A C4 6C CC 6C CC 0A C4 6C CC
+6C CC 7E C9 00 00 02 3A 30 12 F6 CD 92 B3 C8 21
+A2 63 C8 21 0D 12 84 12 B0 C7 02 CA BE CD 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52
+82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12
+1E C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 C5 62 CD 03 3B 82 93 BC 21 F4 26 0D 12
+84 12 0A C4 7E C9 6C CC 08 CE 64 CD 7E C9 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3
+00 00 30 4D B6 CC 0C 43 52 45 41 54 45 00 B0 12
+AC CD BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 88 C7
+0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D A6 CD 0E 3A 4E 4F 4E 41
+4D 45 30 12 F6 CD 2F 83 8F 4E 00 00 1A 42 C8 21
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F 40 CE
+05 49 53 00 0D 12 82 93 BC 21 08 20 84 12 38 CD
+C2 CE 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 50 CD
+0A C4 C4 CE 6C CC 7E C9 56 CE 08 43 4F 44 45 00
+B0 12 AC CD A2 82 C8 21 61 3C 98 C9 0E 48 44 4E
+43 4F 44 45 B2 40 B0 CF CC 21 F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 08 CE 0E CF 3D 41
+92 42 D0 21 CC 21 5D 3C DA CE 0E 43 4F 44 45 4E
+4E 4D 30 12 E4 CE B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 21 1A 42 C8 21 EF 3F EC CE 0B 48
+49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF
+82 43 BC 21 B9 3F 78 CF B2 40 8A CF D0 21 82 4E
+CE 21 30 40 10 C9 85 12 76 CF 76 CD 1E CD 08 D0
+1A CF 70 CE BA C9 64 CA 36 CD 5E CF B0 CE 8A CE
+26 CE 7E CC 92 D0 BC CA 00 00 00 00 85 12 76 CF
+0C D7 90 D5 F0 D6 B8 D4 14 D5 62 D5 3E D6 4A D6
+DA D3 FE D4 00 00 00 00 4C CF CA D2 00 00 66 D6
+AA CF B2 40 8A CF CE 21 82 43 D0 21 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18
+B0 12 DE CF 30 4D F0 CF 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 21 B0 12 DE CF 1A 42
+CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 08 C6 FE FF 29 83 B9 40 F2 C5
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 E4 FF
+3B 40 10 00 3A 40 3A 18 B0 12 E2 CF 82 43 4A 18
+C7 3F 84 D0 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+6C CD 0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12
+84 12 B0 C7 02 CA 6A CA AC C4 B0 D0 A4 C8 44 CC
+B2 D0 3E 4F 3D 41 B2 41 C6 21 B0 12 AC CD BA 40
+85 12 FC FF BA 40 82 D0 FE FF 28 83 8A 48 00 00
+BA 40 82 C4 02 00 A2 52 C8 21 18 42 B4 21 19 42
+B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21
+84 12 02 CA 6A CA AC C4 1C D1 FC D0 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 82 D0
+00 00 01 20 3E 52 2E 83 21 53 30 41 14 CB AC C4
+24 D1 18 D1 26 D1 B2 41 C6 21 30 41 92 83 C6 21
+3E 40 28 00 0A 4E 3D 15 B0 12 EC D0 15 20 3E 40
+2B 00 B0 12 EC D0 06 20 3E 40 2D 00 B0 12 EC D0
+92 83 C6 21 0E 12 1E 41 02 00 84 12 02 CA 14 CB
+AC C4 48 CD 66 D1 3E 51 3A 17 30 41 B0 12 2C D1
+19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00
+92 53 C6 21 1A 42 C6 21 3D 15 84 12 02 CA 14 CB
+AC C4 9E D1 96 D1 3E 90 10 00 E6 2B 7C 2D A0 D1
+A2 41 C6 21 E1 3F 03 20 B0 12 84 D1 43 3C 7A 90
+23 00 24 20 B0 12 34 D1 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 C8 21
+A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 34 D1 F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 80 D1 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 84 D1 92 92 C2 21 C6 21 02 24
+92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+6C D1 F2 3F 03 20 B0 12 84 D1 F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 6C D1
+EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00
+19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF
+19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A C4 00 13 6C CC
+7E C9 0A C4 2C 00 62 D2 A6 D1 B0 C7 6C D2 44 D2
+B2 D2 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 A2 D2 00 40 BE D2 0A 4D 4F 56 2E 42
+85 12 A2 D2 40 40 00 00 06 41 44 44 85 12 A2 D2
+00 50 D8 D2 0A 41 44 44 2E 42 85 12 A2 D2 40 50
+E4 D2 08 41 44 44 43 00 85 12 A2 D2 00 60 F2 D2
+0C 41 44 44 43 2E 42 00 85 12 A2 D2 40 60 2A CF
+08 53 55 42 43 00 85 12 A2 D2 00 70 10 D3 0C 53
+55 42 43 2E 42 00 85 12 A2 D2 40 70 1E D3 06 53
+55 42 85 12 A2 D2 00 80 2E D3 0A 53 55 42 2E 42
+85 12 A2 D2 40 80 3A D3 06 43 4D 50 85 12 A2 D2
+00 90 48 D3 0A 43 4D 50 2E 42 85 12 A2 D2 40 90
+00 00 08 44 41 44 44 00 85 12 A2 D2 00 A0 62 D3
+0C 44 41 44 44 2E 42 00 85 12 A2 D2 40 A0 90 D2
+06 42 49 54 85 12 A2 D2 00 B0 80 D3 0A 42 49 54
+2E 42 85 12 A2 D2 40 B0 8C D3 06 42 49 43 85 12
+A2 D2 00 C0 9A D3 0A 42 49 43 2E 42 85 12 A2 D2
+40 C0 A6 D3 06 42 49 53 85 12 A2 D2 00 D0 B4 D3
+0A 42 49 53 2E 42 85 12 A2 D2 40 D0 00 00 06 58
+4F 52 85 12 A2 D2 00 E0 CE D3 0A 58 4F 52 2E 42
+85 12 A2 D2 40 E0 00 D3 06 41 4E 44 85 12 A2 D2
+00 F0 E8 D3 0A 41 4E 44 2E 42 85 12 A2 D2 40 F0
+B0 C7 62 D2 A6 D1 08 D4 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F C0 D3 06 52 52 43 85 12
+00 D4 00 10 1A D4 0A 52 52 43 2E 42 85 12 00 D4
+40 10 54 D3 08 53 57 50 42 00 85 12 00 D4 80 10
+26 D4 06 52 52 41 85 12 00 D4 00 11 42 D4 0A 52
+52 41 2E 42 85 12 00 D4 40 11 34 D4 06 53 58 54
+85 12 00 D4 80 11 00 00 08 50 55 53 48 00 85 12
+00 D4 00 12 68 D4 0C 50 55 53 48 2E 42 00 85 12
+00 D4 40 12 5C D4 08 43 41 4C 4C 00 85 12 00 D4
+80 12 1A 53 0E 4A 84 12 F2 C9 1E C4 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 C5 86 D4 06 53
+3E 3D 86 12 00 38 AE D4 04 53 3C 00 86 12 00 34
+76 D4 06 30 3E 3D 86 12 00 30 C2 D4 04 30 3C 00
+86 12 00 30 FE CE 04 55 3C 00 86 12 00 2C D6 D4
+06 55 3E 3D 86 12 00 28 CC D4 06 30 3C 3E 86 12
+00 24 EA D4 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A
+30 4D 70 D3 08 54 48 45 4E 00 1A 42 C8 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D E0 D4 08 45 4C 53 45 00 1A 42
+C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A
+00 00 E3 3F 4E D4 0A 42 45 47 49 4E 30 40 32 C4
+38 D5 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D F4 D3
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 02 D5 98 C8 7E C9
+56 D5 0C 52 45 50 45 41 54 00 0D 12 84 12 96 D5
+1A D5 7E C9 C6 D5 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 21 CB 2F 98 42 C8 21 00 00 30 4D B2 D5 06 42
+57 31 85 12 C4 D5 00 00 DE D5 06 42 57 32 85 12
+C4 D5 00 00 EA D5 06 42 57 33 85 12 C4 D5 00 00
+02 D6 3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92
+C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 00 D6 00 00
+26 D6 06 46 57 32 85 12 00 D6 00 00 32 D6 06 46
+57 33 85 12 00 D6 00 00 A0 D5 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 38 CD
+44 CC 7E C9 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F 6C D2 0A C4 2C 00 02 CA 14 CB AC C4 48 CD
+B0 C7 62 D2 44 D2 98 D6 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E F6 D5 08 52 52 43 4D 00 85 12 82 D6
+50 00 C6 D6 08 52 52 41 4D 00 85 12 82 D6 50 01
+D4 D6 08 52 4C 41 4D 00 85 12 82 D6 50 02 E2 D6
+08 52 52 55 4D 00 85 12 82 D6 50 03 F4 D4 0A 50
+55 53 48 4D 85 12 82 D6 00 15 FE D6 08 50 4F 50
+4D 00 85 12 82 D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 BA C6 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 08 C6
+q
index d287915..1a9cf6e 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF D6 D7 F2 CF 34 01
-10 00 41 07 B6 C5 AA C4 B8 C5 8C C5 84 C6 D6 D7
-F2 CF 72 C6 82 C7 00 C7 DC C6 3C 21 50 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 03
+B4 C6 56 C5 56 C5 58 C5 44 C5 F4 D6 AC CF 66 CF
+66 CF A2 C6 26 C7 FE C6 3C 21 E0 20 5A C9 B6 C4
+C4 C4 76 C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 F4 D6 AC CF 66 CF 66 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 70 C6 B2 49 80 C7 B2 49 FE C6 B2 49 DA C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BE D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 D0 C7 18 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4C C7 0A C4 02 18 D0 C7
-C6 C8 98 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4C C7 90 C8 4C C7
-14 C4 04 1B 5B 30 6D 00 4C C7 18 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 F2 B0 10 00 00 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00
-B0 12 8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4
-07 0D 0A 1B 5B 37 6D 40 4C C7 0A C4 02 18 D0 C7
-C6 C8 0A C4 23 00 FC C6 C6 C8 14 C4 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 4C C7 0A C4 40 FF 28 C4 C4 C7
-90 C8 14 C4 0A 62 79 74 65 73 20 66 72 65 65 00
-3A C4 7E C5 00 00 06 41 43 43 45 50 54 00 30 40
-72 C6 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05
-B7 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F9 3C 0E 93 3E 4F
+7B 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A0 C6 B2 49
+24 C7 B2 49 FC C6 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 20 D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 80 C8 AC C4
+42 C5 3E C7 1E C4 05 1B 5B 37 6D 40 6A C7 0A C4
+02 18 A2 C8 CE C9 6A C7 1E C4 04 1B 5B 30 6D 00
+6A C7 B6 CC 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 3E C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 6A C7 0A C4 02 18 A2 C8 CE C9 0A C4 23 00
+22 C7 CE C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+6A C7 0A C4 40 FF 32 C4 96 C8 9A C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+10 00 00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+CC 01 31 40 E0 20 3F 40 80 20 B2 43 02 02 B2 D3
+06 02 D2 43 24 02 F2 D3 26 02 F2 40 FD 00 22 02
+B2 40 00 A5 60 01 B2 D0 10 00 86 01 B2 40 00 02
+88 01 F2 C3 82 01 F2 D0 06 00 82 01 B2 40 F4 00
+84 01 39 40 80 00 18 42 00 18 18 83 FE 23 19 83
+FA 23 39 40 00 10 29 83 89 43 00 20 FC 23 1E 42
+08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01 B0 12
+D0 C4 80 C5 00 00 0C 41 43 43 45 50 54 00 30 40
+A2 C6 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
+3D 15 A6 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05
+9F 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B
 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC C6 2F 83 8F 4E
-00 00 58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42
-4C 05 30 4D 00 00 04 45 4D 49 54 00 30 40 00 C7
-08 4E 3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D
-F6 C6 04 45 43 48 4F 00 B2 40 C2 48 0A C7 82 43
-DE 21 38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A C7 92 43 DE 21
-28 42 F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 68 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 FE C6 6A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40
-82 C7 0D 12 84 12 14 C4 02 0D 0A 00 4C C7 50 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 66 C6 01 40
-2E 4E 30 4D CE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 7A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 0A C8 02 23 53 00 0D 12
-84 12 0C C8 46 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 3A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 46 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-00 C8 3E C8 EE C4 7E C8 5A C8 4C C7 04 CC FC C6
-50 C8 2E C7 01 2E 0E 93 E3 37 38 43 E2 3F 78 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-4A CB 0A C4 22 00 1C C9 EA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-C4 C8 82 2E 22 00 0D 12 84 12 D4 C8 0A C4 4C C7
-4A CB 50 C8 FA C5 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 00 00 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
+F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F
+08 4C 1B 3C 00 00 06 4B 45 59 30 40 FE C6 58 43
+B0 12 46 C5 2F 83 8F 4E 00 00 92 B3 6C 05 FD 27
+1E 42 4C 05 B0 12 44 C5 30 4D 00 00 08 45 4D 49
+54 00 30 40 26 C7 08 4E 3E 4F A2 B3 6C 05 FD 27
+C2 48 4E 05 30 4D 1C C7 08 45 43 48 4F 00 B2 40
+C2 48 30 C7 38 40 05 00 B0 12 46 C5 30 4D 00 00
+0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 30 C7 28 42
+F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40 7A C7
+29 4F 8F 4E 00 00 7E 49 D4 3F 7C C7 2D 83 2F 83
+5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00
+0C 4E 38 4F 3C 9F 39 4F 3E 4F 8B 22 F9 98 00 00
+88 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F
+1E 83 7F 22 9B 24 F6 C6 0D 5B 45 4C 53 45 5D 00
+0D 12 84 12 0A C4 00 00 9A C8 8C C7 DE C9 98 CC
+B0 C4 08 C8 14 C4 06 5B 54 48 45 4E 5D 00 90 C7
+E6 C7 AC C7 CA C7 14 C4 06 5B 45 4C 53 45 5D 00
+90 C7 F8 C7 AC C7 C8 C7 1E C4 04 5B 49 46 5D 00
+90 C7 CA C7 B2 C4 C8 C7 1E C4 05 0D 6B 6F 20 0A
+6A C7 9A C4 84 C4 B2 C4 CA C7 B8 C7 0D 5B 54 48
+45 4E 5D 00 30 4D 1C C8 09 5B 49 46 5D 00 0E 93
+3E 4F C6 27 30 4D 28 C8 13 5B 44 45 46 49 4E 45
+44 5D 0D 12 84 12 8C C7 DE C9 46 CA EA CB 5A C9
+38 C8 17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
+84 12 8C C7 DE C9 46 CA 6A C8 3D 41 2F 53 1E 83
+0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D
+8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 20
+0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00
+02 40 2E 4E 30 4D 96 C6 02 21 BE 4F 00 00 3E 4F
+30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3
+30 4D E0 C5 05 53 22 00 82 43 C0 21 0D 12 84 12
+0A C4 1E C4 48 CC 0A C4 22 00 DE C9 DE C8 B2 40
+20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F 3D 41
+30 4D 50 C7 05 2E 22 00 0D 12 84 12 C8 C8 0A C4
+6A C7 48 CC 5A C9 00 00 04 3C 23 00 B2 40 B2 21
+B2 21 30 4D C4 C8 02 23 1B 42 BE 21 2C 4F 2F 83
+B0 12 46 C4 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 16 C9 04 23 53 00 0D 12 84 12 18 C9
+52 C9 2D 83 09 DE 09 93 E1 23 3D 41 30 4D 46 C9
+04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F
+60 C9 08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00
+D2 33 30 4D 38 C7 04 55 2E 00 0C 43 2F 83 8F 4E
+00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3
+9F 53 00 00 0E 63 84 12 0C C9 8C C7 7A C9 4A C9
+76 C8 88 C9 64 C9 6A C7 5A C9 F4 C8 02 2E 0E 93
+E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40
+C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24
+7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00 00 00
+04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98
+0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B
+7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21 82 48
+C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D 00 00
+08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58
+2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11
+68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
+FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83
+8F 4C 00 00 30 4D CC C9 0E 3E 4E 55 4D 42 45 52
+1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04
+6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50
+0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 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 9E CA
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F A0 CA
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 48 CB 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 56 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 6A C8 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C4 04 CC 1C C9 C0 CB
-9C 26 3D 40 C8 CB DE 3E CA CB 0A 4E 3E 4F 3D 40
-E4 CB 36 27 3D 40 BA CB 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 E6 CB 3E 4F 3D 40 BA CB BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 86 CD
-CC 3F EE CB 86 12 20 00 D6 C7 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 7E C7
-BC C4 B4 CB B4 C7 E6 C7 14 C4 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4
-EE C7 14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C5 3A C4 2E CC 0A CC 86 41 42 4F 52 54 22 00
-0D 12 84 12 D4 C8 0A C4 2A C5 4A CB 50 C8 7E C9
-01 27 0D 12 84 12 04 CC 1C C9 84 C9 34 C4 02 CC
-50 C8 00 00 83 5B 27 5D 0D 12 84 12 82 CC 0A C4
-0A C4 4A CB 4A CB 50 C8 94 CC 81 5B 82 43 BE 21
-30 4D FC C7 01 5D B2 43 BE 21 30 4D B4 CC 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 04 CC 1C C9 84 C9 98 C7
-34 C4 02 CC E6 C7 34 C4 F6 CC 0A C4 0A C4 4A CB
-4A CB 0A C4 4A CB 4A CB 50 C8 AA CC 01 3A 30 12
-46 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 04 CC
-1C C9 14 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C5 FC CC 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A C4 50 C8 4A CB 58 CD AC CC
-50 C8 AA CB 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D 94 CB 06 43 52 45
-41 54 45 00 B0 12 02 CD BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F BC CD 04 43 4F 44 45 00 B0 12 02 CD
-A2 82 C6 21 0D 12 84 12 F4 CF CE CF 50 C8 A4 CD
-07 48 44 4E 43 4F 44 45 B2 40 D2 CF DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 58 CD
-0E D0 2C D0 50 C8 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 0E D0 2C D0 50 C8
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F F0 CD 85 48 49 32 4C 4F 0D 12 84 12 28 C4
-9C CF 4A CB AC CC E4 CD 50 C8 8A CD 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 6C CE 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C4 00 00 C8 C7 04 CC 1C C9
-9A CB 90 C7 34 C4 04 CF 9E C7 14 C4 06 5B 54 48
-45 4E 5D 00 76 CE DE CE 9A CE BC CE 50 C8 9E C7
-14 C4 06 5B 45 4C 53 45 5D 00 76 CE F4 CE 9A CE
-BA CE 50 C8 14 C4 04 5B 49 46 5D 00 76 CE BC CE
-3A C4 BA CE 72 C7 14 C4 05 0D 0A 6B 6F 20 4C C7
-BC C4 AC C4 3A C4 BC CE AA CE 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 1A CF 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 04 CC 1C C9
-84 C9 28 CF 50 C8 2E CF 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 38 CF E0 C7 50 C8 60 CF
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5C CB
-06 4D 41 52 4B 45 52 00 B0 12 02 CD BA 40 85 12
-FC FF BA 40 5E CF FE FF 28 83 8A 48 00 00 BA 40
-AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A C4 CA 21 D8 C7 50 C8 85 12 A0 CF 68 CC D6 CD
-12 C7 80 CC 54 CE D4 C6 70 CF 02 C9 98 D0 AC D0
-8C C8 16 C9 00 00 48 CF BE CC E4 C9 00 00 85 12
-A0 CF 4C D6 B2 D6 F4 D5 02 D7 BA D5 00 00 86 D3
-00 00 CA D7 AE D7 1E D6 5C D6 96 D4 00 00 00 00
-1E D7 CC CF 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D A8 CF 26 D0 2C D0 3C D0 1A 42 20 18
-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
-CA CC 09 50 57 52 5F 53 54 41 54 45 85 12 34 D0
-D6 D7 D0 C8 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 80 D0 F3 3F 72 D0 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 80 D0 30 4D 84 D0 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 0A D1 FE FF 29 83
-B9 40 E2 C5 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 E4 C5 B2 49 FA C4 B2 49 02 C4 B2 49 02 C6
-B2 49 E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 43 02 02 B2 D3 06 02 D2 43 24 02 F2 D3 26 02
-F2 40 FD 00 22 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 38 40 17 11 18 83 FE 23
-19 83 FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01
-B0 12 F8 C4 00 C6 38 40 C0 21 0A 4E 39 48 2E 48
-09 5E 1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83
-0A 4E 2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12
-C4 21 84 12 1C C9 84 C9 E0 C7 34 C4 C6 D1 40 CA
-34 C4 E0 D1 DA D1 C8 D1 3C 4E 3C 80 87 12 05 24
-1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41
-E2 D1 B2 41 C4 21 3E 41 84 12 0A C4 2B 00 1C C9
-84 C9 E0 C7 34 C4 FE D1 40 CA 34 C4 02 CC AA C7
-1C C9 40 CA 34 C4 02 CC 0A D2 3E 5F E7 3F 3E 40
-28 00 B0 12 AA D1 19 42 C6 21 A2 53 C6 21 89 4E
-00 00 3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40
-70 CD 1C 15 12 12 C4 21 92 53 C4 21 84 12 1C C9
-40 CA 34 C4 52 D2 48 D2 21 53 3E 90 10 00 C6 2B
-7F 2D 54 D2 B2 41 C4 21 C1 3F 0D 12 84 12 04 CC
-86 D1 64 D2 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 AA D1
-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 AA D1 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 21 B0 12 32 D2 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 32 D2 92 92 C0 21 C4 21
-02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12 32 D2
-FA 23 3C 50 10 00 B0 12 0E D2 EF 3F 0C 43 1B 42
-C6 21 A2 53 C6 21 0D 12 84 12 04 CC 86 D1 30 D3
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C7 3F B0 12 32 D2 E0 23 3C 50 80 00 B0 12 0E D2
-DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12 0A C4
-00 13 4A CB 50 C8 0A C4 2C 00 5A D2 26 D3 70 D3
-09 4B 2E 4E 0E DC A2 3F 42 CE 03 4D 4F 56 85 12
-66 D3 00 40 7A D3 05 4D 4F 56 2E 42 85 12 66 D3
-40 40 00 00 03 41 44 44 85 12 66 D3 00 50 94 D3
-05 41 44 44 2E 42 85 12 66 D3 40 50 A0 D3 04 41
-44 44 43 00 85 12 66 D3 00 60 AE D3 06 41 44 44
-43 2E 42 00 85 12 66 D3 40 60 54 D3 04 53 55 42
-43 00 85 12 66 D3 00 70 CC D3 06 53 55 42 43 2E
-42 00 85 12 66 D3 40 70 DA D3 03 53 55 42 85 12
-66 D3 00 80 EA D3 05 53 55 42 2E 42 85 12 66 D3
-40 80 18 CE 03 43 4D 50 85 12 66 D3 00 90 04 D4
-05 43 4D 50 2E 42 85 12 66 D3 40 90 02 CE 04 44
-41 44 44 00 85 12 66 D3 00 A0 1E D4 06 44 41 44
-44 2E 42 00 85 12 66 D3 40 A0 10 D4 03 42 49 54
-85 12 66 D3 00 B0 3C D4 05 42 49 54 2E 42 85 12
-66 D3 40 B0 48 D4 03 42 49 43 85 12 66 D3 00 C0
-56 D4 05 42 49 43 2E 42 85 12 66 D3 40 C0 62 D4
-03 42 49 53 85 12 66 D3 00 D0 70 D4 05 42 49 53
-2E 42 85 12 66 D3 40 D0 00 00 03 58 4F 52 85 12
-66 D3 00 E0 8A D4 05 58 4F 52 2E 42 85 12 66 D3
-40 E0 BC D3 03 41 4E 44 85 12 66 D3 00 F0 A4 D4
-05 41 4E 44 2E 42 85 12 66 D3 40 F0 04 CC 5A D2
-C2 D4 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
-4F 3F F6 D3 03 52 52 43 85 12 BC D4 00 10 D4 D4
-05 52 52 43 2E 42 85 12 BC D4 40 10 E0 D4 04 53
-57 50 42 00 85 12 BC D4 80 10 EE D4 03 52 52 41
-85 12 BC D4 00 11 FC D4 05 52 52 41 2E 42 85 12
-BC D4 40 11 08 D5 03 53 58 54 85 12 BC D4 80 11
-00 00 04 50 55 53 48 00 85 12 BC D4 00 12 22 D5
-06 50 55 53 48 2E 42 00 85 12 BC D4 40 12 7C D4
-04 43 41 4C 4C 00 85 12 BC D4 80 12 1A 53 0E 4A
-0D 12 84 12 C6 C8 14 C4 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 36 C5 16 D5 03 53 3E 3D 86 12
-00 38 6A D5 02 53 3C 00 86 12 00 34 30 D5 03 30
-3E 3D 86 12 00 30 7E D5 02 30 3C 00 86 12 00 30
-00 00 02 55 3C 00 86 12 00 2C 92 D5 03 55 3E 3D
-86 12 00 28 88 D5 03 30 3C 3E 86 12 00 24 A6 D5
-02 30 3D 00 86 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 9C D5
-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 B1 2F 88 DA 00 00
-30 4D 2C D4 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
-40 D5 05 42 45 47 49 4E 30 40 28 C4 D0 D5 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 8A 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 21 30 4D B0 D4 05 41 47 41
-49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
-4C 45 0D 12 84 12 BE D5 AA C7 50 C8 74 D5 06 52
-45 50 45 41 54 00 0D 12 84 12 52 D6 D6 D5 50 C8
-82 D6 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F
-98 42 C6 21 00 00 30 4D 12 D6 03 42 57 31 85 12
-80 D6 00 00 9A D6 03 42 57 32 85 12 80 D6 00 00
-A6 D6 03 42 57 33 85 12 80 D6 00 00 BE D6 3D 41
-1A 42 C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00
-A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 85 12 BC D6 00 00 DE D6 03 46 57 32 85 12
-BC D6 00 00 EA D6 03 46 57 33 85 12 BC D6 00 00
-F6 D6 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
-00 3C 0D 12 84 12 82 CC DE CB 50 C8 00 00 05 3F
-47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
-00 10 EF 27 3E E0 00 08 EC 3F 04 CC 86 D1 40 D7
-92 53 C4 21 3E 40 2C 00 84 12 1C C9 40 CA 34 C4
-02 CC 1C D3 56 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06
-A6 3E 6E D6 04 52 52 43 4D 00 85 12 3A D7 50 00
-84 D7 04 52 52 41 4D 00 85 12 3A D7 50 01 92 D7
-04 52 4C 41 4D 00 85 12 3A D7 50 02 A0 D7 04 52
-52 55 4D 00 85 12 3A D7 50 03 B0 D5 05 50 55 53
-48 4D 85 12 3A D7 00 15 BC D7 04 50 4F 50 4D 00
-85 12 3A D7 00 17
+E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42
+BE 21 0C 4E 0E 43 1E 15 3D 40 50 CB 7E 4C 6A 4C
+7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52
+6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20
+3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00
+38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27
+52 CB 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0
+00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53
+20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12
+3E C4 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4A 93 1D 17 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 08 C9
+03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12 84 C4
+8C C7 DE C9 B0 C4 22 CD 46 CA 0C CC 0A 4E 3E 4F
+3D 40 26 CC 6D 27 3D 40 00 CC 1A E2 BC 21 14 24
+0E 12 3E 4F 30 41 28 CC 3E 4F 3D 40 00 CC 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+FE CD 2A 3C F0 CB 02 2C A2 53 C8 21 1A 42 C8 21
+8A 4E FE FF 3E 4F 30 4D 46 CC 0F 4C 49 54 45 52
+41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21 A2 52
+C8 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F 32 B0
+00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
+82 C9 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D A8 C8 0A 41 4C 4C 4F 54 82 5E
+C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12 1E C4
+02 0D 0A 00 6A C7 94 C4 FA CB 88 C8 B2 C8 1E C4
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 C5 32 C4
+0A C4 40 FF BA C8 1E C4 09 46 52 41 4D 20 66 75
+6C 6C 08 C5 B2 C4 BE CC A8 CC 0D 41 42 4F 52 54
+22 00 0D 12 84 12 C8 C8 0A C4 08 C5 48 CC 5A C9
+D8 C9 02 27 0D 12 84 12 8C C7 DE C9 46 CA B0 C4
+24 CD EC C8 30 CC 52 C8 07 5B 27 5D 0D 12 84 12
+14 CD 0A C4 0A C4 48 CC 48 CC 5A C9 28 CD 03 5B
+82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21 30 4D
+A0 C8 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+8C C7 DE C9 46 CA B0 C4 24 CD B2 C8 AC C4 7C CD
+0A C4 0A C4 48 CC 48 CC 0A C4 48 CC 48 CC 5A C9
+00 00 02 3A 30 12 D2 CD 92 B3 C8 21 A2 63 C8 21
+0D 12 84 12 8C C7 DE C9 9A CD 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21 82 49
+B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A C8 21
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 21 30 4D 82 9F BA 21 66 25 84 12 1E C4 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 C5
+3E CD 03 3B 82 93 BC 21 F4 26 0D 12 84 12 0A C4
+5A C9 48 CC E4 CD 40 CD 5A C9 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00 30 4D
+92 CC 0C 43 52 45 41 54 45 00 B0 12 88 CD BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D 64 C7 0A 44 4F 45
+53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D 82 CD 0E 3A 4E 4F 4E 41 4D 45 30 12
+D2 CD 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F 1C CE 05 49 53 00
+0D 12 82 93 BC 21 08 20 84 12 14 CD 9E CE 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 2C CD 0A C4 A0 CE
+48 CC 5A C9 32 CE 08 43 4F 44 45 00 B0 12 88 CD
+A2 82 C8 21 61 3C 74 C9 0E 48 44 4E 43 4F 44 45
+B2 40 8C CF CC 21 F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 E4 CD EA CE 3D 41 92 42 D0 21
+CC 21 5D 3C B6 CE 0E 43 4F 44 45 4E 4E 4D 30 12
+C0 CE B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 21
+B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 21 1A 42 C8 21 EF 3F C8 CE 0B 48 49 32 4C 4F
+A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43 BC 21
+B9 3F 54 CF B2 40 66 CF D0 21 82 4E CE 21 30 40
+EC C8 85 12 52 CF 52 CD FA CC E4 CF F6 CE 4C CE
+96 C9 40 CA 12 CD 3A CF 8C CE 66 CE 02 CE 5A CC
+6E D0 98 CA 00 00 00 00 85 12 52 CF E8 D6 6C D5
+CC D6 94 D4 F0 D4 3E D5 1A D6 26 D6 B6 D3 DA D4
+00 00 00 00 28 CF A6 D2 00 00 42 D6 86 CF B2 40
+66 CF CE 21 82 43 D0 21 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12 BA CF
+30 4D CC CF 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 21 B0 12 BA CF 1A 42 CA 21 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 10 C6 FE FF 29 83 B9 40 FA C5 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 E0 FF 3B 40 10 00
+3A 40 3A 18 B0 12 BE CF 82 43 4A 18 C7 3F 60 D0
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 48 CD 0C 4D
+41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12 8C C7
+DE C9 46 CA AC C4 8C D0 80 C8 20 CC 8E D0 3E 4F
+3D 41 B2 41 C6 21 B0 12 88 CD BA 40 85 12 FC FF
+BA 40 5E D0 FE FF 28 83 8A 48 00 00 BA 40 82 C4
+02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21 A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12 DE C9
+46 CA AC C4 F8 D0 D8 D0 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 5E D0 00 00 01 20
+3E 52 2E 83 21 53 30 41 F0 CA AC C4 00 D1 F4 D0
+02 D1 B2 41 C6 21 30 41 92 83 C6 21 3E 40 28 00
+0A 4E 3D 15 B0 12 C8 D0 15 20 3E 40 2B 00 B0 12
+C8 D0 06 20 3E 40 2D 00 B0 12 C8 D0 92 83 C6 21
+0E 12 1E 41 02 00 84 12 DE C9 F0 CA AC C4 24 CD
+42 D1 3E 51 3A 17 30 41 B0 12 08 D1 19 42 C8 21
+89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53 C6 21
+1A 42 C6 21 3D 15 84 12 DE C9 F0 CA AC C4 7A D1
+72 D1 3E 90 10 00 E6 2B 7C 2D 7C D1 A2 41 C6 21
+E1 3F 03 20 B0 12 60 D1 43 3C 7A 90 23 00 24 20
+B0 12 10 D1 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 C8 21 A2 53 C8 21
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 10 D1 F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 5C D1 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 60 D1 92 92 C2 21 C6 21 02 24 92 53 C6 21
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 48 D1 F2 3F
+03 20 B0 12 60 D1 F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 48 D1 EA 3F 0C 43
+1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42 C6 21
+19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82 C4 21
+82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A C4 00 13 48 CC 5A C9 0A C4
+2C 00 3E D2 82 D1 8C C7 48 D2 20 D2 8E D2 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+7E D2 00 40 9A D2 0A 4D 4F 56 2E 42 85 12 7E D2
+40 40 00 00 06 41 44 44 85 12 7E D2 00 50 B4 D2
+0A 41 44 44 2E 42 85 12 7E D2 40 50 C0 D2 08 41
+44 44 43 00 85 12 7E D2 00 60 CE D2 0C 41 44 44
+43 2E 42 00 85 12 7E D2 40 60 06 CF 08 53 55 42
+43 00 85 12 7E D2 00 70 EC D2 0C 53 55 42 43 2E
+42 00 85 12 7E D2 40 70 FA D2 06 53 55 42 85 12
+7E D2 00 80 0A D3 0A 53 55 42 2E 42 85 12 7E D2
+40 80 16 D3 06 43 4D 50 85 12 7E D2 00 90 24 D3
+0A 43 4D 50 2E 42 85 12 7E D2 40 90 00 00 08 44
+41 44 44 00 85 12 7E D2 00 A0 3E D3 0C 44 41 44
+44 2E 42 00 85 12 7E D2 40 A0 6C D2 06 42 49 54
+85 12 7E D2 00 B0 5C D3 0A 42 49 54 2E 42 85 12
+7E D2 40 B0 68 D3 06 42 49 43 85 12 7E D2 00 C0
+76 D3 0A 42 49 43 2E 42 85 12 7E D2 40 C0 82 D3
+06 42 49 53 85 12 7E D2 00 D0 90 D3 0A 42 49 53
+2E 42 85 12 7E D2 40 D0 00 00 06 58 4F 52 85 12
+7E D2 00 E0 AA D3 0A 58 4F 52 2E 42 85 12 7E D2
+40 E0 DC D2 06 41 4E 44 85 12 7E D2 00 F0 C4 D3
+0A 41 4E 44 2E 42 85 12 7E D2 40 F0 8C C7 3E D2
+82 D1 E4 D3 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F 9C D3 06 52 52 43 85 12 DC D3 00 10
+F6 D3 0A 52 52 43 2E 42 85 12 DC D3 40 10 30 D3
+08 53 57 50 42 00 85 12 DC D3 80 10 02 D4 06 52
+52 41 85 12 DC D3 00 11 1E D4 0A 52 52 41 2E 42
+85 12 DC D3 40 11 10 D4 06 53 58 54 85 12 DC D3
+80 11 00 00 08 50 55 53 48 00 85 12 DC D3 00 12
+44 D4 0C 50 55 53 48 2E 42 00 85 12 DC D3 40 12
+38 D4 08 43 41 4C 4C 00 85 12 DC D3 80 12 1A 53
+0E 4A 84 12 CE C9 1E C4 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 C5 62 D4 06 53 3E 3D 86 12
+00 38 8A D4 04 53 3C 00 86 12 00 34 52 D4 06 30
+3E 3D 86 12 00 30 9E D4 04 30 3C 00 86 12 00 30
+DA CE 04 55 3C 00 86 12 00 2C B2 D4 06 55 3E 3D
+86 12 00 28 A8 D4 06 30 3C 3E 86 12 00 24 C6 D4
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D 4C D3
+08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D BC D4 08 45 4C 53 45 00 1A 42 C8 21 BA 40
+00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F
+2A D4 0A 42 45 47 49 4E 30 40 32 C4 14 D5 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 21 30 4D D0 D3 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 DE D4 74 C8 5A C9 32 D5 0C 52
+45 50 45 41 54 00 0D 12 84 12 72 D5 F6 D4 5A C9
+A2 D5 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F
+98 42 C8 21 00 00 30 4D 8E D5 06 42 57 31 85 12
+A0 D5 00 00 BA D5 06 42 57 32 85 12 A0 D5 00 00
+C6 D5 06 42 57 33 85 12 A0 D5 00 00 DE D5 3D 41
+1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21 86 2B
+BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 DC D5 00 00 02 D6 06 46
+57 32 85 12 DC D5 00 00 0E D6 06 46 57 33 85 12
+DC D5 00 00 7C D5 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 14 CD 20 CC 5A C9
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 48 D2
+0A C4 2C 00 DE C9 F0 CA AC C4 24 CD 8C C7 3E D2
+20 D2 74 D6 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+D2 D5 08 52 52 43 4D 00 85 12 5E D6 50 00 A2 D6
+08 52 52 41 4D 00 85 12 5E D6 50 01 B0 D6 08 52
+4C 41 4D 00 85 12 5E D6 50 02 BE D6 08 52 52 55
+4D 00 85 12 5E D6 50 03 D0 D4 0A 50 55 53 48 4D
+85 12 5E D6 00 15 DA D6 08 50 4F 50 4D 00 85 12
+5E D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-84 C6 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 0A D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+B4 C6 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 10 C6
 q
diff --git a/binaries/CHIPSTICK_FR2433_8MHz_UART.txt b/binaries/CHIPSTICK_FR2433_8MHz_UART.txt
deleted file mode 100644 (file)
index b6fc881..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF EC D7 04 D0 34 01
-10 00 41 33 94 C5 AA C4 DA C5 9C C5 96 C6 EC D7
-04 D0 7C C6 94 C7 26 C7 00 C7 3C 21 62 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 7A C6 B2 49 92 C7 B2 49 24 C7 B2 49 FE C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 D0 D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E2 C7 34 C7
-14 C4 04 1B 5B 37 6D 00 5E C7 AA C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5E C7 A2 C8 5E C7 14 C4 04 1B 5B 30 6D 00
-5E C7 2A CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 E2 D2 22 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 E2 C2 22 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 F2 B0 10 00 00 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00
-B0 12 9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23
-5E C7 D8 C8 14 C4 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
-5E C7 0A C4 40 FF 28 C4 D6 C7 A2 C8 14 C4 0A 62
-79 74 65 73 20 66 72 65 65 00 3A C4 86 C5 00 00
-06 41 43 43 45 50 54 00 30 40 7C C6 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 C6 3C 40
-D4 C6 5D 15 B5 3E 21 52 3A 17 58 42 0C 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 0E 05 30 4D CA C6 2D 83 92 B3 1C 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-1C 05 FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53
-DE 21 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 C7
-2F 83 8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27
-1E 42 0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 C7 08 4E 3E 4F C8 3F 1C C7 04 45
-43 48 4F 00 B2 40 C2 48 C2 C6 82 43 DE 21 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 C6
-92 43 DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93
-11 24 0D 12 3D 40 7A C7 28 4F 2F 83 8F 4E 00 00
-7E 48 8F 48 02 00 10 42 24 C7 7C C7 2D 83 1E 83
-F3 23 3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00
-30 40 94 C7 0D 12 84 12 14 C4 02 0D 0A 00 5E C7
-62 C8 2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D
-8F 4E FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E
-00 00 0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F
-0E 11 2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 C6
-01 40 2E 4E 30 4D E0 C7 01 21 BE 4F 00 00 3E 4F
-30 4D 1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D
-3E 8F 03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C
-23 00 B2 40 B2 21 B2 21 30 4D 8C C7 01 23 1B 42
-DC 21 2C 4F 2F 83 B0 12 6E C4 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 1C C8 02 23 53 00
-0D 12 84 12 1E C8 58 C8 2D 83 09 93 E2 23 0E 93
-E0 23 3D 41 30 4D 4C C8 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 4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00
-0E 93 3E 4F 7A 40 2D 00 D1 33 30 4D 58 C7 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12
-3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
-84 12 12 C8 50 C8 EE C4 90 C8 6C C8 5E C7 16 CC
-22 C7 62 C8 42 C7 01 2E 0E 93 E3 37 38 43 E2 3F
-8A C8 82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4
-14 C4 5C CB 0A C4 22 00 2E C9 FC C8 B2 40 20 00
-B4 21 6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41
-30 4D D6 C8 82 2E 22 00 0D 12 84 12 E6 C8 0A C4
-5E C7 5C CB 62 C8 1A C6 04 57 4F 52 44 00 3C 40
-C0 21 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24
-7E 9A FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90
-27 00 00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24
-7C 4A 4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00
-F3 2F 4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00
-1E 43 01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40
-D4 C4 30 4D 00 00 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
-B0 CA 09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C
-FC 90 27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00
-7E 90 03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23
-B1 43 02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53
-04 24 3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F
-B2 CA 31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02
-2A 20 32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00
-22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00
-AF 4F 04 00 4A 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 00 00 01 2C 1A 42 C6 21
-8A 4E 00 00 A2 53 C6 21 3E 4F 30 4D 5A CB 87 4C
-49 54 45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42
-C6 21 A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00
-3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
-EE 3F 30 4D 68 C8 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 7C C8 09 49 4E 54
-45 52 50 52 45 54 0D 12 84 12 AC C4 16 CC 2E C9
-D2 CB 9C 26 3D 40 DA CB DE 3E DC CB 0A 4E 3E 4F
-3D 40 F6 CB 36 27 3D 40 CC CB 1A E2 BE 21 B6 27
-0E 12 3E 4F 30 41 F8 CB 3E 4F 3D 40 CC CB BB 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-98 CD CC 3F 00 CC 86 12 20 00 E8 C7 05 41 4C 4C
-4F 54 82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43
-31 40 E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12
-90 C7 BC C4 C6 CB C6 C7 F8 C7 14 C4 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF
-28 C4 00 C8 14 C4 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 2A C5 3A C4 40 CC 1C CC 86 41 42 4F 52 54
-22 00 0D 12 84 12 E6 C8 0A C4 2A C5 5C CB 62 C8
-90 C9 01 27 0D 12 84 12 16 CC 2E C9 96 C9 34 C4
-14 CC 62 C8 00 00 83 5B 27 5D 0D 12 84 12 94 CC
-0A C4 0A C4 5C CB 5C CB 62 C8 A6 CC 81 5B 82 43
-BE 21 30 4D 0E C8 01 5D B2 43 BE 21 30 4D C6 CC
-81 5C 92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53
-54 50 4F 4E 45 00 0D 12 84 12 16 CC 2E C9 96 C9
-AA C7 34 C4 14 CC F8 C7 34 C4 08 CD 0A C4 0A C4
-5C CB 5C CB 0A C4 5C CB 5C CB 62 C8 BC CC 01 3A
-30 12 58 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12
-16 CC 2E C9 26 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 BA 40 0D 12 FC FF BA 40
-84 12 FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20
-18 42 B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00
-30 4D 0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D
-69 73 6D 61 74 63 68 21 36 C5 0E CD 81 3B 82 93
-BE 21 97 27 0D 12 84 12 0A C4 62 C8 5C CB 6A CD
-BE CC 62 C8 BC CB 09 49 4D 4D 45 44 49 41 54 45
-18 42 B6 21 F8 D0 80 00 00 00 30 4D A6 CB 06 43
-52 45 41 54 45 00 B0 12 14 CD BA 40 86 12 FC FF
-8A 4A FE FF C9 3F CE CD 04 43 4F 44 45 00 B0 12
-14 CD A2 82 C6 21 0D 12 84 12 06 D0 E0 CF 62 C8
-B6 CD 07 48 44 4E 43 4F 44 45 B2 40 E4 CF DA 21
-EE 3F 00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12
-6A CD 20 D0 3E D0 62 C8 00 00 05 43 4F 4C 4F 4E
-1A 42 C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
-A2 52 C6 21 B2 43 BE 21 0D 12 84 12 20 D0 3E D0
-62 C8 00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42
-C6 21 EB 3F 02 CE 85 48 49 32 4C 4F 0D 12 84 12
-28 C4 AE CF 5C CB BE CC F6 CD 62 C8 9C CD 86 5B
-54 48 45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53
-F9 98 FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83
-00 00 F9 23 2F 53 2D 53 F7 3F 7E CE 86 5B 45 4C
-53 45 5D 00 0D 12 84 12 0A C4 00 00 DA C7 16 CC
-2E C9 AC CB A2 C7 34 C4 16 CF B0 C7 14 C4 06 5B
-54 48 45 4E 5D 00 88 CE F0 CE AC CE CE CE 62 C8
-B0 C7 14 C4 06 5B 45 4C 53 45 5D 00 88 CE 06 CF
-AC CE CC CE 62 C8 14 C4 04 5B 49 46 5D 00 88 CE
-CE CE 3A C4 CC CE 84 C7 14 C4 05 0D 0A 6B 6F 20
-5E C7 BC C4 AC C4 3A C4 CE CE BC CE 84 5B 49 46
-5D 00 0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2C CF
-89 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 16 CC
-2E C9 96 C9 3A CF 62 C8 40 CF 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 0D 12 84 12 4A CF F2 C7 62 C8
-72 CF B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C
-6E CB 06 4D 41 52 4B 45 52 00 B0 12 14 CD BA 40
-85 12 FC FF BA 40 70 CF FE FF 28 83 8A 48 00 00
-BA 40 AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53
-30 4D 0A C4 CA 21 EA C7 62 C8 85 12 B2 CF 7A CC
-E8 CD 2E C7 92 CC 66 CE F8 C6 82 CF 14 C9 AA D0
-BE D0 9E C8 28 C9 00 00 5A CF D0 CC F6 C9 00 00
-85 12 B2 CF 62 D6 C8 D6 0A D6 18 D7 D0 D5 00 00
-9C D3 00 00 E0 D7 C4 D7 34 D6 72 D6 AC D4 00 00
-00 00 34 D7 DE CF 3A 40 0C 00 39 40 D6 21 08 49
-28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-3A 40 0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42
-CA 21 DA 21 30 4D BA CF 38 D0 3E D0 4E D0 1A 42
-20 18 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 DC CC 09 50 57 52 5F 53 54 41 54 45 85 12
-46 D0 EC D7 E2 C8 09 52 53 54 5F 53 54 41 54 45
-92 42 0A 18 92 D0 F3 3F 84 D0 08 50 57 52 5F 48
-45 52 45 00 92 42 C6 21 92 D0 30 4D 96 D0 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F
-3E 90 0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40
-10 00 29 83 B9 43 80 FF FC 23 B9 40 1C D1 FE FF
-29 83 B9 40 02 C6 FE FF 39 90 AE FF F9 23 39 40
-14 18 B2 49 04 C6 B2 49 FA C4 B2 49 02 C4 B2 49
-22 C6 B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00
-04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40
-E0 20 3F 40 80 20 39 40 00 10 29 83 89 43 00 20
-FC 23 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 38 40
-17 11 18 83 FE 23 19 83 FA 23 1E 42 08 18 82 43
-08 18 1E D2 5E 01 B0 12 F8 C4 20 C6 38 40 C0 21
-0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E 03 24
-7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21 30 4D
-1C 15 0E 12 12 12 C4 21 84 12 2E C9 96 C9 F2 C7
-34 C4 DC D1 52 CA 34 C4 F6 D1 F0 D1 DE D1 3C 4E
-3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83
-21 52 1B 17 30 41 F8 D1 B2 41 C4 21 3E 41 84 12
-0A C4 2B 00 2E C9 96 C9 F2 C7 34 C4 14 D2 52 CA
-34 C4 14 CC BC C7 2E C9 52 CA 34 C4 14 CC 20 D2
-3E 5F E7 3F 3E 40 28 00 B0 12 C0 D1 19 42 C6 21
-A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92 C0 21
-C4 21 02 20 30 40 82 CD 1C 15 12 12 C4 21 92 53
-C4 21 84 12 2E C9 52 CA 34 C4 68 D2 5E D2 21 53
-3E 90 10 00 C6 2B 7F 2D 6A D2 B2 41 C4 21 C1 3F
-0D 12 84 12 16 CC 9C D1 7A D2 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 C0 D1 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 C0 D1 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12
-48 D2 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 48 D2
-92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E
-DA 3F B0 12 48 D2 FA 23 3C 50 10 00 B0 12 24 D2
-EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12 84 12
-16 CC 9C D1 46 D3 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C7 3F B0 12 48 D2 E0 23 3C 50
-80 00 B0 12 24 D2 DB 3F 00 00 04 52 45 54 49 00
-0D 12 84 12 0A C4 00 13 5C CB 62 C8 0A C4 2C 00
-70 D2 3C D3 86 D3 09 4B 2E 4E 0E DC A2 3F 54 CE
-03 4D 4F 56 85 12 7C D3 00 40 90 D3 05 4D 4F 56
-2E 42 85 12 7C D3 40 40 00 00 03 41 44 44 85 12
-7C D3 00 50 AA D3 05 41 44 44 2E 42 85 12 7C D3
-40 50 B6 D3 04 41 44 44 43 00 85 12 7C D3 00 60
-C4 D3 06 41 44 44 43 2E 42 00 85 12 7C D3 40 60
-6A D3 04 53 55 42 43 00 85 12 7C D3 00 70 E2 D3
-06 53 55 42 43 2E 42 00 85 12 7C D3 40 70 F0 D3
-03 53 55 42 85 12 7C D3 00 80 00 D4 05 53 55 42
-2E 42 85 12 7C D3 40 80 2A CE 03 43 4D 50 85 12
-7C D3 00 90 1A D4 05 43 4D 50 2E 42 85 12 7C D3
-40 90 14 CE 04 44 41 44 44 00 85 12 7C D3 00 A0
-34 D4 06 44 41 44 44 2E 42 00 85 12 7C D3 40 A0
-26 D4 03 42 49 54 85 12 7C D3 00 B0 52 D4 05 42
-49 54 2E 42 85 12 7C D3 40 B0 5E D4 03 42 49 43
-85 12 7C D3 00 C0 6C D4 05 42 49 43 2E 42 85 12
-7C D3 40 C0 78 D4 03 42 49 53 85 12 7C D3 00 D0
-86 D4 05 42 49 53 2E 42 85 12 7C D3 40 D0 00 00
-03 58 4F 52 85 12 7C D3 00 E0 A0 D4 05 58 4F 52
-2E 42 85 12 7C D3 40 E0 D2 D3 03 41 4E 44 85 12
-7C D3 00 F0 BA D4 05 41 4E 44 2E 42 85 12 7C D3
-40 F0 16 CC 70 D2 D8 D4 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F 0C D4 03 52 52 43 85 12
-D2 D4 00 10 EA D4 05 52 52 43 2E 42 85 12 D2 D4
-40 10 F6 D4 04 53 57 50 42 00 85 12 D2 D4 80 10
-04 D5 03 52 52 41 85 12 D2 D4 00 11 12 D5 05 52
-52 41 2E 42 85 12 D2 D4 40 11 1E D5 03 53 58 54
-85 12 D2 D4 80 11 00 00 04 50 55 53 48 00 85 12
-D2 D4 00 12 38 D5 06 50 55 53 48 2E 42 00 85 12
-D2 D4 40 12 92 D4 04 43 41 4C 4C 00 85 12 D2 D4
-80 12 1A 53 0E 4A 0D 12 84 12 D8 C8 14 C4 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 36 C5 2C D5
-03 53 3E 3D 86 12 00 38 80 D5 02 53 3C 00 86 12
-00 34 46 D5 03 30 3E 3D 86 12 00 30 94 D5 02 30
-3C 00 86 12 00 30 00 00 02 55 3C 00 86 12 00 2C
-A8 D5 03 55 3E 3D 86 12 00 28 9E D5 03 30 3C 3E
-86 12 00 24 BC D5 02 30 3D 00 86 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 B2 D5 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
-B1 2F 88 DA 00 00 30 4D 42 D4 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 56 D5 05 42 45 47 49 4E 30 40
-28 C4 E6 D5 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 8A 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D
-C6 D4 05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
-00 00 05 57 48 49 4C 45 0D 12 84 12 D4 D5 BC C7
-62 C8 8A D5 06 52 45 50 45 41 54 00 0D 12 84 12
-68 D6 EC D5 62 C8 98 D6 3D 41 08 4E 3E 4F 2A 48
-B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D 28 D6
-03 42 57 31 85 12 96 D6 00 00 B0 D6 03 42 57 32
-85 12 96 D6 00 00 BC D6 03 42 57 33 85 12 96 D6
-00 00 D4 D6 3D 41 1A 42 C6 21 28 4E B2 92 C4 21
-88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 85 12 D2 D6 00 00 F4 D6
-03 46 57 32 85 12 D2 D6 00 00 00 D7 03 46 57 33
-85 12 D2 D6 00 00 0C D7 04 47 4F 54 4F 00 2F 83
-8F 4E 00 00 3E 40 00 3C 0D 12 84 12 94 CC F0 CB
-62 C8 00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27
-3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
-16 CC 9C D1 56 D7 92 53 C4 21 3E 40 2C 00 84 12
-2E C9 52 CA 34 C4 14 CC 32 D3 6C D7 0A 4E 3E 4F
-1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92
-E8 2E 8A 10 5A 06 A6 3E 84 D6 04 52 52 43 4D 00
-85 12 50 D7 50 00 9A D7 04 52 52 41 4D 00 85 12
-50 D7 50 01 A8 D7 04 52 4C 41 4D 00 85 12 50 D7
-50 02 B6 D7 04 52 52 55 4D 00 85 12 50 D7 50 03
-C6 D5 05 50 55 53 48 4D 85 12 50 D7 00 15 D2 D7
-04 50 4F 50 4D 00 85 12 50 D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 96 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 1C D1
-q
diff --git a/binaries/LP_MSP430FR2476_16MHz_115200.txt b/binaries/LP_MSP430FR2476_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..65ef647
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A1 19
+CA 82 7E 81 84 81 54 81 3A 83 28 93 E0 8B 9A 8B
+9A 8B B0 82 6E 83 36 83 3C 21 E0 20 8E 85 B6 80
+C4 80 AA 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+3A 83 28 93 E0 8B 9A 8B 9A 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 00 3D 0E 93 3E 4F
+95 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 AE 82 B2 49
+6C 83 B2 49 34 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 54 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3A 83 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 80 B4 84 AC 80 52 81 7C 83 1E 80 04 1B
+5B 37 6D 00 9E 83 9E 83 1E 80 04 1B 5B 30 6D 00
+9E 83 EA 88 B0 12 7E 81 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 7C 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 9E 83 02 86 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 9E 83 0A 80 40 FF 32 80
+CA 84 CE 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+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 D0 10 00 86 01 F2 C3
+82 01 F2 D0 0A 00 82 01 B2 40 E8 01 84 01 39 40
+5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23 39 40
+00 20 29 83 89 43 00 20 FC 23 19 42 5E 01 1E 42
+08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 80
+86 81 00 00 0C 41 43 43 45 50 54 00 30 40 B0 82
+08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40
+0E 83 3C 40 1A 83 5D 15 9B 3E 21 52 3A 17 58 42
+0C 05 48 9B 09 20 A2 B3 1C 05 FD 27 B2 40 13 00
+0E 05 E2 D3 43 02 30 41 48 9C 06 2C 78 92 11 20
+2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00
+1E 53 A2 B3 1C 05 FD 27 C2 48 0E 05 30 4D 10 83
+2D 83 92 B3 1C 05 DB 23 FC 3F 3E 8F 3D 41 92 B3
+1C 05 FD 27 58 42 0C 05 08 4C EB 3F 00 00 06 4B
+45 59 30 40 36 83 30 12 4C 83 A2 B3 1C 05 FD 27
+B2 40 11 00 0E 05 E2 C3 43 02 30 41 2F 83 8F 4E
+00 00 92 B3 1C 05 FD 27 B0 12 D6 82 1E 42 0C 05
+30 4D 00 00 08 45 4D 49 54 00 30 40 6E 83 08 4E
+3E 4F C7 3F 64 83 08 45 43 48 4F 00 B2 40 C2 48
+08 83 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D 08 83 30 4D 00 00 08 54 59 50 45 00 0D 12
+3D 40 AE 83 29 4F 8F 4E 00 00 7E 49 DE 3F B0 83
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 71 22
+F9 98 00 00 6E 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 65 22 9B 24 2E 83 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A 80 00 00 CE 84 C0 83
+12 86 CC 88 B0 80 3C 84 14 80 06 5B 54 48 45 4E
+5D 00 C4 83 1A 84 E0 83 FE 83 14 80 06 5B 45 4C
+53 45 5D 00 C4 83 2C 84 E0 83 FC 83 1E 80 04 5B
+49 46 5D 00 C4 83 FE 83 B2 80 FC 83 1E 80 05 0D
+6B 6F 20 0A 9E 83 9A 80 84 80 B2 80 FE 83 EC 83
+0D 5B 54 48 45 4E 5D 00 30 4D 50 84 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D 5C 84 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 C0 83 12 86 7A 86
+1E 88 8E 85 6C 84 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 C0 83 12 86 7A 86 9E 84 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D A4 82 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 81 05 53 22 00 82 43 C0 21
+0D 12 84 12 0A 80 1E 80 7C 88 0A 80 22 00 12 86
+12 85 B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21
+3E 4F 3D 41 30 4D 86 83 05 2E 22 00 0D 12 84 12
+FC 84 0A 80 9E 83 7C 88 8E 85 00 00 04 3C 23 00
+B2 40 B2 21 B2 21 30 4D F8 84 02 23 1B 42 BE 21
+2C 4F 2F 83 B0 12 46 80 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 4A 85 04 23 53 00 0D 12
+84 12 4C 85 86 85 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D 7A 85 04 23 3E 00 9F 42 B2 21 00 00 3E 40
+B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 94 85 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 76 83 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 40 85 C0 83
+AE 85 7E 85 AA 84 BC 85 98 85 9E 83 8E 85 28 85
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D 00 86 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 84 87
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 86 87 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 3C 85 03 5C 92 42 C2 21 C6 21 30 4D 0D 12
+84 12 84 80 C0 83 12 86 B0 80 56 89 7A 86 40 88
+0A 4E 3E 4F 3D 40 5A 88 6D 27 3D 40 34 88 1A E2
+BC 21 14 24 0E 12 3E 4F 30 41 5C 88 3E 4F 3D 40
+34 88 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 32 8A 2A 3C 24 88 02 2C A2 53 C8 21
+1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 7A 88 0F 4C
+49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42
+C8 21 A2 52 C8 21 BA 40 0A 80 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D B6 85 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D DC 84 0A 41 4C 4C
+4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43
+84 12 1E 80 02 0D 0A 00 9E 83 94 80 2E 88 BC 84
+E6 84 1E 80 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 81 32 80 0A 80 40 FF EE 84 1E 80 09 46 52 41
+4D 20 66 75 6C 6C 08 81 B2 80 F2 88 DC 88 0D 41
+42 4F 52 54 22 00 0D 12 84 12 FC 84 0A 80 08 81
+7C 88 8E 85 0C 86 02 27 0D 12 84 12 C0 83 12 86
+7A 86 B0 80 58 89 20 85 64 88 86 84 07 5B 27 5D
+0D 12 84 12 48 89 0A 80 0A 80 7C 88 7C 88 8E 85
+5C 89 03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43
+BC 21 30 4D D4 84 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 C0 83 12 86 7A 86 B0 80 58 89 E6 84
+AC 80 B0 89 0A 80 0A 80 7C 88 7C 88 0A 80 7C 88
+7C 88 8E 85 00 00 02 3A 30 12 06 8A 92 B3 C8 21
+A2 63 C8 21 0D 12 84 12 C0 83 12 86 CE 89 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52
+82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12
+1E 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 81 72 89 03 3B 82 93 BC 21 F4 26 0D 12
+84 12 0A 80 8E 85 7C 88 18 8A 74 89 8E 85 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3
+00 00 30 4D C6 88 0C 43 52 45 41 54 45 00 B0 12
+BC 89 BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 98 83
+0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D B6 89 0E 3A 4E 4F 4E 41
+4D 45 30 12 06 8A 2F 83 8F 4E 00 00 1A 42 C8 21
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F 50 8A
+05 49 53 00 0D 12 82 93 BC 21 08 20 84 12 48 89
+D2 8A 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 60 89
+0A 80 D4 8A 7C 88 8E 85 66 8A 08 43 4F 44 45 00
+B0 12 BC 89 A2 82 C8 21 61 3C A8 85 0E 48 44 4E
+43 4F 44 45 B2 40 C0 8B CC 21 F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 18 8A 1E 8B 3D 41
+92 42 D0 21 CC 21 5D 3C EA 8A 0E 43 4F 44 45 4E
+4E 4D 30 12 F4 8A B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 21 1A 42 C8 21 EF 3F FC 8A 0B 48
+49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF
+82 43 BC 21 B9 3F 88 8B B2 40 9A 8B D0 21 82 4E
+CE 21 30 40 20 85 85 12 86 8B 86 89 2E 89 18 8C
+2A 8B 80 8A CA 85 74 86 46 89 6E 8B C0 8A 9A 8A
+36 8A 8E 88 A2 8C CC 86 00 00 00 00 85 12 86 8B
+1C 93 A0 91 00 93 C8 90 24 91 72 91 4E 92 5A 92
+EA 8F 0E 91 00 00 00 00 5C 8B DA 8E 00 00 76 92
+BA 8B B2 40 9A 8B CE 21 82 43 D0 21 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18
+B0 12 EE 8B 30 4D 00 8C 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 21 B0 12 EE 8B 1A 42
+CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 06 82 FE FF 29 83 B9 40 F2 81
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 E0 FF
+3B 40 10 00 3A 40 3A 18 B0 12 F2 8B 82 43 4A 18
+C7 3F 94 8C B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+7C 89 0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12
+84 12 C0 83 12 86 7A 86 AC 80 C0 8C B4 84 54 88
+C2 8C 3E 4F 3D 41 B2 41 C6 21 B0 12 BC 89 BA 40
+85 12 FC FF BA 40 92 8C FE FF 28 83 8A 48 00 00
+BA 40 82 80 02 00 A2 52 C8 21 18 42 B4 21 19 42
+B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21
+84 12 12 86 7A 86 AC 80 2C 8D 0C 8D 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 92 8C
+00 00 01 20 3E 52 2E 83 21 53 30 41 24 87 AC 80
+34 8D 28 8D 36 8D B2 41 C6 21 30 41 92 83 C6 21
+3E 40 28 00 0A 4E 3D 15 B0 12 FC 8C 15 20 3E 40
+2B 00 B0 12 FC 8C 06 20 3E 40 2D 00 B0 12 FC 8C
+92 83 C6 21 0E 12 1E 41 02 00 84 12 12 86 24 87
+AC 80 58 89 76 8D 3E 51 3A 17 30 41 B0 12 3C 8D
+19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00
+92 53 C6 21 1A 42 C6 21 3D 15 84 12 12 86 24 87
+AC 80 AE 8D A6 8D 3E 90 10 00 E6 2B 7C 2D B0 8D
+A2 41 C6 21 E1 3F 03 20 B0 12 94 8D 43 3C 7A 90
+23 00 24 20 B0 12 44 8D 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 C8 21
+A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 44 8D F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 90 8D 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 94 8D 92 92 C2 21 C6 21 02 24
+92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+7C 8D F2 3F 03 20 B0 12 94 8D F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 7C 8D
+EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00
+19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF
+19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A 80 00 13 7C 88
+8E 85 0A 80 2C 00 72 8E B6 8D C0 83 7C 8E 54 8E
+C2 8E 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 B2 8E 00 40 CE 8E 0A 4D 4F 56 2E 42
+85 12 B2 8E 40 40 00 00 06 41 44 44 85 12 B2 8E
+00 50 E8 8E 0A 41 44 44 2E 42 85 12 B2 8E 40 50
+F4 8E 08 41 44 44 43 00 85 12 B2 8E 00 60 02 8F
+0C 41 44 44 43 2E 42 00 85 12 B2 8E 40 60 3A 8B
+08 53 55 42 43 00 85 12 B2 8E 00 70 20 8F 0C 53
+55 42 43 2E 42 00 85 12 B2 8E 40 70 2E 8F 06 53
+55 42 85 12 B2 8E 00 80 3E 8F 0A 53 55 42 2E 42
+85 12 B2 8E 40 80 4A 8F 06 43 4D 50 85 12 B2 8E
+00 90 58 8F 0A 43 4D 50 2E 42 85 12 B2 8E 40 90
+00 00 08 44 41 44 44 00 85 12 B2 8E 00 A0 72 8F
+0C 44 41 44 44 2E 42 00 85 12 B2 8E 40 A0 A0 8E
+06 42 49 54 85 12 B2 8E 00 B0 90 8F 0A 42 49 54
+2E 42 85 12 B2 8E 40 B0 9C 8F 06 42 49 43 85 12
+B2 8E 00 C0 AA 8F 0A 42 49 43 2E 42 85 12 B2 8E
+40 C0 B6 8F 06 42 49 53 85 12 B2 8E 00 D0 C4 8F
+0A 42 49 53 2E 42 85 12 B2 8E 40 D0 00 00 06 58
+4F 52 85 12 B2 8E 00 E0 DE 8F 0A 58 4F 52 2E 42
+85 12 B2 8E 40 E0 10 8F 06 41 4E 44 85 12 B2 8E
+00 F0 F8 8F 0A 41 4E 44 2E 42 85 12 B2 8E 40 F0
+C0 83 72 8E B6 8D 18 90 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F D0 8F 06 52 52 43 85 12
+10 90 00 10 2A 90 0A 52 52 43 2E 42 85 12 10 90
+40 10 64 8F 08 53 57 50 42 00 85 12 10 90 80 10
+36 90 06 52 52 41 85 12 10 90 00 11 52 90 0A 52
+52 41 2E 42 85 12 10 90 40 11 44 90 06 53 58 54
+85 12 10 90 80 11 00 00 08 50 55 53 48 00 85 12
+10 90 00 12 78 90 0C 50 55 53 48 2E 42 00 85 12
+10 90 40 12 6C 90 08 43 41 4C 4C 00 85 12 10 90
+80 12 1A 53 0E 4A 84 12 02 86 1E 80 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 81 96 90 06 53
+3E 3D 86 12 00 38 BE 90 04 53 3C 00 86 12 00 34
+86 90 06 30 3E 3D 86 12 00 30 D2 90 04 30 3C 00
+86 12 00 30 0E 8B 04 55 3C 00 86 12 00 2C E6 90
+06 55 3E 3D 86 12 00 28 DC 90 06 30 3C 3E 86 12
+00 24 FA 90 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A
+30 4D 80 8F 08 54 48 45 4E 00 1A 42 C8 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D F0 90 08 45 4C 53 45 00 1A 42
+C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A
+00 00 E3 3F 5E 90 0A 42 45 47 49 4E 30 40 32 80
+48 91 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D 04 90
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 12 91 A8 84 8E 85
+66 91 0C 52 45 50 45 41 54 00 0D 12 84 12 A6 91
+2A 91 8E 85 D6 91 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 21 CB 2F 98 42 C8 21 00 00 30 4D C2 91 06 42
+57 31 85 12 D4 91 00 00 EE 91 06 42 57 32 85 12
+D4 91 00 00 FA 91 06 42 57 33 85 12 D4 91 00 00
+12 92 3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92
+C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 10 92 00 00
+36 92 06 46 57 32 85 12 10 92 00 00 42 92 06 46
+57 33 85 12 10 92 00 00 B0 91 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 48 89
+54 88 8E 85 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F 7C 8E 0A 80 2C 00 12 86 24 87 AC 80 58 89
+C0 83 72 8E 54 8E A8 92 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E 06 92 08 52 52 43 4D 00 85 12 92 92
+50 00 D6 92 08 52 52 41 4D 00 85 12 92 92 50 01
+E4 92 08 52 4C 41 4D 00 85 12 92 92 50 02 F2 92
+08 52 52 55 4D 00 85 12 92 92 50 03 04 91 0A 50
+55 53 48 4D 85 12 92 92 00 15 0E 93 08 50 4F 50
+4D 00 85 12 92 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+CA 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
diff --git a/binaries/LP_MSP430FR2476_16MHz_4MBds.txt b/binaries/LP_MSP430FR2476_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..9368694
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A1 19
+CA 82 7E 81 84 81 54 81 3A 83 28 93 E0 8B 9A 8B
+9A 8B B0 82 6E 83 36 83 3C 21 E0 20 8E 85 B6 80
+C4 80 AA 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+3A 83 28 93 E0 8B 9A 8B 9A 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 00 3D 0E 93 3E 4F
+95 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 AE 82 B2 49
+6C 83 B2 49 34 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 54 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3A 83 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 80 B4 84 AC 80 52 81 7C 83 1E 80 04 1B
+5B 37 6D 00 9E 83 9E 83 1E 80 04 1B 5B 30 6D 00
+9E 83 EA 88 B0 12 7E 81 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 7C 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 9E 83 02 86 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 9E 83 0A 80 40 FF 32 80
+CA 84 CE 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+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 D0 10 00 86 01 F2 C3
+82 01 F2 D0 0A 00 82 01 B2 40 E8 01 84 01 39 40
+5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23 39 40
+00 20 29 83 89 43 00 20 FC 23 19 42 5E 01 1E 42
+08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 80
+86 81 00 00 0C 41 43 43 45 50 54 00 30 40 B0 82
+08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40
+0E 83 3C 40 1A 83 5D 15 9B 3E 21 52 3A 17 58 42
+0C 05 48 9B 09 20 A2 B3 1C 05 FD 27 B2 40 13 00
+0E 05 E2 D3 43 02 30 41 48 9C 06 2C 78 92 11 20
+2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00
+1E 53 A2 B3 1C 05 FD 27 C2 48 0E 05 30 4D 10 83
+2D 83 92 B3 1C 05 DB 23 FC 3F 3E 8F 3D 41 92 B3
+1C 05 FD 27 58 42 0C 05 08 4C EB 3F 00 00 06 4B
+45 59 30 40 36 83 30 12 4C 83 A2 B3 1C 05 FD 27
+B2 40 11 00 0E 05 E2 C3 43 02 30 41 2F 83 8F 4E
+00 00 92 B3 1C 05 FD 27 B0 12 D6 82 1E 42 0C 05
+30 4D 00 00 08 45 4D 49 54 00 30 40 6E 83 08 4E
+3E 4F C7 3F 64 83 08 45 43 48 4F 00 B2 40 C2 48
+08 83 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D 08 83 30 4D 00 00 08 54 59 50 45 00 0D 12
+3D 40 AE 83 29 4F 8F 4E 00 00 7E 49 DE 3F B0 83
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 71 22
+F9 98 00 00 6E 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 65 22 9B 24 2E 83 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A 80 00 00 CE 84 C0 83
+12 86 CC 88 B0 80 3C 84 14 80 06 5B 54 48 45 4E
+5D 00 C4 83 1A 84 E0 83 FE 83 14 80 06 5B 45 4C
+53 45 5D 00 C4 83 2C 84 E0 83 FC 83 1E 80 04 5B
+49 46 5D 00 C4 83 FE 83 B2 80 FC 83 1E 80 05 0D
+6B 6F 20 0A 9E 83 9A 80 84 80 B2 80 FE 83 EC 83
+0D 5B 54 48 45 4E 5D 00 30 4D 50 84 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D 5C 84 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 C0 83 12 86 7A 86
+1E 88 8E 85 6C 84 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 C0 83 12 86 7A 86 9E 84 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D A4 82 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 81 05 53 22 00 82 43 C0 21
+0D 12 84 12 0A 80 1E 80 7C 88 0A 80 22 00 12 86
+12 85 B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21
+3E 4F 3D 41 30 4D 86 83 05 2E 22 00 0D 12 84 12
+FC 84 0A 80 9E 83 7C 88 8E 85 00 00 04 3C 23 00
+B2 40 B2 21 B2 21 30 4D F8 84 02 23 1B 42 BE 21
+2C 4F 2F 83 B0 12 46 80 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 4A 85 04 23 53 00 0D 12
+84 12 4C 85 86 85 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D 7A 85 04 23 3E 00 9F 42 B2 21 00 00 3E 40
+B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 94 85 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 76 83 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 40 85 C0 83
+AE 85 7E 85 AA 84 BC 85 98 85 9E 83 8E 85 28 85
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D 00 86 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 84 87
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 86 87 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 3C 85 03 5C 92 42 C2 21 C6 21 30 4D 0D 12
+84 12 84 80 C0 83 12 86 B0 80 56 89 7A 86 40 88
+0A 4E 3E 4F 3D 40 5A 88 6D 27 3D 40 34 88 1A E2
+BC 21 14 24 0E 12 3E 4F 30 41 5C 88 3E 4F 3D 40
+34 88 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 32 8A 2A 3C 24 88 02 2C A2 53 C8 21
+1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 7A 88 0F 4C
+49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42
+C8 21 A2 52 C8 21 BA 40 0A 80 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D B6 85 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D DC 84 0A 41 4C 4C
+4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43
+84 12 1E 80 02 0D 0A 00 9E 83 94 80 2E 88 BC 84
+E6 84 1E 80 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 81 32 80 0A 80 40 FF EE 84 1E 80 09 46 52 41
+4D 20 66 75 6C 6C 08 81 B2 80 F2 88 DC 88 0D 41
+42 4F 52 54 22 00 0D 12 84 12 FC 84 0A 80 08 81
+7C 88 8E 85 0C 86 02 27 0D 12 84 12 C0 83 12 86
+7A 86 B0 80 58 89 20 85 64 88 86 84 07 5B 27 5D
+0D 12 84 12 48 89 0A 80 0A 80 7C 88 7C 88 8E 85
+5C 89 03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43
+BC 21 30 4D D4 84 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 C0 83 12 86 7A 86 B0 80 58 89 E6 84
+AC 80 B0 89 0A 80 0A 80 7C 88 7C 88 0A 80 7C 88
+7C 88 8E 85 00 00 02 3A 30 12 06 8A 92 B3 C8 21
+A2 63 C8 21 0D 12 84 12 C0 83 12 86 CE 89 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52
+82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12
+1E 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 81 72 89 03 3B 82 93 BC 21 F4 26 0D 12
+84 12 0A 80 8E 85 7C 88 18 8A 74 89 8E 85 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3
+00 00 30 4D C6 88 0C 43 52 45 41 54 45 00 B0 12
+BC 89 BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 98 83
+0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D B6 89 0E 3A 4E 4F 4E 41
+4D 45 30 12 06 8A 2F 83 8F 4E 00 00 1A 42 C8 21
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F 50 8A
+05 49 53 00 0D 12 82 93 BC 21 08 20 84 12 48 89
+D2 8A 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 60 89
+0A 80 D4 8A 7C 88 8E 85 66 8A 08 43 4F 44 45 00
+B0 12 BC 89 A2 82 C8 21 61 3C A8 85 0E 48 44 4E
+43 4F 44 45 B2 40 C0 8B CC 21 F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 18 8A 1E 8B 3D 41
+92 42 D0 21 CC 21 5D 3C EA 8A 0E 43 4F 44 45 4E
+4E 4D 30 12 F4 8A B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 21 1A 42 C8 21 EF 3F FC 8A 0B 48
+49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF
+82 43 BC 21 B9 3F 88 8B B2 40 9A 8B D0 21 82 4E
+CE 21 30 40 20 85 85 12 86 8B 86 89 2E 89 18 8C
+2A 8B 80 8A CA 85 74 86 46 89 6E 8B C0 8A 9A 8A
+36 8A 8E 88 A2 8C CC 86 00 00 00 00 85 12 86 8B
+1C 93 A0 91 00 93 C8 90 24 91 72 91 4E 92 5A 92
+EA 8F 0E 91 00 00 00 00 5C 8B DA 8E 00 00 76 92
+BA 8B B2 40 9A 8B CE 21 82 43 D0 21 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18
+B0 12 EE 8B 30 4D 00 8C 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 21 B0 12 EE 8B 1A 42
+CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 06 82 FE FF 29 83 B9 40 F2 81
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 E0 FF
+3B 40 10 00 3A 40 3A 18 B0 12 F2 8B 82 43 4A 18
+C7 3F 94 8C B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+7C 89 0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12
+84 12 C0 83 12 86 7A 86 AC 80 C0 8C B4 84 54 88
+C2 8C 3E 4F 3D 41 B2 41 C6 21 B0 12 BC 89 BA 40
+85 12 FC FF BA 40 92 8C FE FF 28 83 8A 48 00 00
+BA 40 82 80 02 00 A2 52 C8 21 18 42 B4 21 19 42
+B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21
+84 12 12 86 7A 86 AC 80 2C 8D 0C 8D 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 92 8C
+00 00 01 20 3E 52 2E 83 21 53 30 41 24 87 AC 80
+34 8D 28 8D 36 8D B2 41 C6 21 30 41 92 83 C6 21
+3E 40 28 00 0A 4E 3D 15 B0 12 FC 8C 15 20 3E 40
+2B 00 B0 12 FC 8C 06 20 3E 40 2D 00 B0 12 FC 8C
+92 83 C6 21 0E 12 1E 41 02 00 84 12 12 86 24 87
+AC 80 58 89 76 8D 3E 51 3A 17 30 41 B0 12 3C 8D
+19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00
+92 53 C6 21 1A 42 C6 21 3D 15 84 12 12 86 24 87
+AC 80 AE 8D A6 8D 3E 90 10 00 E6 2B 7C 2D B0 8D
+A2 41 C6 21 E1 3F 03 20 B0 12 94 8D 43 3C 7A 90
+23 00 24 20 B0 12 44 8D 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 C8 21
+A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 44 8D F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 90 8D 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 94 8D 92 92 C2 21 C6 21 02 24
+92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+7C 8D F2 3F 03 20 B0 12 94 8D F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 7C 8D
+EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00
+19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF
+19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A 80 00 13 7C 88
+8E 85 0A 80 2C 00 72 8E B6 8D C0 83 7C 8E 54 8E
+C2 8E 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 B2 8E 00 40 CE 8E 0A 4D 4F 56 2E 42
+85 12 B2 8E 40 40 00 00 06 41 44 44 85 12 B2 8E
+00 50 E8 8E 0A 41 44 44 2E 42 85 12 B2 8E 40 50
+F4 8E 08 41 44 44 43 00 85 12 B2 8E 00 60 02 8F
+0C 41 44 44 43 2E 42 00 85 12 B2 8E 40 60 3A 8B
+08 53 55 42 43 00 85 12 B2 8E 00 70 20 8F 0C 53
+55 42 43 2E 42 00 85 12 B2 8E 40 70 2E 8F 06 53
+55 42 85 12 B2 8E 00 80 3E 8F 0A 53 55 42 2E 42
+85 12 B2 8E 40 80 4A 8F 06 43 4D 50 85 12 B2 8E
+00 90 58 8F 0A 43 4D 50 2E 42 85 12 B2 8E 40 90
+00 00 08 44 41 44 44 00 85 12 B2 8E 00 A0 72 8F
+0C 44 41 44 44 2E 42 00 85 12 B2 8E 40 A0 A0 8E
+06 42 49 54 85 12 B2 8E 00 B0 90 8F 0A 42 49 54
+2E 42 85 12 B2 8E 40 B0 9C 8F 06 42 49 43 85 12
+B2 8E 00 C0 AA 8F 0A 42 49 43 2E 42 85 12 B2 8E
+40 C0 B6 8F 06 42 49 53 85 12 B2 8E 00 D0 C4 8F
+0A 42 49 53 2E 42 85 12 B2 8E 40 D0 00 00 06 58
+4F 52 85 12 B2 8E 00 E0 DE 8F 0A 58 4F 52 2E 42
+85 12 B2 8E 40 E0 10 8F 06 41 4E 44 85 12 B2 8E
+00 F0 F8 8F 0A 41 4E 44 2E 42 85 12 B2 8E 40 F0
+C0 83 72 8E B6 8D 18 90 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F D0 8F 06 52 52 43 85 12
+10 90 00 10 2A 90 0A 52 52 43 2E 42 85 12 10 90
+40 10 64 8F 08 53 57 50 42 00 85 12 10 90 80 10
+36 90 06 52 52 41 85 12 10 90 00 11 52 90 0A 52
+52 41 2E 42 85 12 10 90 40 11 44 90 06 53 58 54
+85 12 10 90 80 11 00 00 08 50 55 53 48 00 85 12
+10 90 00 12 78 90 0C 50 55 53 48 2E 42 00 85 12
+10 90 40 12 6C 90 08 43 41 4C 4C 00 85 12 10 90
+80 12 1A 53 0E 4A 84 12 02 86 1E 80 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 81 96 90 06 53
+3E 3D 86 12 00 38 BE 90 04 53 3C 00 86 12 00 34
+86 90 06 30 3E 3D 86 12 00 30 D2 90 04 30 3C 00
+86 12 00 30 0E 8B 04 55 3C 00 86 12 00 2C E6 90
+06 55 3E 3D 86 12 00 28 DC 90 06 30 3C 3E 86 12
+00 24 FA 90 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A
+30 4D 80 8F 08 54 48 45 4E 00 1A 42 C8 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D F0 90 08 45 4C 53 45 00 1A 42
+C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A
+00 00 E3 3F 5E 90 0A 42 45 47 49 4E 30 40 32 80
+48 91 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D 04 90
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 12 91 A8 84 8E 85
+66 91 0C 52 45 50 45 41 54 00 0D 12 84 12 A6 91
+2A 91 8E 85 D6 91 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 21 CB 2F 98 42 C8 21 00 00 30 4D C2 91 06 42
+57 31 85 12 D4 91 00 00 EE 91 06 42 57 32 85 12
+D4 91 00 00 FA 91 06 42 57 33 85 12 D4 91 00 00
+12 92 3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92
+C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 10 92 00 00
+36 92 06 46 57 32 85 12 10 92 00 00 42 92 06 46
+57 33 85 12 10 92 00 00 B0 91 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 48 89
+54 88 8E 85 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F 7C 8E 0A 80 2C 00 12 86 24 87 AC 80 58 89
+C0 83 72 8E 54 8E A8 92 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E 06 92 08 52 52 43 4D 00 85 12 92 92
+50 00 D6 92 08 52 52 41 4D 00 85 12 92 92 50 01
+E4 92 08 52 4C 41 4D 00 85 12 92 92 50 02 F2 92
+08 52 52 55 4D 00 85 12 92 92 50 03 04 91 0A 50
+55 53 48 4D 85 12 92 92 00 15 0E 93 08 50 4F 50
+4D 00 85 12 92 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+CA 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
index 91ddc16..8d3cee8 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF F2 93 F0 8B 34 01
-10 00 41 07 B6 81 AA 80 B8 81 8C 81 82 82 F2 93
-F0 8B 70 82 80 83 FE 82 DA 82 3C 21 4E 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 03
+C4 82 56 81 56 81 58 81 44 81 04 93 BC 8B 76 8B
+76 8B B2 82 36 83 0E 83 3C 21 E0 20 6A 85 B6 80
+C4 80 86 84 20 00 0A 00 00 20 56 81 56 81 58 81
+44 81 04 93 BC 8B 76 8B 76 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @8000
-B0 12 B8 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 6E 82 B2 49 7E 83 B2 49 FC 82 B2 49 D8 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 81 0E 12 B0 12
-F8 80 0A 80 DE 21 CE 83 16 83 EE 80 34 80 8A 81
-14 80 05 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83
-C4 84 96 83 34 80 7E 81 14 80 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 83 8E 84 4A 83
-14 80 04 1B 5B 30 6D 00 4A 83 16 88 2E 93 13 28
-B2 D0 C0 07 80 05 18 42 02 18 08 11 38 D0 00 04
-82 48 94 05 F2 D0 0C 00 2A 02 92 C3 80 05 A2 D2
-AA 05 92 C3 30 01 30 41 48 43 A2 B3 AC 05 FD 27
-C2 48 8E 05 A2 B2 AC 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 81 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 81 04 57 41 52 4D 00 B0 12
-8C 81 78 40 03 00 B0 12 BA 81 84 12 14 80 07 0D
-0A 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83 C4 84
-0A 80 23 00 FA 82 C4 84 14 80 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 4A 83 0A 80 40 FF 28 80 C2 83 8E 84
-14 80 0A 62 79 74 65 73 20 66 72 65 65 00 3A 80
-7E 81 00 00 06 41 43 43 45 50 54 00 30 40 70 82
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 AC 05 B2 B0 10 00 80 05 B8 22
-3A 17 92 B3 AC 05 FD 27 58 42 8C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 81 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 82 2F 83 8F 4E 00 00
-58 43 B0 12 BA 81 92 B3 AC 05 FD 27 1E 42 8C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 82 08 4E
-3E 4F A2 B3 AC 05 FD 27 C2 48 8E 05 30 4D F4 82
-04 45 43 48 4F 00 B2 40 C2 48 08 83 82 43 DE 21
-38 40 05 00 B0 12 BA 81 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 83 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 83 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 82 68 83 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 81 02 43 52 00 30 40 80 83
-0D 12 84 12 14 80 02 0D 0A 00 4A 83 4E 84 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 82 01 40 2E 4E
-30 4D CC 83 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 83 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E 80 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 08 84 02 23 53 00 0D 12 84 12
-0A 84 44 84 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 84 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 83 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 83
-3C 84 EE 80 7C 84 58 84 4A 83 02 88 FA 82 4E 84
-2C 83 01 2E 0E 93 E3 37 38 43 E2 3F 76 84 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80 48 87
-0A 80 22 00 1A 85 E8 84 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 84
-82 2E 22 00 0D 12 84 12 D2 84 0A 80 4A 83 48 87
-4E 84 F8 81 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 80 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80 30 4D
-00 00 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 9C 86 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 86 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 01 3D 0E 93 3E 4F
+83 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B0 82 B2 49
+34 83 B2 49 0C 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 30 8C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 81 B0 12 D0 80 90 84 AC 80
+42 81 4E 83 1E 80 05 1B 5B 37 6D 40 7A 83 0A 80
+02 18 B2 84 DE 85 7A 83 1E 80 04 1B 5B 30 6D 00
+7A 83 C6 88 48 43 A2 B3 AC 05 FD 27 C2 48 8E 05
+A2 B2 AC 05 FD 27 30 41 B2 D0 C0 07 80 05 18 42
+02 18 08 11 38 D0 00 04 82 48 94 05 F2 D0 0C 00
+2A 02 92 C3 80 05 A2 D2 AA 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 4E 83 1E 80 07 0D 0A 1B 5B 37
+6D 40 7A 83 0A 80 02 18 B2 84 DE 85 0A 80 23 00
+32 83 DE 85 1E 80 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+7A 83 0A 80 40 FF 32 80 A6 84 AA 85 1E 80 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 80 36 81 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 81 01 12 6D 3F 82 4E 08 18 92 12 3A 18 D2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 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 F2 40 A5 00 A1 01 F2 40 10 00
+A0 01 D2 43 A1 01 B2 40 00 A5 60 01 B2 D0 10 00
+86 01 F2 C3 82 01 F2 D0 0A 00 82 01 B2 40 E8 01
+84 01 39 40 5C 00 18 42 00 18 18 83 FE 23 19 83
+FA 23 39 40 00 20 29 83 89 43 00 20 FC 23 1E 42
+08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01 B0 12
+D0 80 80 81 00 00 0C 41 43 43 45 50 54 00 30 40
+B2 82 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
+3D 15 9E 3E 21 52 A2 C2 AC 05 B2 B0 10 00 80 05
+97 22 3A 17 92 B3 AC 05 FD 27 58 42 8C 05 48 9B
+0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
+F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F
+08 4C 1B 3C 00 00 06 4B 45 59 30 40 0E 83 58 43
+B0 12 46 81 2F 83 8F 4E 00 00 92 B3 AC 05 FD 27
+1E 42 8C 05 B0 12 44 81 30 4D 00 00 08 45 4D 49
+54 00 30 40 36 83 08 4E 3E 4F A2 B3 AC 05 FD 27
+C2 48 8E 05 30 4D 2C 83 08 45 43 48 4F 00 B2 40
+C2 48 40 83 38 40 05 00 B0 12 46 81 30 4D 00 00
+0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 40 83 28 42
+F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40 8A 83
+29 4F 8F 4E 00 00 7E 49 D4 3F 8C 83 2D 83 2F 83
+5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00
+0C 4E 38 4F 3C 9F 39 4F 3E 4F 83 22 F9 98 00 00
+80 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F
+1E 83 77 22 9B 24 06 83 0D 5B 45 4C 53 45 5D 00
+0D 12 84 12 0A 80 00 00 AA 84 9C 83 EE 85 A8 88
+B0 80 18 84 14 80 06 5B 54 48 45 4E 5D 00 A0 83
+F6 83 BC 83 DA 83 14 80 06 5B 45 4C 53 45 5D 00
+A0 83 08 84 BC 83 D8 83 1E 80 04 5B 49 46 5D 00
+A0 83 DA 83 B2 80 D8 83 1E 80 05 0D 6B 6F 20 0A
+7A 83 9A 80 84 80 B2 80 DA 83 C8 83 0D 5B 54 48
+45 4E 5D 00 30 4D 2C 84 09 5B 49 46 5D 00 0E 93
+3E 4F C6 27 30 4D 38 84 13 5B 44 45 46 49 4E 45
+44 5D 0D 12 84 12 9C 83 EE 85 56 86 FA 87 6A 85
+48 84 17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
+84 12 9C 83 EE 85 56 86 7A 84 3D 41 2F 53 1E 83
+0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D
+8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 20
+0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00
+02 40 2E 4E 30 4D A6 82 02 21 BE 4F 00 00 3E 4F
+30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3
+30 4D E0 81 05 53 22 00 82 43 C0 21 0D 12 84 12
+0A 80 1E 80 58 88 0A 80 22 00 EE 85 EE 84 B2 40
+20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F 3D 41
+30 4D 60 83 05 2E 22 00 0D 12 84 12 D8 84 0A 80
+7A 83 58 88 6A 85 00 00 04 3C 23 00 B2 40 B2 21
+B2 21 30 4D D4 84 02 23 1B 42 BE 21 2C 4F 2F 83
+B0 12 46 80 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 26 85 04 23 53 00 0D 12 84 12 28 85
+62 85 2D 83 09 DE 09 93 E1 23 3D 41 30 4D 56 85
+04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F
+70 85 08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00
+D2 33 30 4D 48 83 04 55 2E 00 0C 43 2F 83 8F 4E
+00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3
+9F 53 00 00 0E 63 84 12 1C 85 9C 83 8A 85 5A 85
+86 84 98 85 74 85 7A 83 6A 85 04 85 02 2E 0E 93
+E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40
+C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24
+7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00 00 00
+04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98
+0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B
+7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21 82 48
+C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D 00 00
+08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58
+2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11
+68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
+FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83
+8F 4C 00 00 30 4D DC 85 0E 3E 4E 55 4D 42 45 52
+1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04
+6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50
+0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04
+19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83
+E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42
+BE 21 0C 4E 0E 43 1E 15 3D 40 60 87 7E 4C 6A 4C
+7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52
+6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20
+3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00
+38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27
+62 87 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0
+00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53
+20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12
+3E 80 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4A 93 1D 17 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 18 85
+03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12 84 80
+9C 83 EE 85 B0 80 32 89 56 86 1C 88 0A 4E 3E 4F
+3D 40 36 88 6D 27 3D 40 10 88 1A E2 BC 21 14 24
+0E 12 3E 4F 30 41 38 88 3E 4F 3D 40 10 88 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+0E 8A 2A 3C 00 88 02 2C A2 53 C8 21 1A 42 C8 21
+8A 4E FE FF 3E 4F 30 4D 56 88 0F 4C 49 54 45 52
+41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21 A2 52
+C8 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 84 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 80 02 88 1A 85 BE 87 9C 26
-3D 40 C6 87 DE 3E C8 87 0A 4E 3E 4F 3D 40 E2 87
-36 27 3D 40 B8 87 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 87 3E 4F 3D 40 B8 87 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 89 CC 3F
-EC 87 86 12 20 00 D4 83 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C 83 BC 80
-B2 87 B2 83 E4 83 14 80 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80 EC 83
-14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 81
-3A 80 2C 88 08 88 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 84 0A 80 2A 81 48 87 4E 84 7C 85 01 27
-0D 12 84 12 02 88 1A 85 82 85 34 80 00 88 4E 84
-00 00 83 5B 27 5D 0D 12 84 12 80 88 0A 80 0A 80
-48 87 48 87 4E 84 92 88 81 5B 82 43 BE 21 30 4D
-FA 83 01 5D B2 43 BE 21 30 4D B2 88 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 88 1A 85 82 85 96 83 34 80
-00 88 E4 83 34 80 F4 88 0A 80 0A 80 48 87 48 87
-0A 80 48 87 48 87 4E 84 A8 88 01 3A 30 12 44 89
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 88 1A 85
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 81 FA 88 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A 80 4E 84 48 87 56 89 AA 88 4E 84
-A8 87 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 87 06 43 52 45 41 54
-45 00 B0 12 00 89 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 89 04 43 4F 44 45 00 B0 12 00 89 A2 82
-C6 21 0D 12 84 12 F2 8B CC 8B 4E 84 A2 89 07 48
-44 4E 43 4F 44 45 B2 40 D0 8B DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 89 0C 8C
-2A 8C 4E 84 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C 8C 2A 8C 4E 84 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE 89 85 48 49 32 4C 4F 0D 12 84 12 28 80 9A 8B
-48 87 AA 88 E2 89 4E 84 88 89 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 8A 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 80 00 00 C6 83 02 88 1A 85 98 87
-8E 83 34 80 02 8B 9C 83 14 80 06 5B 54 48 45 4E
-5D 00 74 8A DC 8A 98 8A BA 8A 4E 84 9C 83 14 80
-06 5B 45 4C 53 45 5D 00 74 8A F2 8A 98 8A B8 8A
-4E 84 14 80 04 5B 49 46 5D 00 74 8A BA 8A 3A 80
-B8 8A 70 83 14 80 05 0D 0A 6B 6F 20 4A 83 BC 80
-AC 80 3A 80 BA 8A A8 8A 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 8B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 88 1A 85 82 85
-26 8B 4E 84 2C 8B 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 8B DE 83 4E 84 5E 8B B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 87 06 4D
-41 52 4B 45 52 00 B0 12 00 89 BA 40 85 12 FC FF
-BA 40 5C 8B FE FF 28 83 8A 48 00 00 BA 40 AA 80
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A 80
-CA 21 D6 83 4E 84 85 12 9E 8B 66 88 D4 89 10 83
-7E 88 52 8A D2 82 6E 8B 00 85 96 8C AA 8C 8A 84
-14 85 00 00 46 8B BC 88 E2 85 00 00 85 12 9E 8B
-68 92 CE 92 10 92 1E 93 D6 91 00 00 A2 8F 00 00
-E6 93 CA 93 3A 92 78 92 B2 90 00 00 00 00 3A 93
-CA 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 8B 24 8C 2A 8C 3A 8C 1A 42 20 18 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 C8 88
-09 50 57 52 5F 53 54 41 54 45 85 12 32 8C F2 93
-CE 84 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 8C F3 3F 70 8C 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E 8C 30 4D 82 8C 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 8D FE FF 29 83 B9 40
-E2 81 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 81 B2 49 FA 80 B2 49 02 80 B2 49 00 82 B2 49
-DA FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 20 29 83 89 43 00 20 FC 23 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 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 B2 D0 10 00 86 01 B2 40 00 02 88 01
-39 40 5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23
-1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12 F8 80
-FE 81 38 40 C0 21 0A 4E 39 48 2E 48 09 5E 1E 52
-C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88
-82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21 84 12
-1A 85 82 85 DE 83 34 80 E2 8D 3E 86 34 80 FC 8D
-F6 8D E4 8D 3C 4E 3C 80 87 12 05 24 1C 53 02 20
-2E 4E 01 3C 2E 83 21 52 1B 17 30 41 FE 8D B2 41
-C4 21 3E 41 84 12 0A 80 2B 00 1A 85 82 85 DE 83
-34 80 1A 8E 3E 86 34 80 00 88 A8 83 1A 85 3E 86
-34 80 00 88 26 8E 3E 5F E7 3F 3E 40 28 00 B0 12
-C6 8D 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40
-29 00 92 92 C0 21 C4 21 02 20 30 40 6E 89 1C 15
-12 12 C4 21 92 53 C4 21 84 12 1A 85 3E 86 34 80
-6E 8E 64 8E 21 53 3E 90 10 00 C6 2B 7F 2D 70 8E
-B2 41 C4 21 C1 3F 0D 12 84 12 02 88 A2 8D 80 8E
-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 C6 8D 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 C6 8D ED 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 21 B0 12 4E 8E 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 4E 8E 92 92 C0 21 C4 21 02 24 92 53
-C4 21 8E 10 0C 5E DA 3F B0 12 4E 8E FA 23 3C 50
-10 00 B0 12 2A 8E EF 3F 0C 43 1B 42 C6 21 A2 53
-C6 21 0D 12 84 12 02 88 A2 8D 4C 8F FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12
-4E 8E E0 23 3C 50 80 00 B0 12 2A 8E DB 3F 00 00
-04 52 45 54 49 00 0D 12 84 12 0A 80 00 13 48 87
-4E 84 0A 80 2C 00 76 8E 42 8F 8C 8F 09 4B 2E 4E
-0E DC A2 3F 40 8A 03 4D 4F 56 85 12 82 8F 00 40
-96 8F 05 4D 4F 56 2E 42 85 12 82 8F 40 40 00 00
-03 41 44 44 85 12 82 8F 00 50 B0 8F 05 41 44 44
-2E 42 85 12 82 8F 40 50 BC 8F 04 41 44 44 43 00
-85 12 82 8F 00 60 CA 8F 06 41 44 44 43 2E 42 00
-85 12 82 8F 40 60 70 8F 04 53 55 42 43 00 85 12
-82 8F 00 70 E8 8F 06 53 55 42 43 2E 42 00 85 12
-82 8F 40 70 F6 8F 03 53 55 42 85 12 82 8F 00 80
-06 90 05 53 55 42 2E 42 85 12 82 8F 40 80 16 8A
-03 43 4D 50 85 12 82 8F 00 90 20 90 05 43 4D 50
-2E 42 85 12 82 8F 40 90 00 8A 04 44 41 44 44 00
-85 12 82 8F 00 A0 3A 90 06 44 41 44 44 2E 42 00
-85 12 82 8F 40 A0 2C 90 03 42 49 54 85 12 82 8F
-00 B0 58 90 05 42 49 54 2E 42 85 12 82 8F 40 B0
-64 90 03 42 49 43 85 12 82 8F 00 C0 72 90 05 42
-49 43 2E 42 85 12 82 8F 40 C0 7E 90 03 42 49 53
-85 12 82 8F 00 D0 8C 90 05 42 49 53 2E 42 85 12
-82 8F 40 D0 00 00 03 58 4F 52 85 12 82 8F 00 E0
-A6 90 05 58 4F 52 2E 42 85 12 82 8F 40 E0 D8 8F
-03 41 4E 44 85 12 82 8F 00 F0 C0 90 05 41 4E 44
-2E 42 85 12 82 8F 40 F0 02 88 76 8E DE 90 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 12 90
-03 52 52 43 85 12 D8 90 00 10 F0 90 05 52 52 43
-2E 42 85 12 D8 90 40 10 FC 90 04 53 57 50 42 00
-85 12 D8 90 80 10 0A 91 03 52 52 41 85 12 D8 90
-00 11 18 91 05 52 52 41 2E 42 85 12 D8 90 40 11
-24 91 03 53 58 54 85 12 D8 90 80 11 00 00 04 50
-55 53 48 00 85 12 D8 90 00 12 3E 91 06 50 55 53
-48 2E 42 00 85 12 D8 90 40 12 98 90 04 43 41 4C
-4C 00 85 12 D8 90 80 12 1A 53 0E 4A 0D 12 84 12
-C4 84 14 80 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 36 81 32 91 03 53 3E 3D 86 12 00 38 86 91
-02 53 3C 00 86 12 00 34 4C 91 03 30 3E 3D 86 12
-00 30 9A 91 02 30 3C 00 86 12 00 30 00 00 02 55
-3C 00 86 12 00 2C AE 91 03 55 3E 3D 86 12 00 28
-A4 91 03 30 3C 3E 86 12 00 24 C2 91 02 30 3D 00
-86 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 B8 91 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 B1 2F 88 DA 00 00 30 4D 48 90
-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 5C 91 05 42
-45 47 49 4E 30 40 28 80 EC 91 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 21 30 4D CC 90 05 41 47 41 49 4E 0A 4E
-38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12
-84 12 DA 91 A8 83 4E 84 90 91 06 52 45 50 45 41
-54 00 0D 12 84 12 6E 92 F2 91 4E 84 9E 92 3D 41
-08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42 C6 21
-00 00 30 4D 2E 92 03 42 57 31 85 12 9C 92 00 00
-B6 92 03 42 57 32 85 12 9C 92 00 00 C2 92 03 42
-57 33 85 12 9C 92 00 00 DA 92 3D 41 1A 42 C6 21
-28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53 C6 21
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12
-D8 92 00 00 FA 92 03 46 57 32 85 12 D8 92 00 00
-06 93 03 46 57 33 85 12 D8 92 00 00 12 93 04 47
-4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
-84 12 80 88 DC 87 4E 84 00 00 05 3F 47 4F 54 4F
-3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
-3E E0 00 08 EC 3F 02 88 A2 8D 5C 93 92 53 C4 21
-3E 40 2C 00 84 12 1A 85 3E 86 34 80 00 88 38 8F
-72 93 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E
-5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 8A 92
-04 52 52 43 4D 00 85 12 56 93 50 00 A0 93 04 52
-52 41 4D 00 85 12 56 93 50 01 AE 93 04 52 4C 41
-4D 00 85 12 56 93 50 02 BC 93 04 52 52 55 4D 00
-85 12 56 93 50 03 CC 91 05 50 55 53 48 4D 85 12
-56 93 00 15 D8 93 04 50 4F 50 4D 00 85 12 56 93
-00 17
+92 85 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D B8 84 0A 41 4C 4C 4F 54 82 5E
+C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12 1E 80
+02 0D 0A 00 7A 83 94 80 0A 88 98 84 C2 84 1E 80
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 81 32 80
+0A 80 40 FF CA 84 1E 80 09 46 52 41 4D 20 66 75
+6C 6C 08 81 B2 80 CE 88 B8 88 0D 41 42 4F 52 54
+22 00 0D 12 84 12 D8 84 0A 80 08 81 58 88 6A 85
+E8 85 02 27 0D 12 84 12 9C 83 EE 85 56 86 B0 80
+34 89 FC 84 40 88 62 84 07 5B 27 5D 0D 12 84 12
+24 89 0A 80 0A 80 58 88 58 88 6A 85 38 89 03 5B
+82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21 30 4D
+B0 84 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+9C 83 EE 85 56 86 B0 80 34 89 C2 84 AC 80 8C 89
+0A 80 0A 80 58 88 58 88 0A 80 58 88 58 88 6A 85
+00 00 02 3A 30 12 E2 89 92 B3 C8 21 A2 63 C8 21
+0D 12 84 12 9C 83 EE 85 AA 89 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21 82 49
+B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A C8 21
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 21 30 4D 82 9F BA 21 66 25 84 12 1E 80 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 81
+4E 89 03 3B 82 93 BC 21 F4 26 0D 12 84 12 0A 80
+6A 85 58 88 F4 89 50 89 6A 85 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00 30 4D
+A2 88 0C 43 52 45 41 54 45 00 B0 12 98 89 BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D 74 83 0A 44 4F 45
+53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D 92 89 0E 3A 4E 4F 4E 41 4D 45 30 12
+E2 89 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F 2C 8A 05 49 53 00
+0D 12 82 93 BC 21 08 20 84 12 24 89 AE 8A 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 3C 89 0A 80 B0 8A
+58 88 6A 85 42 8A 08 43 4F 44 45 00 B0 12 98 89
+A2 82 C8 21 61 3C 84 85 0E 48 44 4E 43 4F 44 45
+B2 40 9C 8B CC 21 F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 F4 89 FA 8A 3D 41 92 42 D0 21
+CC 21 5D 3C C6 8A 0E 43 4F 44 45 4E 4E 4D 30 12
+D0 8A B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 21
+B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 21 1A 42 C8 21 EF 3F D8 8A 0B 48 49 32 4C 4F
+A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43 BC 21
+B9 3F 64 8B B2 40 76 8B D0 21 82 4E CE 21 30 40
+FC 84 85 12 62 8B 62 89 0A 89 F4 8B 06 8B 5C 8A
+A6 85 50 86 22 89 4A 8B 9C 8A 76 8A 12 8A 6A 88
+7E 8C A8 86 00 00 00 00 85 12 62 8B F8 92 7C 91
+DC 92 A4 90 00 91 4E 91 2A 92 36 92 C6 8F EA 90
+00 00 00 00 38 8B B6 8E 00 00 52 92 96 8B B2 40
+76 8B CE 21 82 43 D0 21 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12 CA 8B
+30 4D DC 8B 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 21 B0 12 CA 8B 1A 42 CA 21 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 0E 82 FE FF 29 83 B9 40 FA 81 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 DA FF 3B 40 10 00
+3A 40 3A 18 B0 12 CE 8B 82 43 4A 18 C7 3F 70 8C
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 58 89 0C 4D
+41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12 9C 83
+EE 85 56 86 AC 80 9C 8C 90 84 30 88 9E 8C 3E 4F
+3D 41 B2 41 C6 21 B0 12 98 89 BA 40 85 12 FC FF
+BA 40 6E 8C FE FF 28 83 8A 48 00 00 BA 40 82 80
+02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21 A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12 EE 85
+56 86 AC 80 08 8D E8 8C 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 6E 8C 00 00 01 20
+3E 52 2E 83 21 53 30 41 00 87 AC 80 10 8D 04 8D
+12 8D B2 41 C6 21 30 41 92 83 C6 21 3E 40 28 00
+0A 4E 3D 15 B0 12 D8 8C 15 20 3E 40 2B 00 B0 12
+D8 8C 06 20 3E 40 2D 00 B0 12 D8 8C 92 83 C6 21
+0E 12 1E 41 02 00 84 12 EE 85 00 87 AC 80 34 89
+52 8D 3E 51 3A 17 30 41 B0 12 18 8D 19 42 C8 21
+89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53 C6 21
+1A 42 C6 21 3D 15 84 12 EE 85 00 87 AC 80 8A 8D
+82 8D 3E 90 10 00 E6 2B 7C 2D 8C 8D A2 41 C6 21
+E1 3F 03 20 B0 12 70 8D 43 3C 7A 90 23 00 24 20
+B0 12 20 8D 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 C8 21 A2 53 C8 21
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 20 8D F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 6C 8D 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 70 8D 92 92 C2 21 C6 21 02 24 92 53 C6 21
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 58 8D F2 3F
+03 20 B0 12 70 8D F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 58 8D EA 3F 0C 43
+1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42 C6 21
+19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82 C4 21
+82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A 80 00 13 58 88 6A 85 0A 80
+2C 00 4E 8E 92 8D 9C 83 58 8E 30 8E 9E 8E 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+8E 8E 00 40 AA 8E 0A 4D 4F 56 2E 42 85 12 8E 8E
+40 40 00 00 06 41 44 44 85 12 8E 8E 00 50 C4 8E
+0A 41 44 44 2E 42 85 12 8E 8E 40 50 D0 8E 08 41
+44 44 43 00 85 12 8E 8E 00 60 DE 8E 0C 41 44 44
+43 2E 42 00 85 12 8E 8E 40 60 16 8B 08 53 55 42
+43 00 85 12 8E 8E 00 70 FC 8E 0C 53 55 42 43 2E
+42 00 85 12 8E 8E 40 70 0A 8F 06 53 55 42 85 12
+8E 8E 00 80 1A 8F 0A 53 55 42 2E 42 85 12 8E 8E
+40 80 26 8F 06 43 4D 50 85 12 8E 8E 00 90 34 8F
+0A 43 4D 50 2E 42 85 12 8E 8E 40 90 00 00 08 44
+41 44 44 00 85 12 8E 8E 00 A0 4E 8F 0C 44 41 44
+44 2E 42 00 85 12 8E 8E 40 A0 7C 8E 06 42 49 54
+85 12 8E 8E 00 B0 6C 8F 0A 42 49 54 2E 42 85 12
+8E 8E 40 B0 78 8F 06 42 49 43 85 12 8E 8E 00 C0
+86 8F 0A 42 49 43 2E 42 85 12 8E 8E 40 C0 92 8F
+06 42 49 53 85 12 8E 8E 00 D0 A0 8F 0A 42 49 53
+2E 42 85 12 8E 8E 40 D0 00 00 06 58 4F 52 85 12
+8E 8E 00 E0 BA 8F 0A 58 4F 52 2E 42 85 12 8E 8E
+40 E0 EC 8E 06 41 4E 44 85 12 8E 8E 00 F0 D4 8F
+0A 41 4E 44 2E 42 85 12 8E 8E 40 F0 9C 83 4E 8E
+92 8D F4 8F 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F AC 8F 06 52 52 43 85 12 EC 8F 00 10
+06 90 0A 52 52 43 2E 42 85 12 EC 8F 40 10 40 8F
+08 53 57 50 42 00 85 12 EC 8F 80 10 12 90 06 52
+52 41 85 12 EC 8F 00 11 2E 90 0A 52 52 41 2E 42
+85 12 EC 8F 40 11 20 90 06 53 58 54 85 12 EC 8F
+80 11 00 00 08 50 55 53 48 00 85 12 EC 8F 00 12
+54 90 0C 50 55 53 48 2E 42 00 85 12 EC 8F 40 12
+48 90 08 43 41 4C 4C 00 85 12 EC 8F 80 12 1A 53
+0E 4A 84 12 DE 85 1E 80 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 81 72 90 06 53 3E 3D 86 12
+00 38 9A 90 04 53 3C 00 86 12 00 34 62 90 06 30
+3E 3D 86 12 00 30 AE 90 04 30 3C 00 86 12 00 30
+EA 8A 04 55 3C 00 86 12 00 2C C2 90 06 55 3E 3D
+86 12 00 28 B8 90 06 30 3C 3E 86 12 00 24 D6 90
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D 5C 8F
+08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D CC 90 08 45 4C 53 45 00 1A 42 C8 21 BA 40
+00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F
+3A 90 0A 42 45 47 49 4E 30 40 32 80 24 91 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 21 30 4D E0 8F 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 EE 90 84 84 6A 85 42 91 0C 52
+45 50 45 41 54 00 0D 12 84 12 82 91 06 91 6A 85
+B2 91 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F
+98 42 C8 21 00 00 30 4D 9E 91 06 42 57 31 85 12
+B0 91 00 00 CA 91 06 42 57 32 85 12 B0 91 00 00
+D6 91 06 42 57 33 85 12 B0 91 00 00 EE 91 3D 41
+1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21 86 2B
+BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 EC 91 00 00 12 92 06 46
+57 32 85 12 EC 91 00 00 1E 92 06 46 57 33 85 12
+EC 91 00 00 8C 91 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 24 89 30 88 6A 85
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 58 8E
+0A 80 2C 00 EE 85 00 87 AC 80 34 89 9C 83 4E 8E
+30 8E 84 92 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+E2 91 08 52 52 43 4D 00 85 12 6E 92 50 00 B2 92
+08 52 52 41 4D 00 85 12 6E 92 50 01 C0 92 08 52
+4C 41 4D 00 85 12 6E 92 50 02 CE 92 08 52 52 55
+4D 00 85 12 6E 92 50 03 E0 90 0A 50 55 53 48 4D
+85 12 6E 92 00 15 EA 92 08 50 4F 50 4D 00 85 12
+6E 92 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 82 82 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 08 8D
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 C4 82 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 0E 82
 q
diff --git a/binaries/LP_MSP430FR2476_16MHz_UART.txt b/binaries/LP_MSP430FR2476_16MHz_UART.txt
deleted file mode 100644 (file)
index f2080ab..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF 08 94 02 8C 34 01
-10 00 41 33 94 81 AA 80 DA 81 9C 81 94 82 08 94
-02 8C 7A 82 92 83 24 83 FE 82 3C 21 60 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
-@8000
-B0 12 DA 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 78 82 B2 49 90 83 B2 49 22 83 B2 49 FC 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 81 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 80 0A 80 DE 21 E0 83 32 83
-14 80 04 1B 5B 37 6D 00 5C 83 A8 83 34 80 86 81
-14 80 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 83 A0 84 5C 83 14 80 04 1B 5B 30 6D 00
-5C 83 28 88 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 E2 D3 43 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 E2 C3 43 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 81 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 81 04 57 41 52 4D 00 B0 12
-9C 81 84 12 14 80 07 0D 0A 1B 5B 37 6D 23 5C 83
-D6 84 14 80 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 5C 83
-0A 80 40 FF 28 80 D4 83 A0 84 14 80 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 80 86 81 00 00 06 41
-43 43 45 50 54 00 30 40 7A 82 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 82 3C 40 D2 82
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 82 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 82 2F 83
-8F 4E 00 00 B0 12 DA 81 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 81 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 83 08 4E 3E 4F C8 3F 1A 83 04 45 43 48
-4F 00 B2 40 C2 48 C0 82 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 82 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 83 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 83 7A 83 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 81 02 43 52 00 30 40
-92 83 0D 12 84 12 14 80 02 0D 0A 00 5C 83 60 84
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 82 01 40
-2E 4E 30 4D DE 83 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A 83 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E 80 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 1A 84 02 23 53 00 0D 12
-84 12 1C 84 56 84 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 84 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 83 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 84 4E 84 EE 80 8E 84 6A 84 5C 83 14 88 20 83
-60 84 40 83 01 2E 0E 93 E3 37 38 43 E2 3F 88 84
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80
-5A 87 0A 80 22 00 2C 85 FA 84 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 84 82 2E 22 00 0D 12 84 12 E4 84 0A 80 5C 83
-5A 87 60 84 18 82 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 80 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80
-30 4D 00 00 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 AE 86
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 86
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 87 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 84 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 80 14 88 2C 85 D0 87
-9C 26 3D 40 D8 87 DE 3E DA 87 0A 4E 3E 4F 3D 40
-F4 87 36 27 3D 40 CA 87 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 87 3E 4F 3D 40 CA 87 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 89
-CC 3F FE 87 86 12 20 00 E6 83 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E 83
-BC 80 C4 87 C4 83 F6 83 14 80 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80
-FE 83 14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 81 3A 80 3E 88 1A 88 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 84 0A 80 2A 81 5A 87 60 84 8E 85
-01 27 0D 12 84 12 14 88 2C 85 94 85 34 80 12 88
-60 84 00 00 83 5B 27 5D 0D 12 84 12 92 88 0A 80
-0A 80 5A 87 5A 87 60 84 A4 88 81 5B 82 43 BE 21
-30 4D 0C 84 01 5D B2 43 BE 21 30 4D C4 88 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 88 2C 85 94 85 A8 83
-34 80 12 88 F6 83 34 80 06 89 0A 80 0A 80 5A 87
-5A 87 0A 80 5A 87 5A 87 60 84 BA 88 01 3A 30 12
-56 89 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 88
-2C 85 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 81 0C 89 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A 80 60 84 5A 87 68 89 BC 88
-60 84 BA 87 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 87 06 43 52 45
-41 54 45 00 B0 12 12 89 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 89 04 43 4F 44 45 00 B0 12 12 89
-A2 82 C6 21 0D 12 84 12 04 8C DE 8B 60 84 B4 89
-07 48 44 4E 43 4F 44 45 B2 40 E2 8B DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 89
-1E 8C 3C 8C 60 84 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E 8C 3C 8C 60 84
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 8A 85 48 49 32 4C 4F 0D 12 84 12 28 80
-AC 8B 5A 87 BC 88 F4 89 60 84 9A 89 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 8A 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 80 00 00 D8 83 14 88 2C 85
-AA 87 A0 83 34 80 14 8B AE 83 14 80 06 5B 54 48
-45 4E 5D 00 86 8A EE 8A AA 8A CC 8A 60 84 AE 83
-14 80 06 5B 45 4C 53 45 5D 00 86 8A 04 8B AA 8A
-CA 8A 60 84 14 80 04 5B 49 46 5D 00 86 8A CC 8A
-3A 80 CA 8A 82 83 14 80 05 0D 0A 6B 6F 20 5C 83
-BC 80 AC 80 3A 80 CC 8A BA 8A 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 8B 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 88 2C 85
-94 85 38 8B 60 84 3E 8B 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 8B F0 83 60 84 70 8B
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 87
-06 4D 41 52 4B 45 52 00 B0 12 12 89 BA 40 85 12
-FC FF BA 40 6E 8B FE FF 28 83 8A 48 00 00 BA 40
-AA 80 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A 80 CA 21 E8 83 60 84 85 12 B0 8B 78 88 E6 89
-2C 83 90 88 64 8A F6 82 80 8B 12 85 A8 8C BC 8C
-9C 84 26 85 00 00 58 8B CE 88 F4 85 00 00 85 12
-B0 8B 7E 92 E4 92 26 92 34 93 EC 91 00 00 B8 8F
-00 00 FC 93 E0 93 50 92 8E 92 C8 90 00 00 00 00
-50 93 DC 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 8B 36 8C 3C 8C 4C 8C 1A 42 20 18
-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
-DA 88 09 50 57 52 5F 53 54 41 54 45 85 12 44 8C
-08 94 E0 84 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 8C F3 3F 82 8C 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 8C 30 4D 94 8C 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 8D FE FF 29 83
-B9 40 02 82 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 82 B2 49 FA 80 B2 49 02 80 B2 49 20 82
-B2 49 E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 20 29 83 89 43 00 20 FC 23
-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 B2 D0 10 00 86 01
-B2 40 00 02 88 01 39 40 5C 00 18 42 00 18 18 83
-FE 23 19 83 FA 23 1E 42 08 18 82 43 08 18 1E D2
-5E 01 B0 12 F8 80 1E 82 38 40 C0 21 0A 4E 39 48
-2E 48 09 5E 1E 52 C4 21 09 9E 03 24 7A 9E FC 27
-1E 83 0A 4E 2A 88 82 4A C4 21 30 4D 1C 15 0E 12
-12 12 C4 21 84 12 2C 85 94 85 F0 83 34 80 F8 8D
-50 86 34 80 12 8E 0C 8E FA 8D 3C 4E 3C 80 87 12
-05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17
-30 41 14 8E B2 41 C4 21 3E 41 84 12 0A 80 2B 00
-2C 85 94 85 F0 83 34 80 30 8E 50 86 34 80 12 88
-BA 83 2C 85 50 86 34 80 12 88 3C 8E 3E 5F E7 3F
-3E 40 28 00 B0 12 DC 8D 19 42 C6 21 A2 53 C6 21
-89 4E 00 00 3E 40 29 00 92 92 C0 21 C4 21 02 20
-30 40 80 89 1C 15 12 12 C4 21 92 53 C4 21 84 12
-2C 85 50 86 34 80 84 8E 7A 8E 21 53 3E 90 10 00
-C6 2B 7F 2D 86 8E B2 41 C4 21 C1 3F 0D 12 84 12
-14 88 B8 8D 96 8E 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
-DC 8D 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 DC 8D ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 64 8E 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 64 8E 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-64 8E FA 23 3C 50 10 00 B0 12 40 8E EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 0D 12 84 12 14 88 B8 8D
-62 8F FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
-82 00 C7 3F B0 12 64 8E E0 23 3C 50 80 00 B0 12
-40 8E DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12
-0A 80 00 13 5A 87 60 84 0A 80 2C 00 8C 8E 58 8F
-A2 8F 09 4B 2E 4E 0E DC A2 3F 52 8A 03 4D 4F 56
-85 12 98 8F 00 40 AC 8F 05 4D 4F 56 2E 42 85 12
-98 8F 40 40 00 00 03 41 44 44 85 12 98 8F 00 50
-C6 8F 05 41 44 44 2E 42 85 12 98 8F 40 50 D2 8F
-04 41 44 44 43 00 85 12 98 8F 00 60 E0 8F 06 41
-44 44 43 2E 42 00 85 12 98 8F 40 60 86 8F 04 53
-55 42 43 00 85 12 98 8F 00 70 FE 8F 06 53 55 42
-43 2E 42 00 85 12 98 8F 40 70 0C 90 03 53 55 42
-85 12 98 8F 00 80 1C 90 05 53 55 42 2E 42 85 12
-98 8F 40 80 28 8A 03 43 4D 50 85 12 98 8F 00 90
-36 90 05 43 4D 50 2E 42 85 12 98 8F 40 90 12 8A
-04 44 41 44 44 00 85 12 98 8F 00 A0 50 90 06 44
-41 44 44 2E 42 00 85 12 98 8F 40 A0 42 90 03 42
-49 54 85 12 98 8F 00 B0 6E 90 05 42 49 54 2E 42
-85 12 98 8F 40 B0 7A 90 03 42 49 43 85 12 98 8F
-00 C0 88 90 05 42 49 43 2E 42 85 12 98 8F 40 C0
-94 90 03 42 49 53 85 12 98 8F 00 D0 A2 90 05 42
-49 53 2E 42 85 12 98 8F 40 D0 00 00 03 58 4F 52
-85 12 98 8F 00 E0 BC 90 05 58 4F 52 2E 42 85 12
-98 8F 40 E0 EE 8F 03 41 4E 44 85 12 98 8F 00 F0
-D6 90 05 41 4E 44 2E 42 85 12 98 8F 40 F0 14 88
-8C 8E F4 90 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 28 90 03 52 52 43 85 12 EE 90 00 10
-06 91 05 52 52 43 2E 42 85 12 EE 90 40 10 12 91
-04 53 57 50 42 00 85 12 EE 90 80 10 20 91 03 52
-52 41 85 12 EE 90 00 11 2E 91 05 52 52 41 2E 42
-85 12 EE 90 40 11 3A 91 03 53 58 54 85 12 EE 90
-80 11 00 00 04 50 55 53 48 00 85 12 EE 90 00 12
-54 91 06 50 55 53 48 2E 42 00 85 12 EE 90 40 12
-AE 90 04 43 41 4C 4C 00 85 12 EE 90 80 12 1A 53
-0E 4A 0D 12 84 12 D6 84 14 80 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 36 81 48 91 03 53 3E 3D
-86 12 00 38 9C 91 02 53 3C 00 86 12 00 34 62 91
-03 30 3E 3D 86 12 00 30 B0 91 02 30 3C 00 86 12
-00 30 00 00 02 55 3C 00 86 12 00 2C C4 91 03 55
-3E 3D 86 12 00 28 BA 91 03 30 3C 3E 86 12 00 24
-D8 91 02 30 3D 00 86 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
-CE 91 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 B1 2F 88 DA
-00 00 30 4D 5E 90 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 72 91 05 42 45 47 49 4E 30 40 28 80 02 92
-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 8A 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D E2 90 05 41
-47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
-48 49 4C 45 0D 12 84 12 F0 91 BA 83 60 84 A6 91
-06 52 45 50 45 41 54 00 0D 12 84 12 84 92 08 92
-60 84 B4 92 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21
-CB 2F 98 42 C6 21 00 00 30 4D 44 92 03 42 57 31
-85 12 B2 92 00 00 CC 92 03 42 57 32 85 12 B2 92
-00 00 D8 92 03 42 57 33 85 12 B2 92 00 00 F0 92
-3D 41 1A 42 C6 21 28 4E B2 92 C4 21 88 2B BA 4F
-00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 85 12 EE 92 00 00 10 93 03 46 57 32
-85 12 EE 92 00 00 1C 93 03 46 57 33 85 12 EE 92
-00 00 28 93 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
-3E 40 00 3C 0D 12 84 12 92 88 EE 87 60 84 00 00
-05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
-3E B0 00 10 EF 27 3E E0 00 08 EC 3F 14 88 B8 8D
-72 93 92 53 C4 21 3E 40 2C 00 84 12 2C 85 50 86
-34 80 12 88 4E 8F 88 93 0A 4E 3E 4F 1A 83 F7 32
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10
-5A 06 A6 3E A0 92 04 52 52 43 4D 00 85 12 6C 93
-50 00 B6 93 04 52 52 41 4D 00 85 12 6C 93 50 01
-C4 93 04 52 4C 41 4D 00 85 12 6C 93 50 02 D2 93
-04 52 52 55 4D 00 85 12 6C 93 50 03 E2 91 05 50
-55 53 48 4D 85 12 6C 93 00 15 EE 93 04 50 4F 50
-4D 00 85 12 6C 93 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-94 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 1A 8D
-q
diff --git a/binaries/LP_MSP430FR2476_1MHz_115200.txt b/binaries/LP_MSP430FR2476_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..967989f
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A1 19
+B4 82 7E 81 84 81 54 81 24 83 12 93 CA 8B 84 8B
+84 8B 9A 82 58 83 20 83 3C 21 E0 20 78 85 B6 80
+C4 80 94 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+24 83 12 93 CA 8B 84 8B 84 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F5 3C 0E 93 3E 4F
+8A 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 98 82 B2 49
+56 83 B2 49 1E 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 3E 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 24 83 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 80 9E 84 AC 80 52 81 66 83 1E 80 04 1B
+5B 37 6D 00 88 83 88 83 1E 80 04 1B 5B 30 6D 00
+88 83 D4 88 B0 12 7E 81 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 66 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 88 83 EC 85 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 88 83 0A 80 40 FF 32 80
+B4 84 B8 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+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 D0 10 00 86 01 F2 C3
+82 01 B2 40 1E 00 84 01 39 40 5C 00 18 42 00 18
+18 83 FE 23 19 83 FA 23 39 40 00 20 29 83 89 43
+00 20 FC 23 19 42 5E 01 1E 42 08 18 82 43 08 18
+3E F3 01 20 0E 49 B0 12 D0 80 86 81 00 00 0C 41
+43 43 45 50 54 00 30 40 9A 82 08 4E 2E 4F 08 5E
+39 40 0D 00 3A 40 20 00 3B 40 F8 82 3C 40 04 83
+5D 15 A6 3E 21 52 3A 17 58 42 0C 05 48 9B 09 20
+A2 B3 1C 05 FD 27 B2 40 13 00 0E 05 E2 D3 43 02
+30 41 48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83
+05 3C 0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 1C 05
+FD 27 C2 48 0E 05 30 4D FA 82 2D 83 92 B3 1C 05
+DB 23 FC 3F 3E 8F 3D 41 92 B3 1C 05 FD 27 58 42
+0C 05 08 4C EB 3F 00 00 06 4B 45 59 30 40 20 83
+30 12 36 83 A2 B3 1C 05 FD 27 B2 40 11 00 0E 05
+E2 C3 43 02 30 41 2F 83 8F 4E 00 00 92 B3 1C 05
+FD 27 B0 12 C0 82 1E 42 0C 05 30 4D 00 00 08 45
+4D 49 54 00 30 40 58 83 08 4E 3E 4F C7 3F 4E 83
+08 45 43 48 4F 00 B2 40 C2 48 F2 82 30 4D 00 00
+0C 4E 4F 45 43 48 4F 00 B2 40 30 4D F2 82 30 4D
+00 00 08 54 59 50 45 00 0D 12 3D 40 98 83 29 4F
+8F 4E 00 00 7E 49 DE 3F 9A 83 2D 83 2F 83 5E 83
+F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E
+38 4F 3C 9F 39 4F 3E 4F 7C 22 F9 98 00 00 79 22
+19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83
+70 22 9B 24 18 83 0D 5B 45 4C 53 45 5D 00 0D 12
+84 12 0A 80 00 00 B8 84 AA 83 FC 85 B6 88 B0 80
+26 84 14 80 06 5B 54 48 45 4E 5D 00 AE 83 04 84
+CA 83 E8 83 14 80 06 5B 45 4C 53 45 5D 00 AE 83
+16 84 CA 83 E6 83 1E 80 04 5B 49 46 5D 00 AE 83
+E8 83 B2 80 E6 83 1E 80 05 0D 6B 6F 20 0A 88 83
+9A 80 84 80 B2 80 E8 83 D6 83 0D 5B 54 48 45 4E
+5D 00 30 4D 3A 84 09 5B 49 46 5D 00 0E 93 3E 4F
+C6 27 30 4D 46 84 13 5B 44 45 46 49 4E 45 44 5D
+0D 12 84 12 AA 83 FC 85 64 86 08 88 78 85 56 84
+17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
+AA 83 FC 85 64 86 88 84 3D 41 2F 53 1E 83 0E 7E
+30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E
+FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F
+0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40
+2E 4E 30 4D 8E 82 02 21 BE 4F 00 00 3E 4F 30 4D
+0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D
+D8 81 05 53 22 00 82 43 C0 21 0D 12 84 12 0A 80
+1E 80 66 88 0A 80 22 00 FC 85 FC 84 B2 40 20 00
+C0 21 1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D
+70 83 05 2E 22 00 0D 12 84 12 E6 84 0A 80 88 83
+66 88 78 85 00 00 04 3C 23 00 B2 40 B2 21 B2 21
+30 4D E2 84 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12
+46 80 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 34 85 04 23 53 00 0D 12 84 12 36 85 70 85
+2D 83 09 DE 09 93 E1 23 3D 41 30 4D 64 85 04 23
+3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D
+00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 7E 85
+08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33
+30 4D 60 83 04 55 2E 00 0C 43 2F 83 8F 4E 00 00
+0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 84 12 2A 85 AA 83 98 85 68 85 94 84
+A6 85 82 85 88 83 78 85 12 85 02 2E 0E 93 E4 37
+3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21
+39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98
+FC 27 18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20
+E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24
+7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90
+7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21
+1E 42 C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46
+49 4E 44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53
+1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C
+00 00 30 4D EA 85 0E 3E 4E 55 4D 42 45 52 1B 42
+BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C
+7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00
+0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42
+E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23
+8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0
+00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 21
+0C 4E 0E 43 1E 15 3D 40 6E 87 7E 4C 6A 4C 7A 80
+2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53
+11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90
+03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C
+B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27 70 87
+2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02
+27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00
+09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E 80
+2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93
+1D 17 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 26 85 03 5C
+92 42 C2 21 C6 21 30 4D 0D 12 84 12 84 80 AA 83
+FC 85 B0 80 40 89 64 86 2A 88 0A 4E 3E 4F 3D 40
+44 88 6D 27 3D 40 1E 88 1A E2 BC 21 14 24 0E 12
+3E 4F 30 41 46 88 3E 4F 3D 40 1E 88 19 20 DE 53
+00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 1C 8A
+2A 3C 0E 88 02 2C A2 53 C8 21 1A 42 C8 21 8A 4E
+FE FF 3E 4F 30 4D 64 88 0F 4C 49 54 45 52 41 4C
+82 93 BC 21 0D 24 09 4E 1A 42 C8 21 A2 52 C8 21
+BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0 00 02
+32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D A0 85
+0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A
+3E F3 30 4D C6 84 0A 41 4C 4C 4F 54 82 5E C8 21
+3E 4F 30 4D 3F 40 80 20 0E 43 84 12 1E 80 02 0D
+0A 00 88 83 94 80 18 88 A6 84 D0 84 1E 80 0B 73
+74 61 63 6B 20 65 6D 70 74 79 08 81 32 80 0A 80
+40 FF D8 84 1E 80 09 46 52 41 4D 20 66 75 6C 6C
+08 81 B2 80 DC 88 C6 88 0D 41 42 4F 52 54 22 00
+0D 12 84 12 E6 84 0A 80 08 81 66 88 78 85 F6 85
+02 27 0D 12 84 12 AA 83 FC 85 64 86 B0 80 42 89
+0A 85 4E 88 70 84 07 5B 27 5D 0D 12 84 12 32 89
+0A 80 0A 80 66 88 66 88 78 85 46 89 03 5B 82 43
+BC 21 30 4D 00 00 02 5D B2 43 BC 21 30 4D BE 84
+11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12 AA 83
+FC 85 64 86 B0 80 42 89 D0 84 AC 80 9A 89 0A 80
+0A 80 66 88 66 88 0A 80 66 88 66 88 78 85 00 00
+02 3A 30 12 F0 89 92 B3 C8 21 A2 63 C8 21 0D 12
+84 12 AA 83 FC 85 B8 89 3D 41 5A D3 5A 53 0A 5E
+19 42 CC 21 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E
+09 5E 3E 4F E8 58 00 00 82 48 B4 21 82 49 B6 21
+82 4A B8 21 82 4F BA 21 2A 52 82 4A C8 21 30 41
+BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 21
+30 4D 82 9F BA 21 66 25 84 12 1E 80 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 12 81 5C 89
+03 3B 82 93 BC 21 F4 26 0D 12 84 12 0A 80 78 85
+66 88 02 8A 5E 89 78 85 00 00 12 49 4D 4D 45 44
+49 41 54 45 18 42 B4 21 D8 D3 00 00 30 4D B0 88
+0C 43 52 45 41 54 45 00 B0 12 A6 89 BA 40 86 12
+FC FF 8A 4A FE FF 3A 3D 82 83 0A 44 4F 45 53 3E
+1A 42 B8 21 BA 40 85 12 00 00 8A 4D 02 00 3D 41
+30 4D A0 89 0E 3A 4E 4F 4E 41 4D 45 30 12 F0 89
+2F 83 8F 4E 00 00 1A 42 C8 21 1A B3 0A 63 0E 4A
+39 40 12 02 08 49 98 3F 3A 8A 05 49 53 00 0D 12
+82 93 BC 21 08 20 84 12 32 89 BC 8A 3D 41 BE 4F
+02 00 3E 4F 30 4D 84 12 4A 89 0A 80 BE 8A 66 88
+78 85 50 8A 08 43 4F 44 45 00 B0 12 A6 89 A2 82
+C8 21 61 3C 92 85 0E 48 44 4E 43 4F 44 45 B2 40
+AA 8B CC 21 F2 3F 00 00 0E 45 4E 44 43 4F 44 45
+0D 12 84 12 02 8A 08 8B 3D 41 92 42 D0 21 CC 21
+5D 3C D4 8A 0E 43 4F 44 45 4E 4E 4D 30 12 DE 8A
+B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40
+0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 21 B2 43
+BC 21 E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 21
+1A 42 C8 21 EF 3F E6 8A 0B 48 49 32 4C 4F A2 53
+C8 21 1A 42 C8 21 8A 4A FE FF 82 43 BC 21 B9 3F
+72 8B B2 40 84 8B D0 21 82 4E CE 21 30 40 0A 85
+85 12 70 8B 70 89 18 89 02 8C 14 8B 6A 8A B4 85
+5E 86 30 89 58 8B AA 8A 84 8A 20 8A 78 88 8C 8C
+B6 86 00 00 00 00 85 12 70 8B 06 93 8A 91 EA 92
+B2 90 0E 91 5C 91 38 92 44 92 D4 8F F8 90 00 00
+00 00 46 8B C4 8E 00 00 60 92 A4 8B B2 40 84 8B
+CE 21 82 43 D0 21 30 4D 3B 40 0A 00 BA 49 00 00
+2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53
+45 54 39 40 C8 21 3A 40 42 18 B0 12 D8 8B 30 4D
+EA 8B 0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49
+3A 40 C8 21 B0 12 D8 8B 1A 42 CA 21 3B 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48
+00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93
+E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40
+06 82 FE FF 29 83 B9 40 F2 81 FE FF 39 90 AE FF
+F9 23 39 40 10 18 B2 49 E0 FF 3B 40 10 00 3A 40
+3A 18 B0 12 DC 8B 82 43 4A 18 C7 3F 7E 8C B2 4E
+42 18 BE 12 3E 4F 3D 41 C0 3F 66 89 0C 4D 41 52
+4B 45 52 00 12 12 C6 21 0D 12 84 12 AA 83 FC 85
+64 86 AC 80 AA 8C 9E 84 3E 88 AC 8C 3E 4F 3D 41
+B2 41 C6 21 B0 12 A6 89 BA 40 85 12 FC FF BA 40
+7C 8C FE FF 28 83 8A 48 00 00 BA 40 82 80 02 00
+A2 52 C8 21 18 42 B4 21 19 42 B6 21 A8 49 FE FF
+89 48 00 00 30 4D 12 12 C6 21 84 12 FC 85 64 86
+AC 80 16 8D F6 8C 3C 4E 3C 80 87 12 0A 24 1C 53
+02 20 2E 4E 06 3C BE 90 7C 8C 00 00 01 20 3E 52
+2E 83 21 53 30 41 0E 87 AC 80 1E 8D 12 8D 20 8D
+B2 41 C6 21 30 41 92 83 C6 21 3E 40 28 00 0A 4E
+3D 15 B0 12 E6 8C 15 20 3E 40 2B 00 B0 12 E6 8C
+06 20 3E 40 2D 00 B0 12 E6 8C 92 83 C6 21 0E 12
+1E 41 02 00 84 12 FC 85 0E 87 AC 80 42 89 60 8D
+3E 51 3A 17 30 41 B0 12 26 8D 19 42 C8 21 89 4E
+00 00 A2 53 C8 21 3E 40 29 00 92 53 C6 21 1A 42
+C6 21 3D 15 84 12 FC 85 0E 87 AC 80 98 8D 90 8D
+3E 90 10 00 E6 2B 7C 2D 9A 8D A2 41 C6 21 E1 3F
+03 20 B0 12 7E 8D 43 3C 7A 90 23 00 24 20 B0 12
+2E 8D 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 C8 21 A2 53 C8 21 89 4E
+00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02
+B0 12 2E 8D F0 3F 7A 90 40 00 14 20 3C 40 20 00
+B0 12 7A 8D 0C 20 3C D0 10 00 3E 40 2B 00 B0 12
+7E 8D 92 92 C2 21 C6 21 02 24 92 53 C6 21 8E 10
+0C 5E DF 3F 3C D0 10 00 B0 12 66 8D F2 3F 03 20
+B0 12 7E 8D F5 3F 7A 90 26 00 03 20 3C D0 82 00
+D7 3F 3C D0 80 00 B0 12 66 8D EA 3F 0C 43 1B 42
+C8 21 A2 53 C8 21 3A 40 20 00 19 42 C6 21 19 52
+C4 21 7A 99 FE 27 5A 49 FF FF 19 82 C4 21 82 49
+C6 21 7A 90 52 00 30 4D 00 00 08 52 45 54 49 00
+0D 12 84 12 0A 80 00 13 66 88 78 85 0A 80 2C 00
+5C 8E A0 8D AA 83 66 8E 3E 8E AC 8E 3D 41 2C DE
+8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12 9C 8E
+00 40 B8 8E 0A 4D 4F 56 2E 42 85 12 9C 8E 40 40
+00 00 06 41 44 44 85 12 9C 8E 00 50 D2 8E 0A 41
+44 44 2E 42 85 12 9C 8E 40 50 DE 8E 08 41 44 44
+43 00 85 12 9C 8E 00 60 EC 8E 0C 41 44 44 43 2E
+42 00 85 12 9C 8E 40 60 24 8B 08 53 55 42 43 00
+85 12 9C 8E 00 70 0A 8F 0C 53 55 42 43 2E 42 00
+85 12 9C 8E 40 70 18 8F 06 53 55 42 85 12 9C 8E
+00 80 28 8F 0A 53 55 42 2E 42 85 12 9C 8E 40 80
+34 8F 06 43 4D 50 85 12 9C 8E 00 90 42 8F 0A 43
+4D 50 2E 42 85 12 9C 8E 40 90 00 00 08 44 41 44
+44 00 85 12 9C 8E 00 A0 5C 8F 0C 44 41 44 44 2E
+42 00 85 12 9C 8E 40 A0 8A 8E 06 42 49 54 85 12
+9C 8E 00 B0 7A 8F 0A 42 49 54 2E 42 85 12 9C 8E
+40 B0 86 8F 06 42 49 43 85 12 9C 8E 00 C0 94 8F
+0A 42 49 43 2E 42 85 12 9C 8E 40 C0 A0 8F 06 42
+49 53 85 12 9C 8E 00 D0 AE 8F 0A 42 49 53 2E 42
+85 12 9C 8E 40 D0 00 00 06 58 4F 52 85 12 9C 8E
+00 E0 C8 8F 0A 58 4F 52 2E 42 85 12 9C 8E 40 E0
+FA 8E 06 41 4E 44 85 12 9C 8E 00 F0 E2 8F 0A 41
+4E 44 2E 42 85 12 9C 8E 40 F0 AA 83 5C 8E A0 8D
+02 90 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4D 3F BA 8F 06 52 52 43 85 12 FA 8F 00 10 14 90
+0A 52 52 43 2E 42 85 12 FA 8F 40 10 4E 8F 08 53
+57 50 42 00 85 12 FA 8F 80 10 20 90 06 52 52 41
+85 12 FA 8F 00 11 3C 90 0A 52 52 41 2E 42 85 12
+FA 8F 40 11 2E 90 06 53 58 54 85 12 FA 8F 80 11
+00 00 08 50 55 53 48 00 85 12 FA 8F 00 12 62 90
+0C 50 55 53 48 2E 42 00 85 12 FA 8F 40 12 56 90
+08 43 41 4C 4C 00 85 12 FA 8F 80 12 1A 53 0E 4A
+84 12 EC 85 1E 80 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 12 81 80 90 06 53 3E 3D 86 12 00 38
+A8 90 04 53 3C 00 86 12 00 34 70 90 06 30 3E 3D
+86 12 00 30 BC 90 04 30 3C 00 86 12 00 30 F8 8A
+04 55 3C 00 86 12 00 2C D0 90 06 55 3E 3D 86 12
+00 28 C6 90 06 30 3C 3E 86 12 00 24 E4 90 04 30
+3D 00 86 12 00 20 00 00 04 49 46 00 1A 42 C8 21
+8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D 6A 8F 08 54
+48 45 4E 00 1A 42 C8 21 08 4E 3E 4F 09 48 29 53
+0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D
+DA 90 08 45 4C 53 45 00 1A 42 C8 21 BA 40 00 3C
+00 00 A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F 48 90
+0A 42 45 47 49 4E 30 40 32 80 32 91 0A 55 4E 54
+49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83 0A 89
+0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48
+00 00 A2 53 C8 21 30 4D EE 8F 0A 41 47 41 49 4E
+0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45
+0D 12 84 12 FC 90 92 84 78 85 50 91 0C 52 45 50
+45 41 54 00 0D 12 84 12 90 91 14 91 78 85 C0 91
+3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42
+C8 21 00 00 30 4D AC 91 06 42 57 31 85 12 BE 91
+00 00 D8 91 06 42 57 32 85 12 BE 91 00 00 E4 91
+06 42 57 33 85 12 BE 91 00 00 FC 91 3D 41 1A 42
+C8 21 28 4E 8E 43 00 00 B2 92 C6 21 86 2B BA 4F
+00 00 A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D 00 00
+06 46 57 31 85 12 FA 91 00 00 20 92 06 46 57 32
+85 12 FA 91 00 00 2C 92 06 46 57 33 85 12 FA 91
+00 00 9A 91 08 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C 0D 12 84 12 32 89 3E 88 78 85 00 00
+0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
+3E B0 00 10 EF 27 3E E0 00 08 EC 3F 66 8E 0A 80
+2C 00 FC 85 0E 87 AC 80 42 89 AA 83 5C 8E 3E 8E
+92 92 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28
+08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E
+5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E F0 91
+08 52 52 43 4D 00 85 12 7C 92 50 00 C0 92 08 52
+52 41 4D 00 85 12 7C 92 50 01 CE 92 08 52 4C 41
+4D 00 85 12 7C 92 50 02 DC 92 08 52 52 55 4D 00
+85 12 7C 92 50 03 EE 90 0A 50 55 53 48 4D 85 12
+7C 92 00 15 F8 92 08 50 4F 50 4D 00 85 12 7C 92
+00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+B4 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
index 064f592..fbc7a2a 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF E2 93 F0 8B 34 01
-10 00 41 07 B6 81 AA 80 B8 81 8C 81 82 82 E2 93
-F0 8B 70 82 80 83 FE 82 DA 82 3C 21 4E 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 03
+AE 82 56 81 56 81 58 81 44 81 EE 92 A6 8B 60 8B
+60 8B 9C 82 20 83 F8 82 3C 21 E0 20 54 85 B6 80
+C4 80 70 84 20 00 0A 00 00 20 56 81 56 81 58 81
+44 81 EE 92 A6 8B 60 8B 60 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @8000
-B0 12 B8 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 6E 82 B2 49 7E 83 B2 49 FC 82 B2 49 D8 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 81 0E 12 B0 12
-F8 80 0A 80 DE 21 CE 83 16 83 EE 80 34 80 8A 81
-14 80 05 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83
-C4 84 96 83 34 80 7E 81 14 80 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 83 8E 84 4A 83
-14 80 04 1B 5B 30 6D 00 4A 83 16 88 2E 93 13 28
-B2 D0 C0 07 80 05 18 42 02 18 08 11 38 D0 00 04
-82 48 94 05 F2 D0 0C 00 2A 02 92 C3 80 05 A2 D2
-AA 05 92 C3 30 01 30 41 48 43 A2 B3 AC 05 FD 27
-C2 48 8E 05 A2 B2 AC 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 81 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 81 04 57 41 52 4D 00 B0 12
-8C 81 78 40 03 00 B0 12 BA 81 84 12 14 80 07 0D
-0A 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83 C4 84
-0A 80 23 00 FA 82 C4 84 14 80 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 4A 83 0A 80 40 FF 28 80 C2 83 8E 84
-14 80 0A 62 79 74 65 73 20 66 72 65 65 00 3A 80
-7E 81 00 00 06 41 43 43 45 50 54 00 30 40 70 82
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 AC 05 B2 B0 10 00 80 05 B8 22
-3A 17 92 B3 AC 05 FD 27 58 42 8C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 81 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 82 2F 83 8F 4E 00 00
-58 43 B0 12 BA 81 92 B3 AC 05 FD 27 1E 42 8C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 82 08 4E
-3E 4F A2 B3 AC 05 FD 27 C2 48 8E 05 30 4D F4 82
-04 45 43 48 4F 00 B2 40 C2 48 08 83 82 43 DE 21
-38 40 05 00 B0 12 BA 81 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 83 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 83 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 82 68 83 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 81 02 43 52 00 30 40 80 83
-0D 12 84 12 14 80 02 0D 0A 00 4A 83 4E 84 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 82 01 40 2E 4E
-30 4D CC 83 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 83 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E 80 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 08 84 02 23 53 00 0D 12 84 12
-0A 84 44 84 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 84 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 83 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 83
-3C 84 EE 80 7C 84 58 84 4A 83 02 88 FA 82 4E 84
-2C 83 01 2E 0E 93 E3 37 38 43 E2 3F 76 84 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80 48 87
-0A 80 22 00 1A 85 E8 84 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 84
-82 2E 22 00 0D 12 84 12 D2 84 0A 80 4A 83 48 87
-4E 84 F8 81 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 80 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80 30 4D
-00 00 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 9C 86 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 86 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 84 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 80 02 88 1A 85 BE 87 9C 26
-3D 40 C6 87 DE 3E C8 87 0A 4E 3E 4F 3D 40 E2 87
-36 27 3D 40 B8 87 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 87 3E 4F 3D 40 B8 87 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 89 CC 3F
-EC 87 86 12 20 00 D4 83 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C 83 BC 80
-B2 87 B2 83 E4 83 14 80 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80 EC 83
-14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 81
-3A 80 2C 88 08 88 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 84 0A 80 2A 81 48 87 4E 84 7C 85 01 27
-0D 12 84 12 02 88 1A 85 82 85 34 80 00 88 4E 84
-00 00 83 5B 27 5D 0D 12 84 12 80 88 0A 80 0A 80
-48 87 48 87 4E 84 92 88 81 5B 82 43 BE 21 30 4D
-FA 83 01 5D B2 43 BE 21 30 4D B2 88 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 88 1A 85 82 85 96 83 34 80
-00 88 E4 83 34 80 F4 88 0A 80 0A 80 48 87 48 87
-0A 80 48 87 48 87 4E 84 A8 88 01 3A 30 12 44 89
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 88 1A 85
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 81 FA 88 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A 80 4E 84 48 87 56 89 AA 88 4E 84
-A8 87 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 87 06 43 52 45 41 54
-45 00 B0 12 00 89 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 89 04 43 4F 44 45 00 B0 12 00 89 A2 82
-C6 21 0D 12 84 12 F2 8B CC 8B 4E 84 A2 89 07 48
-44 4E 43 4F 44 45 B2 40 D0 8B DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 89 0C 8C
-2A 8C 4E 84 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C 8C 2A 8C 4E 84 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE 89 85 48 49 32 4C 4F 0D 12 84 12 28 80 9A 8B
-48 87 AA 88 E2 89 4E 84 88 89 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 8A 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 80 00 00 C6 83 02 88 1A 85 98 87
-8E 83 34 80 02 8B 9C 83 14 80 06 5B 54 48 45 4E
-5D 00 74 8A DC 8A 98 8A BA 8A 4E 84 9C 83 14 80
-06 5B 45 4C 53 45 5D 00 74 8A F2 8A 98 8A B8 8A
-4E 84 14 80 04 5B 49 46 5D 00 74 8A BA 8A 3A 80
-B8 8A 70 83 14 80 05 0D 0A 6B 6F 20 4A 83 BC 80
-AC 80 3A 80 BA 8A A8 8A 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 8B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 88 1A 85 82 85
-26 8B 4E 84 2C 8B 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 8B DE 83 4E 84 5E 8B B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 87 06 4D
-41 52 4B 45 52 00 B0 12 00 89 BA 40 85 12 FC FF
-BA 40 5C 8B FE FF 28 83 8A 48 00 00 BA 40 AA 80
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A 80
-CA 21 D6 83 4E 84 85 12 9E 8B 66 88 D4 89 10 83
-7E 88 52 8A D2 82 6E 8B 00 85 96 8C AA 8C 8A 84
-14 85 00 00 46 8B BC 88 E2 85 00 00 85 12 9E 8B
-58 92 BE 92 00 92 0E 93 C6 91 00 00 92 8F 00 00
-D6 93 BA 93 2A 92 68 92 A2 90 00 00 00 00 2A 93
-CA 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 8B 24 8C 2A 8C 3A 8C 1A 42 20 18 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 C8 88
-09 50 57 52 5F 53 54 41 54 45 85 12 32 8C E2 93
-CE 84 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 8C F3 3F 70 8C 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E 8C 30 4D 82 8C 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 8D FE FF 29 83 B9 40
-E2 81 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 81 B2 49 FA 80 B2 49 02 80 B2 49 00 82 B2 49
-DA FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 20 29 83 89 43 00 20 FC 23 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 B2 40 00 A5
-60 01 B2 40 FF 1E 80 01 B2 40 B0 00 82 01 B2 40
-1E 00 84 01 B2 D0 10 00 86 01 B2 40 00 02 88 01
-39 40 5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23
-1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12 F8 80
-FE 81 38 40 C0 21 0A 4E 39 48 2E 48 09 5E 1E 52
-C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88
-82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21 84 12
-1A 85 82 85 DE 83 34 80 D2 8D 3E 86 34 80 EC 8D
-E6 8D D4 8D 3C 4E 3C 80 87 12 05 24 1C 53 02 20
-2E 4E 01 3C 2E 83 21 52 1B 17 30 41 EE 8D B2 41
-C4 21 3E 41 84 12 0A 80 2B 00 1A 85 82 85 DE 83
-34 80 0A 8E 3E 86 34 80 00 88 A8 83 1A 85 3E 86
-34 80 00 88 16 8E 3E 5F E7 3F 3E 40 28 00 B0 12
-B6 8D 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40
-29 00 92 92 C0 21 C4 21 02 20 30 40 6E 89 1C 15
-12 12 C4 21 92 53 C4 21 84 12 1A 85 3E 86 34 80
-5E 8E 54 8E 21 53 3E 90 10 00 C6 2B 7F 2D 60 8E
-B2 41 C4 21 C1 3F 0D 12 84 12 02 88 92 8D 70 8E
-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 B6 8D 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 B6 8D ED 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 21 B0 12 3E 8E 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 3E 8E 92 92 C0 21 C4 21 02 24 92 53
-C4 21 8E 10 0C 5E DA 3F B0 12 3E 8E FA 23 3C 50
-10 00 B0 12 1A 8E EF 3F 0C 43 1B 42 C6 21 A2 53
-C6 21 0D 12 84 12 02 88 92 8D 3C 8F FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12
-3E 8E E0 23 3C 50 80 00 B0 12 1A 8E DB 3F 00 00
-04 52 45 54 49 00 0D 12 84 12 0A 80 00 13 48 87
-4E 84 0A 80 2C 00 66 8E 32 8F 7C 8F 09 4B 2E 4E
-0E DC A2 3F 40 8A 03 4D 4F 56 85 12 72 8F 00 40
-86 8F 05 4D 4F 56 2E 42 85 12 72 8F 40 40 00 00
-03 41 44 44 85 12 72 8F 00 50 A0 8F 05 41 44 44
-2E 42 85 12 72 8F 40 50 AC 8F 04 41 44 44 43 00
-85 12 72 8F 00 60 BA 8F 06 41 44 44 43 2E 42 00
-85 12 72 8F 40 60 60 8F 04 53 55 42 43 00 85 12
-72 8F 00 70 D8 8F 06 53 55 42 43 2E 42 00 85 12
-72 8F 40 70 E6 8F 03 53 55 42 85 12 72 8F 00 80
-F6 8F 05 53 55 42 2E 42 85 12 72 8F 40 80 16 8A
-03 43 4D 50 85 12 72 8F 00 90 10 90 05 43 4D 50
-2E 42 85 12 72 8F 40 90 00 8A 04 44 41 44 44 00
-85 12 72 8F 00 A0 2A 90 06 44 41 44 44 2E 42 00
-85 12 72 8F 40 A0 1C 90 03 42 49 54 85 12 72 8F
-00 B0 48 90 05 42 49 54 2E 42 85 12 72 8F 40 B0
-54 90 03 42 49 43 85 12 72 8F 00 C0 62 90 05 42
-49 43 2E 42 85 12 72 8F 40 C0 6E 90 03 42 49 53
-85 12 72 8F 00 D0 7C 90 05 42 49 53 2E 42 85 12
-72 8F 40 D0 00 00 03 58 4F 52 85 12 72 8F 00 E0
-96 90 05 58 4F 52 2E 42 85 12 72 8F 40 E0 C8 8F
-03 41 4E 44 85 12 72 8F 00 F0 B0 90 05 41 4E 44
-2E 42 85 12 72 8F 40 F0 02 88 66 8E CE 90 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 02 90
-03 52 52 43 85 12 C8 90 00 10 E0 90 05 52 52 43
-2E 42 85 12 C8 90 40 10 EC 90 04 53 57 50 42 00
-85 12 C8 90 80 10 FA 90 03 52 52 41 85 12 C8 90
-00 11 08 91 05 52 52 41 2E 42 85 12 C8 90 40 11
-14 91 03 53 58 54 85 12 C8 90 80 11 00 00 04 50
-55 53 48 00 85 12 C8 90 00 12 2E 91 06 50 55 53
-48 2E 42 00 85 12 C8 90 40 12 88 90 04 43 41 4C
-4C 00 85 12 C8 90 80 12 1A 53 0E 4A 0D 12 84 12
-C4 84 14 80 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 36 81 22 91 03 53 3E 3D 86 12 00 38 76 91
-02 53 3C 00 86 12 00 34 3C 91 03 30 3E 3D 86 12
-00 30 8A 91 02 30 3C 00 86 12 00 30 00 00 02 55
-3C 00 86 12 00 2C 9E 91 03 55 3E 3D 86 12 00 28
-94 91 03 30 3C 3E 86 12 00 24 B2 91 02 30 3D 00
-86 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 A8 91 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 B1 2F 88 DA 00 00 30 4D 38 90
-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 91 05 42
-45 47 49 4E 30 40 28 80 DC 91 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 21 30 4D BC 90 05 41 47 41 49 4E 0A 4E
-38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12
-84 12 CA 91 A8 83 4E 84 80 91 06 52 45 50 45 41
-54 00 0D 12 84 12 5E 92 E2 91 4E 84 8E 92 3D 41
-08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42 C6 21
-00 00 30 4D 1E 92 03 42 57 31 85 12 8C 92 00 00
-A6 92 03 42 57 32 85 12 8C 92 00 00 B2 92 03 42
-57 33 85 12 8C 92 00 00 CA 92 3D 41 1A 42 C6 21
-28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53 C6 21
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12
-C8 92 00 00 EA 92 03 46 57 32 85 12 C8 92 00 00
-F6 92 03 46 57 33 85 12 C8 92 00 00 02 93 04 47
-4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
-84 12 80 88 DC 87 4E 84 00 00 05 3F 47 4F 54 4F
-3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
-3E E0 00 08 EC 3F 02 88 92 8D 4C 93 92 53 C4 21
-3E 40 2C 00 84 12 1A 85 3E 86 34 80 00 88 28 8F
-62 93 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E
-5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 7A 92
-04 52 52 43 4D 00 85 12 46 93 50 00 90 93 04 52
-52 41 4D 00 85 12 46 93 50 01 9E 93 04 52 4C 41
-4D 00 85 12 46 93 50 02 AC 93 04 52 52 55 4D 00
-85 12 46 93 50 03 BC 91 05 50 55 53 48 4D 85 12
-46 93 00 15 C8 93 04 50 4F 50 4D 00 85 12 46 93
-00 17
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F6 3C 0E 93 3E 4F
+78 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 9A 82 B2 49
+1E 83 B2 49 F6 82 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 1A 8C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 81 B0 12 D0 80 7A 84 AC 80
+42 81 38 83 1E 80 05 1B 5B 37 6D 40 64 83 0A 80
+02 18 9C 84 C8 85 64 83 1E 80 04 1B 5B 30 6D 00
+64 83 B0 88 48 43 A2 B3 AC 05 FD 27 C2 48 8E 05
+A2 B2 AC 05 FD 27 30 41 B2 D0 C0 07 80 05 18 42
+02 18 08 11 38 D0 00 04 82 48 94 05 F2 D0 0C 00
+2A 02 92 C3 80 05 A2 D2 AA 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 38 83 1E 80 07 0D 0A 1B 5B 37
+6D 40 64 83 0A 80 02 18 9C 84 C8 85 0A 80 23 00
+1C 83 C8 85 1E 80 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+64 83 0A 80 40 FF 32 80 90 84 94 85 1E 80 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 80 36 81 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 81 01 12 6D 3F 82 4E 08 18 92 12 3A 18 D2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 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 B2 40 00 A5 60 01 B2 D0 10 00
+86 01 F2 C3 82 01 B2 40 1E 00 84 01 39 40 5C 00
+18 42 00 18 18 83 FE 23 19 83 FA 23 39 40 00 20
+29 83 89 43 00 20 FC 23 1E 42 08 18 82 43 08 18
+3E F3 02 20 1E 42 5E 01 B0 12 D0 80 80 81 00 00
+0C 41 43 43 45 50 54 00 30 40 9C 82 0A 4E 2E 4F
+0A 5E 3B 40 0A 00 3C 40 20 00 3D 15 A9 3E 21 52
+A2 C2 AC 05 B2 B0 10 00 80 05 A2 22 3A 17 92 B3
+AC 05 FD 27 58 42 8C 05 48 9B 0E 24 48 9C 06 2C
+78 92 F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F
+CE 48 00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00
+06 4B 45 59 30 40 F8 82 58 43 B0 12 46 81 2F 83
+8F 4E 00 00 92 B3 AC 05 FD 27 1E 42 8C 05 B0 12
+44 81 30 4D 00 00 08 45 4D 49 54 00 30 40 20 83
+08 4E 3E 4F A2 B3 AC 05 FD 27 C2 48 8E 05 30 4D
+16 83 08 45 43 48 4F 00 B2 40 C2 48 2A 83 38 40
+05 00 B0 12 46 81 30 4D 00 00 0C 4E 4F 45 43 48
+4F 00 B2 40 30 4D 2A 83 28 42 F3 3F 00 00 08 54
+59 50 45 00 0D 12 3D 40 74 83 29 4F 8F 4E 00 00
+7E 49 D4 3F 76 83 2D 83 2F 83 5E 83 F7 23 3D 41
+2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F
+39 4F 3E 4F 8E 22 F9 98 00 00 8B 22 19 53 1C 83
+FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 82 22 9B 24
+F0 82 0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A 80
+00 00 94 84 86 83 D8 85 92 88 B0 80 02 84 14 80
+06 5B 54 48 45 4E 5D 00 8A 83 E0 83 A6 83 C4 83
+14 80 06 5B 45 4C 53 45 5D 00 8A 83 F2 83 A6 83
+C2 83 1E 80 04 5B 49 46 5D 00 8A 83 C4 83 B2 80
+C2 83 1E 80 05 0D 6B 6F 20 0A 64 83 9A 80 84 80
+B2 80 C4 83 B2 83 0D 5B 54 48 45 4E 5D 00 30 4D
+16 84 09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
+22 84 13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12
+86 83 D8 85 40 86 E4 87 54 85 32 84 17 5B 55 4E
+44 45 46 49 4E 45 44 5D 0D 12 84 12 86 83 D8 85
+40 86 64 84 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12
+2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83
+30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F
+3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D
+90 82 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E
+3E E3 30 4D 3E 8F 01 28 0E F3 30 4D E0 81 05 53
+22 00 82 43 C0 21 0D 12 84 12 0A 80 1E 80 42 88
+0A 80 22 00 D8 85 D8 84 B2 40 20 00 C0 21 1A 53
+1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 4A 83 05 2E
+22 00 0D 12 84 12 C2 84 0A 80 64 83 42 88 54 85
+00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D BE 84
+02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 80 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 10 85
+04 23 53 00 0D 12 84 12 12 85 4C 85 2D 83 09 DE
+09 93 E1 23 3D 41 30 4D 40 85 04 23 3E 00 9F 42
+B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00 08 48
+4F 4C 44 00 4A 4E 3E 4F DB 3F 5A 85 08 53 49 47
+4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 32 83
+04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15
+3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
+84 12 06 85 86 83 74 85 44 85 70 84 82 85 5E 85
+64 83 54 85 EE 84 02 2E 0E 93 E4 37 3C 43 E3 3F
+00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C 38 4C
+09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83
+1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98 02 00
+01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C
+09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F
+4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42 C8 21
+0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00
+2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C
+01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF
+0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C
+FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
+0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D
+C6 85 0E 3E 4E 55 4D 42 45 52 1B 42 BE 21 3C 4F
+38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00
+03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3
+0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82
+8F 4E 06 00 08 43 09 43 1B 42 BE 21 0C 4E 0E 43
+1E 15 3D 40 4A 87 7E 4C 6A 4C 7A 80 2D 00 16 24
+CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40
+10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20
+FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00
+1E 83 FC 9C 00 00 E0 23 AE 27 4C 87 2F 24 2D 83
+6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0
+00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43
+8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00
+03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C
+8F 49 00 00 0E 4B 2C 15 B0 12 3E 80 2A 17 E8 3F
+9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 02 85 03 5C 92 42 C2 21
+C6 21 30 4D 0D 12 84 12 84 80 86 83 D8 85 B0 80
+1C 89 40 86 06 88 0A 4E 3E 4F 3D 40 20 88 6D 27
+3D 40 FA 87 1A E2 BC 21 14 24 0E 12 3E 4F 30 41
+22 88 3E 4F 3D 40 FA 87 19 20 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 F8 89 2A 3C EA 87
+02 2C A2 53 C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F
+30 4D 40 88 0F 4C 49 54 45 52 41 4C 82 93 BC 21
+0D 24 09 4E 1A 42 C8 21 A2 52 C8 21 BA 40 0A 80
+00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
+03 24 8A 4E 02 00 EE 3F 30 4D 7C 85 0A 43 4F 55
+4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D
+A2 84 0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D
+3F 40 80 20 0E 43 84 12 1E 80 02 0D 0A 00 64 83
+94 80 F4 87 82 84 AC 84 1E 80 0B 73 74 61 63 6B
+20 65 6D 70 74 79 08 81 32 80 0A 80 40 FF B4 84
+1E 80 09 46 52 41 4D 20 66 75 6C 6C 08 81 B2 80
+B8 88 A2 88 0D 41 42 4F 52 54 22 00 0D 12 84 12
+C2 84 0A 80 08 81 42 88 54 85 D2 85 02 27 0D 12
+84 12 86 83 D8 85 40 86 B0 80 1E 89 E6 84 2A 88
+4C 84 07 5B 27 5D 0D 12 84 12 0E 89 0A 80 0A 80
+42 88 42 88 54 85 22 89 03 5B 82 43 BC 21 30 4D
+00 00 02 5D B2 43 BC 21 30 4D 9A 84 11 50 4F 53
+54 50 4F 4E 45 00 0D 12 84 12 86 83 D8 85 40 86
+B0 80 1E 89 AC 84 AC 80 76 89 0A 80 0A 80 42 88
+42 88 0A 80 42 88 42 88 54 85 00 00 02 3A 30 12
+CC 89 92 B3 C8 21 A2 63 C8 21 0D 12 84 12 86 83
+D8 85 94 89 3D 41 5A D3 5A 53 0A 5E 19 42 CC 21
+08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F
+E8 58 00 00 82 48 B4 21 82 49 B6 21 82 4A B8 21
+82 4F BA 21 2A 52 82 4A C8 21 30 41 BA 40 0D 12
+FC FF BA 40 84 12 FE FF B2 43 BC 21 30 4D 82 9F
+BA 21 66 25 84 12 1E 80 0F 73 74 61 63 6B 20 6D
+69 73 6D 61 74 63 68 21 12 81 38 89 03 3B 82 93
+BC 21 F4 26 0D 12 84 12 0A 80 54 85 42 88 DE 89
+3A 89 54 85 00 00 12 49 4D 4D 45 44 49 41 54 45
+18 42 B4 21 D8 D3 00 00 30 4D 8C 88 0C 43 52 45
+41 54 45 00 B0 12 82 89 BA 40 86 12 FC FF 8A 4A
+FE FF 3A 3D 5E 83 0A 44 4F 45 53 3E 1A 42 B8 21
+BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D 7C 89
+0E 3A 4E 4F 4E 41 4D 45 30 12 CC 89 2F 83 8F 4E
+00 00 1A 42 C8 21 1A B3 0A 63 0E 4A 39 40 12 02
+08 49 98 3F 16 8A 05 49 53 00 0D 12 82 93 BC 21
+08 20 84 12 0E 89 98 8A 3D 41 BE 4F 02 00 3E 4F
+30 4D 84 12 26 89 0A 80 9A 8A 42 88 54 85 2C 8A
+08 43 4F 44 45 00 B0 12 82 89 A2 82 C8 21 61 3C
+6E 85 0E 48 44 4E 43 4F 44 45 B2 40 86 8B CC 21
+F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12
+DE 89 E4 8A 3D 41 92 42 D0 21 CC 21 5D 3C B0 8A
+0E 43 4F 44 45 4E 4E 4D 30 12 BA 8A B7 3F 00 00
+0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12 00 00
+BA 40 84 12 02 00 A2 52 C8 21 B2 43 BC 21 E3 3F
+00 00 0A 4C 4F 32 48 49 A2 83 C8 21 1A 42 C8 21
+EF 3F C2 8A 0B 48 49 32 4C 4F A2 53 C8 21 1A 42
+C8 21 8A 4A FE FF 82 43 BC 21 B9 3F 4E 8B B2 40
+60 8B D0 21 82 4E CE 21 30 40 E6 84 85 12 4C 8B
+4C 89 F4 88 DE 8B F0 8A 46 8A 90 85 3A 86 0C 89
+34 8B 86 8A 60 8A FC 89 54 88 68 8C 92 86 00 00
+00 00 85 12 4C 8B E2 92 66 91 C6 92 8E 90 EA 90
+38 91 14 92 20 92 B0 8F D4 90 00 00 00 00 22 8B
+A0 8E 00 00 3C 92 80 8B B2 40 60 8B CE 21 82 43
+D0 21 30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83
+FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54 39 40
+C8 21 3A 40 42 18 B0 12 B4 8B 30 4D C6 8B 0E 52
+53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 21
+B0 12 B4 8B 1A 42 CA 21 3B 40 10 00 09 4A 08 49
+29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83
+F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40
+10 00 29 83 B9 43 80 FF FC 23 B9 40 0E 82 FE FF
+29 83 B9 40 FA 81 FE FF 39 90 AE FF F9 23 39 40
+10 18 B2 49 DA FF 3B 40 10 00 3A 40 3A 18 B0 12
+B8 8B 82 43 4A 18 C7 3F 5A 8C B2 4E 42 18 BE 12
+3E 4F 3D 41 C0 3F 42 89 0C 4D 41 52 4B 45 52 00
+12 12 C6 21 0D 12 84 12 86 83 D8 85 40 86 AC 80
+86 8C 7A 84 1A 88 88 8C 3E 4F 3D 41 B2 41 C6 21
+B0 12 82 89 BA 40 85 12 FC FF BA 40 58 8C FE FF
+28 83 8A 48 00 00 BA 40 82 80 02 00 A2 52 C8 21
+18 42 B4 21 19 42 B6 21 A8 49 FE FF 89 48 00 00
+30 4D 12 12 C6 21 84 12 D8 85 40 86 AC 80 F2 8C
+D2 8C 3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E
+06 3C BE 90 58 8C 00 00 01 20 3E 52 2E 83 21 53
+30 41 EA 86 AC 80 FA 8C EE 8C FC 8C B2 41 C6 21
+30 41 92 83 C6 21 3E 40 28 00 0A 4E 3D 15 B0 12
+C2 8C 15 20 3E 40 2B 00 B0 12 C2 8C 06 20 3E 40
+2D 00 B0 12 C2 8C 92 83 C6 21 0E 12 1E 41 02 00
+84 12 D8 85 EA 86 AC 80 1E 89 3C 8D 3E 51 3A 17
+30 41 B0 12 02 8D 19 42 C8 21 89 4E 00 00 A2 53
+C8 21 3E 40 29 00 92 53 C6 21 1A 42 C6 21 3D 15
+84 12 D8 85 EA 86 AC 80 74 8D 6C 8D 3E 90 10 00
+E6 2B 7C 2D 76 8D A2 41 C6 21 E1 3F 03 20 B0 12
+5A 8D 43 3C 7A 90 23 00 24 20 B0 12 0A 8D 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 C8 21 A2 53 C8 21 89 4E 00 00 3E 4F
+30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12 0A 8D
+F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12 56 8D
+0C 20 3C D0 10 00 3E 40 2B 00 B0 12 5A 8D 92 92
+C2 21 C6 21 02 24 92 53 C6 21 8E 10 0C 5E DF 3F
+3C D0 10 00 B0 12 42 8D F2 3F 03 20 B0 12 5A 8D
+F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0
+80 00 B0 12 42 8D EA 3F 0C 43 1B 42 C8 21 A2 53
+C8 21 3A 40 20 00 19 42 C6 21 19 52 C4 21 7A 99
+FE 27 5A 49 FF FF 19 82 C4 21 82 49 C6 21 7A 90
+52 00 30 4D 00 00 08 52 45 54 49 00 0D 12 84 12
+0A 80 00 13 42 88 54 85 0A 80 2C 00 38 8E 7C 8D
+86 83 42 8E 1A 8E 88 8E 3D 41 2C DE 8B 4C 00 00
+9E 3F 00 00 06 4D 4F 56 85 12 78 8E 00 40 94 8E
+0A 4D 4F 56 2E 42 85 12 78 8E 40 40 00 00 06 41
+44 44 85 12 78 8E 00 50 AE 8E 0A 41 44 44 2E 42
+85 12 78 8E 40 50 BA 8E 08 41 44 44 43 00 85 12
+78 8E 00 60 C8 8E 0C 41 44 44 43 2E 42 00 85 12
+78 8E 40 60 00 8B 08 53 55 42 43 00 85 12 78 8E
+00 70 E6 8E 0C 53 55 42 43 2E 42 00 85 12 78 8E
+40 70 F4 8E 06 53 55 42 85 12 78 8E 00 80 04 8F
+0A 53 55 42 2E 42 85 12 78 8E 40 80 10 8F 06 43
+4D 50 85 12 78 8E 00 90 1E 8F 0A 43 4D 50 2E 42
+85 12 78 8E 40 90 00 00 08 44 41 44 44 00 85 12
+78 8E 00 A0 38 8F 0C 44 41 44 44 2E 42 00 85 12
+78 8E 40 A0 66 8E 06 42 49 54 85 12 78 8E 00 B0
+56 8F 0A 42 49 54 2E 42 85 12 78 8E 40 B0 62 8F
+06 42 49 43 85 12 78 8E 00 C0 70 8F 0A 42 49 43
+2E 42 85 12 78 8E 40 C0 7C 8F 06 42 49 53 85 12
+78 8E 00 D0 8A 8F 0A 42 49 53 2E 42 85 12 78 8E
+40 D0 00 00 06 58 4F 52 85 12 78 8E 00 E0 A4 8F
+0A 58 4F 52 2E 42 85 12 78 8E 40 E0 D6 8E 06 41
+4E 44 85 12 78 8E 00 F0 BE 8F 0A 41 4E 44 2E 42
+85 12 78 8E 40 F0 86 83 38 8E 7C 8D DE 8F 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F 96 8F
+06 52 52 43 85 12 D6 8F 00 10 F0 8F 0A 52 52 43
+2E 42 85 12 D6 8F 40 10 2A 8F 08 53 57 50 42 00
+85 12 D6 8F 80 10 FC 8F 06 52 52 41 85 12 D6 8F
+00 11 18 90 0A 52 52 41 2E 42 85 12 D6 8F 40 11
+0A 90 06 53 58 54 85 12 D6 8F 80 11 00 00 08 50
+55 53 48 00 85 12 D6 8F 00 12 3E 90 0C 50 55 53
+48 2E 42 00 85 12 D6 8F 40 12 32 90 08 43 41 4C
+4C 00 85 12 D6 8F 80 12 1A 53 0E 4A 84 12 C8 85
+1E 80 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+12 81 5C 90 06 53 3E 3D 86 12 00 38 84 90 04 53
+3C 00 86 12 00 34 4C 90 06 30 3E 3D 86 12 00 30
+98 90 04 30 3C 00 86 12 00 30 D4 8A 04 55 3C 00
+86 12 00 2C AC 90 06 55 3E 3D 86 12 00 28 A2 90
+06 30 3C 3E 86 12 00 24 C0 90 04 30 3D 00 86 12
+00 20 00 00 04 49 46 00 1A 42 C8 21 8A 4E 00 00
+A2 53 C8 21 0E 4A 30 4D 46 8F 08 54 48 45 4E 00
+1A 42 C8 21 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
+3A 90 00 02 B2 2F 88 DA 00 00 30 4D B6 90 08 45
+4C 53 45 00 1A 42 C8 21 BA 40 00 3C 00 00 A2 53
+C8 21 2F 83 8F 4A 00 00 E3 3F 24 90 0A 42 45 47
+49 4E 30 40 32 80 0E 91 0A 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C8 21 2A 83 0A 89 0A 11 3A 90
+00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C8 21 30 4D CA 8F 0A 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12
+D8 90 6E 84 54 85 2C 91 0C 52 45 50 45 41 54 00
+0D 12 84 12 6C 91 F0 90 54 85 9C 91 3D 41 08 4E
+3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42 C8 21 00 00
+30 4D 88 91 06 42 57 31 85 12 9A 91 00 00 B4 91
+06 42 57 32 85 12 9A 91 00 00 C0 91 06 42 57 33
+85 12 9A 91 00 00 D8 91 3D 41 1A 42 C8 21 28 4E
+8E 43 00 00 B2 92 C6 21 86 2B BA 4F 00 00 A2 53
+C8 21 8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31
+85 12 D6 91 00 00 FC 91 06 46 57 32 85 12 D6 91
+00 00 08 92 06 46 57 33 85 12 D6 91 00 00 76 91
+08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
+0D 12 84 12 0E 89 1A 88 54 85 00 00 0A 3F 47 4F
+54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
+EF 27 3E E0 00 08 EC 3F 42 8E 0A 80 2C 00 D8 85
+EA 86 AC 80 1E 89 86 83 38 8E 1A 8E 6E 92 0A 4E
+3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E
+2A 92 EA 2E 8A 10 5A 06 A8 3E CC 91 08 52 52 43
+4D 00 85 12 58 92 50 00 9C 92 08 52 52 41 4D 00
+85 12 58 92 50 01 AA 92 08 52 4C 41 4D 00 85 12
+58 92 50 02 B8 92 08 52 52 55 4D 00 85 12 58 92
+50 03 CA 90 0A 50 55 53 48 4D 85 12 58 92 00 15
+D4 92 08 50 4F 50 4D 00 85 12 58 92 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 82 82 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 08 8D
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 AE 82 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 0E 82
 q
diff --git a/binaries/LP_MSP430FR2476_1MHz_UART.txt b/binaries/LP_MSP430FR2476_1MHz_UART.txt
deleted file mode 100644 (file)
index 8dcc6e6..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF F8 93 02 8C 34 01
-10 00 41 33 94 81 AA 80 DA 81 9C 81 94 82 F8 93
-02 8C 7A 82 92 83 24 83 FE 82 3C 21 60 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
-@8000
-B0 12 DA 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 78 82 B2 49 90 83 B2 49 22 83 B2 49 FC 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 81 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 80 0A 80 DE 21 E0 83 32 83
-14 80 04 1B 5B 37 6D 00 5C 83 A8 83 34 80 86 81
-14 80 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 83 A0 84 5C 83 14 80 04 1B 5B 30 6D 00
-5C 83 28 88 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 E2 D3 43 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 E2 C3 43 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 81 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 81 04 57 41 52 4D 00 B0 12
-9C 81 84 12 14 80 07 0D 0A 1B 5B 37 6D 23 5C 83
-D6 84 14 80 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 5C 83
-0A 80 40 FF 28 80 D4 83 A0 84 14 80 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 80 86 81 00 00 06 41
-43 43 45 50 54 00 30 40 7A 82 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 82 3C 40 D2 82
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 82 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 82 2F 83
-8F 4E 00 00 B0 12 DA 81 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 81 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 83 08 4E 3E 4F C8 3F 1A 83 04 45 43 48
-4F 00 B2 40 C2 48 C0 82 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 82 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 83 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 83 7A 83 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 81 02 43 52 00 30 40
-92 83 0D 12 84 12 14 80 02 0D 0A 00 5C 83 60 84
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 82 01 40
-2E 4E 30 4D DE 83 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A 83 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E 80 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 1A 84 02 23 53 00 0D 12
-84 12 1C 84 56 84 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 84 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 83 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 84 4E 84 EE 80 8E 84 6A 84 5C 83 14 88 20 83
-60 84 40 83 01 2E 0E 93 E3 37 38 43 E2 3F 88 84
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80
-5A 87 0A 80 22 00 2C 85 FA 84 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 84 82 2E 22 00 0D 12 84 12 E4 84 0A 80 5C 83
-5A 87 60 84 18 82 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 80 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80
-30 4D 00 00 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 AE 86
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 86
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 87 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 84 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 80 14 88 2C 85 D0 87
-9C 26 3D 40 D8 87 DE 3E DA 87 0A 4E 3E 4F 3D 40
-F4 87 36 27 3D 40 CA 87 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 87 3E 4F 3D 40 CA 87 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 89
-CC 3F FE 87 86 12 20 00 E6 83 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E 83
-BC 80 C4 87 C4 83 F6 83 14 80 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80
-FE 83 14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 81 3A 80 3E 88 1A 88 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 84 0A 80 2A 81 5A 87 60 84 8E 85
-01 27 0D 12 84 12 14 88 2C 85 94 85 34 80 12 88
-60 84 00 00 83 5B 27 5D 0D 12 84 12 92 88 0A 80
-0A 80 5A 87 5A 87 60 84 A4 88 81 5B 82 43 BE 21
-30 4D 0C 84 01 5D B2 43 BE 21 30 4D C4 88 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 88 2C 85 94 85 A8 83
-34 80 12 88 F6 83 34 80 06 89 0A 80 0A 80 5A 87
-5A 87 0A 80 5A 87 5A 87 60 84 BA 88 01 3A 30 12
-56 89 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 88
-2C 85 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 81 0C 89 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A 80 60 84 5A 87 68 89 BC 88
-60 84 BA 87 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 87 06 43 52 45
-41 54 45 00 B0 12 12 89 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 89 04 43 4F 44 45 00 B0 12 12 89
-A2 82 C6 21 0D 12 84 12 04 8C DE 8B 60 84 B4 89
-07 48 44 4E 43 4F 44 45 B2 40 E2 8B DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 89
-1E 8C 3C 8C 60 84 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E 8C 3C 8C 60 84
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 8A 85 48 49 32 4C 4F 0D 12 84 12 28 80
-AC 8B 5A 87 BC 88 F4 89 60 84 9A 89 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 8A 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 80 00 00 D8 83 14 88 2C 85
-AA 87 A0 83 34 80 14 8B AE 83 14 80 06 5B 54 48
-45 4E 5D 00 86 8A EE 8A AA 8A CC 8A 60 84 AE 83
-14 80 06 5B 45 4C 53 45 5D 00 86 8A 04 8B AA 8A
-CA 8A 60 84 14 80 04 5B 49 46 5D 00 86 8A CC 8A
-3A 80 CA 8A 82 83 14 80 05 0D 0A 6B 6F 20 5C 83
-BC 80 AC 80 3A 80 CC 8A BA 8A 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 8B 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 88 2C 85
-94 85 38 8B 60 84 3E 8B 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 8B F0 83 60 84 70 8B
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 87
-06 4D 41 52 4B 45 52 00 B0 12 12 89 BA 40 85 12
-FC FF BA 40 6E 8B FE FF 28 83 8A 48 00 00 BA 40
-AA 80 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A 80 CA 21 E8 83 60 84 85 12 B0 8B 78 88 E6 89
-2C 83 90 88 64 8A F6 82 80 8B 12 85 A8 8C BC 8C
-9C 84 26 85 00 00 58 8B CE 88 F4 85 00 00 85 12
-B0 8B 6E 92 D4 92 16 92 24 93 DC 91 00 00 A8 8F
-00 00 EC 93 D0 93 40 92 7E 92 B8 90 00 00 00 00
-40 93 DC 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 8B 36 8C 3C 8C 4C 8C 1A 42 20 18
-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
-DA 88 09 50 57 52 5F 53 54 41 54 45 85 12 44 8C
-F8 93 E0 84 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 8C F3 3F 82 8C 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 8C 30 4D 94 8C 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 8D FE FF 29 83
-B9 40 02 82 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 82 B2 49 FA 80 B2 49 02 80 B2 49 20 82
-B2 49 E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 20 29 83 89 43 00 20 FC 23
-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 B2 D0 10 00 86 01
-B2 40 00 02 88 01 39 40 5C 00 18 42 00 18 18 83
-FE 23 19 83 FA 23 1E 42 08 18 82 43 08 18 1E D2
-5E 01 B0 12 F8 80 1E 82 38 40 C0 21 0A 4E 39 48
-2E 48 09 5E 1E 52 C4 21 09 9E 03 24 7A 9E FC 27
-1E 83 0A 4E 2A 88 82 4A C4 21 30 4D 1C 15 0E 12
-12 12 C4 21 84 12 2C 85 94 85 F0 83 34 80 E8 8D
-50 86 34 80 02 8E FC 8D EA 8D 3C 4E 3C 80 87 12
-05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17
-30 41 04 8E B2 41 C4 21 3E 41 84 12 0A 80 2B 00
-2C 85 94 85 F0 83 34 80 20 8E 50 86 34 80 12 88
-BA 83 2C 85 50 86 34 80 12 88 2C 8E 3E 5F E7 3F
-3E 40 28 00 B0 12 CC 8D 19 42 C6 21 A2 53 C6 21
-89 4E 00 00 3E 40 29 00 92 92 C0 21 C4 21 02 20
-30 40 80 89 1C 15 12 12 C4 21 92 53 C4 21 84 12
-2C 85 50 86 34 80 74 8E 6A 8E 21 53 3E 90 10 00
-C6 2B 7F 2D 76 8E B2 41 C4 21 C1 3F 0D 12 84 12
-14 88 A8 8D 86 8E 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
-CC 8D 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 CC 8D ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 54 8E 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 54 8E 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-54 8E FA 23 3C 50 10 00 B0 12 30 8E EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 0D 12 84 12 14 88 A8 8D
-52 8F FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
-82 00 C7 3F B0 12 54 8E E0 23 3C 50 80 00 B0 12
-30 8E DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12
-0A 80 00 13 5A 87 60 84 0A 80 2C 00 7C 8E 48 8F
-92 8F 09 4B 2E 4E 0E DC A2 3F 52 8A 03 4D 4F 56
-85 12 88 8F 00 40 9C 8F 05 4D 4F 56 2E 42 85 12
-88 8F 40 40 00 00 03 41 44 44 85 12 88 8F 00 50
-B6 8F 05 41 44 44 2E 42 85 12 88 8F 40 50 C2 8F
-04 41 44 44 43 00 85 12 88 8F 00 60 D0 8F 06 41
-44 44 43 2E 42 00 85 12 88 8F 40 60 76 8F 04 53
-55 42 43 00 85 12 88 8F 00 70 EE 8F 06 53 55 42
-43 2E 42 00 85 12 88 8F 40 70 FC 8F 03 53 55 42
-85 12 88 8F 00 80 0C 90 05 53 55 42 2E 42 85 12
-88 8F 40 80 28 8A 03 43 4D 50 85 12 88 8F 00 90
-26 90 05 43 4D 50 2E 42 85 12 88 8F 40 90 12 8A
-04 44 41 44 44 00 85 12 88 8F 00 A0 40 90 06 44
-41 44 44 2E 42 00 85 12 88 8F 40 A0 32 90 03 42
-49 54 85 12 88 8F 00 B0 5E 90 05 42 49 54 2E 42
-85 12 88 8F 40 B0 6A 90 03 42 49 43 85 12 88 8F
-00 C0 78 90 05 42 49 43 2E 42 85 12 88 8F 40 C0
-84 90 03 42 49 53 85 12 88 8F 00 D0 92 90 05 42
-49 53 2E 42 85 12 88 8F 40 D0 00 00 03 58 4F 52
-85 12 88 8F 00 E0 AC 90 05 58 4F 52 2E 42 85 12
-88 8F 40 E0 DE 8F 03 41 4E 44 85 12 88 8F 00 F0
-C6 90 05 41 4E 44 2E 42 85 12 88 8F 40 F0 14 88
-7C 8E E4 90 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 18 90 03 52 52 43 85 12 DE 90 00 10
-F6 90 05 52 52 43 2E 42 85 12 DE 90 40 10 02 91
-04 53 57 50 42 00 85 12 DE 90 80 10 10 91 03 52
-52 41 85 12 DE 90 00 11 1E 91 05 52 52 41 2E 42
-85 12 DE 90 40 11 2A 91 03 53 58 54 85 12 DE 90
-80 11 00 00 04 50 55 53 48 00 85 12 DE 90 00 12
-44 91 06 50 55 53 48 2E 42 00 85 12 DE 90 40 12
-9E 90 04 43 41 4C 4C 00 85 12 DE 90 80 12 1A 53
-0E 4A 0D 12 84 12 D6 84 14 80 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 36 81 38 91 03 53 3E 3D
-86 12 00 38 8C 91 02 53 3C 00 86 12 00 34 52 91
-03 30 3E 3D 86 12 00 30 A0 91 02 30 3C 00 86 12
-00 30 00 00 02 55 3C 00 86 12 00 2C B4 91 03 55
-3E 3D 86 12 00 28 AA 91 03 30 3C 3E 86 12 00 24
-C8 91 02 30 3D 00 86 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
-BE 91 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 B1 2F 88 DA
-00 00 30 4D 4E 90 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 62 91 05 42 45 47 49 4E 30 40 28 80 F2 91
-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 8A 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D D2 90 05 41
-47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
-48 49 4C 45 0D 12 84 12 E0 91 BA 83 60 84 96 91
-06 52 45 50 45 41 54 00 0D 12 84 12 74 92 F8 91
-60 84 A4 92 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21
-CB 2F 98 42 C6 21 00 00 30 4D 34 92 03 42 57 31
-85 12 A2 92 00 00 BC 92 03 42 57 32 85 12 A2 92
-00 00 C8 92 03 42 57 33 85 12 A2 92 00 00 E0 92
-3D 41 1A 42 C6 21 28 4E B2 92 C4 21 88 2B BA 4F
-00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 85 12 DE 92 00 00 00 93 03 46 57 32
-85 12 DE 92 00 00 0C 93 03 46 57 33 85 12 DE 92
-00 00 18 93 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
-3E 40 00 3C 0D 12 84 12 92 88 EE 87 60 84 00 00
-05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
-3E B0 00 10 EF 27 3E E0 00 08 EC 3F 14 88 A8 8D
-62 93 92 53 C4 21 3E 40 2C 00 84 12 2C 85 50 86
-34 80 12 88 3E 8F 78 93 0A 4E 3E 4F 1A 83 F7 32
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10
-5A 06 A6 3E 90 92 04 52 52 43 4D 00 85 12 5C 93
-50 00 A6 93 04 52 52 41 4D 00 85 12 5C 93 50 01
-B4 93 04 52 4C 41 4D 00 85 12 5C 93 50 02 C2 93
-04 52 52 55 4D 00 85 12 5C 93 50 03 D2 91 05 50
-55 53 48 4D 85 12 5C 93 00 15 DE 93 04 50 4F 50
-4D 00 85 12 5C 93 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-94 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 1A 8D
-q
diff --git a/binaries/LP_MSP430FR2476_8MHz_115200.txt b/binaries/LP_MSP430FR2476_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..e20da29
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A1 19
+BA 82 7E 81 84 81 54 81 2A 83 18 93 D0 8B 8A 8B
+8A 8B A0 82 5E 83 26 83 3C 21 E0 20 7E 85 B6 80
+C4 80 9A 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+2A 83 18 93 D0 8B 8A 8B 8A 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F8 3C 0E 93 3E 4F
+8D 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 9E 82 B2 49
+5C 83 B2 49 24 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 44 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 2A 83 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 80 A4 84 AC 80 52 81 6C 83 1E 80 04 1B
+5B 37 6D 00 8E 83 8E 83 1E 80 04 1B 5B 30 6D 00
+8E 83 DA 88 B0 12 7E 81 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 6C 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 8E 83 F2 85 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 8E 83 0A 80 40 FF 32 80
+BA 84 BE 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+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 D0 10 00 86 01 F2 C3
+82 01 F2 D0 06 00 82 01 B2 40 F4 00 84 01 39 40
+5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23 39 40
+00 20 29 83 89 43 00 20 FC 23 19 42 5E 01 1E 42
+08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 80
+86 81 00 00 0C 41 43 43 45 50 54 00 30 40 A0 82
+08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40
+FE 82 3C 40 0A 83 5D 15 A3 3E 21 52 3A 17 58 42
+0C 05 48 9B 09 20 A2 B3 1C 05 FD 27 B2 40 13 00
+0E 05 E2 D3 43 02 30 41 48 9C 06 2C 78 92 11 20
+2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00
+1E 53 A2 B3 1C 05 FD 27 C2 48 0E 05 30 4D 00 83
+2D 83 92 B3 1C 05 DB 23 FC 3F 3E 8F 3D 41 92 B3
+1C 05 FD 27 58 42 0C 05 08 4C EB 3F 00 00 06 4B
+45 59 30 40 26 83 30 12 3C 83 A2 B3 1C 05 FD 27
+B2 40 11 00 0E 05 E2 C3 43 02 30 41 2F 83 8F 4E
+00 00 92 B3 1C 05 FD 27 B0 12 C6 82 1E 42 0C 05
+30 4D 00 00 08 45 4D 49 54 00 30 40 5E 83 08 4E
+3E 4F C7 3F 54 83 08 45 43 48 4F 00 B2 40 C2 48
+F8 82 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D F8 82 30 4D 00 00 08 54 59 50 45 00 0D 12
+3D 40 9E 83 29 4F 8F 4E 00 00 7E 49 DE 3F A0 83
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 79 22
+F9 98 00 00 76 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 6D 22 9B 24 1E 83 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A 80 00 00 BE 84 B0 83
+02 86 BC 88 B0 80 2C 84 14 80 06 5B 54 48 45 4E
+5D 00 B4 83 0A 84 D0 83 EE 83 14 80 06 5B 45 4C
+53 45 5D 00 B4 83 1C 84 D0 83 EC 83 1E 80 04 5B
+49 46 5D 00 B4 83 EE 83 B2 80 EC 83 1E 80 05 0D
+6B 6F 20 0A 8E 83 9A 80 84 80 B2 80 EE 83 DC 83
+0D 5B 54 48 45 4E 5D 00 30 4D 40 84 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D 4C 84 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 B0 83 02 86 6A 86
+0E 88 7E 85 5C 84 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 B0 83 02 86 6A 86 8E 84 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D 94 82 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 81 05 53 22 00 82 43 C0 21
+0D 12 84 12 0A 80 1E 80 6C 88 0A 80 22 00 02 86
+02 85 B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21
+3E 4F 3D 41 30 4D 76 83 05 2E 22 00 0D 12 84 12
+EC 84 0A 80 8E 83 6C 88 7E 85 00 00 04 3C 23 00
+B2 40 B2 21 B2 21 30 4D E8 84 02 23 1B 42 BE 21
+2C 4F 2F 83 B0 12 46 80 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 3A 85 04 23 53 00 0D 12
+84 12 3C 85 76 85 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D 6A 85 04 23 3E 00 9F 42 B2 21 00 00 3E 40
+B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 84 85 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 66 83 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 30 85 B0 83
+9E 85 6E 85 9A 84 AC 85 88 85 8E 83 7E 85 18 85
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D F0 85 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 74 87
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 76 87 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 2C 85 03 5C 92 42 C2 21 C6 21 30 4D 0D 12
+84 12 84 80 B0 83 02 86 B0 80 46 89 6A 86 30 88
+0A 4E 3E 4F 3D 40 4A 88 6D 27 3D 40 24 88 1A E2
+BC 21 14 24 0E 12 3E 4F 30 41 4C 88 3E 4F 3D 40
+24 88 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 22 8A 2A 3C 14 88 02 2C A2 53 C8 21
+1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 6A 88 0F 4C
+49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42
+C8 21 A2 52 C8 21 BA 40 0A 80 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D A6 85 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D CC 84 0A 41 4C 4C
+4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43
+84 12 1E 80 02 0D 0A 00 8E 83 94 80 1E 88 AC 84
+D6 84 1E 80 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 81 32 80 0A 80 40 FF DE 84 1E 80 09 46 52 41
+4D 20 66 75 6C 6C 08 81 B2 80 E2 88 CC 88 0D 41
+42 4F 52 54 22 00 0D 12 84 12 EC 84 0A 80 08 81
+6C 88 7E 85 FC 85 02 27 0D 12 84 12 B0 83 02 86
+6A 86 B0 80 48 89 10 85 54 88 76 84 07 5B 27 5D
+0D 12 84 12 38 89 0A 80 0A 80 6C 88 6C 88 7E 85
+4C 89 03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43
+BC 21 30 4D C4 84 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 B0 83 02 86 6A 86 B0 80 48 89 D6 84
+AC 80 A0 89 0A 80 0A 80 6C 88 6C 88 0A 80 6C 88
+6C 88 7E 85 00 00 02 3A 30 12 F6 89 92 B3 C8 21
+A2 63 C8 21 0D 12 84 12 B0 83 02 86 BE 89 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52
+82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12
+1E 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 81 62 89 03 3B 82 93 BC 21 F4 26 0D 12
+84 12 0A 80 7E 85 6C 88 08 8A 64 89 7E 85 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3
+00 00 30 4D B6 88 0C 43 52 45 41 54 45 00 B0 12
+AC 89 BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 88 83
+0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D A6 89 0E 3A 4E 4F 4E 41
+4D 45 30 12 F6 89 2F 83 8F 4E 00 00 1A 42 C8 21
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F 40 8A
+05 49 53 00 0D 12 82 93 BC 21 08 20 84 12 38 89
+C2 8A 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 50 89
+0A 80 C4 8A 6C 88 7E 85 56 8A 08 43 4F 44 45 00
+B0 12 AC 89 A2 82 C8 21 61 3C 98 85 0E 48 44 4E
+43 4F 44 45 B2 40 B0 8B CC 21 F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 08 8A 0E 8B 3D 41
+92 42 D0 21 CC 21 5D 3C DA 8A 0E 43 4F 44 45 4E
+4E 4D 30 12 E4 8A B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 21 1A 42 C8 21 EF 3F EC 8A 0B 48
+49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF
+82 43 BC 21 B9 3F 78 8B B2 40 8A 8B D0 21 82 4E
+CE 21 30 40 10 85 85 12 76 8B 76 89 1E 89 08 8C
+1A 8B 70 8A BA 85 64 86 36 89 5E 8B B0 8A 8A 8A
+26 8A 7E 88 92 8C BC 86 00 00 00 00 85 12 76 8B
+0C 93 90 91 F0 92 B8 90 14 91 62 91 3E 92 4A 92
+DA 8F FE 90 00 00 00 00 4C 8B CA 8E 00 00 66 92
+AA 8B B2 40 8A 8B CE 21 82 43 D0 21 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18
+B0 12 DE 8B 30 4D F0 8B 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 21 B0 12 DE 8B 1A 42
+CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 06 82 FE FF 29 83 B9 40 F2 81
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 E0 FF
+3B 40 10 00 3A 40 3A 18 B0 12 E2 8B 82 43 4A 18
+C7 3F 84 8C B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+6C 89 0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12
+84 12 B0 83 02 86 6A 86 AC 80 B0 8C A4 84 44 88
+B2 8C 3E 4F 3D 41 B2 41 C6 21 B0 12 AC 89 BA 40
+85 12 FC FF BA 40 82 8C FE FF 28 83 8A 48 00 00
+BA 40 82 80 02 00 A2 52 C8 21 18 42 B4 21 19 42
+B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21
+84 12 02 86 6A 86 AC 80 1C 8D FC 8C 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 82 8C
+00 00 01 20 3E 52 2E 83 21 53 30 41 14 87 AC 80
+24 8D 18 8D 26 8D B2 41 C6 21 30 41 92 83 C6 21
+3E 40 28 00 0A 4E 3D 15 B0 12 EC 8C 15 20 3E 40
+2B 00 B0 12 EC 8C 06 20 3E 40 2D 00 B0 12 EC 8C
+92 83 C6 21 0E 12 1E 41 02 00 84 12 02 86 14 87
+AC 80 48 89 66 8D 3E 51 3A 17 30 41 B0 12 2C 8D
+19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00
+92 53 C6 21 1A 42 C6 21 3D 15 84 12 02 86 14 87
+AC 80 9E 8D 96 8D 3E 90 10 00 E6 2B 7C 2D A0 8D
+A2 41 C6 21 E1 3F 03 20 B0 12 84 8D 43 3C 7A 90
+23 00 24 20 B0 12 34 8D 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 C8 21
+A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 34 8D F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 80 8D 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 84 8D 92 92 C2 21 C6 21 02 24
+92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+6C 8D F2 3F 03 20 B0 12 84 8D F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 6C 8D
+EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00
+19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF
+19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A 80 00 13 6C 88
+7E 85 0A 80 2C 00 62 8E A6 8D B0 83 6C 8E 44 8E
+B2 8E 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 A2 8E 00 40 BE 8E 0A 4D 4F 56 2E 42
+85 12 A2 8E 40 40 00 00 06 41 44 44 85 12 A2 8E
+00 50 D8 8E 0A 41 44 44 2E 42 85 12 A2 8E 40 50
+E4 8E 08 41 44 44 43 00 85 12 A2 8E 00 60 F2 8E
+0C 41 44 44 43 2E 42 00 85 12 A2 8E 40 60 2A 8B
+08 53 55 42 43 00 85 12 A2 8E 00 70 10 8F 0C 53
+55 42 43 2E 42 00 85 12 A2 8E 40 70 1E 8F 06 53
+55 42 85 12 A2 8E 00 80 2E 8F 0A 53 55 42 2E 42
+85 12 A2 8E 40 80 3A 8F 06 43 4D 50 85 12 A2 8E
+00 90 48 8F 0A 43 4D 50 2E 42 85 12 A2 8E 40 90
+00 00 08 44 41 44 44 00 85 12 A2 8E 00 A0 62 8F
+0C 44 41 44 44 2E 42 00 85 12 A2 8E 40 A0 90 8E
+06 42 49 54 85 12 A2 8E 00 B0 80 8F 0A 42 49 54
+2E 42 85 12 A2 8E 40 B0 8C 8F 06 42 49 43 85 12
+A2 8E 00 C0 9A 8F 0A 42 49 43 2E 42 85 12 A2 8E
+40 C0 A6 8F 06 42 49 53 85 12 A2 8E 00 D0 B4 8F
+0A 42 49 53 2E 42 85 12 A2 8E 40 D0 00 00 06 58
+4F 52 85 12 A2 8E 00 E0 CE 8F 0A 58 4F 52 2E 42
+85 12 A2 8E 40 E0 00 8F 06 41 4E 44 85 12 A2 8E
+00 F0 E8 8F 0A 41 4E 44 2E 42 85 12 A2 8E 40 F0
+B0 83 62 8E A6 8D 08 90 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F C0 8F 06 52 52 43 85 12
+00 90 00 10 1A 90 0A 52 52 43 2E 42 85 12 00 90
+40 10 54 8F 08 53 57 50 42 00 85 12 00 90 80 10
+26 90 06 52 52 41 85 12 00 90 00 11 42 90 0A 52
+52 41 2E 42 85 12 00 90 40 11 34 90 06 53 58 54
+85 12 00 90 80 11 00 00 08 50 55 53 48 00 85 12
+00 90 00 12 68 90 0C 50 55 53 48 2E 42 00 85 12
+00 90 40 12 5C 90 08 43 41 4C 4C 00 85 12 00 90
+80 12 1A 53 0E 4A 84 12 F2 85 1E 80 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 81 86 90 06 53
+3E 3D 86 12 00 38 AE 90 04 53 3C 00 86 12 00 34
+76 90 06 30 3E 3D 86 12 00 30 C2 90 04 30 3C 00
+86 12 00 30 FE 8A 04 55 3C 00 86 12 00 2C D6 90
+06 55 3E 3D 86 12 00 28 CC 90 06 30 3C 3E 86 12
+00 24 EA 90 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A
+30 4D 70 8F 08 54 48 45 4E 00 1A 42 C8 21 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D E0 90 08 45 4C 53 45 00 1A 42
+C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A
+00 00 E3 3F 4E 90 0A 42 45 47 49 4E 30 40 32 80
+38 91 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D F4 8F
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 02 91 98 84 7E 85
+56 91 0C 52 45 50 45 41 54 00 0D 12 84 12 96 91
+1A 91 7E 85 C6 91 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 21 CB 2F 98 42 C8 21 00 00 30 4D B2 91 06 42
+57 31 85 12 C4 91 00 00 DE 91 06 42 57 32 85 12
+C4 91 00 00 EA 91 06 42 57 33 85 12 C4 91 00 00
+02 92 3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92
+C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 00 92 00 00
+26 92 06 46 57 32 85 12 00 92 00 00 32 92 06 46
+57 33 85 12 00 92 00 00 A0 91 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 38 89
+44 88 7E 85 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F 6C 8E 0A 80 2C 00 02 86 14 87 AC 80 48 89
+B0 83 62 8E 44 8E 98 92 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E F6 91 08 52 52 43 4D 00 85 12 82 92
+50 00 C6 92 08 52 52 41 4D 00 85 12 82 92 50 01
+D4 92 08 52 4C 41 4D 00 85 12 82 92 50 02 E2 92
+08 52 52 55 4D 00 85 12 82 92 50 03 F4 90 0A 50
+55 53 48 4D 85 12 82 92 00 15 FE 92 08 50 4F 50
+4D 00 85 12 82 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+BA 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
index 6d0fa68..9a3d114 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF E2 93 F0 8B 34 01
-10 00 41 07 B6 81 AA 80 B8 81 8C 81 82 82 E2 93
-F0 8B 70 82 80 83 FE 82 DA 82 3C 21 4E 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 03
+B4 82 56 81 56 81 58 81 44 81 F4 92 AC 8B 66 8B
+66 8B A2 82 26 83 FE 82 3C 21 E0 20 5A 85 B6 80
+C4 80 76 84 20 00 0A 00 00 20 56 81 56 81 58 81
+44 81 F4 92 AC 8B 66 8B 66 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @8000
-B0 12 B8 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 6E 82 B2 49 7E 83 B2 49 FC 82 B2 49 D8 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 81 0E 12 B0 12
-F8 80 0A 80 DE 21 CE 83 16 83 EE 80 34 80 8A 81
-14 80 05 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83
-C4 84 96 83 34 80 7E 81 14 80 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 83 8E 84 4A 83
-14 80 04 1B 5B 30 6D 00 4A 83 16 88 2E 93 13 28
-B2 D0 C0 07 80 05 18 42 02 18 08 11 38 D0 00 04
-82 48 94 05 F2 D0 0C 00 2A 02 92 C3 80 05 A2 D2
-AA 05 92 C3 30 01 30 41 48 43 A2 B3 AC 05 FD 27
-C2 48 8E 05 A2 B2 AC 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 81 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 81 04 57 41 52 4D 00 B0 12
-8C 81 78 40 03 00 B0 12 BA 81 84 12 14 80 07 0D
-0A 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83 C4 84
-0A 80 23 00 FA 82 C4 84 14 80 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 4A 83 0A 80 40 FF 28 80 C2 83 8E 84
-14 80 0A 62 79 74 65 73 20 66 72 65 65 00 3A 80
-7E 81 00 00 06 41 43 43 45 50 54 00 30 40 70 82
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 AC 05 B2 B0 10 00 80 05 B8 22
-3A 17 92 B3 AC 05 FD 27 58 42 8C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 81 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 82 2F 83 8F 4E 00 00
-58 43 B0 12 BA 81 92 B3 AC 05 FD 27 1E 42 8C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 82 08 4E
-3E 4F A2 B3 AC 05 FD 27 C2 48 8E 05 30 4D F4 82
-04 45 43 48 4F 00 B2 40 C2 48 08 83 82 43 DE 21
-38 40 05 00 B0 12 BA 81 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 83 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 83 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 82 68 83 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 81 02 43 52 00 30 40 80 83
-0D 12 84 12 14 80 02 0D 0A 00 4A 83 4E 84 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 82 01 40 2E 4E
-30 4D CC 83 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 83 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E 80 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 08 84 02 23 53 00 0D 12 84 12
-0A 84 44 84 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 84 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 83 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 83
-3C 84 EE 80 7C 84 58 84 4A 83 02 88 FA 82 4E 84
-2C 83 01 2E 0E 93 E3 37 38 43 E2 3F 76 84 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80 48 87
-0A 80 22 00 1A 85 E8 84 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 84
-82 2E 22 00 0D 12 84 12 D2 84 0A 80 4A 83 48 87
-4E 84 F8 81 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 80 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80 30 4D
-00 00 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 9C 86 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 86 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F9 3C 0E 93 3E 4F
+7B 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A0 82 B2 49
+24 83 B2 49 FC 82 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 20 8C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 81 B0 12 D0 80 80 84 AC 80
+42 81 3E 83 1E 80 05 1B 5B 37 6D 40 6A 83 0A 80
+02 18 A2 84 CE 85 6A 83 1E 80 04 1B 5B 30 6D 00
+6A 83 B6 88 48 43 A2 B3 AC 05 FD 27 C2 48 8E 05
+A2 B2 AC 05 FD 27 30 41 B2 D0 C0 07 80 05 18 42
+02 18 08 11 38 D0 00 04 82 48 94 05 F2 D0 0C 00
+2A 02 92 C3 80 05 A2 D2 AA 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 3E 83 1E 80 07 0D 0A 1B 5B 37
+6D 40 6A 83 0A 80 02 18 A2 84 CE 85 0A 80 23 00
+22 83 CE 85 1E 80 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+6A 83 0A 80 40 FF 32 80 96 84 9A 85 1E 80 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 80 36 81 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 81 01 12 6D 3F 82 4E 08 18 92 12 3A 18 D2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 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 B2 40 00 A5 60 01 B2 D0 10 00
+86 01 F2 C3 82 01 F2 D0 06 00 82 01 B2 40 F4 00
+84 01 39 40 5C 00 18 42 00 18 18 83 FE 23 19 83
+FA 23 39 40 00 20 29 83 89 43 00 20 FC 23 1E 42
+08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01 B0 12
+D0 80 80 81 00 00 0C 41 43 43 45 50 54 00 30 40
+A2 82 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
+3D 15 A6 3E 21 52 A2 C2 AC 05 B2 B0 10 00 80 05
+9F 22 3A 17 92 B3 AC 05 FD 27 58 42 8C 05 48 9B
+0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
+F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F
+08 4C 1B 3C 00 00 06 4B 45 59 30 40 FE 82 58 43
+B0 12 46 81 2F 83 8F 4E 00 00 92 B3 AC 05 FD 27
+1E 42 8C 05 B0 12 44 81 30 4D 00 00 08 45 4D 49
+54 00 30 40 26 83 08 4E 3E 4F A2 B3 AC 05 FD 27
+C2 48 8E 05 30 4D 1C 83 08 45 43 48 4F 00 B2 40
+C2 48 30 83 38 40 05 00 B0 12 46 81 30 4D 00 00
+0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 30 83 28 42
+F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40 7A 83
+29 4F 8F 4E 00 00 7E 49 D4 3F 7C 83 2D 83 2F 83
+5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00
+0C 4E 38 4F 3C 9F 39 4F 3E 4F 8B 22 F9 98 00 00
+88 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F
+1E 83 7F 22 9B 24 F6 82 0D 5B 45 4C 53 45 5D 00
+0D 12 84 12 0A 80 00 00 9A 84 8C 83 DE 85 98 88
+B0 80 08 84 14 80 06 5B 54 48 45 4E 5D 00 90 83
+E6 83 AC 83 CA 83 14 80 06 5B 45 4C 53 45 5D 00
+90 83 F8 83 AC 83 C8 83 1E 80 04 5B 49 46 5D 00
+90 83 CA 83 B2 80 C8 83 1E 80 05 0D 6B 6F 20 0A
+6A 83 9A 80 84 80 B2 80 CA 83 B8 83 0D 5B 54 48
+45 4E 5D 00 30 4D 1C 84 09 5B 49 46 5D 00 0E 93
+3E 4F C6 27 30 4D 28 84 13 5B 44 45 46 49 4E 45
+44 5D 0D 12 84 12 8C 83 DE 85 46 86 EA 87 5A 85
+38 84 17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
+84 12 8C 83 DE 85 46 86 6A 84 3D 41 2F 53 1E 83
+0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D
+8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 20
+0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00
+02 40 2E 4E 30 4D 96 82 02 21 BE 4F 00 00 3E 4F
+30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3
+30 4D E0 81 05 53 22 00 82 43 C0 21 0D 12 84 12
+0A 80 1E 80 48 88 0A 80 22 00 DE 85 DE 84 B2 40
+20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F 3D 41
+30 4D 50 83 05 2E 22 00 0D 12 84 12 C8 84 0A 80
+6A 83 48 88 5A 85 00 00 04 3C 23 00 B2 40 B2 21
+B2 21 30 4D C4 84 02 23 1B 42 BE 21 2C 4F 2F 83
+B0 12 46 80 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 16 85 04 23 53 00 0D 12 84 12 18 85
+52 85 2D 83 09 DE 09 93 E1 23 3D 41 30 4D 46 85
+04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F
+60 85 08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00
+D2 33 30 4D 38 83 04 55 2E 00 0C 43 2F 83 8F 4E
+00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3
+9F 53 00 00 0E 63 84 12 0C 85 8C 83 7A 85 4A 85
+76 84 88 85 64 85 6A 83 5A 85 F4 84 02 2E 0E 93
+E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40
+C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24
+7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00 00 00
+04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98
+0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B
+7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21 82 48
+C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D 00 00
+08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58
+2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11
+68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
+FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83
+8F 4C 00 00 30 4D CC 85 0E 3E 4E 55 4D 42 45 52
+1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04
+6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50
+0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04
+19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83
+E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42
+BE 21 0C 4E 0E 43 1E 15 3D 40 50 87 7E 4C 6A 4C
+7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52
+6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20
+3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00
+38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27
+52 87 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0
+00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53
+20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12
+3E 80 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4A 93 1D 17 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 08 85
+03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12 84 80
+8C 83 DE 85 B0 80 22 89 46 86 0C 88 0A 4E 3E 4F
+3D 40 26 88 6D 27 3D 40 00 88 1A E2 BC 21 14 24
+0E 12 3E 4F 30 41 28 88 3E 4F 3D 40 00 88 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+FE 89 2A 3C F0 87 02 2C A2 53 C8 21 1A 42 C8 21
+8A 4E FE FF 3E 4F 30 4D 46 88 0F 4C 49 54 45 52
+41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21 A2 52
+C8 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 84 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 80 02 88 1A 85 BE 87 9C 26
-3D 40 C6 87 DE 3E C8 87 0A 4E 3E 4F 3D 40 E2 87
-36 27 3D 40 B8 87 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 87 3E 4F 3D 40 B8 87 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 89 CC 3F
-EC 87 86 12 20 00 D4 83 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C 83 BC 80
-B2 87 B2 83 E4 83 14 80 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80 EC 83
-14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 81
-3A 80 2C 88 08 88 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 84 0A 80 2A 81 48 87 4E 84 7C 85 01 27
-0D 12 84 12 02 88 1A 85 82 85 34 80 00 88 4E 84
-00 00 83 5B 27 5D 0D 12 84 12 80 88 0A 80 0A 80
-48 87 48 87 4E 84 92 88 81 5B 82 43 BE 21 30 4D
-FA 83 01 5D B2 43 BE 21 30 4D B2 88 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 88 1A 85 82 85 96 83 34 80
-00 88 E4 83 34 80 F4 88 0A 80 0A 80 48 87 48 87
-0A 80 48 87 48 87 4E 84 A8 88 01 3A 30 12 44 89
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 88 1A 85
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 81 FA 88 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A 80 4E 84 48 87 56 89 AA 88 4E 84
-A8 87 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 87 06 43 52 45 41 54
-45 00 B0 12 00 89 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 89 04 43 4F 44 45 00 B0 12 00 89 A2 82
-C6 21 0D 12 84 12 F2 8B CC 8B 4E 84 A2 89 07 48
-44 4E 43 4F 44 45 B2 40 D0 8B DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 89 0C 8C
-2A 8C 4E 84 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C 8C 2A 8C 4E 84 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE 89 85 48 49 32 4C 4F 0D 12 84 12 28 80 9A 8B
-48 87 AA 88 E2 89 4E 84 88 89 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 8A 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 80 00 00 C6 83 02 88 1A 85 98 87
-8E 83 34 80 02 8B 9C 83 14 80 06 5B 54 48 45 4E
-5D 00 74 8A DC 8A 98 8A BA 8A 4E 84 9C 83 14 80
-06 5B 45 4C 53 45 5D 00 74 8A F2 8A 98 8A B8 8A
-4E 84 14 80 04 5B 49 46 5D 00 74 8A BA 8A 3A 80
-B8 8A 70 83 14 80 05 0D 0A 6B 6F 20 4A 83 BC 80
-AC 80 3A 80 BA 8A A8 8A 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 8B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 88 1A 85 82 85
-26 8B 4E 84 2C 8B 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 8B DE 83 4E 84 5E 8B B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 87 06 4D
-41 52 4B 45 52 00 B0 12 00 89 BA 40 85 12 FC FF
-BA 40 5C 8B FE FF 28 83 8A 48 00 00 BA 40 AA 80
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A 80
-CA 21 D6 83 4E 84 85 12 9E 8B 66 88 D4 89 10 83
-7E 88 52 8A D2 82 6E 8B 00 85 96 8C AA 8C 8A 84
-14 85 00 00 46 8B BC 88 E2 85 00 00 85 12 9E 8B
-58 92 BE 92 00 92 0E 93 C6 91 00 00 92 8F 00 00
-D6 93 BA 93 2A 92 68 92 A2 90 00 00 00 00 2A 93
-CA 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 8B 24 8C 2A 8C 3A 8C 1A 42 20 18 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 C8 88
-09 50 57 52 5F 53 54 41 54 45 85 12 32 8C E2 93
-CE 84 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 8C F3 3F 70 8C 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E 8C 30 4D 82 8C 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 8D FE FF 29 83 B9 40
-E2 81 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 81 B2 49 FA 80 B2 49 02 80 B2 49 00 82 B2 49
-DA FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 20 29 83 89 43 00 20 FC 23 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 B2 40 00 A5
-60 01 B2 40 FF 1E 80 01 B2 40 B6 00 82 01 B2 40
-F4 00 84 01 B2 D0 10 00 86 01 B2 40 00 02 88 01
-39 40 5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23
-1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12 F8 80
-FE 81 38 40 C0 21 0A 4E 39 48 2E 48 09 5E 1E 52
-C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88
-82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21 84 12
-1A 85 82 85 DE 83 34 80 D2 8D 3E 86 34 80 EC 8D
-E6 8D D4 8D 3C 4E 3C 80 87 12 05 24 1C 53 02 20
-2E 4E 01 3C 2E 83 21 52 1B 17 30 41 EE 8D B2 41
-C4 21 3E 41 84 12 0A 80 2B 00 1A 85 82 85 DE 83
-34 80 0A 8E 3E 86 34 80 00 88 A8 83 1A 85 3E 86
-34 80 00 88 16 8E 3E 5F E7 3F 3E 40 28 00 B0 12
-B6 8D 19 42 C6 21 A2 53 C6 21 89 4E 00 00 3E 40
-29 00 92 92 C0 21 C4 21 02 20 30 40 6E 89 1C 15
-12 12 C4 21 92 53 C4 21 84 12 1A 85 3E 86 34 80
-5E 8E 54 8E 21 53 3E 90 10 00 C6 2B 7F 2D 60 8E
-B2 41 C4 21 C1 3F 0D 12 84 12 02 88 92 8D 70 8E
-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 B6 8D 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 B6 8D ED 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 21 B0 12 3E 8E 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 3E 8E 92 92 C0 21 C4 21 02 24 92 53
-C4 21 8E 10 0C 5E DA 3F B0 12 3E 8E FA 23 3C 50
-10 00 B0 12 1A 8E EF 3F 0C 43 1B 42 C6 21 A2 53
-C6 21 0D 12 84 12 02 88 92 8D 3C 8F FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12
-3E 8E E0 23 3C 50 80 00 B0 12 1A 8E DB 3F 00 00
-04 52 45 54 49 00 0D 12 84 12 0A 80 00 13 48 87
-4E 84 0A 80 2C 00 66 8E 32 8F 7C 8F 09 4B 2E 4E
-0E DC A2 3F 40 8A 03 4D 4F 56 85 12 72 8F 00 40
-86 8F 05 4D 4F 56 2E 42 85 12 72 8F 40 40 00 00
-03 41 44 44 85 12 72 8F 00 50 A0 8F 05 41 44 44
-2E 42 85 12 72 8F 40 50 AC 8F 04 41 44 44 43 00
-85 12 72 8F 00 60 BA 8F 06 41 44 44 43 2E 42 00
-85 12 72 8F 40 60 60 8F 04 53 55 42 43 00 85 12
-72 8F 00 70 D8 8F 06 53 55 42 43 2E 42 00 85 12
-72 8F 40 70 E6 8F 03 53 55 42 85 12 72 8F 00 80
-F6 8F 05 53 55 42 2E 42 85 12 72 8F 40 80 16 8A
-03 43 4D 50 85 12 72 8F 00 90 10 90 05 43 4D 50
-2E 42 85 12 72 8F 40 90 00 8A 04 44 41 44 44 00
-85 12 72 8F 00 A0 2A 90 06 44 41 44 44 2E 42 00
-85 12 72 8F 40 A0 1C 90 03 42 49 54 85 12 72 8F
-00 B0 48 90 05 42 49 54 2E 42 85 12 72 8F 40 B0
-54 90 03 42 49 43 85 12 72 8F 00 C0 62 90 05 42
-49 43 2E 42 85 12 72 8F 40 C0 6E 90 03 42 49 53
-85 12 72 8F 00 D0 7C 90 05 42 49 53 2E 42 85 12
-72 8F 40 D0 00 00 03 58 4F 52 85 12 72 8F 00 E0
-96 90 05 58 4F 52 2E 42 85 12 72 8F 40 E0 C8 8F
-03 41 4E 44 85 12 72 8F 00 F0 B0 90 05 41 4E 44
-2E 42 85 12 72 8F 40 F0 02 88 66 8E CE 90 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 02 90
-03 52 52 43 85 12 C8 90 00 10 E0 90 05 52 52 43
-2E 42 85 12 C8 90 40 10 EC 90 04 53 57 50 42 00
-85 12 C8 90 80 10 FA 90 03 52 52 41 85 12 C8 90
-00 11 08 91 05 52 52 41 2E 42 85 12 C8 90 40 11
-14 91 03 53 58 54 85 12 C8 90 80 11 00 00 04 50
-55 53 48 00 85 12 C8 90 00 12 2E 91 06 50 55 53
-48 2E 42 00 85 12 C8 90 40 12 88 90 04 43 41 4C
-4C 00 85 12 C8 90 80 12 1A 53 0E 4A 0D 12 84 12
-C4 84 14 80 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 36 81 22 91 03 53 3E 3D 86 12 00 38 76 91
-02 53 3C 00 86 12 00 34 3C 91 03 30 3E 3D 86 12
-00 30 8A 91 02 30 3C 00 86 12 00 30 00 00 02 55
-3C 00 86 12 00 2C 9E 91 03 55 3E 3D 86 12 00 28
-94 91 03 30 3C 3E 86 12 00 24 B2 91 02 30 3D 00
-86 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 A8 91 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 B1 2F 88 DA 00 00 30 4D 38 90
-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 91 05 42
-45 47 49 4E 30 40 28 80 DC 91 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 21 30 4D BC 90 05 41 47 41 49 4E 0A 4E
-38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12
-84 12 CA 91 A8 83 4E 84 80 91 06 52 45 50 45 41
-54 00 0D 12 84 12 5E 92 E2 91 4E 84 8E 92 3D 41
-08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42 C6 21
-00 00 30 4D 1E 92 03 42 57 31 85 12 8C 92 00 00
-A6 92 03 42 57 32 85 12 8C 92 00 00 B2 92 03 42
-57 33 85 12 8C 92 00 00 CA 92 3D 41 1A 42 C6 21
-28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53 C6 21
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12
-C8 92 00 00 EA 92 03 46 57 32 85 12 C8 92 00 00
-F6 92 03 46 57 33 85 12 C8 92 00 00 02 93 04 47
-4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
-84 12 80 88 DC 87 4E 84 00 00 05 3F 47 4F 54 4F
-3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
-3E E0 00 08 EC 3F 02 88 92 8D 4C 93 92 53 C4 21
-3E 40 2C 00 84 12 1A 85 3E 86 34 80 00 88 28 8F
-62 93 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E
-5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 7A 92
-04 52 52 43 4D 00 85 12 46 93 50 00 90 93 04 52
-52 41 4D 00 85 12 46 93 50 01 9E 93 04 52 4C 41
-4D 00 85 12 46 93 50 02 AC 93 04 52 52 55 4D 00
-85 12 46 93 50 03 BC 91 05 50 55 53 48 4D 85 12
-46 93 00 15 C8 93 04 50 4F 50 4D 00 85 12 46 93
-00 17
+82 85 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D A8 84 0A 41 4C 4C 4F 54 82 5E
+C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12 1E 80
+02 0D 0A 00 6A 83 94 80 FA 87 88 84 B2 84 1E 80
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 81 32 80
+0A 80 40 FF BA 84 1E 80 09 46 52 41 4D 20 66 75
+6C 6C 08 81 B2 80 BE 88 A8 88 0D 41 42 4F 52 54
+22 00 0D 12 84 12 C8 84 0A 80 08 81 48 88 5A 85
+D8 85 02 27 0D 12 84 12 8C 83 DE 85 46 86 B0 80
+24 89 EC 84 30 88 52 84 07 5B 27 5D 0D 12 84 12
+14 89 0A 80 0A 80 48 88 48 88 5A 85 28 89 03 5B
+82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21 30 4D
+A0 84 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+8C 83 DE 85 46 86 B0 80 24 89 B2 84 AC 80 7C 89
+0A 80 0A 80 48 88 48 88 0A 80 48 88 48 88 5A 85
+00 00 02 3A 30 12 D2 89 92 B3 C8 21 A2 63 C8 21
+0D 12 84 12 8C 83 DE 85 9A 89 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21 82 49
+B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A C8 21
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 21 30 4D 82 9F BA 21 66 25 84 12 1E 80 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 81
+3E 89 03 3B 82 93 BC 21 F4 26 0D 12 84 12 0A 80
+5A 85 48 88 E4 89 40 89 5A 85 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00 30 4D
+92 88 0C 43 52 45 41 54 45 00 B0 12 88 89 BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D 64 83 0A 44 4F 45
+53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D 82 89 0E 3A 4E 4F 4E 41 4D 45 30 12
+D2 89 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F 1C 8A 05 49 53 00
+0D 12 82 93 BC 21 08 20 84 12 14 89 9E 8A 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 2C 89 0A 80 A0 8A
+48 88 5A 85 32 8A 08 43 4F 44 45 00 B0 12 88 89
+A2 82 C8 21 61 3C 74 85 0E 48 44 4E 43 4F 44 45
+B2 40 8C 8B CC 21 F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 E4 89 EA 8A 3D 41 92 42 D0 21
+CC 21 5D 3C B6 8A 0E 43 4F 44 45 4E 4E 4D 30 12
+C0 8A B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 21
+B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 21 1A 42 C8 21 EF 3F C8 8A 0B 48 49 32 4C 4F
+A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43 BC 21
+B9 3F 54 8B B2 40 66 8B D0 21 82 4E CE 21 30 40
+EC 84 85 12 52 8B 52 89 FA 88 E4 8B F6 8A 4C 8A
+96 85 40 86 12 89 3A 8B 8C 8A 66 8A 02 8A 5A 88
+6E 8C 98 86 00 00 00 00 85 12 52 8B E8 92 6C 91
+CC 92 94 90 F0 90 3E 91 1A 92 26 92 B6 8F DA 90
+00 00 00 00 28 8B A6 8E 00 00 42 92 86 8B B2 40
+66 8B CE 21 82 43 D0 21 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12 BA 8B
+30 4D CC 8B 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 21 B0 12 BA 8B 1A 42 CA 21 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 0E 82 FE FF 29 83 B9 40 FA 81 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 DA FF 3B 40 10 00
+3A 40 3A 18 B0 12 BE 8B 82 43 4A 18 C7 3F 60 8C
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 48 89 0C 4D
+41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12 8C 83
+DE 85 46 86 AC 80 8C 8C 80 84 20 88 8E 8C 3E 4F
+3D 41 B2 41 C6 21 B0 12 88 89 BA 40 85 12 FC FF
+BA 40 5E 8C FE FF 28 83 8A 48 00 00 BA 40 82 80
+02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21 A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12 DE 85
+46 86 AC 80 F8 8C D8 8C 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 5E 8C 00 00 01 20
+3E 52 2E 83 21 53 30 41 F0 86 AC 80 00 8D F4 8C
+02 8D B2 41 C6 21 30 41 92 83 C6 21 3E 40 28 00
+0A 4E 3D 15 B0 12 C8 8C 15 20 3E 40 2B 00 B0 12
+C8 8C 06 20 3E 40 2D 00 B0 12 C8 8C 92 83 C6 21
+0E 12 1E 41 02 00 84 12 DE 85 F0 86 AC 80 24 89
+42 8D 3E 51 3A 17 30 41 B0 12 08 8D 19 42 C8 21
+89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53 C6 21
+1A 42 C6 21 3D 15 84 12 DE 85 F0 86 AC 80 7A 8D
+72 8D 3E 90 10 00 E6 2B 7C 2D 7C 8D A2 41 C6 21
+E1 3F 03 20 B0 12 60 8D 43 3C 7A 90 23 00 24 20
+B0 12 10 8D 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 C8 21 A2 53 C8 21
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 10 8D F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 5C 8D 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 60 8D 92 92 C2 21 C6 21 02 24 92 53 C6 21
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 48 8D F2 3F
+03 20 B0 12 60 8D F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 48 8D EA 3F 0C 43
+1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42 C6 21
+19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82 C4 21
+82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A 80 00 13 48 88 5A 85 0A 80
+2C 00 3E 8E 82 8D 8C 83 48 8E 20 8E 8E 8E 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+7E 8E 00 40 9A 8E 0A 4D 4F 56 2E 42 85 12 7E 8E
+40 40 00 00 06 41 44 44 85 12 7E 8E 00 50 B4 8E
+0A 41 44 44 2E 42 85 12 7E 8E 40 50 C0 8E 08 41
+44 44 43 00 85 12 7E 8E 00 60 CE 8E 0C 41 44 44
+43 2E 42 00 85 12 7E 8E 40 60 06 8B 08 53 55 42
+43 00 85 12 7E 8E 00 70 EC 8E 0C 53 55 42 43 2E
+42 00 85 12 7E 8E 40 70 FA 8E 06 53 55 42 85 12
+7E 8E 00 80 0A 8F 0A 53 55 42 2E 42 85 12 7E 8E
+40 80 16 8F 06 43 4D 50 85 12 7E 8E 00 90 24 8F
+0A 43 4D 50 2E 42 85 12 7E 8E 40 90 00 00 08 44
+41 44 44 00 85 12 7E 8E 00 A0 3E 8F 0C 44 41 44
+44 2E 42 00 85 12 7E 8E 40 A0 6C 8E 06 42 49 54
+85 12 7E 8E 00 B0 5C 8F 0A 42 49 54 2E 42 85 12
+7E 8E 40 B0 68 8F 06 42 49 43 85 12 7E 8E 00 C0
+76 8F 0A 42 49 43 2E 42 85 12 7E 8E 40 C0 82 8F
+06 42 49 53 85 12 7E 8E 00 D0 90 8F 0A 42 49 53
+2E 42 85 12 7E 8E 40 D0 00 00 06 58 4F 52 85 12
+7E 8E 00 E0 AA 8F 0A 58 4F 52 2E 42 85 12 7E 8E
+40 E0 DC 8E 06 41 4E 44 85 12 7E 8E 00 F0 C4 8F
+0A 41 4E 44 2E 42 85 12 7E 8E 40 F0 8C 83 3E 8E
+82 8D E4 8F 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F 9C 8F 06 52 52 43 85 12 DC 8F 00 10
+F6 8F 0A 52 52 43 2E 42 85 12 DC 8F 40 10 30 8F
+08 53 57 50 42 00 85 12 DC 8F 80 10 02 90 06 52
+52 41 85 12 DC 8F 00 11 1E 90 0A 52 52 41 2E 42
+85 12 DC 8F 40 11 10 90 06 53 58 54 85 12 DC 8F
+80 11 00 00 08 50 55 53 48 00 85 12 DC 8F 00 12
+44 90 0C 50 55 53 48 2E 42 00 85 12 DC 8F 40 12
+38 90 08 43 41 4C 4C 00 85 12 DC 8F 80 12 1A 53
+0E 4A 84 12 CE 85 1E 80 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 81 62 90 06 53 3E 3D 86 12
+00 38 8A 90 04 53 3C 00 86 12 00 34 52 90 06 30
+3E 3D 86 12 00 30 9E 90 04 30 3C 00 86 12 00 30
+DA 8A 04 55 3C 00 86 12 00 2C B2 90 06 55 3E 3D
+86 12 00 28 A8 90 06 30 3C 3E 86 12 00 24 C6 90
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D 4C 8F
+08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D BC 90 08 45 4C 53 45 00 1A 42 C8 21 BA 40
+00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F
+2A 90 0A 42 45 47 49 4E 30 40 32 80 14 91 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 21 30 4D D0 8F 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 DE 90 74 84 5A 85 32 91 0C 52
+45 50 45 41 54 00 0D 12 84 12 72 91 F6 90 5A 85
+A2 91 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F
+98 42 C8 21 00 00 30 4D 8E 91 06 42 57 31 85 12
+A0 91 00 00 BA 91 06 42 57 32 85 12 A0 91 00 00
+C6 91 06 42 57 33 85 12 A0 91 00 00 DE 91 3D 41
+1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21 86 2B
+BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 DC 91 00 00 02 92 06 46
+57 32 85 12 DC 91 00 00 0E 92 06 46 57 33 85 12
+DC 91 00 00 7C 91 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 14 89 20 88 5A 85
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 48 8E
+0A 80 2C 00 DE 85 F0 86 AC 80 24 89 8C 83 3E 8E
+20 8E 74 92 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+D2 91 08 52 52 43 4D 00 85 12 5E 92 50 00 A2 92
+08 52 52 41 4D 00 85 12 5E 92 50 01 B0 92 08 52
+4C 41 4D 00 85 12 5E 92 50 02 BE 92 08 52 52 55
+4D 00 85 12 5E 92 50 03 D0 90 0A 50 55 53 48 4D
+85 12 5E 92 00 15 DA 92 08 50 4F 50 4D 00 85 12
+5E 92 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 82 82 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 08 8D
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 B4 82 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 0E 82
 q
diff --git a/binaries/LP_MSP430FR2476_8MHz_UART.txt b/binaries/LP_MSP430FR2476_8MHz_UART.txt
deleted file mode 100644 (file)
index a353f80..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF F8 93 02 8C 34 01
-10 00 41 33 94 81 AA 80 DA 81 9C 81 94 82 F8 93
-02 8C 7A 82 92 83 24 83 FE 82 3C 21 60 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
-@8000
-B0 12 DA 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 78 82 B2 49 90 83 B2 49 22 83 B2 49 FC 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 81 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 80 0A 80 DE 21 E0 83 32 83
-14 80 04 1B 5B 37 6D 00 5C 83 A8 83 34 80 86 81
-14 80 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 83 A0 84 5C 83 14 80 04 1B 5B 30 6D 00
-5C 83 28 88 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 E2 D3 43 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 E2 C3 43 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 81 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 81 04 57 41 52 4D 00 B0 12
-9C 81 84 12 14 80 07 0D 0A 1B 5B 37 6D 23 5C 83
-D6 84 14 80 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 5C 83
-0A 80 40 FF 28 80 D4 83 A0 84 14 80 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 80 86 81 00 00 06 41
-43 43 45 50 54 00 30 40 7A 82 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 82 3C 40 D2 82
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 82 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 82 2F 83
-8F 4E 00 00 B0 12 DA 81 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 81 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 83 08 4E 3E 4F C8 3F 1A 83 04 45 43 48
-4F 00 B2 40 C2 48 C0 82 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 82 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 83 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 83 7A 83 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 81 02 43 52 00 30 40
-92 83 0D 12 84 12 14 80 02 0D 0A 00 5C 83 60 84
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 82 01 40
-2E 4E 30 4D DE 83 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A 83 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E 80 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 1A 84 02 23 53 00 0D 12
-84 12 1C 84 56 84 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 84 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 83 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 84 4E 84 EE 80 8E 84 6A 84 5C 83 14 88 20 83
-60 84 40 83 01 2E 0E 93 E3 37 38 43 E2 3F 88 84
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80
-5A 87 0A 80 22 00 2C 85 FA 84 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 84 82 2E 22 00 0D 12 84 12 E4 84 0A 80 5C 83
-5A 87 60 84 18 82 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 80 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80
-30 4D 00 00 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 AE 86
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 86
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 87 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 84 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 80 14 88 2C 85 D0 87
-9C 26 3D 40 D8 87 DE 3E DA 87 0A 4E 3E 4F 3D 40
-F4 87 36 27 3D 40 CA 87 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 87 3E 4F 3D 40 CA 87 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 89
-CC 3F FE 87 86 12 20 00 E6 83 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E 83
-BC 80 C4 87 C4 83 F6 83 14 80 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80
-FE 83 14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 81 3A 80 3E 88 1A 88 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 84 0A 80 2A 81 5A 87 60 84 8E 85
-01 27 0D 12 84 12 14 88 2C 85 94 85 34 80 12 88
-60 84 00 00 83 5B 27 5D 0D 12 84 12 92 88 0A 80
-0A 80 5A 87 5A 87 60 84 A4 88 81 5B 82 43 BE 21
-30 4D 0C 84 01 5D B2 43 BE 21 30 4D C4 88 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 88 2C 85 94 85 A8 83
-34 80 12 88 F6 83 34 80 06 89 0A 80 0A 80 5A 87
-5A 87 0A 80 5A 87 5A 87 60 84 BA 88 01 3A 30 12
-56 89 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 88
-2C 85 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 81 0C 89 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A 80 60 84 5A 87 68 89 BC 88
-60 84 BA 87 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 87 06 43 52 45
-41 54 45 00 B0 12 12 89 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 89 04 43 4F 44 45 00 B0 12 12 89
-A2 82 C6 21 0D 12 84 12 04 8C DE 8B 60 84 B4 89
-07 48 44 4E 43 4F 44 45 B2 40 E2 8B DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 89
-1E 8C 3C 8C 60 84 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E 8C 3C 8C 60 84
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 8A 85 48 49 32 4C 4F 0D 12 84 12 28 80
-AC 8B 5A 87 BC 88 F4 89 60 84 9A 89 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 8A 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 80 00 00 D8 83 14 88 2C 85
-AA 87 A0 83 34 80 14 8B AE 83 14 80 06 5B 54 48
-45 4E 5D 00 86 8A EE 8A AA 8A CC 8A 60 84 AE 83
-14 80 06 5B 45 4C 53 45 5D 00 86 8A 04 8B AA 8A
-CA 8A 60 84 14 80 04 5B 49 46 5D 00 86 8A CC 8A
-3A 80 CA 8A 82 83 14 80 05 0D 0A 6B 6F 20 5C 83
-BC 80 AC 80 3A 80 CC 8A BA 8A 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 8B 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 88 2C 85
-94 85 38 8B 60 84 3E 8B 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 8B F0 83 60 84 70 8B
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 87
-06 4D 41 52 4B 45 52 00 B0 12 12 89 BA 40 85 12
-FC FF BA 40 6E 8B FE FF 28 83 8A 48 00 00 BA 40
-AA 80 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A 80 CA 21 E8 83 60 84 85 12 B0 8B 78 88 E6 89
-2C 83 90 88 64 8A F6 82 80 8B 12 85 A8 8C BC 8C
-9C 84 26 85 00 00 58 8B CE 88 F4 85 00 00 85 12
-B0 8B 6E 92 D4 92 16 92 24 93 DC 91 00 00 A8 8F
-00 00 EC 93 D0 93 40 92 7E 92 B8 90 00 00 00 00
-40 93 DC 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 8B 36 8C 3C 8C 4C 8C 1A 42 20 18
-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
-DA 88 09 50 57 52 5F 53 54 41 54 45 85 12 44 8C
-F8 93 E0 84 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 8C F3 3F 82 8C 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 8C 30 4D 94 8C 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 8D FE FF 29 83
-B9 40 02 82 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 82 B2 49 FA 80 B2 49 02 80 B2 49 20 82
-B2 49 E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 20 29 83 89 43 00 20 FC 23
-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 B2 D0 10 00 86 01
-B2 40 00 02 88 01 39 40 5C 00 18 42 00 18 18 83
-FE 23 19 83 FA 23 1E 42 08 18 82 43 08 18 1E D2
-5E 01 B0 12 F8 80 1E 82 38 40 C0 21 0A 4E 39 48
-2E 48 09 5E 1E 52 C4 21 09 9E 03 24 7A 9E FC 27
-1E 83 0A 4E 2A 88 82 4A C4 21 30 4D 1C 15 0E 12
-12 12 C4 21 84 12 2C 85 94 85 F0 83 34 80 E8 8D
-50 86 34 80 02 8E FC 8D EA 8D 3C 4E 3C 80 87 12
-05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17
-30 41 04 8E B2 41 C4 21 3E 41 84 12 0A 80 2B 00
-2C 85 94 85 F0 83 34 80 20 8E 50 86 34 80 12 88
-BA 83 2C 85 50 86 34 80 12 88 2C 8E 3E 5F E7 3F
-3E 40 28 00 B0 12 CC 8D 19 42 C6 21 A2 53 C6 21
-89 4E 00 00 3E 40 29 00 92 92 C0 21 C4 21 02 20
-30 40 80 89 1C 15 12 12 C4 21 92 53 C4 21 84 12
-2C 85 50 86 34 80 74 8E 6A 8E 21 53 3E 90 10 00
-C6 2B 7F 2D 76 8E B2 41 C4 21 C1 3F 0D 12 84 12
-14 88 A8 8D 86 8E 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
-CC 8D 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 CC 8D ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 21 B0 12 54 8E 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 54 8E 92 92 C0 21
-C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F B0 12
-54 8E FA 23 3C 50 10 00 B0 12 30 8E EF 3F 0C 43
-1B 42 C6 21 A2 53 C6 21 0D 12 84 12 14 88 A8 8D
-52 8F FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
-82 00 C7 3F B0 12 54 8E E0 23 3C 50 80 00 B0 12
-30 8E DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12
-0A 80 00 13 5A 87 60 84 0A 80 2C 00 7C 8E 48 8F
-92 8F 09 4B 2E 4E 0E DC A2 3F 52 8A 03 4D 4F 56
-85 12 88 8F 00 40 9C 8F 05 4D 4F 56 2E 42 85 12
-88 8F 40 40 00 00 03 41 44 44 85 12 88 8F 00 50
-B6 8F 05 41 44 44 2E 42 85 12 88 8F 40 50 C2 8F
-04 41 44 44 43 00 85 12 88 8F 00 60 D0 8F 06 41
-44 44 43 2E 42 00 85 12 88 8F 40 60 76 8F 04 53
-55 42 43 00 85 12 88 8F 00 70 EE 8F 06 53 55 42
-43 2E 42 00 85 12 88 8F 40 70 FC 8F 03 53 55 42
-85 12 88 8F 00 80 0C 90 05 53 55 42 2E 42 85 12
-88 8F 40 80 28 8A 03 43 4D 50 85 12 88 8F 00 90
-26 90 05 43 4D 50 2E 42 85 12 88 8F 40 90 12 8A
-04 44 41 44 44 00 85 12 88 8F 00 A0 40 90 06 44
-41 44 44 2E 42 00 85 12 88 8F 40 A0 32 90 03 42
-49 54 85 12 88 8F 00 B0 5E 90 05 42 49 54 2E 42
-85 12 88 8F 40 B0 6A 90 03 42 49 43 85 12 88 8F
-00 C0 78 90 05 42 49 43 2E 42 85 12 88 8F 40 C0
-84 90 03 42 49 53 85 12 88 8F 00 D0 92 90 05 42
-49 53 2E 42 85 12 88 8F 40 D0 00 00 03 58 4F 52
-85 12 88 8F 00 E0 AC 90 05 58 4F 52 2E 42 85 12
-88 8F 40 E0 DE 8F 03 41 4E 44 85 12 88 8F 00 F0
-C6 90 05 41 4E 44 2E 42 85 12 88 8F 40 F0 14 88
-7C 8E E4 90 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 18 90 03 52 52 43 85 12 DE 90 00 10
-F6 90 05 52 52 43 2E 42 85 12 DE 90 40 10 02 91
-04 53 57 50 42 00 85 12 DE 90 80 10 10 91 03 52
-52 41 85 12 DE 90 00 11 1E 91 05 52 52 41 2E 42
-85 12 DE 90 40 11 2A 91 03 53 58 54 85 12 DE 90
-80 11 00 00 04 50 55 53 48 00 85 12 DE 90 00 12
-44 91 06 50 55 53 48 2E 42 00 85 12 DE 90 40 12
-9E 90 04 43 41 4C 4C 00 85 12 DE 90 80 12 1A 53
-0E 4A 0D 12 84 12 D6 84 14 80 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 36 81 38 91 03 53 3E 3D
-86 12 00 38 8C 91 02 53 3C 00 86 12 00 34 52 91
-03 30 3E 3D 86 12 00 30 A0 91 02 30 3C 00 86 12
-00 30 00 00 02 55 3C 00 86 12 00 2C B4 91 03 55
-3E 3D 86 12 00 28 AA 91 03 30 3C 3E 86 12 00 24
-C8 91 02 30 3D 00 86 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
-BE 91 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 B1 2F 88 DA
-00 00 30 4D 4E 90 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 62 91 05 42 45 47 49 4E 30 40 28 80 F2 91
-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 8A 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 21 30 4D D2 90 05 41
-47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
-48 49 4C 45 0D 12 84 12 E0 91 BA 83 60 84 96 91
-06 52 45 50 45 41 54 00 0D 12 84 12 74 92 F8 91
-60 84 A4 92 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21
-CB 2F 98 42 C6 21 00 00 30 4D 34 92 03 42 57 31
-85 12 A2 92 00 00 BC 92 03 42 57 32 85 12 A2 92
-00 00 C8 92 03 42 57 33 85 12 A2 92 00 00 E0 92
-3D 41 1A 42 C6 21 28 4E B2 92 C4 21 88 2B BA 4F
-00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 85 12 DE 92 00 00 00 93 03 46 57 32
-85 12 DE 92 00 00 0C 93 03 46 57 33 85 12 DE 92
-00 00 18 93 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
-3E 40 00 3C 0D 12 84 12 92 88 EE 87 60 84 00 00
-05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
-3E B0 00 10 EF 27 3E E0 00 08 EC 3F 14 88 A8 8D
-62 93 92 53 C4 21 3E 40 2C 00 84 12 2C 85 50 86
-34 80 12 88 3E 8F 78 93 0A 4E 3E 4F 1A 83 F7 32
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10
-5A 06 A6 3E 90 92 04 52 52 43 4D 00 85 12 5C 93
-50 00 A6 93 04 52 52 41 4D 00 85 12 5C 93 50 01
-B4 93 04 52 4C 41 4D 00 85 12 5C 93 50 02 C2 93
-04 52 52 55 4D 00 85 12 5C 93 50 03 D2 91 05 50
-55 53 48 4D 85 12 5C 93 00 15 DE 93 04 50 4F 50
-4D 00 85 12 5C 93 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-94 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 1A 8D
-q
diff --git a/binaries/Log/log.txt b/binaries/Log/log.txt
deleted file mode 100644 (file)
index 9faef68..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-Fri Nov  6 19:33:33 2020:      * -----/|-------------------------------------------------------------------- *
-Fri Nov  6 19:33:33 2020:      *     / |__                                                                   *
-Fri Nov  6 19:33:33 2020:      *    /_   /   MSP Flasher v1.3.20                                             *
-Fri Nov  6 19:33:33 2020:      *      | /                                                                    *
-Fri Nov  6 19:33:33 2020:      * -----|/-------------------------------------------------------------------- *
-Fri Nov  6 19:33:33 2020:      *
-Fri Nov  6 19:33:33 2020:      * Evaluating triggers...done
-Fri Nov  6 19:33:34 2020:      * Checking for available FET debuggers: 
-Fri Nov  6 19:33:34 2020:      * Found USB FET @ COM11 <- Selected
-Fri Nov  6 19:33:34 2020:      * Initializing interface @ COM11...done
-Fri Nov  6 19:33:35 2020:      * Checking firmware compatibility: 
-Fri Nov  6 19:33:35 2020:      * FET firmware is up to date.
-Fri Nov  6 19:33:35 2020:      * Reading FW version...
-Fri Nov  6 19:33:35 2020:      * Debugger does not support target voltages other than 3000 mV!
-Fri Nov  6 19:33:35 2020:      * Setting VCC to 3000 mV...done
-Fri Nov  6 19:33:35 2020:      * Accessing device...done
-Fri Nov  6 19:33:35 2020:      * Reading device information...
-Fri Nov  6 19:33:35 2020:      * Warning: Found device does not match -n selection:
-Fri Nov  6 19:33:35 2020:      - Selected: MSP430FR6989
-Fri Nov  6 19:33:35 2020:      - Found:    MSP430FR5994
-Fri Nov  6 19:33:35 2020:      - Continue? (Y/N): Fri Nov  6 19:33:41 2020:    n
-Fri Nov  6 19:33:41 2020:      * Resetting device (RST/NMI)...done
-Fri Nov  6 19:33:42 2020:      * Starting target code execution...done
-Fri Nov  6 19:33:43 2020:      * Disconnecting from device...done
-Fri Nov  6 19:33:43 2020:      * 
-Fri Nov  6 19:33:43 2020:      * ----------------------------------------------------------------------------
-Fri Nov  6 19:33:43 2020:      * Driver      : closed (No error)
-Fri Nov  6 19:33:43 2020:      * ----------------------------------------------------------------------------
-Fri Nov  6 19:33:43 2020:      */
-Fri Nov  6 19:33:53 2020:      * -----/|-------------------------------------------------------------------- *
-Fri Nov  6 19:33:53 2020:      *     / |__                                                                   *
-Fri Nov  6 19:33:53 2020:      *    /_   /   MSP Flasher v1.3.20                                             *
-Fri Nov  6 19:33:53 2020:      *      | /                                                                    *
-Fri Nov  6 19:33:53 2020:      * -----|/-------------------------------------------------------------------- *
-Fri Nov  6 19:33:53 2020:      *
-Fri Nov  6 19:33:53 2020:      * Evaluating triggers...done
-Fri Nov  6 19:33:53 2020:      * Checking for available FET debuggers: 
-Fri Nov  6 19:33:53 2020:      * Found USB FET @ COM11 <- Selected
-Fri Nov  6 19:33:53 2020:      * Initializing interface @ COM11...done
-Fri Nov  6 19:33:54 2020:      * Checking firmware compatibility: 
-Fri Nov  6 19:33:54 2020:      * FET firmware is up to date.
-Fri Nov  6 19:33:54 2020:      * Reading FW version...
-Fri Nov  6 19:33:54 2020:      * Debugger does not support target voltages other than 3000 mV!
-Fri Nov  6 19:33:54 2020:      * Setting VCC to 3000 mV...done
-Fri Nov  6 19:33:54 2020:      * Accessing device...done
-Fri Nov  6 19:33:54 2020:      * Reading device information...done
-Fri Nov  6 19:33:54 2020:      * Loading file into device...done
-Fri Nov  6 19:33:56 2020:      * Verifying memory (B:\binaries\MSP_EXP430FR5994_16MHz_I2C.txt)...done
-Fri Nov  6 19:33:58 2020:      * 
-Fri Nov  6 19:33:58 2020:      * ----------------------------------------------------------------------------
-Fri Nov  6 19:33:58 2020:      * Arguments   : -s -m SBW2 -n MSP430FR5994 -v -w B:\binaries\MSP_EXP430FR5994_16MHz_I2C.txt -z [RESET,VCC] 
-Fri Nov  6 19:33:58 2020:      * ----------------------------------------------------------------------------
-Fri Nov  6 19:33:58 2020:      * Driver      : loaded
-Fri Nov  6 19:33:58 2020:      * Dll Version : 31400000
-Fri Nov  6 19:33:58 2020:      * FwVersion   : 31200000
-Fri Nov  6 19:33:58 2020:      * Interface   : TIUSB
-Fri Nov  6 19:33:58 2020:      * HwVersion   : E 4.0
-Fri Nov  6 19:33:58 2020:      * JTAG Mode   : AUTO
-Fri Nov  6 19:33:58 2020:      * Device      : MSP430FR5994
-Fri Nov  6 19:33:58 2020:      * EEM         : Level 5, ClockCntrl 2
-Fri Nov  6 19:33:58 2020:      * Erase Mode  : ERASE_ALL
-Fri Nov  6 19:33:58 2020:      * Prog.File   : B:\binaries\MSP_EXP430FR5994_16MHz_I2C.txt
-Fri Nov  6 19:33:58 2020:      * Verified    : TRUE
-Fri Nov  6 19:33:58 2020:      * BSL Unlock  : FALSE
-Fri Nov  6 19:33:58 2020:      * InfoA Access: FALSE
-Fri Nov  6 19:33:58 2020:      * VCC ON      : 3000 mV
-Fri Nov  6 19:33:58 2020:      * ----------------------------------------------------------------------------
-Fri Nov  6 19:33:58 2020:      * Resetting device (RST/NMI)...done
-Fri Nov  6 19:33:59 2020:      * Starting target code execution...done
-Fri Nov  6 19:33:59 2020:      * Disconnecting from device...done
-Fri Nov  6 19:33:59 2020:      * 
-Fri Nov  6 19:33:59 2020:      * ----------------------------------------------------------------------------
-Fri Nov  6 19:33:59 2020:      * Driver      : closed (No error)
-Fri Nov  6 19:33:59 2020:      * ----------------------------------------------------------------------------
-Fri Nov  6 19:33:59 2020:      */
diff --git a/binaries/MSP_EXP430FR2355_16MHz_115200.txt b/binaries/MSP_EXP430FR2355_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..ecb3bd3
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A1 59
+CC 82 7E 81 84 81 54 81 3C 83 2A 93 E2 8B 9C 8B
+9C 8B B2 82 70 83 38 83 3C 21 E0 20 90 85 B6 80
+C4 80 AC 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+3C 83 2A 93 E2 8B 9C 8B 9C 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 01 3D 0E 93 3E 4F
+96 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B0 82 B2 49
+6E 83 B2 49 36 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 56 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3C 83 92 C3 9C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 9C 05 F3 23
+B0 12 D0 80 B6 84 AC 80 52 81 7E 83 1E 80 04 1B
+5B 37 6D 00 A0 83 A0 83 1E 80 04 1B 5B 30 6D 00
+A0 83 EC 88 B0 12 7E 81 B2 40 81 00 80 05 92 42
+02 18 86 05 92 42 04 18 88 05 F2 D0 0C 00 2B 02
+92 C3 80 05 92 D3 9A 05 92 C3 30 01 30 41 92 B3
+8A 05 FD 23 30 41 92 12 3E 18 84 12 7E 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 A0 83 04 86 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A0 83 0A 80 40 FF 32 80
+CC 84 D0 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
+26 02 B2 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 F2 D0 C0 00 0D 02
+F2 C3 82 01 F2 D0 0A 00 82 01 B2 40 E8 01 84 01
+39 40 5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23
+39 40 00 10 29 83 89 43 00 20 FC 23 19 42 5E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 80 86 81 00 00 0C 41 43 43 45 50 54 00 30 40
+B2 82 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 10 83 3C 40 1C 83 5D 15 9A 3E 21 52 3A 17
+58 42 8C 05 48 9B 09 20 A2 B3 9C 05 FD 27 B2 40
+13 00 8E 05 D2 D3 03 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 9C 05 FD 27 C2 48 8E 05 30 4D
+12 83 2D 83 92 B3 9C 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 9C 05 FD 27 58 42 8C 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 38 83 30 12 4E 83 A2 B3 9C 05
+FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 2F 83
+8F 4E 00 00 92 B3 9C 05 FD 27 B0 12 D8 82 1E 42
+8C 05 30 4D 00 00 08 45 4D 49 54 00 30 40 70 83
+08 4E 3E 4F C7 3F 66 83 08 45 43 48 4F 00 B2 40
+C2 48 0A 83 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 0A 83 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 B0 83 29 4F 8F 4E 00 00 7E 49 DE 3F
+B2 83 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+70 22 F9 98 00 00 6D 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 64 22 9B 24 30 83 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A 80 00 00 D0 84
+C2 83 14 86 CE 88 B0 80 3E 84 14 80 06 5B 54 48
+45 4E 5D 00 C6 83 1C 84 E2 83 00 84 14 80 06 5B
+45 4C 53 45 5D 00 C6 83 2E 84 E2 83 FE 83 1E 80
+04 5B 49 46 5D 00 C6 83 00 84 B2 80 FE 83 1E 80
+05 0D 6B 6F 20 0A A0 83 9A 80 84 80 B2 80 00 84
+EE 83 0D 5B 54 48 45 4E 5D 00 30 4D 52 84 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 5E 84 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C2 83 14 86
+7C 86 20 88 90 85 6E 84 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 C2 83 14 86 7C 86 A0 84
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D A6 82 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 81 05 53 22 00 82 43
+C0 21 0D 12 84 12 0A 80 1E 80 7E 88 0A 80 22 00
+14 86 14 85 B2 40 20 00 C0 21 1A 53 1A B3 82 6A
+C8 21 3E 4F 3D 41 30 4D 88 83 05 2E 22 00 0D 12
+84 12 FE 84 0A 80 A0 83 7E 88 90 85 00 00 04 3C
+23 00 B2 40 B2 21 B2 21 30 4D FA 84 02 23 1B 42
+BE 21 2C 4F 2F 83 B0 12 46 80 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 4C 85 04 23 53 00
+0D 12 84 12 4E 85 88 85 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 7C 85 04 23 3E 00 9F 42 B2 21 00 00
+3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 96 85 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 78 83 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 42 85
+C2 83 B0 85 80 85 AC 84 BE 85 9A 85 A0 83 90 85
+2A 85 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D 02 86 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40
+86 87 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 88 87 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 3E 85 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 80 C2 83 14 86 B0 80 58 89 7C 86
+42 88 0A 4E 3E 4F 3D 40 5C 88 6D 27 3D 40 36 88
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 5E 88 3E 4F
+3D 40 36 88 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 34 8A 2A 3C 26 88 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 7C 88
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A 80 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D B8 85 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D DE 84 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E 80 02 0D 0A 00 A0 83 94 80 30 88
+BE 84 E8 84 1E 80 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 81 32 80 0A 80 40 FF F0 84 1E 80 09 46
+52 41 4D 20 66 75 6C 6C 08 81 B2 80 F4 88 DE 88
+0D 41 42 4F 52 54 22 00 0D 12 84 12 FE 84 0A 80
+08 81 7E 88 90 85 0E 86 02 27 0D 12 84 12 C2 83
+14 86 7C 86 B0 80 5A 89 22 85 66 88 88 84 07 5B
+27 5D 0D 12 84 12 4A 89 0A 80 0A 80 7E 88 7E 88
+90 85 5E 89 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D D6 84 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 C2 83 14 86 7C 86 B0 80 5A 89
+E8 84 AC 80 B2 89 0A 80 0A 80 7E 88 7E 88 0A 80
+7E 88 7E 88 90 85 00 00 02 3A 30 12 08 8A 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 C2 83 14 86 D0 89
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 81 74 89 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A 80 90 85 7E 88 1A 8A 76 89 90 85
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D C8 88 0C 43 52 45 41 54 45 00
+B0 12 BE 89 BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+9A 83 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D B8 89 0E 3A 4E 4F
+4E 41 4D 45 30 12 08 8A 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+52 8A 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+4A 89 D4 8A 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+62 89 0A 80 D6 8A 7E 88 90 85 68 8A 08 43 4F 44
+45 00 B0 12 BE 89 A2 82 C8 21 61 3C AA 85 0E 48
+44 4E 43 4F 44 45 B2 40 C2 8B CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 1A 8A 20 8B
+3D 41 92 42 D0 21 CC 21 5D 3C EC 8A 0E 43 4F 44
+45 4E 4E 4D 30 12 F6 8A B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F FE 8A
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F 8A 8B B2 40 9C 8B D0 21
+82 4E CE 21 30 40 22 85 85 12 88 8B 88 89 30 89
+1A 8C 2C 8B 82 8A CC 85 76 86 48 89 70 8B C2 8A
+9C 8A 38 8A 90 88 A4 8C CE 86 00 00 00 00 85 12
+88 8B 1E 93 A2 91 02 93 CA 90 26 91 74 91 50 92
+5C 92 EC 8F 10 91 00 00 00 00 5E 8B DC 8E 00 00
+78 92 BC 8B B2 40 9C 8B CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 F0 8B 30 4D 02 8C 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 F0 8B
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 82 FE FF 29 83 B9 40
+F2 81 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+E2 FF 3B 40 10 00 3A 40 3A 18 B0 12 F4 8B 82 43
+4A 18 C7 3F 96 8C B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 7E 89 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 C2 83 14 86 7C 86 AC 80 C2 8C B6 84
+56 88 C4 8C 3E 4F 3D 41 B2 41 C6 21 B0 12 BE 89
+BA 40 85 12 FC FF BA 40 94 8C FE FF 28 83 8A 48
+00 00 BA 40 82 80 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 14 86 7C 86 AC 80 2E 8D 0E 8D 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+94 8C 00 00 01 20 3E 52 2E 83 21 53 30 41 26 87
+AC 80 36 8D 2A 8D 38 8D B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 FE 8C 15 20
+3E 40 2B 00 B0 12 FE 8C 06 20 3E 40 2D 00 B0 12
+FE 8C 92 83 C6 21 0E 12 1E 41 02 00 84 12 14 86
+26 87 AC 80 5A 89 78 8D 3E 51 3A 17 30 41 B0 12
+3E 8D 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 14 86
+26 87 AC 80 B0 8D A8 8D 3E 90 10 00 E6 2B 7C 2D
+B2 8D A2 41 C6 21 E1 3F 03 20 B0 12 96 8D 43 3C
+7A 90 23 00 24 20 B0 12 46 8D 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 46 8D F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 92 8D 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 96 8D 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 7E 8D F2 3F 03 20 B0 12 96 8D F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+7E 8D EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A 80 00 13
+7E 88 90 85 0A 80 2C 00 74 8E B8 8D C2 83 7E 8E
+56 8E C4 8E 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 B4 8E 00 40 D0 8E 0A 4D 4F 56
+2E 42 85 12 B4 8E 40 40 00 00 06 41 44 44 85 12
+B4 8E 00 50 EA 8E 0A 41 44 44 2E 42 85 12 B4 8E
+40 50 F6 8E 08 41 44 44 43 00 85 12 B4 8E 00 60
+04 8F 0C 41 44 44 43 2E 42 00 85 12 B4 8E 40 60
+3C 8B 08 53 55 42 43 00 85 12 B4 8E 00 70 22 8F
+0C 53 55 42 43 2E 42 00 85 12 B4 8E 40 70 30 8F
+06 53 55 42 85 12 B4 8E 00 80 40 8F 0A 53 55 42
+2E 42 85 12 B4 8E 40 80 4C 8F 06 43 4D 50 85 12
+B4 8E 00 90 5A 8F 0A 43 4D 50 2E 42 85 12 B4 8E
+40 90 00 00 08 44 41 44 44 00 85 12 B4 8E 00 A0
+74 8F 0C 44 41 44 44 2E 42 00 85 12 B4 8E 40 A0
+A2 8E 06 42 49 54 85 12 B4 8E 00 B0 92 8F 0A 42
+49 54 2E 42 85 12 B4 8E 40 B0 9E 8F 06 42 49 43
+85 12 B4 8E 00 C0 AC 8F 0A 42 49 43 2E 42 85 12
+B4 8E 40 C0 B8 8F 06 42 49 53 85 12 B4 8E 00 D0
+C6 8F 0A 42 49 53 2E 42 85 12 B4 8E 40 D0 00 00
+06 58 4F 52 85 12 B4 8E 00 E0 E0 8F 0A 58 4F 52
+2E 42 85 12 B4 8E 40 E0 12 8F 06 41 4E 44 85 12
+B4 8E 00 F0 FA 8F 0A 41 4E 44 2E 42 85 12 B4 8E
+40 F0 C2 83 74 8E B8 8D 1A 90 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F D2 8F 06 52 52 43
+85 12 12 90 00 10 2C 90 0A 52 52 43 2E 42 85 12
+12 90 40 10 66 8F 08 53 57 50 42 00 85 12 12 90
+80 10 38 90 06 52 52 41 85 12 12 90 00 11 54 90
+0A 52 52 41 2E 42 85 12 12 90 40 11 46 90 06 53
+58 54 85 12 12 90 80 11 00 00 08 50 55 53 48 00
+85 12 12 90 00 12 7A 90 0C 50 55 53 48 2E 42 00
+85 12 12 90 40 12 6E 90 08 43 41 4C 4C 00 85 12
+12 90 80 12 1A 53 0E 4A 84 12 04 86 1E 80 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 81 98 90
+06 53 3E 3D 86 12 00 38 C0 90 04 53 3C 00 86 12
+00 34 88 90 06 30 3E 3D 86 12 00 30 D4 90 04 30
+3C 00 86 12 00 30 10 8B 04 55 3C 00 86 12 00 2C
+E8 90 06 55 3E 3D 86 12 00 28 DE 90 06 30 3C 3E
+86 12 00 24 FC 90 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D 82 8F 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D F2 90 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F 60 90 0A 42 45 47 49 4E 30 40
+32 80 4A 91 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+06 90 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 14 91 AA 84
+90 85 68 91 0C 52 45 50 45 41 54 00 0D 12 84 12
+A8 91 2C 91 90 85 D8 91 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D C4 91
+06 42 57 31 85 12 D6 91 00 00 F0 91 06 42 57 32
+85 12 D6 91 00 00 FC 91 06 42 57 33 85 12 D6 91
+00 00 14 92 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 12 92
+00 00 38 92 06 46 57 32 85 12 12 92 00 00 44 92
+06 46 57 33 85 12 12 92 00 00 B2 91 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+4A 89 56 88 90 85 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F 7E 8E 0A 80 2C 00 14 86 26 87 AC 80
+5A 89 C2 83 74 8E 56 8E AA 92 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 08 92 08 52 52 43 4D 00 85 12
+94 92 50 00 D8 92 08 52 52 41 4D 00 85 12 94 92
+50 01 E6 92 08 52 4C 41 4D 00 85 12 94 92 50 02
+F4 92 08 52 52 55 4D 00 85 12 94 92 50 03 06 91
+0A 50 55 53 48 4D 85 12 94 92 00 15 10 93 08 50
+4F 50 4D 00 85 12 94 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 CC 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
diff --git a/binaries/MSP_EXP430FR2355_16MHz_4MBds.txt b/binaries/MSP_EXP430FR2355_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..dd65ce7
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A1 59
+CC 82 7E 81 84 81 54 81 3C 83 2A 93 E2 8B 9C 8B
+9C 8B B2 82 70 83 38 83 3C 21 E0 20 90 85 B6 80
+C4 80 AC 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+3C 83 2A 93 E2 8B 9C 8B 9C 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 01 3D 0E 93 3E 4F
+96 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B0 82 B2 49
+6E 83 B2 49 36 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 56 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3C 83 92 C3 9C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 9C 05 F3 23
+B0 12 D0 80 B6 84 AC 80 52 81 7E 83 1E 80 04 1B
+5B 37 6D 00 A0 83 A0 83 1E 80 04 1B 5B 30 6D 00
+A0 83 EC 88 B0 12 7E 81 B2 40 81 00 80 05 92 42
+02 18 86 05 92 42 04 18 88 05 F2 D0 0C 00 2B 02
+92 C3 80 05 92 D3 9A 05 92 C3 30 01 30 41 92 B3
+8A 05 FD 23 30 41 92 12 3E 18 84 12 7E 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 A0 83 04 86 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A0 83 0A 80 40 FF 32 80
+CC 84 D0 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
+26 02 B2 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 F2 D0 C0 00 0D 02
+F2 C3 82 01 F2 D0 0A 00 82 01 B2 40 E8 01 84 01
+39 40 5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23
+39 40 00 10 29 83 89 43 00 20 FC 23 19 42 5E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 80 86 81 00 00 0C 41 43 43 45 50 54 00 30 40
+B2 82 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 10 83 3C 40 1C 83 5D 15 9A 3E 21 52 3A 17
+58 42 8C 05 48 9B 09 20 A2 B3 9C 05 FD 27 B2 40
+13 00 8E 05 D2 D3 03 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 9C 05 FD 27 C2 48 8E 05 30 4D
+12 83 2D 83 92 B3 9C 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 9C 05 FD 27 58 42 8C 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 38 83 30 12 4E 83 A2 B3 9C 05
+FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 2F 83
+8F 4E 00 00 92 B3 9C 05 FD 27 B0 12 D8 82 1E 42
+8C 05 30 4D 00 00 08 45 4D 49 54 00 30 40 70 83
+08 4E 3E 4F C7 3F 66 83 08 45 43 48 4F 00 B2 40
+C2 48 0A 83 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 0A 83 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 B0 83 29 4F 8F 4E 00 00 7E 49 DE 3F
+B2 83 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+70 22 F9 98 00 00 6D 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 64 22 9B 24 30 83 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A 80 00 00 D0 84
+C2 83 14 86 CE 88 B0 80 3E 84 14 80 06 5B 54 48
+45 4E 5D 00 C6 83 1C 84 E2 83 00 84 14 80 06 5B
+45 4C 53 45 5D 00 C6 83 2E 84 E2 83 FE 83 1E 80
+04 5B 49 46 5D 00 C6 83 00 84 B2 80 FE 83 1E 80
+05 0D 6B 6F 20 0A A0 83 9A 80 84 80 B2 80 00 84
+EE 83 0D 5B 54 48 45 4E 5D 00 30 4D 52 84 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 5E 84 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C2 83 14 86
+7C 86 20 88 90 85 6E 84 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 C2 83 14 86 7C 86 A0 84
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D A6 82 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 81 05 53 22 00 82 43
+C0 21 0D 12 84 12 0A 80 1E 80 7E 88 0A 80 22 00
+14 86 14 85 B2 40 20 00 C0 21 1A 53 1A B3 82 6A
+C8 21 3E 4F 3D 41 30 4D 88 83 05 2E 22 00 0D 12
+84 12 FE 84 0A 80 A0 83 7E 88 90 85 00 00 04 3C
+23 00 B2 40 B2 21 B2 21 30 4D FA 84 02 23 1B 42
+BE 21 2C 4F 2F 83 B0 12 46 80 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 4C 85 04 23 53 00
+0D 12 84 12 4E 85 88 85 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 7C 85 04 23 3E 00 9F 42 B2 21 00 00
+3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 96 85 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 78 83 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 42 85
+C2 83 B0 85 80 85 AC 84 BE 85 9A 85 A0 83 90 85
+2A 85 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D 02 86 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40
+86 87 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 88 87 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 3E 85 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 80 C2 83 14 86 B0 80 58 89 7C 86
+42 88 0A 4E 3E 4F 3D 40 5C 88 6D 27 3D 40 36 88
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 5E 88 3E 4F
+3D 40 36 88 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 34 8A 2A 3C 26 88 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 7C 88
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A 80 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D B8 85 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D DE 84 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E 80 02 0D 0A 00 A0 83 94 80 30 88
+BE 84 E8 84 1E 80 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 81 32 80 0A 80 40 FF F0 84 1E 80 09 46
+52 41 4D 20 66 75 6C 6C 08 81 B2 80 F4 88 DE 88
+0D 41 42 4F 52 54 22 00 0D 12 84 12 FE 84 0A 80
+08 81 7E 88 90 85 0E 86 02 27 0D 12 84 12 C2 83
+14 86 7C 86 B0 80 5A 89 22 85 66 88 88 84 07 5B
+27 5D 0D 12 84 12 4A 89 0A 80 0A 80 7E 88 7E 88
+90 85 5E 89 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D D6 84 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 C2 83 14 86 7C 86 B0 80 5A 89
+E8 84 AC 80 B2 89 0A 80 0A 80 7E 88 7E 88 0A 80
+7E 88 7E 88 90 85 00 00 02 3A 30 12 08 8A 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 C2 83 14 86 D0 89
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 81 74 89 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A 80 90 85 7E 88 1A 8A 76 89 90 85
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D C8 88 0C 43 52 45 41 54 45 00
+B0 12 BE 89 BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+9A 83 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D B8 89 0E 3A 4E 4F
+4E 41 4D 45 30 12 08 8A 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+52 8A 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+4A 89 D4 8A 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+62 89 0A 80 D6 8A 7E 88 90 85 68 8A 08 43 4F 44
+45 00 B0 12 BE 89 A2 82 C8 21 61 3C AA 85 0E 48
+44 4E 43 4F 44 45 B2 40 C2 8B CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 1A 8A 20 8B
+3D 41 92 42 D0 21 CC 21 5D 3C EC 8A 0E 43 4F 44
+45 4E 4E 4D 30 12 F6 8A B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F FE 8A
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F 8A 8B B2 40 9C 8B D0 21
+82 4E CE 21 30 40 22 85 85 12 88 8B 88 89 30 89
+1A 8C 2C 8B 82 8A CC 85 76 86 48 89 70 8B C2 8A
+9C 8A 38 8A 90 88 A4 8C CE 86 00 00 00 00 85 12
+88 8B 1E 93 A2 91 02 93 CA 90 26 91 74 91 50 92
+5C 92 EC 8F 10 91 00 00 00 00 5E 8B DC 8E 00 00
+78 92 BC 8B B2 40 9C 8B CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 F0 8B 30 4D 02 8C 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 F0 8B
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 82 FE FF 29 83 B9 40
+F2 81 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+E2 FF 3B 40 10 00 3A 40 3A 18 B0 12 F4 8B 82 43
+4A 18 C7 3F 96 8C B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 7E 89 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 C2 83 14 86 7C 86 AC 80 C2 8C B6 84
+56 88 C4 8C 3E 4F 3D 41 B2 41 C6 21 B0 12 BE 89
+BA 40 85 12 FC FF BA 40 94 8C FE FF 28 83 8A 48
+00 00 BA 40 82 80 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 14 86 7C 86 AC 80 2E 8D 0E 8D 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+94 8C 00 00 01 20 3E 52 2E 83 21 53 30 41 26 87
+AC 80 36 8D 2A 8D 38 8D B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 FE 8C 15 20
+3E 40 2B 00 B0 12 FE 8C 06 20 3E 40 2D 00 B0 12
+FE 8C 92 83 C6 21 0E 12 1E 41 02 00 84 12 14 86
+26 87 AC 80 5A 89 78 8D 3E 51 3A 17 30 41 B0 12
+3E 8D 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 14 86
+26 87 AC 80 B0 8D A8 8D 3E 90 10 00 E6 2B 7C 2D
+B2 8D A2 41 C6 21 E1 3F 03 20 B0 12 96 8D 43 3C
+7A 90 23 00 24 20 B0 12 46 8D 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 46 8D F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 92 8D 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 96 8D 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 7E 8D F2 3F 03 20 B0 12 96 8D F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+7E 8D EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A 80 00 13
+7E 88 90 85 0A 80 2C 00 74 8E B8 8D C2 83 7E 8E
+56 8E C4 8E 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 B4 8E 00 40 D0 8E 0A 4D 4F 56
+2E 42 85 12 B4 8E 40 40 00 00 06 41 44 44 85 12
+B4 8E 00 50 EA 8E 0A 41 44 44 2E 42 85 12 B4 8E
+40 50 F6 8E 08 41 44 44 43 00 85 12 B4 8E 00 60
+04 8F 0C 41 44 44 43 2E 42 00 85 12 B4 8E 40 60
+3C 8B 08 53 55 42 43 00 85 12 B4 8E 00 70 22 8F
+0C 53 55 42 43 2E 42 00 85 12 B4 8E 40 70 30 8F
+06 53 55 42 85 12 B4 8E 00 80 40 8F 0A 53 55 42
+2E 42 85 12 B4 8E 40 80 4C 8F 06 43 4D 50 85 12
+B4 8E 00 90 5A 8F 0A 43 4D 50 2E 42 85 12 B4 8E
+40 90 00 00 08 44 41 44 44 00 85 12 B4 8E 00 A0
+74 8F 0C 44 41 44 44 2E 42 00 85 12 B4 8E 40 A0
+A2 8E 06 42 49 54 85 12 B4 8E 00 B0 92 8F 0A 42
+49 54 2E 42 85 12 B4 8E 40 B0 9E 8F 06 42 49 43
+85 12 B4 8E 00 C0 AC 8F 0A 42 49 43 2E 42 85 12
+B4 8E 40 C0 B8 8F 06 42 49 53 85 12 B4 8E 00 D0
+C6 8F 0A 42 49 53 2E 42 85 12 B4 8E 40 D0 00 00
+06 58 4F 52 85 12 B4 8E 00 E0 E0 8F 0A 58 4F 52
+2E 42 85 12 B4 8E 40 E0 12 8F 06 41 4E 44 85 12
+B4 8E 00 F0 FA 8F 0A 41 4E 44 2E 42 85 12 B4 8E
+40 F0 C2 83 74 8E B8 8D 1A 90 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F D2 8F 06 52 52 43
+85 12 12 90 00 10 2C 90 0A 52 52 43 2E 42 85 12
+12 90 40 10 66 8F 08 53 57 50 42 00 85 12 12 90
+80 10 38 90 06 52 52 41 85 12 12 90 00 11 54 90
+0A 52 52 41 2E 42 85 12 12 90 40 11 46 90 06 53
+58 54 85 12 12 90 80 11 00 00 08 50 55 53 48 00
+85 12 12 90 00 12 7A 90 0C 50 55 53 48 2E 42 00
+85 12 12 90 40 12 6E 90 08 43 41 4C 4C 00 85 12
+12 90 80 12 1A 53 0E 4A 84 12 04 86 1E 80 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 81 98 90
+06 53 3E 3D 86 12 00 38 C0 90 04 53 3C 00 86 12
+00 34 88 90 06 30 3E 3D 86 12 00 30 D4 90 04 30
+3C 00 86 12 00 30 10 8B 04 55 3C 00 86 12 00 2C
+E8 90 06 55 3E 3D 86 12 00 28 DE 90 06 30 3C 3E
+86 12 00 24 FC 90 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D 82 8F 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D F2 90 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F 60 90 0A 42 45 47 49 4E 30 40
+32 80 4A 91 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+06 90 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 14 91 AA 84
+90 85 68 91 0C 52 45 50 45 41 54 00 0D 12 84 12
+A8 91 2C 91 90 85 D8 91 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D C4 91
+06 42 57 31 85 12 D6 91 00 00 F0 91 06 42 57 32
+85 12 D6 91 00 00 FC 91 06 42 57 33 85 12 D6 91
+00 00 14 92 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 12 92
+00 00 38 92 06 46 57 32 85 12 12 92 00 00 44 92
+06 46 57 33 85 12 12 92 00 00 B2 91 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+4A 89 56 88 90 85 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F 7E 8E 0A 80 2C 00 14 86 26 87 AC 80
+5A 89 C2 83 74 8E 56 8E AA 92 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 08 92 08 52 52 43 4D 00 85 12
+94 92 50 00 D8 92 08 52 52 41 4D 00 85 12 94 92
+50 01 E6 92 08 52 4C 41 4D 00 85 12 94 92 50 02
+F4 92 08 52 52 55 4D 00 85 12 94 92 50 03 06 91
+0A 50 55 53 48 4D 85 12 94 92 00 15 10 93 08 50
+4F 50 4D 00 85 12 94 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 CC 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
index f2dc6f8..bee3c4b 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF EE 93 F0 8B 34 01
-10 00 41 87 B6 81 AA 80 B8 81 8C 81 82 82 EE 93
-F0 8B 70 82 80 83 FE 82 DA 82 3C 21 4E 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+C6 82 56 81 56 81 58 81 44 81 06 93 BE 8B 78 8B
+78 8B B4 82 38 83 10 83 3C 21 E0 20 6C 85 B6 80
+C4 80 88 84 20 00 0A 00 00 20 56 81 56 81 58 81
+44 81 06 93 BE 8B 78 8B 78 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @8000
-B0 12 B8 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 6E 82 B2 49 7E 83 B2 49 FC 82 B2 49 D8 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 81 0E 12 B0 12
-F8 80 0A 80 DE 21 CE 83 16 83 EE 80 34 80 8A 81
-14 80 05 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83
-C4 84 96 83 34 80 7E 81 14 80 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 83 8E 84 4A 83
-14 80 04 1B 5B 30 6D 00 4A 83 16 88 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 81 E2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 81 04 57 41 52 4D 00 B0 12
-8C 81 78 40 03 00 B0 12 BA 81 84 12 14 80 07 0D
-0A 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83 C4 84
-0A 80 23 00 FA 82 C4 84 14 80 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 4A 83 0A 80 40 FF 28 80 C2 83 8E 84
-14 80 0A 62 79 74 65 73 20 66 72 65 65 00 3A 80
-7E 81 00 00 06 41 43 43 45 50 54 00 30 40 70 82
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 81 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 82 2F 83 8F 4E 00 00
-58 43 B0 12 BA 81 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 82 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 82
-04 45 43 48 4F 00 B2 40 C2 48 08 83 82 43 DE 21
-38 40 05 00 B0 12 BA 81 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 83 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 83 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 82 68 83 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 81 02 43 52 00 30 40 80 83
-0D 12 84 12 14 80 02 0D 0A 00 4A 83 4E 84 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 82 01 40 2E 4E
-30 4D CC 83 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 83 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E 80 BF 4F 00 00 7A 90 0A 00 02 28
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 02 3D 0E 93 3E 4F
+84 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B2 82 B2 49
+36 83 B2 49 0E 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 32 8C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 81 B0 12 D0 80 92 84 AC 80
+42 81 50 83 1E 80 05 1B 5B 37 6D 40 7C 83 0A 80
+02 18 B4 84 E0 85 7C 83 1E 80 04 1B 5B 30 6D 00
+7C 83 C8 88 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 50 83 1E 80 07 0D 0A 1B 5B 37
+6D 40 7C 83 0A 80 02 18 B4 84 E0 85 0A 80 23 00
+34 83 E0 85 1E 80 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+7C 83 0A 80 40 FF 32 80 A8 84 AC 85 1E 80 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 80 36 81 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 81 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 D3 06 02 B2 40 FE FF
+02 02 B2 D3 26 02 B2 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 F2 D0
+C0 00 0D 02 F2 C3 82 01 F2 D0 0A 00 82 01 B2 40
+E8 01 84 01 39 40 5C 00 18 42 00 18 18 83 FE 23
+19 83 FA 23 39 40 00 10 29 83 89 43 00 20 FC 23
+1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01
+B0 12 D0 80 80 81 00 00 0C 41 43 43 45 50 54 00
+30 40 B4 82 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40
+20 00 3D 15 9D 3E 21 52 A2 C2 6C 05 B2 B0 10 00
+40 05 96 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05
+48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27
+1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F
+3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40 10 83
+58 43 B0 12 46 81 2F 83 8F 4E 00 00 92 B3 6C 05
+FD 27 1E 42 4C 05 B0 12 44 81 30 4D 00 00 08 45
+4D 49 54 00 30 40 38 83 08 4E 3E 4F A2 B3 6C 05
+FD 27 C2 48 4E 05 30 4D 2E 83 08 45 43 48 4F 00
+B2 40 C2 48 42 83 38 40 05 00 B0 12 46 81 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 42 83
+28 42 F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40
+8C 83 29 4F 8F 4E 00 00 7E 49 D4 3F 8E 83 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 82 22 F9 98
+00 00 7F 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 76 22 9B 24 08 83 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A 80 00 00 AC 84 9E 83 F0 85
+AA 88 B0 80 1A 84 14 80 06 5B 54 48 45 4E 5D 00
+A2 83 F8 83 BE 83 DC 83 14 80 06 5B 45 4C 53 45
+5D 00 A2 83 0A 84 BE 83 DA 83 1E 80 04 5B 49 46
+5D 00 A2 83 DC 83 B2 80 DA 83 1E 80 05 0D 6B 6F
+20 0A 7C 83 9A 80 84 80 B2 80 DC 83 CA 83 0D 5B
+54 48 45 4E 5D 00 30 4D 2E 84 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 3A 84 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 9E 83 F0 85 58 86 FC 87
+6C 85 4A 84 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 9E 83 F0 85 58 86 7C 84 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D A8 82 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D E0 81 05 53 22 00 82 43 C0 21 0D 12
+84 12 0A 80 1E 80 5A 88 0A 80 22 00 F0 85 F0 84
+B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F
+3D 41 30 4D 62 83 05 2E 22 00 0D 12 84 12 DA 84
+0A 80 7C 83 5A 88 6C 85 00 00 04 3C 23 00 B2 40
+B2 21 B2 21 30 4D D6 84 02 23 1B 42 BE 21 2C 4F
+2F 83 B0 12 46 80 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 08 84 02 23 53 00 0D 12 84 12
-0A 84 44 84 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 84 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 83 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 83
-3C 84 EE 80 7C 84 58 84 4A 83 02 88 FA 82 4E 84
-2C 83 01 2E 0E 93 E3 37 38 43 E2 3F 76 84 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80 48 87
-0A 80 22 00 1A 85 E8 84 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 84
-82 2E 22 00 0D 12 84 12 D2 84 0A 80 4A 83 48 87
-4E 84 F8 81 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 80 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80 30 4D
-00 00 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 9C 86 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 86 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 84 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 80 02 88 1A 85 BE 87 9C 26
-3D 40 C6 87 DE 3E C8 87 0A 4E 3E 4F 3D 40 E2 87
-36 27 3D 40 B8 87 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 87 3E 4F 3D 40 B8 87 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 89 CC 3F
-EC 87 86 12 20 00 D4 83 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C 83 BC 80
-B2 87 B2 83 E4 83 14 80 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80 EC 83
-14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 81
-3A 80 2C 88 08 88 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 84 0A 80 2A 81 48 87 4E 84 7C 85 01 27
-0D 12 84 12 02 88 1A 85 82 85 34 80 00 88 4E 84
-00 00 83 5B 27 5D 0D 12 84 12 80 88 0A 80 0A 80
-48 87 48 87 4E 84 92 88 81 5B 82 43 BE 21 30 4D
-FA 83 01 5D B2 43 BE 21 30 4D B2 88 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 88 1A 85 82 85 96 83 34 80
-00 88 E4 83 34 80 F4 88 0A 80 0A 80 48 87 48 87
-0A 80 48 87 48 87 4E 84 A8 88 01 3A 30 12 44 89
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 88 1A 85
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 81 FA 88 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A 80 4E 84 48 87 56 89 AA 88 4E 84
-A8 87 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 87 06 43 52 45 41 54
-45 00 B0 12 00 89 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 89 04 43 4F 44 45 00 B0 12 00 89 A2 82
-C6 21 0D 12 84 12 F2 8B CC 8B 4E 84 A2 89 07 48
-44 4E 43 4F 44 45 B2 40 D0 8B DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 89 0C 8C
-2A 8C 4E 84 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C 8C 2A 8C 4E 84 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE 89 85 48 49 32 4C 4F 0D 12 84 12 28 80 9A 8B
-48 87 AA 88 E2 89 4E 84 88 89 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 8A 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 80 00 00 C6 83 02 88 1A 85 98 87
-8E 83 34 80 02 8B 9C 83 14 80 06 5B 54 48 45 4E
-5D 00 74 8A DC 8A 98 8A BA 8A 4E 84 9C 83 14 80
-06 5B 45 4C 53 45 5D 00 74 8A F2 8A 98 8A B8 8A
-4E 84 14 80 04 5B 49 46 5D 00 74 8A BA 8A 3A 80
-B8 8A 70 83 14 80 05 0D 0A 6B 6F 20 4A 83 BC 80
-AC 80 3A 80 BA 8A A8 8A 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 8B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 88 1A 85 82 85
-26 8B 4E 84 2C 8B 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 8B DE 83 4E 84 5E 8B B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 87 06 4D
-41 52 4B 45 52 00 B0 12 00 89 BA 40 85 12 FC FF
-BA 40 5C 8B FE FF 28 83 8A 48 00 00 BA 40 AA 80
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A 80
-CA 21 D6 83 4E 84 85 12 9E 8B 66 88 D4 89 10 83
-7E 88 52 8A D2 82 6E 8B 00 85 96 8C AA 8C 8A 84
-14 85 00 00 46 8B BC 88 E2 85 00 00 85 12 9E 8B
-64 92 CA 92 0C 92 1A 93 D2 91 00 00 9E 8F 00 00
-E2 93 C6 93 36 92 74 92 AE 90 00 00 00 00 36 93
-CA 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 8B 24 8C 2A 8C 3A 8C 1A 42 20 18 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 C8 88
-09 50 57 52 5F 53 54 41 54 45 85 12 32 8C EE 93
-CE 84 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 8C F3 3F 70 8C 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E 8C 30 4D 82 8C 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 8D FE FF 29 83 B9 40
-E2 81 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 81 B2 49 FA 80 B2 49 02 80 B2 49 00 82 B2 49
-E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 10 29 83 89 43 00 20 FC 23 B2 D3
-06 02 B2 40 FE FF 02 02 B2 D3 26 02 B2 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
-B2 40 FF 1E 80 01 B2 40 BA 00 82 01 B2 40 E8 01
-84 01 82 43 88 01 F2 D0 C0 00 0D 02 39 40 5C 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 1E 42 08 18
-82 43 08 18 1E D2 5E 01 B0 12 F8 80 FE 81 38 40
-C0 21 0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21
-30 4D 1C 15 0E 12 12 12 C4 21 84 12 1A 85 82 85
-DE 83 34 80 DE 8D 3E 86 34 80 F8 8D F2 8D E0 8D
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 FA 8D B2 41 C4 21 3E 41
-84 12 0A 80 2B 00 1A 85 82 85 DE 83 34 80 16 8E
-3E 86 34 80 00 88 A8 83 1A 85 3E 86 34 80 00 88
-22 8E 3E 5F E7 3F 3E 40 28 00 B0 12 C2 8D 19 42
-C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92
-C0 21 C4 21 02 20 30 40 6E 89 1C 15 12 12 C4 21
-92 53 C4 21 84 12 1A 85 3E 86 34 80 6A 8E 60 8E
-21 53 3E 90 10 00 C6 2B 7F 2D 6C 8E B2 41 C4 21
-C1 3F 0D 12 84 12 02 88 9E 8D 7C 8E 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 8D 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 8D
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
-B0 12 4A 8E 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-4A 8E 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
-0C 5E DA 3F B0 12 4A 8E FA 23 3C 50 10 00 B0 12
-26 8E EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12
-84 12 02 88 9E 8D 48 8F FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 4A 8E E0 23
-3C 50 80 00 B0 12 26 8E DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 80 00 13 48 87 4E 84 0A 80
-2C 00 72 8E 3E 8F 88 8F 09 4B 2E 4E 0E DC A2 3F
-40 8A 03 4D 4F 56 85 12 7E 8F 00 40 92 8F 05 4D
-4F 56 2E 42 85 12 7E 8F 40 40 00 00 03 41 44 44
-85 12 7E 8F 00 50 AC 8F 05 41 44 44 2E 42 85 12
-7E 8F 40 50 B8 8F 04 41 44 44 43 00 85 12 7E 8F
-00 60 C6 8F 06 41 44 44 43 2E 42 00 85 12 7E 8F
-40 60 6C 8F 04 53 55 42 43 00 85 12 7E 8F 00 70
-E4 8F 06 53 55 42 43 2E 42 00 85 12 7E 8F 40 70
-F2 8F 03 53 55 42 85 12 7E 8F 00 80 02 90 05 53
-55 42 2E 42 85 12 7E 8F 40 80 16 8A 03 43 4D 50
-85 12 7E 8F 00 90 1C 90 05 43 4D 50 2E 42 85 12
-7E 8F 40 90 00 8A 04 44 41 44 44 00 85 12 7E 8F
-00 A0 36 90 06 44 41 44 44 2E 42 00 85 12 7E 8F
-40 A0 28 90 03 42 49 54 85 12 7E 8F 00 B0 54 90
-05 42 49 54 2E 42 85 12 7E 8F 40 B0 60 90 03 42
-49 43 85 12 7E 8F 00 C0 6E 90 05 42 49 43 2E 42
-85 12 7E 8F 40 C0 7A 90 03 42 49 53 85 12 7E 8F
-00 D0 88 90 05 42 49 53 2E 42 85 12 7E 8F 40 D0
-00 00 03 58 4F 52 85 12 7E 8F 00 E0 A2 90 05 58
-4F 52 2E 42 85 12 7E 8F 40 E0 D4 8F 03 41 4E 44
-85 12 7E 8F 00 F0 BC 90 05 41 4E 44 2E 42 85 12
-7E 8F 40 F0 02 88 72 8E DA 90 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 0E 90 03 52 52 43
-85 12 D4 90 00 10 EC 90 05 52 52 43 2E 42 85 12
-D4 90 40 10 F8 90 04 53 57 50 42 00 85 12 D4 90
-80 10 06 91 03 52 52 41 85 12 D4 90 00 11 14 91
-05 52 52 41 2E 42 85 12 D4 90 40 11 20 91 03 53
-58 54 85 12 D4 90 80 11 00 00 04 50 55 53 48 00
-85 12 D4 90 00 12 3A 91 06 50 55 53 48 2E 42 00
-85 12 D4 90 40 12 94 90 04 43 41 4C 4C 00 85 12
-D4 90 80 12 1A 53 0E 4A 0D 12 84 12 C4 84 14 80
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 81
-2E 91 03 53 3E 3D 86 12 00 38 82 91 02 53 3C 00
-86 12 00 34 48 91 03 30 3E 3D 86 12 00 30 96 91
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C AA 91 03 55 3E 3D 86 12 00 28 A0 91 03 30
-3C 3E 86 12 00 24 BE 91 02 30 3D 00 86 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 B4 91 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 B1 2F 88 DA 00 00 30 4D 44 90 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 58 91 05 42 45 47 49 4E
-30 40 28 80 E8 91 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
-30 4D C8 90 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 D6 91
-A8 83 4E 84 8C 91 06 52 45 50 45 41 54 00 0D 12
-84 12 6A 92 EE 91 4E 84 9A 92 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D
-2A 92 03 42 57 31 85 12 98 92 00 00 B2 92 03 42
-57 32 85 12 98 92 00 00 BE 92 03 42 57 33 85 12
-98 92 00 00 D6 92 3D 41 1A 42 C6 21 28 4E B2 92
-C4 21 88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 D4 92 00 00
-F6 92 03 46 57 32 85 12 D4 92 00 00 02 93 03 46
-57 33 85 12 D4 92 00 00 0E 93 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 80 88
-DC 87 4E 84 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 02 88 9E 8D 58 93 92 53 C4 21 3E 40 2C 00
-84 12 1A 85 3E 86 34 80 00 88 34 8F 6E 93 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E 86 92 04 52 52 43
-4D 00 85 12 52 93 50 00 9C 93 04 52 52 41 4D 00
-85 12 52 93 50 01 AA 93 04 52 4C 41 4D 00 85 12
-52 93 50 02 B8 93 04 52 52 55 4D 00 85 12 52 93
-50 03 C8 91 05 50 55 53 48 4D 85 12 52 93 00 15
-D4 93 04 50 4F 50 4D 00 85 12 52 93 00 17
+C8 4A 00 00 30 4D 28 85 04 23 53 00 0D 12 84 12
+2A 85 64 85 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+58 85 04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F 72 85 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 4A 83 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 1E 85 9E 83 8C 85
+5C 85 88 84 9A 85 76 85 7C 83 6C 85 06 85 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21
+82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D DE 85 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 62 87 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 64 87 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+1A 85 03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12
+84 80 9E 83 F0 85 B0 80 34 89 58 86 1E 88 0A 4E
+3E 4F 3D 40 38 88 6D 27 3D 40 12 88 1A E2 BC 21
+14 24 0E 12 3E 4F 30 41 3A 88 3E 4F 3D 40 12 88
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 10 8A 2A 3C 02 88 02 2C A2 53 C8 21 1A 42
+C8 21 8A 4E FE FF 3E 4F 30 4D 58 88 0F 4C 49 54
+45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21
+A2 52 C8 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D 94 85 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D BA 84 0A 41 4C 4C 4F 54
+82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12
+1E 80 02 0D 0A 00 7C 83 94 80 0C 88 9A 84 C4 84
+1E 80 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 81
+32 80 0A 80 40 FF CC 84 1E 80 09 46 52 41 4D 20
+66 75 6C 6C 08 81 B2 80 D0 88 BA 88 0D 41 42 4F
+52 54 22 00 0D 12 84 12 DA 84 0A 80 08 81 5A 88
+6C 85 EA 85 02 27 0D 12 84 12 9E 83 F0 85 58 86
+B0 80 36 89 FE 84 42 88 64 84 07 5B 27 5D 0D 12
+84 12 26 89 0A 80 0A 80 5A 88 5A 88 6C 85 3A 89
+03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21
+30 4D B2 84 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 9E 83 F0 85 58 86 B0 80 36 89 C4 84 AC 80
+8E 89 0A 80 0A 80 5A 88 5A 88 0A 80 5A 88 5A 88
+6C 85 00 00 02 3A 30 12 E4 89 92 B3 C8 21 A2 63
+C8 21 0D 12 84 12 9E 83 F0 85 AC 89 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21
+82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A
+C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12 1E 80
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 81 50 89 03 3B 82 93 BC 21 F4 26 0D 12 84 12
+0A 80 6C 85 5A 88 F6 89 52 89 6C 85 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00
+30 4D A4 88 0C 43 52 45 41 54 45 00 B0 12 9A 89
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 76 83 0A 44
+4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D 94 89 0E 3A 4E 4F 4E 41 4D 45
+30 12 E4 89 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 2E 8A 05 49
+53 00 0D 12 82 93 BC 21 08 20 84 12 26 89 B0 8A
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 3E 89 0A 80
+B2 8A 5A 88 6C 85 44 8A 08 43 4F 44 45 00 B0 12
+9A 89 A2 82 C8 21 61 3C 86 85 0E 48 44 4E 43 4F
+44 45 B2 40 9E 8B CC 21 F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 F6 89 FC 8A 3D 41 92 42
+D0 21 CC 21 5D 3C C8 8A 0E 43 4F 44 45 4E 4E 4D
+30 12 D2 8A B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 21 1A 42 C8 21 EF 3F DA 8A 0B 48 49 32
+4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43
+BC 21 B9 3F 66 8B B2 40 78 8B D0 21 82 4E CE 21
+30 40 FE 84 85 12 64 8B 64 89 0C 89 F6 8B 08 8B
+5E 8A A8 85 52 86 24 89 4C 8B 9E 8A 78 8A 14 8A
+6C 88 80 8C AA 86 00 00 00 00 85 12 64 8B FA 92
+7E 91 DE 92 A6 90 02 91 50 91 2C 92 38 92 C8 8F
+EC 90 00 00 00 00 3A 8B B8 8E 00 00 54 92 98 8B
+B2 40 78 8B CE 21 82 43 D0 21 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12
+CC 8B 30 4D DE 8B 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 21 B0 12 CC 8B 1A 42 CA 21
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 0E 82 FE FF 29 83 B9 40 FA 81 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 E0 FF 3B 40
+10 00 3A 40 3A 18 B0 12 D0 8B 82 43 4A 18 C7 3F
+72 8C B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 5A 89
+0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12
+9E 83 F0 85 58 86 AC 80 9E 8C 92 84 32 88 A0 8C
+3E 4F 3D 41 B2 41 C6 21 B0 12 9A 89 BA 40 85 12
+FC FF BA 40 70 8C FE FF 28 83 8A 48 00 00 BA 40
+82 80 02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12
+F0 85 58 86 AC 80 0A 8D EA 8C 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 70 8C 00 00
+01 20 3E 52 2E 83 21 53 30 41 02 87 AC 80 12 8D
+06 8D 14 8D B2 41 C6 21 30 41 92 83 C6 21 3E 40
+28 00 0A 4E 3D 15 B0 12 DA 8C 15 20 3E 40 2B 00
+B0 12 DA 8C 06 20 3E 40 2D 00 B0 12 DA 8C 92 83
+C6 21 0E 12 1E 41 02 00 84 12 F0 85 02 87 AC 80
+36 89 54 8D 3E 51 3A 17 30 41 B0 12 1A 8D 19 42
+C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53
+C6 21 1A 42 C6 21 3D 15 84 12 F0 85 02 87 AC 80
+8C 8D 84 8D 3E 90 10 00 E6 2B 7C 2D 8E 8D A2 41
+C6 21 E1 3F 03 20 B0 12 72 8D 43 3C 7A 90 23 00
+24 20 B0 12 22 8D 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 C8 21 A2 53
+C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 22 8D F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 6E 8D 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 72 8D 92 92 C2 21 C6 21 02 24 92 53
+C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 5A 8D
+F2 3F 03 20 B0 12 72 8D F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 5A 8D EA 3F
+0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42
+C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82
+C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A 80 00 13 5A 88 6C 85
+0A 80 2C 00 50 8E 94 8D 9E 83 5A 8E 32 8E A0 8E
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 90 8E 00 40 AC 8E 0A 4D 4F 56 2E 42 85 12
+90 8E 40 40 00 00 06 41 44 44 85 12 90 8E 00 50
+C6 8E 0A 41 44 44 2E 42 85 12 90 8E 40 50 D2 8E
+08 41 44 44 43 00 85 12 90 8E 00 60 E0 8E 0C 41
+44 44 43 2E 42 00 85 12 90 8E 40 60 18 8B 08 53
+55 42 43 00 85 12 90 8E 00 70 FE 8E 0C 53 55 42
+43 2E 42 00 85 12 90 8E 40 70 0C 8F 06 53 55 42
+85 12 90 8E 00 80 1C 8F 0A 53 55 42 2E 42 85 12
+90 8E 40 80 28 8F 06 43 4D 50 85 12 90 8E 00 90
+36 8F 0A 43 4D 50 2E 42 85 12 90 8E 40 90 00 00
+08 44 41 44 44 00 85 12 90 8E 00 A0 50 8F 0C 44
+41 44 44 2E 42 00 85 12 90 8E 40 A0 7E 8E 06 42
+49 54 85 12 90 8E 00 B0 6E 8F 0A 42 49 54 2E 42
+85 12 90 8E 40 B0 7A 8F 06 42 49 43 85 12 90 8E
+00 C0 88 8F 0A 42 49 43 2E 42 85 12 90 8E 40 C0
+94 8F 06 42 49 53 85 12 90 8E 00 D0 A2 8F 0A 42
+49 53 2E 42 85 12 90 8E 40 D0 00 00 06 58 4F 52
+85 12 90 8E 00 E0 BC 8F 0A 58 4F 52 2E 42 85 12
+90 8E 40 E0 EE 8E 06 41 4E 44 85 12 90 8E 00 F0
+D6 8F 0A 41 4E 44 2E 42 85 12 90 8E 40 F0 9E 83
+50 8E 94 8D F6 8F 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F AE 8F 06 52 52 43 85 12 EE 8F
+00 10 08 90 0A 52 52 43 2E 42 85 12 EE 8F 40 10
+42 8F 08 53 57 50 42 00 85 12 EE 8F 80 10 14 90
+06 52 52 41 85 12 EE 8F 00 11 30 90 0A 52 52 41
+2E 42 85 12 EE 8F 40 11 22 90 06 53 58 54 85 12
+EE 8F 80 11 00 00 08 50 55 53 48 00 85 12 EE 8F
+00 12 56 90 0C 50 55 53 48 2E 42 00 85 12 EE 8F
+40 12 4A 90 08 43 41 4C 4C 00 85 12 EE 8F 80 12
+1A 53 0E 4A 84 12 E0 85 1E 80 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 81 74 90 06 53 3E 3D
+86 12 00 38 9C 90 04 53 3C 00 86 12 00 34 64 90
+06 30 3E 3D 86 12 00 30 B0 90 04 30 3C 00 86 12
+00 30 EC 8A 04 55 3C 00 86 12 00 2C C4 90 06 55
+3E 3D 86 12 00 28 BA 90 06 30 3C 3E 86 12 00 24
+D8 90 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D
+5E 8F 08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D CE 90 08 45 4C 53 45 00 1A 42 C8 21
+BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00
+E3 3F 3C 90 0A 42 45 47 49 4E 30 40 32 80 26 91
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 21 30 4D E2 8F 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 F0 90 86 84 6C 85 44 91
+0C 52 45 50 45 41 54 00 0D 12 84 12 84 91 08 91
+6C 85 B4 91 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21
+CB 2F 98 42 C8 21 00 00 30 4D A0 91 06 42 57 31
+85 12 B2 91 00 00 CC 91 06 42 57 32 85 12 B2 91
+00 00 D8 91 06 42 57 33 85 12 B2 91 00 00 F0 91
+3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21
+86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 EE 91 00 00 14 92
+06 46 57 32 85 12 EE 91 00 00 20 92 06 46 57 33
+85 12 EE 91 00 00 8E 91 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 26 89 32 88
+6C 85 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+5A 8E 0A 80 2C 00 F0 85 02 87 AC 80 36 89 9E 83
+50 8E 32 8E 86 92 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E E4 91 08 52 52 43 4D 00 85 12 70 92 50 00
+B4 92 08 52 52 41 4D 00 85 12 70 92 50 01 C2 92
+08 52 4C 41 4D 00 85 12 70 92 50 02 D0 92 08 52
+52 55 4D 00 85 12 70 92 50 03 E2 90 0A 50 55 53
+48 4D 85 12 70 92 00 15 EC 92 08 50 4F 50 4D 00
+85 12 70 92 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-82 82 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 08 8D
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+C6 82 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 0E 82
 q
diff --git a/binaries/MSP_EXP430FR2355_16MHz_UART.txt b/binaries/MSP_EXP430FR2355_16MHz_UART.txt
deleted file mode 100644 (file)
index 08f3f28..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF 04 94 02 8C 34 01
-10 00 41 B3 94 81 AA 80 DA 81 9C 81 94 82 04 94
-02 8C 7A 82 92 83 24 83 FE 82 3C 21 60 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
-@8000
-B0 12 DA 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 78 82 B2 49 90 83 B2 49 22 83 B2 49 FC 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 81 92 C3 9C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-9C 05 F3 23 B0 12 F8 80 0A 80 DE 21 E0 83 32 83
-14 80 04 1B 5B 37 6D 00 5C 83 A8 83 34 80 86 81
-14 80 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 83 A0 84 5C 83 14 80 04 1B 5B 30 6D 00
-5C 83 28 88 92 B3 8A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 80 05 92 42 02 18 86 05 92 42 04 18
-88 05 F2 D0 0C 00 2B 02 92 C3 80 05 92 D3 9A 05
-92 C3 30 01 30 41 09 3C A2 B3 9C 05 FD 27 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 A2 B3 9C 05 FD 27
-B2 40 11 00 8E 05 D2 C3 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 81 E2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 81 04 57 41 52 4D 00 B0 12
-9C 81 84 12 14 80 07 0D 0A 1B 5B 37 6D 23 5C 83
-D6 84 14 80 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 5C 83
-0A 80 40 FF 28 80 D4 83 A0 84 14 80 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 80 86 81 00 00 06 41
-43 43 45 50 54 00 30 40 7A 82 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 82 3C 40 D2 82
-5D 15 B6 3E 21 52 3A 17 58 42 8C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 8E 05 30 4D C8 82 2D 83 92 B3 9C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 9C 05
-FD 27 58 42 8C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 82 2F 83
-8F 4E 00 00 B0 12 DA 81 92 B3 9C 05 FD 27 1E 42
-8C 05 B0 12 C8 81 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 83 08 4E 3E 4F C8 3F 1A 83 04 45 43 48
-4F 00 B2 40 C2 48 C0 82 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 82 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 83 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 83 7A 83 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 81 02 43 52 00 30 40
-92 83 0D 12 84 12 14 80 02 0D 0A 00 5C 83 60 84
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 82 01 40
-2E 4E 30 4D DE 83 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A 83 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E 80 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 1A 84 02 23 53 00 0D 12
-84 12 1C 84 56 84 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 84 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 83 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 84 4E 84 EE 80 8E 84 6A 84 5C 83 14 88 20 83
-60 84 40 83 01 2E 0E 93 E3 37 38 43 E2 3F 88 84
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80
-5A 87 0A 80 22 00 2C 85 FA 84 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 84 82 2E 22 00 0D 12 84 12 E4 84 0A 80 5C 83
-5A 87 60 84 18 82 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 80 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80
-30 4D 00 00 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 AE 86
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 86
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 87 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 84 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 80 14 88 2C 85 D0 87
-9C 26 3D 40 D8 87 DE 3E DA 87 0A 4E 3E 4F 3D 40
-F4 87 36 27 3D 40 CA 87 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 87 3E 4F 3D 40 CA 87 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 89
-CC 3F FE 87 86 12 20 00 E6 83 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E 83
-BC 80 C4 87 C4 83 F6 83 14 80 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80
-FE 83 14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 81 3A 80 3E 88 1A 88 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 84 0A 80 2A 81 5A 87 60 84 8E 85
-01 27 0D 12 84 12 14 88 2C 85 94 85 34 80 12 88
-60 84 00 00 83 5B 27 5D 0D 12 84 12 92 88 0A 80
-0A 80 5A 87 5A 87 60 84 A4 88 81 5B 82 43 BE 21
-30 4D 0C 84 01 5D B2 43 BE 21 30 4D C4 88 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 88 2C 85 94 85 A8 83
-34 80 12 88 F6 83 34 80 06 89 0A 80 0A 80 5A 87
-5A 87 0A 80 5A 87 5A 87 60 84 BA 88 01 3A 30 12
-56 89 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 88
-2C 85 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 81 0C 89 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A 80 60 84 5A 87 68 89 BC 88
-60 84 BA 87 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 87 06 43 52 45
-41 54 45 00 B0 12 12 89 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 89 04 43 4F 44 45 00 B0 12 12 89
-A2 82 C6 21 0D 12 84 12 04 8C DE 8B 60 84 B4 89
-07 48 44 4E 43 4F 44 45 B2 40 E2 8B DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 89
-1E 8C 3C 8C 60 84 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E 8C 3C 8C 60 84
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 8A 85 48 49 32 4C 4F 0D 12 84 12 28 80
-AC 8B 5A 87 BC 88 F4 89 60 84 9A 89 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 8A 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 80 00 00 D8 83 14 88 2C 85
-AA 87 A0 83 34 80 14 8B AE 83 14 80 06 5B 54 48
-45 4E 5D 00 86 8A EE 8A AA 8A CC 8A 60 84 AE 83
-14 80 06 5B 45 4C 53 45 5D 00 86 8A 04 8B AA 8A
-CA 8A 60 84 14 80 04 5B 49 46 5D 00 86 8A CC 8A
-3A 80 CA 8A 82 83 14 80 05 0D 0A 6B 6F 20 5C 83
-BC 80 AC 80 3A 80 CC 8A BA 8A 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 8B 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 88 2C 85
-94 85 38 8B 60 84 3E 8B 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 8B F0 83 60 84 70 8B
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 87
-06 4D 41 52 4B 45 52 00 B0 12 12 89 BA 40 85 12
-FC FF BA 40 6E 8B FE FF 28 83 8A 48 00 00 BA 40
-AA 80 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A 80 CA 21 E8 83 60 84 85 12 B0 8B 78 88 E6 89
-2C 83 90 88 64 8A F6 82 80 8B 12 85 A8 8C BC 8C
-9C 84 26 85 00 00 58 8B CE 88 F4 85 00 00 85 12
-B0 8B 7A 92 E0 92 22 92 30 93 E8 91 00 00 B4 8F
-00 00 F8 93 DC 93 4C 92 8A 92 C4 90 00 00 00 00
-4C 93 DC 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 8B 36 8C 3C 8C 4C 8C 1A 42 20 18
-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
-DA 88 09 50 57 52 5F 53 54 41 54 45 85 12 44 8C
-04 94 E0 84 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 8C F3 3F 82 8C 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 8C 30 4D 94 8C 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 8D FE FF 29 83
-B9 40 02 82 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 82 B2 49 FA 80 B2 49 02 80 B2 49 20 82
-B2 49 E2 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
-26 02 B2 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 B2 40 FF 1E 80 01 B2 40 BA 00
-82 01 B2 40 E8 01 84 01 82 43 88 01 F2 D0 C0 00
-0D 02 39 40 5C 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 80 1E 82 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 2C 85 94 85 F0 83 34 80 F4 8D 50 86 34 80
-0E 8E 08 8E F6 8D 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 10 8E
-B2 41 C4 21 3E 41 84 12 0A 80 2B 00 2C 85 94 85
-F0 83 34 80 2C 8E 50 86 34 80 12 88 BA 83 2C 85
-50 86 34 80 12 88 38 8E 3E 5F E7 3F 3E 40 28 00
-B0 12 D8 8D 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 80 89
-1C 15 12 12 C4 21 92 53 C4 21 84 12 2C 85 50 86
-34 80 80 8E 76 8E 21 53 3E 90 10 00 C6 2B 7F 2D
-82 8E B2 41 C4 21 C1 3F 0D 12 84 12 14 88 B4 8D
-92 8E 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 D8 8D 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 D8 8D ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 60 8E 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 60 8E 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 60 8E FA 23
-3C 50 10 00 B0 12 3C 8E EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 14 88 B4 8D 5E 8F FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 60 8E E0 23 3C 50 80 00 B0 12 3C 8E DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A 80 00 13
-5A 87 60 84 0A 80 2C 00 88 8E 54 8F 9E 8F 09 4B
-2E 4E 0E DC A2 3F 52 8A 03 4D 4F 56 85 12 94 8F
-00 40 A8 8F 05 4D 4F 56 2E 42 85 12 94 8F 40 40
-00 00 03 41 44 44 85 12 94 8F 00 50 C2 8F 05 41
-44 44 2E 42 85 12 94 8F 40 50 CE 8F 04 41 44 44
-43 00 85 12 94 8F 00 60 DC 8F 06 41 44 44 43 2E
-42 00 85 12 94 8F 40 60 82 8F 04 53 55 42 43 00
-85 12 94 8F 00 70 FA 8F 06 53 55 42 43 2E 42 00
-85 12 94 8F 40 70 08 90 03 53 55 42 85 12 94 8F
-00 80 18 90 05 53 55 42 2E 42 85 12 94 8F 40 80
-28 8A 03 43 4D 50 85 12 94 8F 00 90 32 90 05 43
-4D 50 2E 42 85 12 94 8F 40 90 12 8A 04 44 41 44
-44 00 85 12 94 8F 00 A0 4C 90 06 44 41 44 44 2E
-42 00 85 12 94 8F 40 A0 3E 90 03 42 49 54 85 12
-94 8F 00 B0 6A 90 05 42 49 54 2E 42 85 12 94 8F
-40 B0 76 90 03 42 49 43 85 12 94 8F 00 C0 84 90
-05 42 49 43 2E 42 85 12 94 8F 40 C0 90 90 03 42
-49 53 85 12 94 8F 00 D0 9E 90 05 42 49 53 2E 42
-85 12 94 8F 40 D0 00 00 03 58 4F 52 85 12 94 8F
-00 E0 B8 90 05 58 4F 52 2E 42 85 12 94 8F 40 E0
-EA 8F 03 41 4E 44 85 12 94 8F 00 F0 D2 90 05 41
-4E 44 2E 42 85 12 94 8F 40 F0 14 88 88 8E F0 90
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-24 90 03 52 52 43 85 12 EA 90 00 10 02 91 05 52
-52 43 2E 42 85 12 EA 90 40 10 0E 91 04 53 57 50
-42 00 85 12 EA 90 80 10 1C 91 03 52 52 41 85 12
-EA 90 00 11 2A 91 05 52 52 41 2E 42 85 12 EA 90
-40 11 36 91 03 53 58 54 85 12 EA 90 80 11 00 00
-04 50 55 53 48 00 85 12 EA 90 00 12 50 91 06 50
-55 53 48 2E 42 00 85 12 EA 90 40 12 AA 90 04 43
-41 4C 4C 00 85 12 EA 90 80 12 1A 53 0E 4A 0D 12
-84 12 D6 84 14 80 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 81 44 91 03 53 3E 3D 86 12 00 38
-98 91 02 53 3C 00 86 12 00 34 5E 91 03 30 3E 3D
-86 12 00 30 AC 91 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C C0 91 03 55 3E 3D 86 12
-00 28 B6 91 03 30 3C 3E 86 12 00 24 D4 91 02 30
-3D 00 86 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 CA 91 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 B1 2F 88 DA 00 00 30 4D
-5A 90 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 6E 91
-05 42 45 47 49 4E 30 40 28 80 FE 91 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D DE 90 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 EC 91 BA 83 60 84 A2 91 06 52 45 50
-45 41 54 00 0D 12 84 12 80 92 04 92 60 84 B0 92
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 40 92 03 42 57 31 85 12 AE 92
-00 00 C8 92 03 42 57 32 85 12 AE 92 00 00 D4 92
-03 42 57 33 85 12 AE 92 00 00 EC 92 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 EA 92 00 00 0C 93 03 46 57 32 85 12 EA 92
-00 00 18 93 03 46 57 33 85 12 EA 92 00 00 24 93
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 92 88 EE 87 60 84 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 14 88 B4 8D 6E 93 92 53
-C4 21 3E 40 2C 00 84 12 2C 85 50 86 34 80 12 88
-4A 8F 84 93 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-9C 92 04 52 52 43 4D 00 85 12 68 93 50 00 B2 93
-04 52 52 41 4D 00 85 12 68 93 50 01 C0 93 04 52
-4C 41 4D 00 85 12 68 93 50 02 CE 93 04 52 52 55
-4D 00 85 12 68 93 50 03 DE 91 05 50 55 53 48 4D
-85 12 68 93 00 15 EA 93 04 50 4F 50 4D 00 85 12
-68 93 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 94 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 1A 8D
-q
diff --git a/binaries/MSP_EXP430FR2355_1MHz_115200.txt b/binaries/MSP_EXP430FR2355_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..221d37c
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A1 59
+B6 82 7E 81 84 81 54 81 26 83 14 93 CC 8B 86 8B
+86 8B 9C 82 5A 83 22 83 3C 21 E0 20 7A 85 B6 80
+C4 80 96 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+26 83 14 93 CC 8B 86 8B 86 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F6 3C 0E 93 3E 4F
+8B 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 9A 82 B2 49
+58 83 B2 49 20 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 40 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 26 83 92 C3 9C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 9C 05 F3 23
+B0 12 D0 80 A0 84 AC 80 52 81 68 83 1E 80 04 1B
+5B 37 6D 00 8A 83 8A 83 1E 80 04 1B 5B 30 6D 00
+8A 83 D6 88 B0 12 7E 81 B2 40 81 00 80 05 92 42
+02 18 86 05 92 42 04 18 88 05 F2 D0 0C 00 2B 02
+92 C3 80 05 92 D3 9A 05 92 C3 30 01 30 41 92 B3
+8A 05 FD 23 30 41 92 12 3E 18 84 12 68 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 8A 83 EE 85 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 8A 83 0A 80 40 FF 32 80
+B6 84 BA 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
+26 02 B2 43 22 02 F2 D3 47 02 F2 40 BF 00 43 02
+B2 40 00 A5 60 01 82 43 88 01 F2 D0 C0 00 0D 02
+F2 C3 82 01 B2 40 1E 00 84 01 39 40 5C 00 18 42
+00 18 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
+89 43 00 20 FC 23 19 42 5E 01 1E 42 08 18 82 43
+08 18 3E F3 01 20 0E 49 B0 12 D0 80 86 81 00 00
+0C 41 43 43 45 50 54 00 30 40 9C 82 08 4E 2E 4F
+08 5E 39 40 0D 00 3A 40 20 00 3B 40 FA 82 3C 40
+06 83 5D 15 A5 3E 21 52 3A 17 58 42 8C 05 48 9B
+09 20 A2 B3 9C 05 FD 27 B2 40 13 00 8E 05 D2 D3
+03 02 30 41 48 9C 06 2C 78 92 11 20 2E 9F 0F 24
+1E 83 05 3C 0E 9A 03 2C CE 48 00 00 1E 53 A2 B3
+9C 05 FD 27 C2 48 8E 05 30 4D FC 82 2D 83 92 B3
+9C 05 DB 23 FC 3F 3E 8F 3D 41 92 B3 9C 05 FD 27
+58 42 8C 05 08 4C EB 3F 00 00 06 4B 45 59 30 40
+22 83 30 12 38 83 A2 B3 9C 05 FD 27 B2 40 11 00
+8E 05 D2 C3 03 02 30 41 2F 83 8F 4E 00 00 92 B3
+9C 05 FD 27 B0 12 C2 82 1E 42 8C 05 30 4D 00 00
+08 45 4D 49 54 00 30 40 5A 83 08 4E 3E 4F C7 3F
+50 83 08 45 43 48 4F 00 B2 40 C2 48 F4 82 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D F4 82
+30 4D 00 00 08 54 59 50 45 00 0D 12 3D 40 9A 83
+29 4F 8F 4E 00 00 7E 49 DE 3F 9C 83 2D 83 2F 83
+5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00
+0C 4E 38 4F 3C 9F 39 4F 3E 4F 7B 22 F9 98 00 00
+78 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F
+1E 83 6F 22 9B 24 1A 83 0D 5B 45 4C 53 45 5D 00
+0D 12 84 12 0A 80 00 00 BA 84 AC 83 FE 85 B8 88
+B0 80 28 84 14 80 06 5B 54 48 45 4E 5D 00 B0 83
+06 84 CC 83 EA 83 14 80 06 5B 45 4C 53 45 5D 00
+B0 83 18 84 CC 83 E8 83 1E 80 04 5B 49 46 5D 00
+B0 83 EA 83 B2 80 E8 83 1E 80 05 0D 6B 6F 20 0A
+8A 83 9A 80 84 80 B2 80 EA 83 D8 83 0D 5B 54 48
+45 4E 5D 00 30 4D 3C 84 09 5B 49 46 5D 00 0E 93
+3E 4F C6 27 30 4D 48 84 13 5B 44 45 46 49 4E 45
+44 5D 0D 12 84 12 AC 83 FE 85 66 86 0A 88 7A 85
+58 84 17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
+84 12 AC 83 FE 85 66 86 8A 84 3D 41 2F 53 1E 83
+0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D
+8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 20
+0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00
+02 40 2E 4E 30 4D 90 82 02 21 BE 4F 00 00 3E 4F
+30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3
+30 4D D8 81 05 53 22 00 82 43 C0 21 0D 12 84 12
+0A 80 1E 80 68 88 0A 80 22 00 FE 85 FE 84 B2 40
+20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F 3D 41
+30 4D 72 83 05 2E 22 00 0D 12 84 12 E8 84 0A 80
+8A 83 68 88 7A 85 00 00 04 3C 23 00 B2 40 B2 21
+B2 21 30 4D E4 84 02 23 1B 42 BE 21 2C 4F 2F 83
+B0 12 46 80 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 36 85 04 23 53 00 0D 12 84 12 38 85
+72 85 2D 83 09 DE 09 93 E1 23 3D 41 30 4D 66 85
+04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21 2E 8F
+30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F
+80 85 08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00
+D2 33 30 4D 62 83 04 55 2E 00 0C 43 2F 83 8F 4E
+00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3
+9F 53 00 00 0E 63 84 12 2C 85 AC 83 9A 85 6A 85
+96 84 A8 85 84 85 8A 83 7A 85 14 85 02 2E 0E 93
+E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40
+C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24
+7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00 00 00
+04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98
+0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B
+7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21 82 48
+C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D 00 00
+08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58
+2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11
+68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
+FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83
+8F 4C 00 00 30 4D EC 85 0E 3E 4E 55 4D 42 45 52
+1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04
+6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50
+0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04
+19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83
+E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42
+BE 21 0C 4E 0E 43 1E 15 3D 40 70 87 7E 4C 6A 4C
+7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52
+6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20
+3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00
+38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27
+72 87 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0
+00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53
+20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12
+3E 80 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4A 93 1D 17 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 28 85
+03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12 84 80
+AC 83 FE 85 B0 80 42 89 66 86 2C 88 0A 4E 3E 4F
+3D 40 46 88 6D 27 3D 40 20 88 1A E2 BC 21 14 24
+0E 12 3E 4F 30 41 48 88 3E 4F 3D 40 20 88 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+1E 8A 2A 3C 10 88 02 2C A2 53 C8 21 1A 42 C8 21
+8A 4E FE FF 3E 4F 30 4D 66 88 0F 4C 49 54 45 52
+41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21 A2 52
+C8 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
+00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
+A2 85 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D C8 84 0A 41 4C 4C 4F 54 82 5E
+C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12 1E 80
+02 0D 0A 00 8A 83 94 80 1A 88 A8 84 D2 84 1E 80
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 81 32 80
+0A 80 40 FF DA 84 1E 80 09 46 52 41 4D 20 66 75
+6C 6C 08 81 B2 80 DE 88 C8 88 0D 41 42 4F 52 54
+22 00 0D 12 84 12 E8 84 0A 80 08 81 68 88 7A 85
+F8 85 02 27 0D 12 84 12 AC 83 FE 85 66 86 B0 80
+44 89 0C 85 50 88 72 84 07 5B 27 5D 0D 12 84 12
+34 89 0A 80 0A 80 68 88 68 88 7A 85 48 89 03 5B
+82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21 30 4D
+C0 84 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+AC 83 FE 85 66 86 B0 80 44 89 D2 84 AC 80 9C 89
+0A 80 0A 80 68 88 68 88 0A 80 68 88 68 88 7A 85
+00 00 02 3A 30 12 F2 89 92 B3 C8 21 A2 63 C8 21
+0D 12 84 12 AC 83 FE 85 BA 89 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21 82 49
+B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A C8 21
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 21 30 4D 82 9F BA 21 66 25 84 12 1E 80 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 81
+5E 89 03 3B 82 93 BC 21 F4 26 0D 12 84 12 0A 80
+7A 85 68 88 04 8A 60 89 7A 85 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00 30 4D
+B2 88 0C 43 52 45 41 54 45 00 B0 12 A8 89 BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D 84 83 0A 44 4F 45
+53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D A2 89 0E 3A 4E 4F 4E 41 4D 45 30 12
+F2 89 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F 3C 8A 05 49 53 00
+0D 12 82 93 BC 21 08 20 84 12 34 89 BE 8A 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 4C 89 0A 80 C0 8A
+68 88 7A 85 52 8A 08 43 4F 44 45 00 B0 12 A8 89
+A2 82 C8 21 61 3C 94 85 0E 48 44 4E 43 4F 44 45
+B2 40 AC 8B CC 21 F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 04 8A 0A 8B 3D 41 92 42 D0 21
+CC 21 5D 3C D6 8A 0E 43 4F 44 45 4E 4E 4D 30 12
+E0 8A B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 21
+B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 21 1A 42 C8 21 EF 3F E8 8A 0B 48 49 32 4C 4F
+A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43 BC 21
+B9 3F 74 8B B2 40 86 8B D0 21 82 4E CE 21 30 40
+0C 85 85 12 72 8B 72 89 1A 89 04 8C 16 8B 6C 8A
+B6 85 60 86 32 89 5A 8B AC 8A 86 8A 22 8A 7A 88
+8E 8C B8 86 00 00 00 00 85 12 72 8B 08 93 8C 91
+EC 92 B4 90 10 91 5E 91 3A 92 46 92 D6 8F FA 90
+00 00 00 00 48 8B C6 8E 00 00 62 92 A6 8B B2 40
+86 8B CE 21 82 43 D0 21 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12 DA 8B
+30 4D EC 8B 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 21 B0 12 DA 8B 1A 42 CA 21 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 06 82 FE FF 29 83 B9 40 F2 81 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 E2 FF 3B 40 10 00
+3A 40 3A 18 B0 12 DE 8B 82 43 4A 18 C7 3F 80 8C
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 68 89 0C 4D
+41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12 AC 83
+FE 85 66 86 AC 80 AC 8C A0 84 40 88 AE 8C 3E 4F
+3D 41 B2 41 C6 21 B0 12 A8 89 BA 40 85 12 FC FF
+BA 40 7E 8C FE FF 28 83 8A 48 00 00 BA 40 82 80
+02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21 A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12 FE 85
+66 86 AC 80 18 8D F8 8C 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 7E 8C 00 00 01 20
+3E 52 2E 83 21 53 30 41 10 87 AC 80 20 8D 14 8D
+22 8D B2 41 C6 21 30 41 92 83 C6 21 3E 40 28 00
+0A 4E 3D 15 B0 12 E8 8C 15 20 3E 40 2B 00 B0 12
+E8 8C 06 20 3E 40 2D 00 B0 12 E8 8C 92 83 C6 21
+0E 12 1E 41 02 00 84 12 FE 85 10 87 AC 80 44 89
+62 8D 3E 51 3A 17 30 41 B0 12 28 8D 19 42 C8 21
+89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53 C6 21
+1A 42 C6 21 3D 15 84 12 FE 85 10 87 AC 80 9A 8D
+92 8D 3E 90 10 00 E6 2B 7C 2D 9C 8D A2 41 C6 21
+E1 3F 03 20 B0 12 80 8D 43 3C 7A 90 23 00 24 20
+B0 12 30 8D 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 C8 21 A2 53 C8 21
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 30 8D F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 7C 8D 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 80 8D 92 92 C2 21 C6 21 02 24 92 53 C6 21
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 68 8D F2 3F
+03 20 B0 12 80 8D F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 68 8D EA 3F 0C 43
+1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42 C6 21
+19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82 C4 21
+82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A 80 00 13 68 88 7A 85 0A 80
+2C 00 5E 8E A2 8D AC 83 68 8E 40 8E AE 8E 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+9E 8E 00 40 BA 8E 0A 4D 4F 56 2E 42 85 12 9E 8E
+40 40 00 00 06 41 44 44 85 12 9E 8E 00 50 D4 8E
+0A 41 44 44 2E 42 85 12 9E 8E 40 50 E0 8E 08 41
+44 44 43 00 85 12 9E 8E 00 60 EE 8E 0C 41 44 44
+43 2E 42 00 85 12 9E 8E 40 60 26 8B 08 53 55 42
+43 00 85 12 9E 8E 00 70 0C 8F 0C 53 55 42 43 2E
+42 00 85 12 9E 8E 40 70 1A 8F 06 53 55 42 85 12
+9E 8E 00 80 2A 8F 0A 53 55 42 2E 42 85 12 9E 8E
+40 80 36 8F 06 43 4D 50 85 12 9E 8E 00 90 44 8F
+0A 43 4D 50 2E 42 85 12 9E 8E 40 90 00 00 08 44
+41 44 44 00 85 12 9E 8E 00 A0 5E 8F 0C 44 41 44
+44 2E 42 00 85 12 9E 8E 40 A0 8C 8E 06 42 49 54
+85 12 9E 8E 00 B0 7C 8F 0A 42 49 54 2E 42 85 12
+9E 8E 40 B0 88 8F 06 42 49 43 85 12 9E 8E 00 C0
+96 8F 0A 42 49 43 2E 42 85 12 9E 8E 40 C0 A2 8F
+06 42 49 53 85 12 9E 8E 00 D0 B0 8F 0A 42 49 53
+2E 42 85 12 9E 8E 40 D0 00 00 06 58 4F 52 85 12
+9E 8E 00 E0 CA 8F 0A 58 4F 52 2E 42 85 12 9E 8E
+40 E0 FC 8E 06 41 4E 44 85 12 9E 8E 00 F0 E4 8F
+0A 41 4E 44 2E 42 85 12 9E 8E 40 F0 AC 83 5E 8E
+A2 8D 04 90 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F BC 8F 06 52 52 43 85 12 FC 8F 00 10
+16 90 0A 52 52 43 2E 42 85 12 FC 8F 40 10 50 8F
+08 53 57 50 42 00 85 12 FC 8F 80 10 22 90 06 52
+52 41 85 12 FC 8F 00 11 3E 90 0A 52 52 41 2E 42
+85 12 FC 8F 40 11 30 90 06 53 58 54 85 12 FC 8F
+80 11 00 00 08 50 55 53 48 00 85 12 FC 8F 00 12
+64 90 0C 50 55 53 48 2E 42 00 85 12 FC 8F 40 12
+58 90 08 43 41 4C 4C 00 85 12 FC 8F 80 12 1A 53
+0E 4A 84 12 EE 85 1E 80 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 81 82 90 06 53 3E 3D 86 12
+00 38 AA 90 04 53 3C 00 86 12 00 34 72 90 06 30
+3E 3D 86 12 00 30 BE 90 04 30 3C 00 86 12 00 30
+FA 8A 04 55 3C 00 86 12 00 2C D2 90 06 55 3E 3D
+86 12 00 28 C8 90 06 30 3C 3E 86 12 00 24 E6 90
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D 6C 8F
+08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D DC 90 08 45 4C 53 45 00 1A 42 C8 21 BA 40
+00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F
+4A 90 0A 42 45 47 49 4E 30 40 32 80 34 91 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 21 30 4D F0 8F 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 FE 90 94 84 7A 85 52 91 0C 52
+45 50 45 41 54 00 0D 12 84 12 92 91 16 91 7A 85
+C2 91 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F
+98 42 C8 21 00 00 30 4D AE 91 06 42 57 31 85 12
+C0 91 00 00 DA 91 06 42 57 32 85 12 C0 91 00 00
+E6 91 06 42 57 33 85 12 C0 91 00 00 FE 91 3D 41
+1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21 86 2B
+BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 FC 91 00 00 22 92 06 46
+57 32 85 12 FC 91 00 00 2E 92 06 46 57 33 85 12
+FC 91 00 00 9C 91 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 34 89 40 88 7A 85
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 68 8E
+0A 80 2C 00 FE 85 10 87 AC 80 44 89 AC 83 5E 8E
+40 8E 94 92 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+F2 91 08 52 52 43 4D 00 85 12 7E 92 50 00 C2 92
+08 52 52 41 4D 00 85 12 7E 92 50 01 D0 92 08 52
+4C 41 4D 00 85 12 7E 92 50 02 DE 92 08 52 52 55
+4D 00 85 12 7E 92 50 03 F0 90 0A 50 55 53 48 4D
+85 12 7E 92 00 15 FA 92 08 50 4F 50 4D 00 85 12
+7E 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 B6 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
index b8ae925..e8eaa7d 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF DE 93 F0 8B 34 01
-10 00 41 87 B6 81 AA 80 B8 81 8C 81 82 82 DE 93
-F0 8B 70 82 80 83 FE 82 DA 82 3C 21 4E 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+B0 82 56 81 56 81 58 81 44 81 F0 92 A8 8B 62 8B
+62 8B 9E 82 22 83 FA 82 3C 21 E0 20 56 85 B6 80
+C4 80 72 84 20 00 0A 00 00 20 56 81 56 81 58 81
+44 81 F0 92 A8 8B 62 8B 62 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @8000
-B0 12 B8 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 6E 82 B2 49 7E 83 B2 49 FC 82 B2 49 D8 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 81 0E 12 B0 12
-F8 80 0A 80 DE 21 CE 83 16 83 EE 80 34 80 8A 81
-14 80 05 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83
-C4 84 96 83 34 80 7E 81 14 80 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 83 8E 84 4A 83
-14 80 04 1B 5B 30 6D 00 4A 83 16 88 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 81 E2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 81 04 57 41 52 4D 00 B0 12
-8C 81 78 40 03 00 B0 12 BA 81 84 12 14 80 07 0D
-0A 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83 C4 84
-0A 80 23 00 FA 82 C4 84 14 80 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 4A 83 0A 80 40 FF 28 80 C2 83 8E 84
-14 80 0A 62 79 74 65 73 20 66 72 65 65 00 3A 80
-7E 81 00 00 06 41 43 43 45 50 54 00 30 40 70 82
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 81 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 82 2F 83 8F 4E 00 00
-58 43 B0 12 BA 81 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 82 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 82
-04 45 43 48 4F 00 B2 40 C2 48 08 83 82 43 DE 21
-38 40 05 00 B0 12 BA 81 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 83 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 83 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 82 68 83 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 81 02 43 52 00 30 40 80 83
-0D 12 84 12 14 80 02 0D 0A 00 4A 83 4E 84 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 82 01 40 2E 4E
-30 4D CC 83 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 83 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E 80 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 08 84 02 23 53 00 0D 12 84 12
-0A 84 44 84 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 84 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 83 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 83
-3C 84 EE 80 7C 84 58 84 4A 83 02 88 FA 82 4E 84
-2C 83 01 2E 0E 93 E3 37 38 43 E2 3F 76 84 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80 48 87
-0A 80 22 00 1A 85 E8 84 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 84
-82 2E 22 00 0D 12 84 12 D2 84 0A 80 4A 83 48 87
-4E 84 F8 81 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 80 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80 30 4D
-00 00 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 9C 86 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 86 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 20 0A 4E
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F7 3C 0E 93 3E 4F
+79 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 9C 82 B2 49
+20 83 B2 49 F8 82 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 1C 8C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 81 B0 12 D0 80 7C 84 AC 80
+42 81 3A 83 1E 80 05 1B 5B 37 6D 40 66 83 0A 80
+02 18 9E 84 CA 85 66 83 1E 80 04 1B 5B 30 6D 00
+66 83 B2 88 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 3A 83 1E 80 07 0D 0A 1B 5B 37
+6D 40 66 83 0A 80 02 18 9E 84 CA 85 0A 80 23 00
+1E 83 CA 85 1E 80 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+66 83 0A 80 40 FF 32 80 92 84 96 85 1E 80 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 80 36 81 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 81 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 D3 06 02 B2 40 FE FF
+02 02 B2 D3 26 02 B2 43 22 02 F2 D3 47 02 F2 40
+BF 00 43 02 B2 40 00 A5 60 01 82 43 88 01 F2 D0
+C0 00 0D 02 F2 C3 82 01 B2 40 1E 00 84 01 39 40
+5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23 39 40
+00 10 29 83 89 43 00 20 FC 23 1E 42 08 18 82 43
+08 18 3E F3 02 20 1E 42 5E 01 B0 12 D0 80 80 81
+00 00 0C 41 43 43 45 50 54 00 30 40 9E 82 0A 4E
+2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15 A8 3E
+21 52 A2 C2 6C 05 B2 B0 10 00 40 05 A1 22 3A 17
+92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24 48 9C
+06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A
+EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C
+00 00 06 4B 45 59 30 40 FA 82 58 43 B0 12 46 81
+2F 83 8F 4E 00 00 92 B3 6C 05 FD 27 1E 42 4C 05
+B0 12 44 81 30 4D 00 00 08 45 4D 49 54 00 30 40
+22 83 08 4E 3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05
+30 4D 18 83 08 45 43 48 4F 00 B2 40 C2 48 2C 83
+38 40 05 00 B0 12 46 81 30 4D 00 00 0C 4E 4F 45
+43 48 4F 00 B2 40 30 4D 2C 83 28 42 F3 3F 00 00
+08 54 59 50 45 00 0D 12 3D 40 76 83 29 4F 8F 4E
+00 00 7E 49 D4 3F 78 83 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 8D 22 F9 98 00 00 8A 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 81 22
+9B 24 F2 82 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A 80 00 00 96 84 88 83 DA 85 94 88 B0 80 04 84
+14 80 06 5B 54 48 45 4E 5D 00 8C 83 E2 83 A8 83
+C6 83 14 80 06 5B 45 4C 53 45 5D 00 8C 83 F4 83
+A8 83 C4 83 1E 80 04 5B 49 46 5D 00 8C 83 C6 83
+B2 80 C4 83 1E 80 05 0D 6B 6F 20 0A 66 83 9A 80
+84 80 B2 80 C6 83 B4 83 0D 5B 54 48 45 4E 5D 00
+30 4D 18 84 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 24 84 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 88 83 DA 85 42 86 E6 87 56 85 34 84 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 88 83
+DA 85 42 86 66 84 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D 92 82 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D E0 81
+05 53 22 00 82 43 C0 21 0D 12 84 12 0A 80 1E 80
+44 88 0A 80 22 00 DA 85 DA 84 B2 40 20 00 C0 21
+1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 4C 83
+05 2E 22 00 0D 12 84 12 C4 84 0A 80 66 83 44 88
+56 85 00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D
+C0 84 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 80
+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
+12 85 04 23 53 00 0D 12 84 12 14 85 4E 85 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 42 85 04 23 3E 00
+9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 5C 85 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+34 83 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 08 85 88 83 76 85 46 85 72 84 84 85
+60 85 66 83 56 85 F0 84 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42
+C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D C8 85 0E 3E 4E 55 4D 42 45 52 1B 42 BE 21
+3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80
+3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B
+22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 21 0C 4E
+0E 43 1E 15 3D 40 4C 87 7E 4C 6A 4C 7A 80 2D 00
+16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24
+3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00
+3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43
+02 00 1E 83 FC 9C 00 00 E0 23 AE 27 4E 87 2F 24
+2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20
+32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 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
-66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 84 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 80 02 88 1A 85 BE 87 9C 26
-3D 40 C6 87 DE 3E C8 87 0A 4E 3E 4F 3D 40 E2 87
-36 27 3D 40 B8 87 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 87 3E 4F 3D 40 B8 87 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 89 CC 3F
-EC 87 86 12 20 00 D4 83 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C 83 BC 80
-B2 87 B2 83 E4 83 14 80 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80 EC 83
-14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 81
-3A 80 2C 88 08 88 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 84 0A 80 2A 81 48 87 4E 84 7C 85 01 27
-0D 12 84 12 02 88 1A 85 82 85 34 80 00 88 4E 84
-00 00 83 5B 27 5D 0D 12 84 12 80 88 0A 80 0A 80
-48 87 48 87 4E 84 92 88 81 5B 82 43 BE 21 30 4D
-FA 83 01 5D B2 43 BE 21 30 4D B2 88 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 88 1A 85 82 85 96 83 34 80
-00 88 E4 83 34 80 F4 88 0A 80 0A 80 48 87 48 87
-0A 80 48 87 48 87 4E 84 A8 88 01 3A 30 12 44 89
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 88 1A 85
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 81 FA 88 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A 80 4E 84 48 87 56 89 AA 88 4E 84
-A8 87 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 87 06 43 52 45 41 54
-45 00 B0 12 00 89 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 89 04 43 4F 44 45 00 B0 12 00 89 A2 82
-C6 21 0D 12 84 12 F2 8B CC 8B 4E 84 A2 89 07 48
-44 4E 43 4F 44 45 B2 40 D0 8B DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 89 0C 8C
-2A 8C 4E 84 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C 8C 2A 8C 4E 84 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE 89 85 48 49 32 4C 4F 0D 12 84 12 28 80 9A 8B
-48 87 AA 88 E2 89 4E 84 88 89 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 8A 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 80 00 00 C6 83 02 88 1A 85 98 87
-8E 83 34 80 02 8B 9C 83 14 80 06 5B 54 48 45 4E
-5D 00 74 8A DC 8A 98 8A BA 8A 4E 84 9C 83 14 80
-06 5B 45 4C 53 45 5D 00 74 8A F2 8A 98 8A B8 8A
-4E 84 14 80 04 5B 49 46 5D 00 74 8A BA 8A 3A 80
-B8 8A 70 83 14 80 05 0D 0A 6B 6F 20 4A 83 BC 80
-AC 80 3A 80 BA 8A A8 8A 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 8B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 88 1A 85 82 85
-26 8B 4E 84 2C 8B 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 8B DE 83 4E 84 5E 8B B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 87 06 4D
-41 52 4B 45 52 00 B0 12 00 89 BA 40 85 12 FC FF
-BA 40 5C 8B FE FF 28 83 8A 48 00 00 BA 40 AA 80
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A 80
-CA 21 D6 83 4E 84 85 12 9E 8B 66 88 D4 89 10 83
-7E 88 52 8A D2 82 6E 8B 00 85 96 8C AA 8C 8A 84
-14 85 00 00 46 8B BC 88 E2 85 00 00 85 12 9E 8B
-54 92 BA 92 FC 91 0A 93 C2 91 00 00 8E 8F 00 00
-D2 93 B6 93 26 92 64 92 9E 90 00 00 00 00 26 93
-CA 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 8B 24 8C 2A 8C 3A 8C 1A 42 20 18 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 C8 88
-09 50 57 52 5F 53 54 41 54 45 85 12 32 8C DE 93
-CE 84 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 8C F3 3F 70 8C 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E 8C 30 4D 82 8C 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 8D FE FF 29 83 B9 40
-E2 81 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 81 B2 49 FA 80 B2 49 02 80 B2 49 00 82 B2 49
-E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 10 29 83 89 43 00 20 FC 23 B2 D3
-06 02 B2 40 FE FF 02 02 B2 D3 26 02 B2 43 22 02
-F2 D3 47 02 F2 40 BF 00 43 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 82 43 88 01 F2 D0 C0 00 0D 02 39 40 5C 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 1E 42 08 18
-82 43 08 18 1E D2 5E 01 B0 12 F8 80 FE 81 38 40
-C0 21 0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21
-30 4D 1C 15 0E 12 12 12 C4 21 84 12 1A 85 82 85
-DE 83 34 80 CE 8D 3E 86 34 80 E8 8D E2 8D D0 8D
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 EA 8D B2 41 C4 21 3E 41
-84 12 0A 80 2B 00 1A 85 82 85 DE 83 34 80 06 8E
-3E 86 34 80 00 88 A8 83 1A 85 3E 86 34 80 00 88
-12 8E 3E 5F E7 3F 3E 40 28 00 B0 12 B2 8D 19 42
-C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92
-C0 21 C4 21 02 20 30 40 6E 89 1C 15 12 12 C4 21
-92 53 C4 21 84 12 1A 85 3E 86 34 80 5A 8E 50 8E
-21 53 3E 90 10 00 C6 2B 7F 2D 5C 8E B2 41 C4 21
-C1 3F 0D 12 84 12 02 88 8E 8D 6C 8E 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 B2 8D 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 B2 8D
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
-B0 12 3A 8E 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-3A 8E 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
-0C 5E DA 3F B0 12 3A 8E FA 23 3C 50 10 00 B0 12
-16 8E EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12
-84 12 02 88 8E 8D 38 8F FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 3A 8E E0 23
-3C 50 80 00 B0 12 16 8E DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 80 00 13 48 87 4E 84 0A 80
-2C 00 62 8E 2E 8F 78 8F 09 4B 2E 4E 0E DC A2 3F
-40 8A 03 4D 4F 56 85 12 6E 8F 00 40 82 8F 05 4D
-4F 56 2E 42 85 12 6E 8F 40 40 00 00 03 41 44 44
-85 12 6E 8F 00 50 9C 8F 05 41 44 44 2E 42 85 12
-6E 8F 40 50 A8 8F 04 41 44 44 43 00 85 12 6E 8F
-00 60 B6 8F 06 41 44 44 43 2E 42 00 85 12 6E 8F
-40 60 5C 8F 04 53 55 42 43 00 85 12 6E 8F 00 70
-D4 8F 06 53 55 42 43 2E 42 00 85 12 6E 8F 40 70
-E2 8F 03 53 55 42 85 12 6E 8F 00 80 F2 8F 05 53
-55 42 2E 42 85 12 6E 8F 40 80 16 8A 03 43 4D 50
-85 12 6E 8F 00 90 0C 90 05 43 4D 50 2E 42 85 12
-6E 8F 40 90 00 8A 04 44 41 44 44 00 85 12 6E 8F
-00 A0 26 90 06 44 41 44 44 2E 42 00 85 12 6E 8F
-40 A0 18 90 03 42 49 54 85 12 6E 8F 00 B0 44 90
-05 42 49 54 2E 42 85 12 6E 8F 40 B0 50 90 03 42
-49 43 85 12 6E 8F 00 C0 5E 90 05 42 49 43 2E 42
-85 12 6E 8F 40 C0 6A 90 03 42 49 53 85 12 6E 8F
-00 D0 78 90 05 42 49 53 2E 42 85 12 6E 8F 40 D0
-00 00 03 58 4F 52 85 12 6E 8F 00 E0 92 90 05 58
-4F 52 2E 42 85 12 6E 8F 40 E0 C4 8F 03 41 4E 44
-85 12 6E 8F 00 F0 AC 90 05 41 4E 44 2E 42 85 12
-6E 8F 40 F0 02 88 62 8E CA 90 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F FE 8F 03 52 52 43
-85 12 C4 90 00 10 DC 90 05 52 52 43 2E 42 85 12
-C4 90 40 10 E8 90 04 53 57 50 42 00 85 12 C4 90
-80 10 F6 90 03 52 52 41 85 12 C4 90 00 11 04 91
-05 52 52 41 2E 42 85 12 C4 90 40 11 10 91 03 53
-58 54 85 12 C4 90 80 11 00 00 04 50 55 53 48 00
-85 12 C4 90 00 12 2A 91 06 50 55 53 48 2E 42 00
-85 12 C4 90 40 12 84 90 04 43 41 4C 4C 00 85 12
-C4 90 80 12 1A 53 0E 4A 0D 12 84 12 C4 84 14 80
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 81
-1E 91 03 53 3E 3D 86 12 00 38 72 91 02 53 3C 00
-86 12 00 34 38 91 03 30 3E 3D 86 12 00 30 86 91
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C 9A 91 03 55 3E 3D 86 12 00 28 90 91 03 30
-3C 3E 86 12 00 24 AE 91 02 30 3D 00 86 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 A4 91 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 B1 2F 88 DA 00 00 30 4D 34 90 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 48 91 05 42 45 47 49 4E
-30 40 28 80 D8 91 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
-30 4D B8 90 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 C6 91
-A8 83 4E 84 7C 91 06 52 45 50 45 41 54 00 0D 12
-84 12 5A 92 DE 91 4E 84 8A 92 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D
-1A 92 03 42 57 31 85 12 88 92 00 00 A2 92 03 42
-57 32 85 12 88 92 00 00 AE 92 03 42 57 33 85 12
-88 92 00 00 C6 92 3D 41 1A 42 C6 21 28 4E B2 92
-C4 21 88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 C4 92 00 00
-E6 92 03 46 57 32 85 12 C4 92 00 00 F2 92 03 46
-57 33 85 12 C4 92 00 00 FE 92 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 80 88
-DC 87 4E 84 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 02 88 8E 8D 48 93 92 53 C4 21 3E 40 2C 00
-84 12 1A 85 3E 86 34 80 00 88 24 8F 5E 93 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E 76 92 04 52 52 43
-4D 00 85 12 42 93 50 00 8C 93 04 52 52 41 4D 00
-85 12 42 93 50 01 9A 93 04 52 4C 41 4D 00 85 12
-42 93 50 02 A8 93 04 52 52 55 4D 00 85 12 42 93
-50 03 B8 91 05 50 55 53 48 4D 85 12 42 93 00 15
-C4 93 04 50 4F 50 4D 00 85 12 42 93 00 17
+3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B
+08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E 80 2A 17
+E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17
+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 04 85 03 5C 92 42
+C2 21 C6 21 30 4D 0D 12 84 12 84 80 88 83 DA 85
+B0 80 1E 89 42 86 08 88 0A 4E 3E 4F 3D 40 22 88
+6D 27 3D 40 FC 87 1A E2 BC 21 14 24 0E 12 3E 4F
+30 41 24 88 3E 4F 3D 40 FC 87 19 20 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 FA 89 2A 3C
+EC 87 02 2C A2 53 C8 21 1A 42 C8 21 8A 4E FE FF
+3E 4F 30 4D 42 88 0F 4C 49 54 45 52 41 4C 82 93
+BC 21 0D 24 09 4E 1A 42 C8 21 A2 52 C8 21 BA 40
+0A 80 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
+00 02 03 24 8A 4E 02 00 EE 3F 30 4D 7E 85 0A 43
+4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3
+30 4D A4 84 0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F
+30 4D 3F 40 80 20 0E 43 84 12 1E 80 02 0D 0A 00
+66 83 94 80 F6 87 84 84 AE 84 1E 80 0B 73 74 61
+63 6B 20 65 6D 70 74 79 08 81 32 80 0A 80 40 FF
+B6 84 1E 80 09 46 52 41 4D 20 66 75 6C 6C 08 81
+B2 80 BA 88 A4 88 0D 41 42 4F 52 54 22 00 0D 12
+84 12 C4 84 0A 80 08 81 44 88 56 85 D4 85 02 27
+0D 12 84 12 88 83 DA 85 42 86 B0 80 20 89 E8 84
+2C 88 4E 84 07 5B 27 5D 0D 12 84 12 10 89 0A 80
+0A 80 44 88 44 88 56 85 24 89 03 5B 82 43 BC 21
+30 4D 00 00 02 5D B2 43 BC 21 30 4D 9C 84 11 50
+4F 53 54 50 4F 4E 45 00 0D 12 84 12 88 83 DA 85
+42 86 B0 80 20 89 AE 84 AC 80 78 89 0A 80 0A 80
+44 88 44 88 0A 80 44 88 44 88 56 85 00 00 02 3A
+30 12 CE 89 92 B3 C8 21 A2 63 C8 21 0D 12 84 12
+88 83 DA 85 96 89 3D 41 5A D3 5A 53 0A 5E 19 42
+CC 21 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E
+3E 4F E8 58 00 00 82 48 B4 21 82 49 B6 21 82 4A
+B8 21 82 4F BA 21 2A 52 82 4A C8 21 30 41 BA 40
+0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 21 30 4D
+82 9F BA 21 66 25 84 12 1E 80 0F 73 74 61 63 6B
+20 6D 69 73 6D 61 74 63 68 21 12 81 3A 89 03 3B
+82 93 BC 21 F4 26 0D 12 84 12 0A 80 56 85 44 88
+E0 89 3C 89 56 85 00 00 12 49 4D 4D 45 44 49 41
+54 45 18 42 B4 21 D8 D3 00 00 30 4D 8E 88 0C 43
+52 45 41 54 45 00 B0 12 84 89 BA 40 86 12 FC FF
+8A 4A FE FF 3A 3D 60 83 0A 44 4F 45 53 3E 1A 42
+B8 21 BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
+7E 89 0E 3A 4E 4F 4E 41 4D 45 30 12 CE 89 2F 83
+8F 4E 00 00 1A 42 C8 21 1A B3 0A 63 0E 4A 39 40
+12 02 08 49 98 3F 18 8A 05 49 53 00 0D 12 82 93
+BC 21 08 20 84 12 10 89 9A 8A 3D 41 BE 4F 02 00
+3E 4F 30 4D 84 12 28 89 0A 80 9C 8A 44 88 56 85
+2E 8A 08 43 4F 44 45 00 B0 12 84 89 A2 82 C8 21
+61 3C 70 85 0E 48 44 4E 43 4F 44 45 B2 40 88 8B
+CC 21 F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12
+84 12 E0 89 E6 8A 3D 41 92 42 D0 21 CC 21 5D 3C
+B2 8A 0E 43 4F 44 45 4E 4E 4D 30 12 BC 8A B7 3F
+00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12
+00 00 BA 40 84 12 02 00 A2 52 C8 21 B2 43 BC 21
+E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 21 1A 42
+C8 21 EF 3F C4 8A 0B 48 49 32 4C 4F A2 53 C8 21
+1A 42 C8 21 8A 4A FE FF 82 43 BC 21 B9 3F 50 8B
+B2 40 62 8B D0 21 82 4E CE 21 30 40 E8 84 85 12
+4E 8B 4E 89 F6 88 E0 8B F2 8A 48 8A 92 85 3C 86
+0E 89 36 8B 88 8A 62 8A FE 89 56 88 6A 8C 94 86
+00 00 00 00 85 12 4E 8B E4 92 68 91 C8 92 90 90
+EC 90 3A 91 16 92 22 92 B2 8F D6 90 00 00 00 00
+24 8B A2 8E 00 00 3E 92 82 8B B2 40 62 8B CE 21
+82 43 D0 21 30 4D 3B 40 0A 00 BA 49 00 00 2A 53
+2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54
+39 40 C8 21 3A 40 42 18 B0 12 B6 8B 30 4D C8 8B
+0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40
+C8 21 B0 12 B6 8B 1A 42 CA 21 3B 40 10 00 09 4A
+08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00
+1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37
+39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40 0E 82
+FE FF 29 83 B9 40 FA 81 FE FF 39 90 AE FF F9 23
+39 40 10 18 B2 49 E0 FF 3B 40 10 00 3A 40 3A 18
+B0 12 BA 8B 82 43 4A 18 C7 3F 5C 8C B2 4E 42 18
+BE 12 3E 4F 3D 41 C0 3F 44 89 0C 4D 41 52 4B 45
+52 00 12 12 C6 21 0D 12 84 12 88 83 DA 85 42 86
+AC 80 88 8C 7C 84 1C 88 8A 8C 3E 4F 3D 41 B2 41
+C6 21 B0 12 84 89 BA 40 85 12 FC FF BA 40 5A 8C
+FE FF 28 83 8A 48 00 00 BA 40 82 80 02 00 A2 52
+C8 21 18 42 B4 21 19 42 B6 21 A8 49 FE FF 89 48
+00 00 30 4D 12 12 C6 21 84 12 DA 85 42 86 AC 80
+F4 8C D4 8C 3C 4E 3C 80 87 12 0A 24 1C 53 02 20
+2E 4E 06 3C BE 90 5A 8C 00 00 01 20 3E 52 2E 83
+21 53 30 41 EC 86 AC 80 FC 8C F0 8C FE 8C B2 41
+C6 21 30 41 92 83 C6 21 3E 40 28 00 0A 4E 3D 15
+B0 12 C4 8C 15 20 3E 40 2B 00 B0 12 C4 8C 06 20
+3E 40 2D 00 B0 12 C4 8C 92 83 C6 21 0E 12 1E 41
+02 00 84 12 DA 85 EC 86 AC 80 20 89 3E 8D 3E 51
+3A 17 30 41 B0 12 04 8D 19 42 C8 21 89 4E 00 00
+A2 53 C8 21 3E 40 29 00 92 53 C6 21 1A 42 C6 21
+3D 15 84 12 DA 85 EC 86 AC 80 76 8D 6E 8D 3E 90
+10 00 E6 2B 7C 2D 78 8D A2 41 C6 21 E1 3F 03 20
+B0 12 5C 8D 43 3C 7A 90 23 00 24 20 B0 12 0C 8D
+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 C8 21 A2 53 C8 21 89 4E 00 00
+3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12
+0C 8D F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12
+58 8D 0C 20 3C D0 10 00 3E 40 2B 00 B0 12 5C 8D
+92 92 C2 21 C6 21 02 24 92 53 C6 21 8E 10 0C 5E
+DF 3F 3C D0 10 00 B0 12 44 8D F2 3F 03 20 B0 12
+5C 8D F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F
+3C D0 80 00 B0 12 44 8D EA 3F 0C 43 1B 42 C8 21
+A2 53 C8 21 3A 40 20 00 19 42 C6 21 19 52 C4 21
+7A 99 FE 27 5A 49 FF FF 19 82 C4 21 82 49 C6 21
+7A 90 52 00 30 4D 00 00 08 52 45 54 49 00 0D 12
+84 12 0A 80 00 13 44 88 56 85 0A 80 2C 00 3A 8E
+7E 8D 88 83 44 8E 1C 8E 8A 8E 3D 41 2C DE 8B 4C
+00 00 9E 3F 00 00 06 4D 4F 56 85 12 7A 8E 00 40
+96 8E 0A 4D 4F 56 2E 42 85 12 7A 8E 40 40 00 00
+06 41 44 44 85 12 7A 8E 00 50 B0 8E 0A 41 44 44
+2E 42 85 12 7A 8E 40 50 BC 8E 08 41 44 44 43 00
+85 12 7A 8E 00 60 CA 8E 0C 41 44 44 43 2E 42 00
+85 12 7A 8E 40 60 02 8B 08 53 55 42 43 00 85 12
+7A 8E 00 70 E8 8E 0C 53 55 42 43 2E 42 00 85 12
+7A 8E 40 70 F6 8E 06 53 55 42 85 12 7A 8E 00 80
+06 8F 0A 53 55 42 2E 42 85 12 7A 8E 40 80 12 8F
+06 43 4D 50 85 12 7A 8E 00 90 20 8F 0A 43 4D 50
+2E 42 85 12 7A 8E 40 90 00 00 08 44 41 44 44 00
+85 12 7A 8E 00 A0 3A 8F 0C 44 41 44 44 2E 42 00
+85 12 7A 8E 40 A0 68 8E 06 42 49 54 85 12 7A 8E
+00 B0 58 8F 0A 42 49 54 2E 42 85 12 7A 8E 40 B0
+64 8F 06 42 49 43 85 12 7A 8E 00 C0 72 8F 0A 42
+49 43 2E 42 85 12 7A 8E 40 C0 7E 8F 06 42 49 53
+85 12 7A 8E 00 D0 8C 8F 0A 42 49 53 2E 42 85 12
+7A 8E 40 D0 00 00 06 58 4F 52 85 12 7A 8E 00 E0
+A6 8F 0A 58 4F 52 2E 42 85 12 7A 8E 40 E0 D8 8E
+06 41 4E 44 85 12 7A 8E 00 F0 C0 8F 0A 41 4E 44
+2E 42 85 12 7A 8E 40 F0 88 83 3A 8E 7E 8D E0 8F
+0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F
+98 8F 06 52 52 43 85 12 D8 8F 00 10 F2 8F 0A 52
+52 43 2E 42 85 12 D8 8F 40 10 2C 8F 08 53 57 50
+42 00 85 12 D8 8F 80 10 FE 8F 06 52 52 41 85 12
+D8 8F 00 11 1A 90 0A 52 52 41 2E 42 85 12 D8 8F
+40 11 0C 90 06 53 58 54 85 12 D8 8F 80 11 00 00
+08 50 55 53 48 00 85 12 D8 8F 00 12 40 90 0C 50
+55 53 48 2E 42 00 85 12 D8 8F 40 12 34 90 08 43
+41 4C 4C 00 85 12 D8 8F 80 12 1A 53 0E 4A 84 12
+CA 85 1E 80 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
+64 73 12 81 5E 90 06 53 3E 3D 86 12 00 38 86 90
+04 53 3C 00 86 12 00 34 4E 90 06 30 3E 3D 86 12
+00 30 9A 90 04 30 3C 00 86 12 00 30 D6 8A 04 55
+3C 00 86 12 00 2C AE 90 06 55 3E 3D 86 12 00 28
+A4 90 06 30 3C 3E 86 12 00 24 C2 90 04 30 3D 00
+86 12 00 20 00 00 04 49 46 00 1A 42 C8 21 8A 4E
+00 00 A2 53 C8 21 0E 4A 30 4D 48 8F 08 54 48 45
+4E 00 1A 42 C8 21 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D B8 90
+08 45 4C 53 45 00 1A 42 C8 21 BA 40 00 3C 00 00
+A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F 26 90 0A 42
+45 47 49 4E 30 40 32 80 10 91 0A 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83 0A 89 0A 11
+3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C8 21 30 4D CC 8F 0A 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12
+84 12 DA 90 70 84 56 85 2E 91 0C 52 45 50 45 41
+54 00 0D 12 84 12 6E 91 F2 90 56 85 9E 91 3D 41
+08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42 C8 21
+00 00 30 4D 8A 91 06 42 57 31 85 12 9C 91 00 00
+B6 91 06 42 57 32 85 12 9C 91 00 00 C2 91 06 42
+57 33 85 12 9C 91 00 00 DA 91 3D 41 1A 42 C8 21
+28 4E 8E 43 00 00 B2 92 C6 21 86 2B BA 4F 00 00
+A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D 00 00 06 46
+57 31 85 12 D8 91 00 00 FE 91 06 46 57 32 85 12
+D8 91 00 00 0A 92 06 46 57 33 85 12 D8 91 00 00
+78 91 08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C 0D 12 84 12 10 89 1C 88 56 85 00 00 0A 3F
+47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
+00 10 EF 27 3E E0 00 08 EC 3F 44 8E 0A 80 2C 00
+DA 85 EC 86 AC 80 20 89 88 83 3A 8E 1C 8E 70 92
+0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E
+AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E CE 91 08 52
+52 43 4D 00 85 12 5A 92 50 00 9E 92 08 52 52 41
+4D 00 85 12 5A 92 50 01 AC 92 08 52 4C 41 4D 00
+85 12 5A 92 50 02 BA 92 08 52 52 55 4D 00 85 12
+5A 92 50 03 CC 90 0A 50 55 53 48 4D 85 12 5A 92
+00 15 D6 92 08 50 4F 50 4D 00 85 12 5A 92 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-82 82 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 08 8D
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+B0 82 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 0E 82
 q
diff --git a/binaries/MSP_EXP430FR2355_1MHz_UART.txt b/binaries/MSP_EXP430FR2355_1MHz_UART.txt
deleted file mode 100644 (file)
index 601cd93..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF F4 93 02 8C 34 01
-10 00 41 B3 94 81 AA 80 DA 81 9C 81 94 82 F4 93
-02 8C 7A 82 92 83 24 83 FE 82 3C 21 60 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
-@8000
-B0 12 DA 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 78 82 B2 49 90 83 B2 49 22 83 B2 49 FC 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 81 92 C3 9C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-9C 05 F3 23 B0 12 F8 80 0A 80 DE 21 E0 83 32 83
-14 80 04 1B 5B 37 6D 00 5C 83 A8 83 34 80 86 81
-14 80 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 83 A0 84 5C 83 14 80 04 1B 5B 30 6D 00
-5C 83 28 88 92 B3 8A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 80 05 92 42 02 18 86 05 92 42 04 18
-88 05 F2 D0 0C 00 2B 02 92 C3 80 05 92 D3 9A 05
-92 C3 30 01 30 41 09 3C A2 B3 9C 05 FD 27 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 A2 B3 9C 05 FD 27
-B2 40 11 00 8E 05 D2 C3 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 81 E2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 81 04 57 41 52 4D 00 B0 12
-9C 81 84 12 14 80 07 0D 0A 1B 5B 37 6D 23 5C 83
-D6 84 14 80 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 5C 83
-0A 80 40 FF 28 80 D4 83 A0 84 14 80 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 80 86 81 00 00 06 41
-43 43 45 50 54 00 30 40 7A 82 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 82 3C 40 D2 82
-5D 15 B6 3E 21 52 3A 17 58 42 8C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 8E 05 30 4D C8 82 2D 83 92 B3 9C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 9C 05
-FD 27 58 42 8C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 82 2F 83
-8F 4E 00 00 B0 12 DA 81 92 B3 9C 05 FD 27 1E 42
-8C 05 B0 12 C8 81 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 83 08 4E 3E 4F C8 3F 1A 83 04 45 43 48
-4F 00 B2 40 C2 48 C0 82 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 82 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 83 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 83 7A 83 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 81 02 43 52 00 30 40
-92 83 0D 12 84 12 14 80 02 0D 0A 00 5C 83 60 84
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 82 01 40
-2E 4E 30 4D DE 83 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A 83 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E 80 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 1A 84 02 23 53 00 0D 12
-84 12 1C 84 56 84 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 84 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 83 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 84 4E 84 EE 80 8E 84 6A 84 5C 83 14 88 20 83
-60 84 40 83 01 2E 0E 93 E3 37 38 43 E2 3F 88 84
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80
-5A 87 0A 80 22 00 2C 85 FA 84 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 84 82 2E 22 00 0D 12 84 12 E4 84 0A 80 5C 83
-5A 87 60 84 18 82 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 80 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80
-30 4D 00 00 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 AE 86
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 86
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 87 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 84 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 80 14 88 2C 85 D0 87
-9C 26 3D 40 D8 87 DE 3E DA 87 0A 4E 3E 4F 3D 40
-F4 87 36 27 3D 40 CA 87 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 87 3E 4F 3D 40 CA 87 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 89
-CC 3F FE 87 86 12 20 00 E6 83 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E 83
-BC 80 C4 87 C4 83 F6 83 14 80 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80
-FE 83 14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 81 3A 80 3E 88 1A 88 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 84 0A 80 2A 81 5A 87 60 84 8E 85
-01 27 0D 12 84 12 14 88 2C 85 94 85 34 80 12 88
-60 84 00 00 83 5B 27 5D 0D 12 84 12 92 88 0A 80
-0A 80 5A 87 5A 87 60 84 A4 88 81 5B 82 43 BE 21
-30 4D 0C 84 01 5D B2 43 BE 21 30 4D C4 88 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 88 2C 85 94 85 A8 83
-34 80 12 88 F6 83 34 80 06 89 0A 80 0A 80 5A 87
-5A 87 0A 80 5A 87 5A 87 60 84 BA 88 01 3A 30 12
-56 89 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 88
-2C 85 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 81 0C 89 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A 80 60 84 5A 87 68 89 BC 88
-60 84 BA 87 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 87 06 43 52 45
-41 54 45 00 B0 12 12 89 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 89 04 43 4F 44 45 00 B0 12 12 89
-A2 82 C6 21 0D 12 84 12 04 8C DE 8B 60 84 B4 89
-07 48 44 4E 43 4F 44 45 B2 40 E2 8B DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 89
-1E 8C 3C 8C 60 84 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E 8C 3C 8C 60 84
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 8A 85 48 49 32 4C 4F 0D 12 84 12 28 80
-AC 8B 5A 87 BC 88 F4 89 60 84 9A 89 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 8A 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 80 00 00 D8 83 14 88 2C 85
-AA 87 A0 83 34 80 14 8B AE 83 14 80 06 5B 54 48
-45 4E 5D 00 86 8A EE 8A AA 8A CC 8A 60 84 AE 83
-14 80 06 5B 45 4C 53 45 5D 00 86 8A 04 8B AA 8A
-CA 8A 60 84 14 80 04 5B 49 46 5D 00 86 8A CC 8A
-3A 80 CA 8A 82 83 14 80 05 0D 0A 6B 6F 20 5C 83
-BC 80 AC 80 3A 80 CC 8A BA 8A 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 8B 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 88 2C 85
-94 85 38 8B 60 84 3E 8B 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 8B F0 83 60 84 70 8B
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 87
-06 4D 41 52 4B 45 52 00 B0 12 12 89 BA 40 85 12
-FC FF BA 40 6E 8B FE FF 28 83 8A 48 00 00 BA 40
-AA 80 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A 80 CA 21 E8 83 60 84 85 12 B0 8B 78 88 E6 89
-2C 83 90 88 64 8A F6 82 80 8B 12 85 A8 8C BC 8C
-9C 84 26 85 00 00 58 8B CE 88 F4 85 00 00 85 12
-B0 8B 6A 92 D0 92 12 92 20 93 D8 91 00 00 A4 8F
-00 00 E8 93 CC 93 3C 92 7A 92 B4 90 00 00 00 00
-3C 93 DC 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 8B 36 8C 3C 8C 4C 8C 1A 42 20 18
-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
-DA 88 09 50 57 52 5F 53 54 41 54 45 85 12 44 8C
-F4 93 E0 84 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 8C F3 3F 82 8C 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 8C 30 4D 94 8C 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 8D FE FF 29 83
-B9 40 02 82 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 82 B2 49 FA 80 B2 49 02 80 B2 49 20 82
-B2 49 E2 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
-26 02 B2 43 22 02 F2 D3 47 02 F2 40 BF 00 43 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 82 43 88 01 F2 D0 C0 00
-0D 02 39 40 5C 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 80 1E 82 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 2C 85 94 85 F0 83 34 80 E4 8D 50 86 34 80
-FE 8D F8 8D E6 8D 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 00 8E
-B2 41 C4 21 3E 41 84 12 0A 80 2B 00 2C 85 94 85
-F0 83 34 80 1C 8E 50 86 34 80 12 88 BA 83 2C 85
-50 86 34 80 12 88 28 8E 3E 5F E7 3F 3E 40 28 00
-B0 12 C8 8D 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 80 89
-1C 15 12 12 C4 21 92 53 C4 21 84 12 2C 85 50 86
-34 80 70 8E 66 8E 21 53 3E 90 10 00 C6 2B 7F 2D
-72 8E B2 41 C4 21 C1 3F 0D 12 84 12 14 88 A4 8D
-82 8E 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 C8 8D 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 C8 8D ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 50 8E 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 50 8E 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 50 8E FA 23
-3C 50 10 00 B0 12 2C 8E EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 14 88 A4 8D 4E 8F FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 50 8E E0 23 3C 50 80 00 B0 12 2C 8E DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A 80 00 13
-5A 87 60 84 0A 80 2C 00 78 8E 44 8F 8E 8F 09 4B
-2E 4E 0E DC A2 3F 52 8A 03 4D 4F 56 85 12 84 8F
-00 40 98 8F 05 4D 4F 56 2E 42 85 12 84 8F 40 40
-00 00 03 41 44 44 85 12 84 8F 00 50 B2 8F 05 41
-44 44 2E 42 85 12 84 8F 40 50 BE 8F 04 41 44 44
-43 00 85 12 84 8F 00 60 CC 8F 06 41 44 44 43 2E
-42 00 85 12 84 8F 40 60 72 8F 04 53 55 42 43 00
-85 12 84 8F 00 70 EA 8F 06 53 55 42 43 2E 42 00
-85 12 84 8F 40 70 F8 8F 03 53 55 42 85 12 84 8F
-00 80 08 90 05 53 55 42 2E 42 85 12 84 8F 40 80
-28 8A 03 43 4D 50 85 12 84 8F 00 90 22 90 05 43
-4D 50 2E 42 85 12 84 8F 40 90 12 8A 04 44 41 44
-44 00 85 12 84 8F 00 A0 3C 90 06 44 41 44 44 2E
-42 00 85 12 84 8F 40 A0 2E 90 03 42 49 54 85 12
-84 8F 00 B0 5A 90 05 42 49 54 2E 42 85 12 84 8F
-40 B0 66 90 03 42 49 43 85 12 84 8F 00 C0 74 90
-05 42 49 43 2E 42 85 12 84 8F 40 C0 80 90 03 42
-49 53 85 12 84 8F 00 D0 8E 90 05 42 49 53 2E 42
-85 12 84 8F 40 D0 00 00 03 58 4F 52 85 12 84 8F
-00 E0 A8 90 05 58 4F 52 2E 42 85 12 84 8F 40 E0
-DA 8F 03 41 4E 44 85 12 84 8F 00 F0 C2 90 05 41
-4E 44 2E 42 85 12 84 8F 40 F0 14 88 78 8E E0 90
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-14 90 03 52 52 43 85 12 DA 90 00 10 F2 90 05 52
-52 43 2E 42 85 12 DA 90 40 10 FE 90 04 53 57 50
-42 00 85 12 DA 90 80 10 0C 91 03 52 52 41 85 12
-DA 90 00 11 1A 91 05 52 52 41 2E 42 85 12 DA 90
-40 11 26 91 03 53 58 54 85 12 DA 90 80 11 00 00
-04 50 55 53 48 00 85 12 DA 90 00 12 40 91 06 50
-55 53 48 2E 42 00 85 12 DA 90 40 12 9A 90 04 43
-41 4C 4C 00 85 12 DA 90 80 12 1A 53 0E 4A 0D 12
-84 12 D6 84 14 80 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 81 34 91 03 53 3E 3D 86 12 00 38
-88 91 02 53 3C 00 86 12 00 34 4E 91 03 30 3E 3D
-86 12 00 30 9C 91 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C B0 91 03 55 3E 3D 86 12
-00 28 A6 91 03 30 3C 3E 86 12 00 24 C4 91 02 30
-3D 00 86 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 BA 91 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 B1 2F 88 DA 00 00 30 4D
-4A 90 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 5E 91
-05 42 45 47 49 4E 30 40 28 80 EE 91 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D CE 90 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 DC 91 BA 83 60 84 92 91 06 52 45 50
-45 41 54 00 0D 12 84 12 70 92 F4 91 60 84 A0 92
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 30 92 03 42 57 31 85 12 9E 92
-00 00 B8 92 03 42 57 32 85 12 9E 92 00 00 C4 92
-03 42 57 33 85 12 9E 92 00 00 DC 92 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 DA 92 00 00 FC 92 03 46 57 32 85 12 DA 92
-00 00 08 93 03 46 57 33 85 12 DA 92 00 00 14 93
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 92 88 EE 87 60 84 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 14 88 A4 8D 5E 93 92 53
-C4 21 3E 40 2C 00 84 12 2C 85 50 86 34 80 12 88
-3A 8F 74 93 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-8C 92 04 52 52 43 4D 00 85 12 58 93 50 00 A2 93
-04 52 52 41 4D 00 85 12 58 93 50 01 B0 93 04 52
-4C 41 4D 00 85 12 58 93 50 02 BE 93 04 52 52 55
-4D 00 85 12 58 93 50 03 CE 91 05 50 55 53 48 4D
-85 12 58 93 00 15 DA 93 04 50 4F 50 4D 00 85 12
-58 93 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 94 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 1A 8D
-q
diff --git a/binaries/MSP_EXP430FR2355_24MHz_115200.txt b/binaries/MSP_EXP430FR2355_24MHz_115200.txt
new file mode 100644 (file)
index 0000000..9a11363
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+C0 5D 0D 00 01 49 18 00 FD FF 35 01 10 00 A1 59
+CC 82 7E 81 84 81 54 81 3C 83 2A 93 E2 8B 9C 8B
+9C 8B B2 82 70 83 38 83 3C 21 E0 20 90 85 B6 80
+C4 80 AC 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+3C 83 2A 93 E2 8B 9C 8B 9C 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 01 3D 0E 93 3E 4F
+96 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B0 82 B2 49
+6E 83 B2 49 36 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 56 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3C 83 92 C3 9C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 9C 05 F3 23
+B0 12 D0 80 B6 84 AC 80 52 81 7E 83 1E 80 04 1B
+5B 37 6D 00 A0 83 A0 83 1E 80 04 1B 5B 30 6D 00
+A0 83 EC 88 B0 12 7E 81 B2 40 81 00 80 05 92 42
+02 18 86 05 92 42 04 18 88 05 F2 D0 0C 00 2B 02
+92 C3 80 05 92 D3 9A 05 92 C3 30 01 30 41 92 B3
+8A 05 FD 23 30 41 92 12 3E 18 84 12 7E 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 A0 83 04 86 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A0 83 0A 80 40 FF 32 80
+CC 84 D0 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
+26 02 B2 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 F2 D0 C0 00 0D 02
+F2 C3 82 01 F2 D0 0E 00 82 01 B2 40 DC 02 84 01
+39 40 5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23
+39 40 00 10 29 83 89 43 00 20 FC 23 19 42 5E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 80 86 81 00 00 0C 41 43 43 45 50 54 00 30 40
+B2 82 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 10 83 3C 40 1C 83 5D 15 9A 3E 21 52 3A 17
+58 42 8C 05 48 9B 09 20 A2 B3 9C 05 FD 27 B2 40
+13 00 8E 05 D2 D3 03 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 9C 05 FD 27 C2 48 8E 05 30 4D
+12 83 2D 83 92 B3 9C 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 9C 05 FD 27 58 42 8C 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 38 83 30 12 4E 83 A2 B3 9C 05
+FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 2F 83
+8F 4E 00 00 92 B3 9C 05 FD 27 B0 12 D8 82 1E 42
+8C 05 30 4D 00 00 08 45 4D 49 54 00 30 40 70 83
+08 4E 3E 4F C7 3F 66 83 08 45 43 48 4F 00 B2 40
+C2 48 0A 83 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 0A 83 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 B0 83 29 4F 8F 4E 00 00 7E 49 DE 3F
+B2 83 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+70 22 F9 98 00 00 6D 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 64 22 9B 24 30 83 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A 80 00 00 D0 84
+C2 83 14 86 CE 88 B0 80 3E 84 14 80 06 5B 54 48
+45 4E 5D 00 C6 83 1C 84 E2 83 00 84 14 80 06 5B
+45 4C 53 45 5D 00 C6 83 2E 84 E2 83 FE 83 1E 80
+04 5B 49 46 5D 00 C6 83 00 84 B2 80 FE 83 1E 80
+05 0D 6B 6F 20 0A A0 83 9A 80 84 80 B2 80 00 84
+EE 83 0D 5B 54 48 45 4E 5D 00 30 4D 52 84 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 5E 84 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C2 83 14 86
+7C 86 20 88 90 85 6E 84 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 C2 83 14 86 7C 86 A0 84
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D A6 82 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 81 05 53 22 00 82 43
+C0 21 0D 12 84 12 0A 80 1E 80 7E 88 0A 80 22 00
+14 86 14 85 B2 40 20 00 C0 21 1A 53 1A B3 82 6A
+C8 21 3E 4F 3D 41 30 4D 88 83 05 2E 22 00 0D 12
+84 12 FE 84 0A 80 A0 83 7E 88 90 85 00 00 04 3C
+23 00 B2 40 B2 21 B2 21 30 4D FA 84 02 23 1B 42
+BE 21 2C 4F 2F 83 B0 12 46 80 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 4C 85 04 23 53 00
+0D 12 84 12 4E 85 88 85 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 7C 85 04 23 3E 00 9F 42 B2 21 00 00
+3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 96 85 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 78 83 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 42 85
+C2 83 B0 85 80 85 AC 84 BE 85 9A 85 A0 83 90 85
+2A 85 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D 02 86 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40
+86 87 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 88 87 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 3E 85 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 80 C2 83 14 86 B0 80 58 89 7C 86
+42 88 0A 4E 3E 4F 3D 40 5C 88 6D 27 3D 40 36 88
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 5E 88 3E 4F
+3D 40 36 88 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 34 8A 2A 3C 26 88 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 7C 88
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A 80 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D B8 85 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D DE 84 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E 80 02 0D 0A 00 A0 83 94 80 30 88
+BE 84 E8 84 1E 80 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 81 32 80 0A 80 40 FF F0 84 1E 80 09 46
+52 41 4D 20 66 75 6C 6C 08 81 B2 80 F4 88 DE 88
+0D 41 42 4F 52 54 22 00 0D 12 84 12 FE 84 0A 80
+08 81 7E 88 90 85 0E 86 02 27 0D 12 84 12 C2 83
+14 86 7C 86 B0 80 5A 89 22 85 66 88 88 84 07 5B
+27 5D 0D 12 84 12 4A 89 0A 80 0A 80 7E 88 7E 88
+90 85 5E 89 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D D6 84 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 C2 83 14 86 7C 86 B0 80 5A 89
+E8 84 AC 80 B2 89 0A 80 0A 80 7E 88 7E 88 0A 80
+7E 88 7E 88 90 85 00 00 02 3A 30 12 08 8A 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 C2 83 14 86 D0 89
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 81 74 89 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A 80 90 85 7E 88 1A 8A 76 89 90 85
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D C8 88 0C 43 52 45 41 54 45 00
+B0 12 BE 89 BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+9A 83 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D B8 89 0E 3A 4E 4F
+4E 41 4D 45 30 12 08 8A 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+52 8A 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+4A 89 D4 8A 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+62 89 0A 80 D6 8A 7E 88 90 85 68 8A 08 43 4F 44
+45 00 B0 12 BE 89 A2 82 C8 21 61 3C AA 85 0E 48
+44 4E 43 4F 44 45 B2 40 C2 8B CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 1A 8A 20 8B
+3D 41 92 42 D0 21 CC 21 5D 3C EC 8A 0E 43 4F 44
+45 4E 4E 4D 30 12 F6 8A B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F FE 8A
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F 8A 8B B2 40 9C 8B D0 21
+82 4E CE 21 30 40 22 85 85 12 88 8B 88 89 30 89
+1A 8C 2C 8B 82 8A CC 85 76 86 48 89 70 8B C2 8A
+9C 8A 38 8A 90 88 A4 8C CE 86 00 00 00 00 85 12
+88 8B 1E 93 A2 91 02 93 CA 90 26 91 74 91 50 92
+5C 92 EC 8F 10 91 00 00 00 00 5E 8B DC 8E 00 00
+78 92 BC 8B B2 40 9C 8B CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 F0 8B 30 4D 02 8C 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 F0 8B
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 82 FE FF 29 83 B9 40
+F2 81 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+E2 FF 3B 40 10 00 3A 40 3A 18 B0 12 F4 8B 82 43
+4A 18 C7 3F 96 8C B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 7E 89 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 C2 83 14 86 7C 86 AC 80 C2 8C B6 84
+56 88 C4 8C 3E 4F 3D 41 B2 41 C6 21 B0 12 BE 89
+BA 40 85 12 FC FF BA 40 94 8C FE FF 28 83 8A 48
+00 00 BA 40 82 80 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 14 86 7C 86 AC 80 2E 8D 0E 8D 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+94 8C 00 00 01 20 3E 52 2E 83 21 53 30 41 26 87
+AC 80 36 8D 2A 8D 38 8D B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 FE 8C 15 20
+3E 40 2B 00 B0 12 FE 8C 06 20 3E 40 2D 00 B0 12
+FE 8C 92 83 C6 21 0E 12 1E 41 02 00 84 12 14 86
+26 87 AC 80 5A 89 78 8D 3E 51 3A 17 30 41 B0 12
+3E 8D 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 14 86
+26 87 AC 80 B0 8D A8 8D 3E 90 10 00 E6 2B 7C 2D
+B2 8D A2 41 C6 21 E1 3F 03 20 B0 12 96 8D 43 3C
+7A 90 23 00 24 20 B0 12 46 8D 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 46 8D F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 92 8D 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 96 8D 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 7E 8D F2 3F 03 20 B0 12 96 8D F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+7E 8D EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A 80 00 13
+7E 88 90 85 0A 80 2C 00 74 8E B8 8D C2 83 7E 8E
+56 8E C4 8E 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 B4 8E 00 40 D0 8E 0A 4D 4F 56
+2E 42 85 12 B4 8E 40 40 00 00 06 41 44 44 85 12
+B4 8E 00 50 EA 8E 0A 41 44 44 2E 42 85 12 B4 8E
+40 50 F6 8E 08 41 44 44 43 00 85 12 B4 8E 00 60
+04 8F 0C 41 44 44 43 2E 42 00 85 12 B4 8E 40 60
+3C 8B 08 53 55 42 43 00 85 12 B4 8E 00 70 22 8F
+0C 53 55 42 43 2E 42 00 85 12 B4 8E 40 70 30 8F
+06 53 55 42 85 12 B4 8E 00 80 40 8F 0A 53 55 42
+2E 42 85 12 B4 8E 40 80 4C 8F 06 43 4D 50 85 12
+B4 8E 00 90 5A 8F 0A 43 4D 50 2E 42 85 12 B4 8E
+40 90 00 00 08 44 41 44 44 00 85 12 B4 8E 00 A0
+74 8F 0C 44 41 44 44 2E 42 00 85 12 B4 8E 40 A0
+A2 8E 06 42 49 54 85 12 B4 8E 00 B0 92 8F 0A 42
+49 54 2E 42 85 12 B4 8E 40 B0 9E 8F 06 42 49 43
+85 12 B4 8E 00 C0 AC 8F 0A 42 49 43 2E 42 85 12
+B4 8E 40 C0 B8 8F 06 42 49 53 85 12 B4 8E 00 D0
+C6 8F 0A 42 49 53 2E 42 85 12 B4 8E 40 D0 00 00
+06 58 4F 52 85 12 B4 8E 00 E0 E0 8F 0A 58 4F 52
+2E 42 85 12 B4 8E 40 E0 12 8F 06 41 4E 44 85 12
+B4 8E 00 F0 FA 8F 0A 41 4E 44 2E 42 85 12 B4 8E
+40 F0 C2 83 74 8E B8 8D 1A 90 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F D2 8F 06 52 52 43
+85 12 12 90 00 10 2C 90 0A 52 52 43 2E 42 85 12
+12 90 40 10 66 8F 08 53 57 50 42 00 85 12 12 90
+80 10 38 90 06 52 52 41 85 12 12 90 00 11 54 90
+0A 52 52 41 2E 42 85 12 12 90 40 11 46 90 06 53
+58 54 85 12 12 90 80 11 00 00 08 50 55 53 48 00
+85 12 12 90 00 12 7A 90 0C 50 55 53 48 2E 42 00
+85 12 12 90 40 12 6E 90 08 43 41 4C 4C 00 85 12
+12 90 80 12 1A 53 0E 4A 84 12 04 86 1E 80 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 81 98 90
+06 53 3E 3D 86 12 00 38 C0 90 04 53 3C 00 86 12
+00 34 88 90 06 30 3E 3D 86 12 00 30 D4 90 04 30
+3C 00 86 12 00 30 10 8B 04 55 3C 00 86 12 00 2C
+E8 90 06 55 3E 3D 86 12 00 28 DE 90 06 30 3C 3E
+86 12 00 24 FC 90 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D 82 8F 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D F2 90 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F 60 90 0A 42 45 47 49 4E 30 40
+32 80 4A 91 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+06 90 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 14 91 AA 84
+90 85 68 91 0C 52 45 50 45 41 54 00 0D 12 84 12
+A8 91 2C 91 90 85 D8 91 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D C4 91
+06 42 57 31 85 12 D6 91 00 00 F0 91 06 42 57 32
+85 12 D6 91 00 00 FC 91 06 42 57 33 85 12 D6 91
+00 00 14 92 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 12 92
+00 00 38 92 06 46 57 32 85 12 12 92 00 00 44 92
+06 46 57 33 85 12 12 92 00 00 B2 91 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+4A 89 56 88 90 85 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F 7E 8E 0A 80 2C 00 14 86 26 87 AC 80
+5A 89 C2 83 74 8E 56 8E AA 92 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 08 92 08 52 52 43 4D 00 85 12
+94 92 50 00 D8 92 08 52 52 41 4D 00 85 12 94 92
+50 01 E6 92 08 52 4C 41 4D 00 85 12 94 92 50 02
+F4 92 08 52 52 55 4D 00 85 12 94 92 50 03 06 91
+0A 50 55 53 48 4D 85 12 94 92 00 15 10 93 08 50
+4F 50 4D 00 85 12 94 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 CC 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
diff --git a/binaries/MSP_EXP430FR2355_24MHz_6MBds.txt b/binaries/MSP_EXP430FR2355_24MHz_6MBds.txt
new file mode 100644 (file)
index 0000000..c2eb376
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+C0 5D 04 00 00 00 18 00 FD FF 35 01 10 00 A1 59
+CC 82 7E 81 84 81 54 81 3C 83 2A 93 E2 8B 9C 8B
+9C 8B B2 82 70 83 38 83 3C 21 E0 20 90 85 B6 80
+C4 80 AC 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+3C 83 2A 93 E2 8B 9C 8B 9C 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 01 3D 0E 93 3E 4F
+96 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B0 82 B2 49
+6E 83 B2 49 36 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 56 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3C 83 92 C3 9C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 9C 05 F3 23
+B0 12 D0 80 B6 84 AC 80 52 81 7E 83 1E 80 04 1B
+5B 37 6D 00 A0 83 A0 83 1E 80 04 1B 5B 30 6D 00
+A0 83 EC 88 B0 12 7E 81 B2 40 81 00 80 05 92 42
+02 18 86 05 92 42 04 18 88 05 F2 D0 0C 00 2B 02
+92 C3 80 05 92 D3 9A 05 92 C3 30 01 30 41 92 B3
+8A 05 FD 23 30 41 92 12 3E 18 84 12 7E 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 A0 83 04 86 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A0 83 0A 80 40 FF 32 80
+CC 84 D0 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
+26 02 B2 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 F2 D0 C0 00 0D 02
+F2 C3 82 01 F2 D0 0E 00 82 01 B2 40 DC 02 84 01
+39 40 5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23
+39 40 00 10 29 83 89 43 00 20 FC 23 19 42 5E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 80 86 81 00 00 0C 41 43 43 45 50 54 00 30 40
+B2 82 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 10 83 3C 40 1C 83 5D 15 9A 3E 21 52 3A 17
+58 42 8C 05 48 9B 09 20 A2 B3 9C 05 FD 27 B2 40
+13 00 8E 05 D2 D3 03 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 9C 05 FD 27 C2 48 8E 05 30 4D
+12 83 2D 83 92 B3 9C 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 9C 05 FD 27 58 42 8C 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 38 83 30 12 4E 83 A2 B3 9C 05
+FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 2F 83
+8F 4E 00 00 92 B3 9C 05 FD 27 B0 12 D8 82 1E 42
+8C 05 30 4D 00 00 08 45 4D 49 54 00 30 40 70 83
+08 4E 3E 4F C7 3F 66 83 08 45 43 48 4F 00 B2 40
+C2 48 0A 83 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 0A 83 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 B0 83 29 4F 8F 4E 00 00 7E 49 DE 3F
+B2 83 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+70 22 F9 98 00 00 6D 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 64 22 9B 24 30 83 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A 80 00 00 D0 84
+C2 83 14 86 CE 88 B0 80 3E 84 14 80 06 5B 54 48
+45 4E 5D 00 C6 83 1C 84 E2 83 00 84 14 80 06 5B
+45 4C 53 45 5D 00 C6 83 2E 84 E2 83 FE 83 1E 80
+04 5B 49 46 5D 00 C6 83 00 84 B2 80 FE 83 1E 80
+05 0D 6B 6F 20 0A A0 83 9A 80 84 80 B2 80 00 84
+EE 83 0D 5B 54 48 45 4E 5D 00 30 4D 52 84 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 5E 84 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C2 83 14 86
+7C 86 20 88 90 85 6E 84 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 C2 83 14 86 7C 86 A0 84
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D A6 82 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 81 05 53 22 00 82 43
+C0 21 0D 12 84 12 0A 80 1E 80 7E 88 0A 80 22 00
+14 86 14 85 B2 40 20 00 C0 21 1A 53 1A B3 82 6A
+C8 21 3E 4F 3D 41 30 4D 88 83 05 2E 22 00 0D 12
+84 12 FE 84 0A 80 A0 83 7E 88 90 85 00 00 04 3C
+23 00 B2 40 B2 21 B2 21 30 4D FA 84 02 23 1B 42
+BE 21 2C 4F 2F 83 B0 12 46 80 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 4C 85 04 23 53 00
+0D 12 84 12 4E 85 88 85 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 7C 85 04 23 3E 00 9F 42 B2 21 00 00
+3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 96 85 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 78 83 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 42 85
+C2 83 B0 85 80 85 AC 84 BE 85 9A 85 A0 83 90 85
+2A 85 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D 02 86 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40
+86 87 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 88 87 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 3E 85 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 80 C2 83 14 86 B0 80 58 89 7C 86
+42 88 0A 4E 3E 4F 3D 40 5C 88 6D 27 3D 40 36 88
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 5E 88 3E 4F
+3D 40 36 88 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 34 8A 2A 3C 26 88 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 7C 88
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A 80 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D B8 85 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D DE 84 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E 80 02 0D 0A 00 A0 83 94 80 30 88
+BE 84 E8 84 1E 80 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 81 32 80 0A 80 40 FF F0 84 1E 80 09 46
+52 41 4D 20 66 75 6C 6C 08 81 B2 80 F4 88 DE 88
+0D 41 42 4F 52 54 22 00 0D 12 84 12 FE 84 0A 80
+08 81 7E 88 90 85 0E 86 02 27 0D 12 84 12 C2 83
+14 86 7C 86 B0 80 5A 89 22 85 66 88 88 84 07 5B
+27 5D 0D 12 84 12 4A 89 0A 80 0A 80 7E 88 7E 88
+90 85 5E 89 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D D6 84 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 C2 83 14 86 7C 86 B0 80 5A 89
+E8 84 AC 80 B2 89 0A 80 0A 80 7E 88 7E 88 0A 80
+7E 88 7E 88 90 85 00 00 02 3A 30 12 08 8A 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 C2 83 14 86 D0 89
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 81 74 89 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A 80 90 85 7E 88 1A 8A 76 89 90 85
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D C8 88 0C 43 52 45 41 54 45 00
+B0 12 BE 89 BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+9A 83 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D B8 89 0E 3A 4E 4F
+4E 41 4D 45 30 12 08 8A 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+52 8A 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+4A 89 D4 8A 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+62 89 0A 80 D6 8A 7E 88 90 85 68 8A 08 43 4F 44
+45 00 B0 12 BE 89 A2 82 C8 21 61 3C AA 85 0E 48
+44 4E 43 4F 44 45 B2 40 C2 8B CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 1A 8A 20 8B
+3D 41 92 42 D0 21 CC 21 5D 3C EC 8A 0E 43 4F 44
+45 4E 4E 4D 30 12 F6 8A B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F FE 8A
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F 8A 8B B2 40 9C 8B D0 21
+82 4E CE 21 30 40 22 85 85 12 88 8B 88 89 30 89
+1A 8C 2C 8B 82 8A CC 85 76 86 48 89 70 8B C2 8A
+9C 8A 38 8A 90 88 A4 8C CE 86 00 00 00 00 85 12
+88 8B 1E 93 A2 91 02 93 CA 90 26 91 74 91 50 92
+5C 92 EC 8F 10 91 00 00 00 00 5E 8B DC 8E 00 00
+78 92 BC 8B B2 40 9C 8B CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 F0 8B 30 4D 02 8C 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 F0 8B
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 82 FE FF 29 83 B9 40
+F2 81 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+E2 FF 3B 40 10 00 3A 40 3A 18 B0 12 F4 8B 82 43
+4A 18 C7 3F 96 8C B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 7E 89 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 C2 83 14 86 7C 86 AC 80 C2 8C B6 84
+56 88 C4 8C 3E 4F 3D 41 B2 41 C6 21 B0 12 BE 89
+BA 40 85 12 FC FF BA 40 94 8C FE FF 28 83 8A 48
+00 00 BA 40 82 80 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 14 86 7C 86 AC 80 2E 8D 0E 8D 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+94 8C 00 00 01 20 3E 52 2E 83 21 53 30 41 26 87
+AC 80 36 8D 2A 8D 38 8D B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 FE 8C 15 20
+3E 40 2B 00 B0 12 FE 8C 06 20 3E 40 2D 00 B0 12
+FE 8C 92 83 C6 21 0E 12 1E 41 02 00 84 12 14 86
+26 87 AC 80 5A 89 78 8D 3E 51 3A 17 30 41 B0 12
+3E 8D 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 14 86
+26 87 AC 80 B0 8D A8 8D 3E 90 10 00 E6 2B 7C 2D
+B2 8D A2 41 C6 21 E1 3F 03 20 B0 12 96 8D 43 3C
+7A 90 23 00 24 20 B0 12 46 8D 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 46 8D F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 92 8D 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 96 8D 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 7E 8D F2 3F 03 20 B0 12 96 8D F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+7E 8D EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A 80 00 13
+7E 88 90 85 0A 80 2C 00 74 8E B8 8D C2 83 7E 8E
+56 8E C4 8E 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 B4 8E 00 40 D0 8E 0A 4D 4F 56
+2E 42 85 12 B4 8E 40 40 00 00 06 41 44 44 85 12
+B4 8E 00 50 EA 8E 0A 41 44 44 2E 42 85 12 B4 8E
+40 50 F6 8E 08 41 44 44 43 00 85 12 B4 8E 00 60
+04 8F 0C 41 44 44 43 2E 42 00 85 12 B4 8E 40 60
+3C 8B 08 53 55 42 43 00 85 12 B4 8E 00 70 22 8F
+0C 53 55 42 43 2E 42 00 85 12 B4 8E 40 70 30 8F
+06 53 55 42 85 12 B4 8E 00 80 40 8F 0A 53 55 42
+2E 42 85 12 B4 8E 40 80 4C 8F 06 43 4D 50 85 12
+B4 8E 00 90 5A 8F 0A 43 4D 50 2E 42 85 12 B4 8E
+40 90 00 00 08 44 41 44 44 00 85 12 B4 8E 00 A0
+74 8F 0C 44 41 44 44 2E 42 00 85 12 B4 8E 40 A0
+A2 8E 06 42 49 54 85 12 B4 8E 00 B0 92 8F 0A 42
+49 54 2E 42 85 12 B4 8E 40 B0 9E 8F 06 42 49 43
+85 12 B4 8E 00 C0 AC 8F 0A 42 49 43 2E 42 85 12
+B4 8E 40 C0 B8 8F 06 42 49 53 85 12 B4 8E 00 D0
+C6 8F 0A 42 49 53 2E 42 85 12 B4 8E 40 D0 00 00
+06 58 4F 52 85 12 B4 8E 00 E0 E0 8F 0A 58 4F 52
+2E 42 85 12 B4 8E 40 E0 12 8F 06 41 4E 44 85 12
+B4 8E 00 F0 FA 8F 0A 41 4E 44 2E 42 85 12 B4 8E
+40 F0 C2 83 74 8E B8 8D 1A 90 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F D2 8F 06 52 52 43
+85 12 12 90 00 10 2C 90 0A 52 52 43 2E 42 85 12
+12 90 40 10 66 8F 08 53 57 50 42 00 85 12 12 90
+80 10 38 90 06 52 52 41 85 12 12 90 00 11 54 90
+0A 52 52 41 2E 42 85 12 12 90 40 11 46 90 06 53
+58 54 85 12 12 90 80 11 00 00 08 50 55 53 48 00
+85 12 12 90 00 12 7A 90 0C 50 55 53 48 2E 42 00
+85 12 12 90 40 12 6E 90 08 43 41 4C 4C 00 85 12
+12 90 80 12 1A 53 0E 4A 84 12 04 86 1E 80 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 81 98 90
+06 53 3E 3D 86 12 00 38 C0 90 04 53 3C 00 86 12
+00 34 88 90 06 30 3E 3D 86 12 00 30 D4 90 04 30
+3C 00 86 12 00 30 10 8B 04 55 3C 00 86 12 00 2C
+E8 90 06 55 3E 3D 86 12 00 28 DE 90 06 30 3C 3E
+86 12 00 24 FC 90 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D 82 8F 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D F2 90 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F 60 90 0A 42 45 47 49 4E 30 40
+32 80 4A 91 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+06 90 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 14 91 AA 84
+90 85 68 91 0C 52 45 50 45 41 54 00 0D 12 84 12
+A8 91 2C 91 90 85 D8 91 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D C4 91
+06 42 57 31 85 12 D6 91 00 00 F0 91 06 42 57 32
+85 12 D6 91 00 00 FC 91 06 42 57 33 85 12 D6 91
+00 00 14 92 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 12 92
+00 00 38 92 06 46 57 32 85 12 12 92 00 00 44 92
+06 46 57 33 85 12 12 92 00 00 B2 91 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+4A 89 56 88 90 85 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F 7E 8E 0A 80 2C 00 14 86 26 87 AC 80
+5A 89 C2 83 74 8E 56 8E AA 92 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 08 92 08 52 52 43 4D 00 85 12
+94 92 50 00 D8 92 08 52 52 41 4D 00 85 12 94 92
+50 01 E6 92 08 52 4C 41 4D 00 85 12 94 92 50 02
+F4 92 08 52 52 55 4D 00 85 12 94 92 50 03 06 91
+0A 50 55 53 48 4D 85 12 94 92 00 15 10 93 08 50
+4F 50 4D 00 85 12 94 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 CC 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
index aaaec9a..23efc5d 100644 (file)
 @1800
-C0 5D 12 00 00 00 F8 00 F9 FF EE 93 F0 8B 34 01
-10 00 41 87 B6 81 AA 80 B8 81 8C 81 82 82 EE 93
-F0 8B 70 82 80 83 FE 82 DA 82 3C 21 4E 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
+C0 5D 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+C6 82 56 81 56 81 58 81 44 81 06 93 BE 8B 78 8B
+78 8B B4 82 38 83 10 83 3C 21 E0 20 6C 85 B6 80
+C4 80 88 84 20 00 0A 00 00 20 56 81 56 81 58 81
+44 81 06 93 BE 8B 78 8B 78 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @8000
-B0 12 B8 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 6E 82 B2 49 7E 83 B2 49 FC 82 B2 49 D8 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 81 0E 12 B0 12
-F8 80 0A 80 DE 21 CE 83 16 83 EE 80 34 80 8A 81
-14 80 05 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83
-C4 84 96 83 34 80 7E 81 14 80 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 83 8E 84 4A 83
-14 80 04 1B 5B 30 6D 00 4A 83 16 88 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 81 E2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 81 04 57 41 52 4D 00 B0 12
-8C 81 78 40 03 00 B0 12 BA 81 84 12 14 80 07 0D
-0A 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83 C4 84
-0A 80 23 00 FA 82 C4 84 14 80 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 4A 83 0A 80 40 FF 28 80 C2 83 8E 84
-14 80 0A 62 79 74 65 73 20 66 72 65 65 00 3A 80
-7E 81 00 00 06 41 43 43 45 50 54 00 30 40 70 82
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 81 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 82 2F 83 8F 4E 00 00
-58 43 B0 12 BA 81 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 82 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 82
-04 45 43 48 4F 00 B2 40 C2 48 08 83 82 43 DE 21
-38 40 05 00 B0 12 BA 81 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 83 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 83 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 82 68 83 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 81 02 43 52 00 30 40 80 83
-0D 12 84 12 14 80 02 0D 0A 00 4A 83 4E 84 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 82 01 40 2E 4E
-30 4D CC 83 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 83 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E 80 BF 4F 00 00 7A 90 0A 00 02 28
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 02 3D 0E 93 3E 4F
+84 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B2 82 B2 49
+36 83 B2 49 0E 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 32 8C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 81 B0 12 D0 80 92 84 AC 80
+42 81 50 83 1E 80 05 1B 5B 37 6D 40 7C 83 0A 80
+02 18 B4 84 E0 85 7C 83 1E 80 04 1B 5B 30 6D 00
+7C 83 C8 88 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 50 83 1E 80 07 0D 0A 1B 5B 37
+6D 40 7C 83 0A 80 02 18 B4 84 E0 85 0A 80 23 00
+34 83 E0 85 1E 80 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+7C 83 0A 80 40 FF 32 80 A8 84 AC 85 1E 80 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 80 36 81 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 81 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 D3 06 02 B2 40 FE FF
+02 02 B2 D3 26 02 B2 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 F2 D0
+C0 00 0D 02 F2 C3 82 01 F2 D0 0E 00 82 01 B2 40
+DC 02 84 01 39 40 5C 00 18 42 00 18 18 83 FE 23
+19 83 FA 23 39 40 00 10 29 83 89 43 00 20 FC 23
+1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01
+B0 12 D0 80 80 81 00 00 0C 41 43 43 45 50 54 00
+30 40 B4 82 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40
+20 00 3D 15 9D 3E 21 52 A2 C2 6C 05 B2 B0 10 00
+40 05 96 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05
+48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27
+1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F
+3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40 10 83
+58 43 B0 12 46 81 2F 83 8F 4E 00 00 92 B3 6C 05
+FD 27 1E 42 4C 05 B0 12 44 81 30 4D 00 00 08 45
+4D 49 54 00 30 40 38 83 08 4E 3E 4F A2 B3 6C 05
+FD 27 C2 48 4E 05 30 4D 2E 83 08 45 43 48 4F 00
+B2 40 C2 48 42 83 38 40 05 00 B0 12 46 81 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 42 83
+28 42 F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40
+8C 83 29 4F 8F 4E 00 00 7E 49 D4 3F 8E 83 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 82 22 F9 98
+00 00 7F 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 76 22 9B 24 08 83 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A 80 00 00 AC 84 9E 83 F0 85
+AA 88 B0 80 1A 84 14 80 06 5B 54 48 45 4E 5D 00
+A2 83 F8 83 BE 83 DC 83 14 80 06 5B 45 4C 53 45
+5D 00 A2 83 0A 84 BE 83 DA 83 1E 80 04 5B 49 46
+5D 00 A2 83 DC 83 B2 80 DA 83 1E 80 05 0D 6B 6F
+20 0A 7C 83 9A 80 84 80 B2 80 DC 83 CA 83 0D 5B
+54 48 45 4E 5D 00 30 4D 2E 84 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 3A 84 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 9E 83 F0 85 58 86 FC 87
+6C 85 4A 84 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 9E 83 F0 85 58 86 7C 84 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D A8 82 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D E0 81 05 53 22 00 82 43 C0 21 0D 12
+84 12 0A 80 1E 80 5A 88 0A 80 22 00 F0 85 F0 84
+B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F
+3D 41 30 4D 62 83 05 2E 22 00 0D 12 84 12 DA 84
+0A 80 7C 83 5A 88 6C 85 00 00 04 3C 23 00 B2 40
+B2 21 B2 21 30 4D D6 84 02 23 1B 42 BE 21 2C 4F
+2F 83 B0 12 46 80 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 08 84 02 23 53 00 0D 12 84 12
-0A 84 44 84 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 84 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 83 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 83
-3C 84 EE 80 7C 84 58 84 4A 83 02 88 FA 82 4E 84
-2C 83 01 2E 0E 93 E3 37 38 43 E2 3F 76 84 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80 48 87
-0A 80 22 00 1A 85 E8 84 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 84
-82 2E 22 00 0D 12 84 12 D2 84 0A 80 4A 83 48 87
-4E 84 F8 81 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 80 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80 30 4D
-00 00 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 9C 86 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 86 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 84 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 80 02 88 1A 85 BE 87 9C 26
-3D 40 C6 87 DE 3E C8 87 0A 4E 3E 4F 3D 40 E2 87
-36 27 3D 40 B8 87 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 87 3E 4F 3D 40 B8 87 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 89 CC 3F
-EC 87 86 12 20 00 D4 83 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C 83 BC 80
-B2 87 B2 83 E4 83 14 80 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80 EC 83
-14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 81
-3A 80 2C 88 08 88 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 84 0A 80 2A 81 48 87 4E 84 7C 85 01 27
-0D 12 84 12 02 88 1A 85 82 85 34 80 00 88 4E 84
-00 00 83 5B 27 5D 0D 12 84 12 80 88 0A 80 0A 80
-48 87 48 87 4E 84 92 88 81 5B 82 43 BE 21 30 4D
-FA 83 01 5D B2 43 BE 21 30 4D B2 88 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 88 1A 85 82 85 96 83 34 80
-00 88 E4 83 34 80 F4 88 0A 80 0A 80 48 87 48 87
-0A 80 48 87 48 87 4E 84 A8 88 01 3A 30 12 44 89
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 88 1A 85
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 81 FA 88 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A 80 4E 84 48 87 56 89 AA 88 4E 84
-A8 87 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 87 06 43 52 45 41 54
-45 00 B0 12 00 89 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 89 04 43 4F 44 45 00 B0 12 00 89 A2 82
-C6 21 0D 12 84 12 F2 8B CC 8B 4E 84 A2 89 07 48
-44 4E 43 4F 44 45 B2 40 D0 8B DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 89 0C 8C
-2A 8C 4E 84 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C 8C 2A 8C 4E 84 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE 89 85 48 49 32 4C 4F 0D 12 84 12 28 80 9A 8B
-48 87 AA 88 E2 89 4E 84 88 89 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 8A 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 80 00 00 C6 83 02 88 1A 85 98 87
-8E 83 34 80 02 8B 9C 83 14 80 06 5B 54 48 45 4E
-5D 00 74 8A DC 8A 98 8A BA 8A 4E 84 9C 83 14 80
-06 5B 45 4C 53 45 5D 00 74 8A F2 8A 98 8A B8 8A
-4E 84 14 80 04 5B 49 46 5D 00 74 8A BA 8A 3A 80
-B8 8A 70 83 14 80 05 0D 0A 6B 6F 20 4A 83 BC 80
-AC 80 3A 80 BA 8A A8 8A 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 8B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 88 1A 85 82 85
-26 8B 4E 84 2C 8B 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 8B DE 83 4E 84 5E 8B B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 87 06 4D
-41 52 4B 45 52 00 B0 12 00 89 BA 40 85 12 FC FF
-BA 40 5C 8B FE FF 28 83 8A 48 00 00 BA 40 AA 80
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A 80
-CA 21 D6 83 4E 84 85 12 9E 8B 66 88 D4 89 10 83
-7E 88 52 8A D2 82 6E 8B 00 85 96 8C AA 8C 8A 84
-14 85 00 00 46 8B BC 88 E2 85 00 00 85 12 9E 8B
-64 92 CA 92 0C 92 1A 93 D2 91 00 00 9E 8F 00 00
-E2 93 C6 93 36 92 74 92 AE 90 00 00 00 00 36 93
-CA 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 8B 24 8C 2A 8C 3A 8C 1A 42 20 18 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 C8 88
-09 50 57 52 5F 53 54 41 54 45 85 12 32 8C EE 93
-CE 84 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 8C F3 3F 70 8C 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E 8C 30 4D 82 8C 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 8D FE FF 29 83 B9 40
-E2 81 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 81 B2 49 FA 80 B2 49 02 80 B2 49 00 82 B2 49
-E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 10 29 83 89 43 00 20 FC 23 B2 D3
-06 02 B2 40 FE FF 02 02 B2 D3 26 02 B2 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
-B2 40 FF 1E 80 01 B2 40 BE 00 82 01 B2 40 DC 02
-84 01 82 43 88 01 F2 D0 C0 00 0D 02 39 40 5C 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 1E 42 08 18
-82 43 08 18 1E D2 5E 01 B0 12 F8 80 FE 81 38 40
-C0 21 0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21
-30 4D 1C 15 0E 12 12 12 C4 21 84 12 1A 85 82 85
-DE 83 34 80 DE 8D 3E 86 34 80 F8 8D F2 8D E0 8D
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 FA 8D B2 41 C4 21 3E 41
-84 12 0A 80 2B 00 1A 85 82 85 DE 83 34 80 16 8E
-3E 86 34 80 00 88 A8 83 1A 85 3E 86 34 80 00 88
-22 8E 3E 5F E7 3F 3E 40 28 00 B0 12 C2 8D 19 42
-C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92
-C0 21 C4 21 02 20 30 40 6E 89 1C 15 12 12 C4 21
-92 53 C4 21 84 12 1A 85 3E 86 34 80 6A 8E 60 8E
-21 53 3E 90 10 00 C6 2B 7F 2D 6C 8E B2 41 C4 21
-C1 3F 0D 12 84 12 02 88 9E 8D 7C 8E 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 8D 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 8D
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
-B0 12 4A 8E 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-4A 8E 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
-0C 5E DA 3F B0 12 4A 8E FA 23 3C 50 10 00 B0 12
-26 8E EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12
-84 12 02 88 9E 8D 48 8F FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 4A 8E E0 23
-3C 50 80 00 B0 12 26 8E DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 80 00 13 48 87 4E 84 0A 80
-2C 00 72 8E 3E 8F 88 8F 09 4B 2E 4E 0E DC A2 3F
-40 8A 03 4D 4F 56 85 12 7E 8F 00 40 92 8F 05 4D
-4F 56 2E 42 85 12 7E 8F 40 40 00 00 03 41 44 44
-85 12 7E 8F 00 50 AC 8F 05 41 44 44 2E 42 85 12
-7E 8F 40 50 B8 8F 04 41 44 44 43 00 85 12 7E 8F
-00 60 C6 8F 06 41 44 44 43 2E 42 00 85 12 7E 8F
-40 60 6C 8F 04 53 55 42 43 00 85 12 7E 8F 00 70
-E4 8F 06 53 55 42 43 2E 42 00 85 12 7E 8F 40 70
-F2 8F 03 53 55 42 85 12 7E 8F 00 80 02 90 05 53
-55 42 2E 42 85 12 7E 8F 40 80 16 8A 03 43 4D 50
-85 12 7E 8F 00 90 1C 90 05 43 4D 50 2E 42 85 12
-7E 8F 40 90 00 8A 04 44 41 44 44 00 85 12 7E 8F
-00 A0 36 90 06 44 41 44 44 2E 42 00 85 12 7E 8F
-40 A0 28 90 03 42 49 54 85 12 7E 8F 00 B0 54 90
-05 42 49 54 2E 42 85 12 7E 8F 40 B0 60 90 03 42
-49 43 85 12 7E 8F 00 C0 6E 90 05 42 49 43 2E 42
-85 12 7E 8F 40 C0 7A 90 03 42 49 53 85 12 7E 8F
-00 D0 88 90 05 42 49 53 2E 42 85 12 7E 8F 40 D0
-00 00 03 58 4F 52 85 12 7E 8F 00 E0 A2 90 05 58
-4F 52 2E 42 85 12 7E 8F 40 E0 D4 8F 03 41 4E 44
-85 12 7E 8F 00 F0 BC 90 05 41 4E 44 2E 42 85 12
-7E 8F 40 F0 02 88 72 8E DA 90 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 0E 90 03 52 52 43
-85 12 D4 90 00 10 EC 90 05 52 52 43 2E 42 85 12
-D4 90 40 10 F8 90 04 53 57 50 42 00 85 12 D4 90
-80 10 06 91 03 52 52 41 85 12 D4 90 00 11 14 91
-05 52 52 41 2E 42 85 12 D4 90 40 11 20 91 03 53
-58 54 85 12 D4 90 80 11 00 00 04 50 55 53 48 00
-85 12 D4 90 00 12 3A 91 06 50 55 53 48 2E 42 00
-85 12 D4 90 40 12 94 90 04 43 41 4C 4C 00 85 12
-D4 90 80 12 1A 53 0E 4A 0D 12 84 12 C4 84 14 80
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 81
-2E 91 03 53 3E 3D 86 12 00 38 82 91 02 53 3C 00
-86 12 00 34 48 91 03 30 3E 3D 86 12 00 30 96 91
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C AA 91 03 55 3E 3D 86 12 00 28 A0 91 03 30
-3C 3E 86 12 00 24 BE 91 02 30 3D 00 86 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 B4 91 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 B1 2F 88 DA 00 00 30 4D 44 90 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 58 91 05 42 45 47 49 4E
-30 40 28 80 E8 91 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
-30 4D C8 90 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 D6 91
-A8 83 4E 84 8C 91 06 52 45 50 45 41 54 00 0D 12
-84 12 6A 92 EE 91 4E 84 9A 92 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D
-2A 92 03 42 57 31 85 12 98 92 00 00 B2 92 03 42
-57 32 85 12 98 92 00 00 BE 92 03 42 57 33 85 12
-98 92 00 00 D6 92 3D 41 1A 42 C6 21 28 4E B2 92
-C4 21 88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 D4 92 00 00
-F6 92 03 46 57 32 85 12 D4 92 00 00 02 93 03 46
-57 33 85 12 D4 92 00 00 0E 93 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 80 88
-DC 87 4E 84 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 02 88 9E 8D 58 93 92 53 C4 21 3E 40 2C 00
-84 12 1A 85 3E 86 34 80 00 88 34 8F 6E 93 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E 86 92 04 52 52 43
-4D 00 85 12 52 93 50 00 9C 93 04 52 52 41 4D 00
-85 12 52 93 50 01 AA 93 04 52 4C 41 4D 00 85 12
-52 93 50 02 B8 93 04 52 52 55 4D 00 85 12 52 93
-50 03 C8 91 05 50 55 53 48 4D 85 12 52 93 00 15
-D4 93 04 50 4F 50 4D 00 85 12 52 93 00 17
+C8 4A 00 00 30 4D 28 85 04 23 53 00 0D 12 84 12
+2A 85 64 85 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+58 85 04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F 72 85 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 4A 83 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 1E 85 9E 83 8C 85
+5C 85 88 84 9A 85 76 85 7C 83 6C 85 06 85 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21
+82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D DE 85 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 62 87 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 64 87 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+1A 85 03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12
+84 80 9E 83 F0 85 B0 80 34 89 58 86 1E 88 0A 4E
+3E 4F 3D 40 38 88 6D 27 3D 40 12 88 1A E2 BC 21
+14 24 0E 12 3E 4F 30 41 3A 88 3E 4F 3D 40 12 88
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 10 8A 2A 3C 02 88 02 2C A2 53 C8 21 1A 42
+C8 21 8A 4E FE FF 3E 4F 30 4D 58 88 0F 4C 49 54
+45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21
+A2 52 C8 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D 94 85 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D BA 84 0A 41 4C 4C 4F 54
+82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12
+1E 80 02 0D 0A 00 7C 83 94 80 0C 88 9A 84 C4 84
+1E 80 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 81
+32 80 0A 80 40 FF CC 84 1E 80 09 46 52 41 4D 20
+66 75 6C 6C 08 81 B2 80 D0 88 BA 88 0D 41 42 4F
+52 54 22 00 0D 12 84 12 DA 84 0A 80 08 81 5A 88
+6C 85 EA 85 02 27 0D 12 84 12 9E 83 F0 85 58 86
+B0 80 36 89 FE 84 42 88 64 84 07 5B 27 5D 0D 12
+84 12 26 89 0A 80 0A 80 5A 88 5A 88 6C 85 3A 89
+03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21
+30 4D B2 84 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 9E 83 F0 85 58 86 B0 80 36 89 C4 84 AC 80
+8E 89 0A 80 0A 80 5A 88 5A 88 0A 80 5A 88 5A 88
+6C 85 00 00 02 3A 30 12 E4 89 92 B3 C8 21 A2 63
+C8 21 0D 12 84 12 9E 83 F0 85 AC 89 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21
+82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A
+C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12 1E 80
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 81 50 89 03 3B 82 93 BC 21 F4 26 0D 12 84 12
+0A 80 6C 85 5A 88 F6 89 52 89 6C 85 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00
+30 4D A4 88 0C 43 52 45 41 54 45 00 B0 12 9A 89
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 76 83 0A 44
+4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D 94 89 0E 3A 4E 4F 4E 41 4D 45
+30 12 E4 89 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 2E 8A 05 49
+53 00 0D 12 82 93 BC 21 08 20 84 12 26 89 B0 8A
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 3E 89 0A 80
+B2 8A 5A 88 6C 85 44 8A 08 43 4F 44 45 00 B0 12
+9A 89 A2 82 C8 21 61 3C 86 85 0E 48 44 4E 43 4F
+44 45 B2 40 9E 8B CC 21 F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 F6 89 FC 8A 3D 41 92 42
+D0 21 CC 21 5D 3C C8 8A 0E 43 4F 44 45 4E 4E 4D
+30 12 D2 8A B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 21 1A 42 C8 21 EF 3F DA 8A 0B 48 49 32
+4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43
+BC 21 B9 3F 66 8B B2 40 78 8B D0 21 82 4E CE 21
+30 40 FE 84 85 12 64 8B 64 89 0C 89 F6 8B 08 8B
+5E 8A A8 85 52 86 24 89 4C 8B 9E 8A 78 8A 14 8A
+6C 88 80 8C AA 86 00 00 00 00 85 12 64 8B FA 92
+7E 91 DE 92 A6 90 02 91 50 91 2C 92 38 92 C8 8F
+EC 90 00 00 00 00 3A 8B B8 8E 00 00 54 92 98 8B
+B2 40 78 8B CE 21 82 43 D0 21 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12
+CC 8B 30 4D DE 8B 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 21 B0 12 CC 8B 1A 42 CA 21
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 0E 82 FE FF 29 83 B9 40 FA 81 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 E0 FF 3B 40
+10 00 3A 40 3A 18 B0 12 D0 8B 82 43 4A 18 C7 3F
+72 8C B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 5A 89
+0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12
+9E 83 F0 85 58 86 AC 80 9E 8C 92 84 32 88 A0 8C
+3E 4F 3D 41 B2 41 C6 21 B0 12 9A 89 BA 40 85 12
+FC FF BA 40 70 8C FE FF 28 83 8A 48 00 00 BA 40
+82 80 02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12
+F0 85 58 86 AC 80 0A 8D EA 8C 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 70 8C 00 00
+01 20 3E 52 2E 83 21 53 30 41 02 87 AC 80 12 8D
+06 8D 14 8D B2 41 C6 21 30 41 92 83 C6 21 3E 40
+28 00 0A 4E 3D 15 B0 12 DA 8C 15 20 3E 40 2B 00
+B0 12 DA 8C 06 20 3E 40 2D 00 B0 12 DA 8C 92 83
+C6 21 0E 12 1E 41 02 00 84 12 F0 85 02 87 AC 80
+36 89 54 8D 3E 51 3A 17 30 41 B0 12 1A 8D 19 42
+C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53
+C6 21 1A 42 C6 21 3D 15 84 12 F0 85 02 87 AC 80
+8C 8D 84 8D 3E 90 10 00 E6 2B 7C 2D 8E 8D A2 41
+C6 21 E1 3F 03 20 B0 12 72 8D 43 3C 7A 90 23 00
+24 20 B0 12 22 8D 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 C8 21 A2 53
+C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 22 8D F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 6E 8D 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 72 8D 92 92 C2 21 C6 21 02 24 92 53
+C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 5A 8D
+F2 3F 03 20 B0 12 72 8D F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 5A 8D EA 3F
+0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42
+C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82
+C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A 80 00 13 5A 88 6C 85
+0A 80 2C 00 50 8E 94 8D 9E 83 5A 8E 32 8E A0 8E
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 90 8E 00 40 AC 8E 0A 4D 4F 56 2E 42 85 12
+90 8E 40 40 00 00 06 41 44 44 85 12 90 8E 00 50
+C6 8E 0A 41 44 44 2E 42 85 12 90 8E 40 50 D2 8E
+08 41 44 44 43 00 85 12 90 8E 00 60 E0 8E 0C 41
+44 44 43 2E 42 00 85 12 90 8E 40 60 18 8B 08 53
+55 42 43 00 85 12 90 8E 00 70 FE 8E 0C 53 55 42
+43 2E 42 00 85 12 90 8E 40 70 0C 8F 06 53 55 42
+85 12 90 8E 00 80 1C 8F 0A 53 55 42 2E 42 85 12
+90 8E 40 80 28 8F 06 43 4D 50 85 12 90 8E 00 90
+36 8F 0A 43 4D 50 2E 42 85 12 90 8E 40 90 00 00
+08 44 41 44 44 00 85 12 90 8E 00 A0 50 8F 0C 44
+41 44 44 2E 42 00 85 12 90 8E 40 A0 7E 8E 06 42
+49 54 85 12 90 8E 00 B0 6E 8F 0A 42 49 54 2E 42
+85 12 90 8E 40 B0 7A 8F 06 42 49 43 85 12 90 8E
+00 C0 88 8F 0A 42 49 43 2E 42 85 12 90 8E 40 C0
+94 8F 06 42 49 53 85 12 90 8E 00 D0 A2 8F 0A 42
+49 53 2E 42 85 12 90 8E 40 D0 00 00 06 58 4F 52
+85 12 90 8E 00 E0 BC 8F 0A 58 4F 52 2E 42 85 12
+90 8E 40 E0 EE 8E 06 41 4E 44 85 12 90 8E 00 F0
+D6 8F 0A 41 4E 44 2E 42 85 12 90 8E 40 F0 9E 83
+50 8E 94 8D F6 8F 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F AE 8F 06 52 52 43 85 12 EE 8F
+00 10 08 90 0A 52 52 43 2E 42 85 12 EE 8F 40 10
+42 8F 08 53 57 50 42 00 85 12 EE 8F 80 10 14 90
+06 52 52 41 85 12 EE 8F 00 11 30 90 0A 52 52 41
+2E 42 85 12 EE 8F 40 11 22 90 06 53 58 54 85 12
+EE 8F 80 11 00 00 08 50 55 53 48 00 85 12 EE 8F
+00 12 56 90 0C 50 55 53 48 2E 42 00 85 12 EE 8F
+40 12 4A 90 08 43 41 4C 4C 00 85 12 EE 8F 80 12
+1A 53 0E 4A 84 12 E0 85 1E 80 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 81 74 90 06 53 3E 3D
+86 12 00 38 9C 90 04 53 3C 00 86 12 00 34 64 90
+06 30 3E 3D 86 12 00 30 B0 90 04 30 3C 00 86 12
+00 30 EC 8A 04 55 3C 00 86 12 00 2C C4 90 06 55
+3E 3D 86 12 00 28 BA 90 06 30 3C 3E 86 12 00 24
+D8 90 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D
+5E 8F 08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D CE 90 08 45 4C 53 45 00 1A 42 C8 21
+BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00
+E3 3F 3C 90 0A 42 45 47 49 4E 30 40 32 80 26 91
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 21 30 4D E2 8F 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 F0 90 86 84 6C 85 44 91
+0C 52 45 50 45 41 54 00 0D 12 84 12 84 91 08 91
+6C 85 B4 91 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21
+CB 2F 98 42 C8 21 00 00 30 4D A0 91 06 42 57 31
+85 12 B2 91 00 00 CC 91 06 42 57 32 85 12 B2 91
+00 00 D8 91 06 42 57 33 85 12 B2 91 00 00 F0 91
+3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21
+86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 EE 91 00 00 14 92
+06 46 57 32 85 12 EE 91 00 00 20 92 06 46 57 33
+85 12 EE 91 00 00 8E 91 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 26 89 32 88
+6C 85 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+5A 8E 0A 80 2C 00 F0 85 02 87 AC 80 36 89 9E 83
+50 8E 32 8E 86 92 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E E4 91 08 52 52 43 4D 00 85 12 70 92 50 00
+B4 92 08 52 52 41 4D 00 85 12 70 92 50 01 C2 92
+08 52 4C 41 4D 00 85 12 70 92 50 02 D0 92 08 52
+52 55 4D 00 85 12 70 92 50 03 E2 90 0A 50 55 53
+48 4D 85 12 70 92 00 15 EC 92 08 50 4F 50 4D 00
+85 12 70 92 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-82 82 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 08 8D
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+C6 82 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 0E 82
 q
diff --git a/binaries/MSP_EXP430FR2355_24MHz_UART.txt b/binaries/MSP_EXP430FR2355_24MHz_UART.txt
deleted file mode 100644 (file)
index 869679f..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-@1800
-C0 5D 0D 00 01 49 18 00 F9 FF 04 94 02 8C 34 01
-10 00 41 B3 94 81 AA 80 DA 81 9C 81 94 82 04 94
-02 8C 7A 82 92 83 24 83 FE 82 3C 21 60 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
-@8000
-B0 12 DA 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 78 82 B2 49 90 83 B2 49 22 83 B2 49 FC 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 81 92 C3 9C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-9C 05 F3 23 B0 12 F8 80 0A 80 DE 21 E0 83 32 83
-14 80 04 1B 5B 37 6D 00 5C 83 A8 83 34 80 86 81
-14 80 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 83 A0 84 5C 83 14 80 04 1B 5B 30 6D 00
-5C 83 28 88 92 B3 8A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 80 05 92 42 02 18 86 05 92 42 04 18
-88 05 F2 D0 0C 00 2B 02 92 C3 80 05 92 D3 9A 05
-92 C3 30 01 30 41 09 3C A2 B3 9C 05 FD 27 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 A2 B3 9C 05 FD 27
-B2 40 11 00 8E 05 D2 C3 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 81 E2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 81 04 57 41 52 4D 00 B0 12
-9C 81 84 12 14 80 07 0D 0A 1B 5B 37 6D 23 5C 83
-D6 84 14 80 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 5C 83
-0A 80 40 FF 28 80 D4 83 A0 84 14 80 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 80 86 81 00 00 06 41
-43 43 45 50 54 00 30 40 7A 82 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 82 3C 40 D2 82
-5D 15 B6 3E 21 52 3A 17 58 42 8C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 8E 05 30 4D C8 82 2D 83 92 B3 9C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 9C 05
-FD 27 58 42 8C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 82 2F 83
-8F 4E 00 00 B0 12 DA 81 92 B3 9C 05 FD 27 1E 42
-8C 05 B0 12 C8 81 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 83 08 4E 3E 4F C8 3F 1A 83 04 45 43 48
-4F 00 B2 40 C2 48 C0 82 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 82 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 83 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 83 7A 83 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 81 02 43 52 00 30 40
-92 83 0D 12 84 12 14 80 02 0D 0A 00 5C 83 60 84
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 82 01 40
-2E 4E 30 4D DE 83 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A 83 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E 80 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 1A 84 02 23 53 00 0D 12
-84 12 1C 84 56 84 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 84 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 83 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 84 4E 84 EE 80 8E 84 6A 84 5C 83 14 88 20 83
-60 84 40 83 01 2E 0E 93 E3 37 38 43 E2 3F 88 84
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80
-5A 87 0A 80 22 00 2C 85 FA 84 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 84 82 2E 22 00 0D 12 84 12 E4 84 0A 80 5C 83
-5A 87 60 84 18 82 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 80 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80
-30 4D 00 00 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 AE 86
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 86
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 87 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 84 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 80 14 88 2C 85 D0 87
-9C 26 3D 40 D8 87 DE 3E DA 87 0A 4E 3E 4F 3D 40
-F4 87 36 27 3D 40 CA 87 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 87 3E 4F 3D 40 CA 87 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 89
-CC 3F FE 87 86 12 20 00 E6 83 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E 83
-BC 80 C4 87 C4 83 F6 83 14 80 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80
-FE 83 14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 81 3A 80 3E 88 1A 88 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 84 0A 80 2A 81 5A 87 60 84 8E 85
-01 27 0D 12 84 12 14 88 2C 85 94 85 34 80 12 88
-60 84 00 00 83 5B 27 5D 0D 12 84 12 92 88 0A 80
-0A 80 5A 87 5A 87 60 84 A4 88 81 5B 82 43 BE 21
-30 4D 0C 84 01 5D B2 43 BE 21 30 4D C4 88 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 88 2C 85 94 85 A8 83
-34 80 12 88 F6 83 34 80 06 89 0A 80 0A 80 5A 87
-5A 87 0A 80 5A 87 5A 87 60 84 BA 88 01 3A 30 12
-56 89 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 88
-2C 85 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 81 0C 89 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A 80 60 84 5A 87 68 89 BC 88
-60 84 BA 87 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 87 06 43 52 45
-41 54 45 00 B0 12 12 89 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 89 04 43 4F 44 45 00 B0 12 12 89
-A2 82 C6 21 0D 12 84 12 04 8C DE 8B 60 84 B4 89
-07 48 44 4E 43 4F 44 45 B2 40 E2 8B DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 89
-1E 8C 3C 8C 60 84 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E 8C 3C 8C 60 84
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 8A 85 48 49 32 4C 4F 0D 12 84 12 28 80
-AC 8B 5A 87 BC 88 F4 89 60 84 9A 89 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 8A 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 80 00 00 D8 83 14 88 2C 85
-AA 87 A0 83 34 80 14 8B AE 83 14 80 06 5B 54 48
-45 4E 5D 00 86 8A EE 8A AA 8A CC 8A 60 84 AE 83
-14 80 06 5B 45 4C 53 45 5D 00 86 8A 04 8B AA 8A
-CA 8A 60 84 14 80 04 5B 49 46 5D 00 86 8A CC 8A
-3A 80 CA 8A 82 83 14 80 05 0D 0A 6B 6F 20 5C 83
-BC 80 AC 80 3A 80 CC 8A BA 8A 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 8B 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 88 2C 85
-94 85 38 8B 60 84 3E 8B 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 8B F0 83 60 84 70 8B
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 87
-06 4D 41 52 4B 45 52 00 B0 12 12 89 BA 40 85 12
-FC FF BA 40 6E 8B FE FF 28 83 8A 48 00 00 BA 40
-AA 80 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A 80 CA 21 E8 83 60 84 85 12 B0 8B 78 88 E6 89
-2C 83 90 88 64 8A F6 82 80 8B 12 85 A8 8C BC 8C
-9C 84 26 85 00 00 58 8B CE 88 F4 85 00 00 85 12
-B0 8B 7A 92 E0 92 22 92 30 93 E8 91 00 00 B4 8F
-00 00 F8 93 DC 93 4C 92 8A 92 C4 90 00 00 00 00
-4C 93 DC 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 8B 36 8C 3C 8C 4C 8C 1A 42 20 18
-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
-DA 88 09 50 57 52 5F 53 54 41 54 45 85 12 44 8C
-04 94 E0 84 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 8C F3 3F 82 8C 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 8C 30 4D 94 8C 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 8D FE FF 29 83
-B9 40 02 82 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 82 B2 49 FA 80 B2 49 02 80 B2 49 20 82
-B2 49 E2 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
-26 02 B2 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 B2 40 FF 1E 80 01 B2 40 BE 00
-82 01 B2 40 DC 02 84 01 82 43 88 01 F2 D0 C0 00
-0D 02 39 40 5C 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 80 1E 82 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 2C 85 94 85 F0 83 34 80 F4 8D 50 86 34 80
-0E 8E 08 8E F6 8D 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 10 8E
-B2 41 C4 21 3E 41 84 12 0A 80 2B 00 2C 85 94 85
-F0 83 34 80 2C 8E 50 86 34 80 12 88 BA 83 2C 85
-50 86 34 80 12 88 38 8E 3E 5F E7 3F 3E 40 28 00
-B0 12 D8 8D 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 80 89
-1C 15 12 12 C4 21 92 53 C4 21 84 12 2C 85 50 86
-34 80 80 8E 76 8E 21 53 3E 90 10 00 C6 2B 7F 2D
-82 8E B2 41 C4 21 C1 3F 0D 12 84 12 14 88 B4 8D
-92 8E 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 D8 8D 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 D8 8D ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 60 8E 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 60 8E 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 60 8E FA 23
-3C 50 10 00 B0 12 3C 8E EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 14 88 B4 8D 5E 8F FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 60 8E E0 23 3C 50 80 00 B0 12 3C 8E DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A 80 00 13
-5A 87 60 84 0A 80 2C 00 88 8E 54 8F 9E 8F 09 4B
-2E 4E 0E DC A2 3F 52 8A 03 4D 4F 56 85 12 94 8F
-00 40 A8 8F 05 4D 4F 56 2E 42 85 12 94 8F 40 40
-00 00 03 41 44 44 85 12 94 8F 00 50 C2 8F 05 41
-44 44 2E 42 85 12 94 8F 40 50 CE 8F 04 41 44 44
-43 00 85 12 94 8F 00 60 DC 8F 06 41 44 44 43 2E
-42 00 85 12 94 8F 40 60 82 8F 04 53 55 42 43 00
-85 12 94 8F 00 70 FA 8F 06 53 55 42 43 2E 42 00
-85 12 94 8F 40 70 08 90 03 53 55 42 85 12 94 8F
-00 80 18 90 05 53 55 42 2E 42 85 12 94 8F 40 80
-28 8A 03 43 4D 50 85 12 94 8F 00 90 32 90 05 43
-4D 50 2E 42 85 12 94 8F 40 90 12 8A 04 44 41 44
-44 00 85 12 94 8F 00 A0 4C 90 06 44 41 44 44 2E
-42 00 85 12 94 8F 40 A0 3E 90 03 42 49 54 85 12
-94 8F 00 B0 6A 90 05 42 49 54 2E 42 85 12 94 8F
-40 B0 76 90 03 42 49 43 85 12 94 8F 00 C0 84 90
-05 42 49 43 2E 42 85 12 94 8F 40 C0 90 90 03 42
-49 53 85 12 94 8F 00 D0 9E 90 05 42 49 53 2E 42
-85 12 94 8F 40 D0 00 00 03 58 4F 52 85 12 94 8F
-00 E0 B8 90 05 58 4F 52 2E 42 85 12 94 8F 40 E0
-EA 8F 03 41 4E 44 85 12 94 8F 00 F0 D2 90 05 41
-4E 44 2E 42 85 12 94 8F 40 F0 14 88 88 8E F0 90
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-24 90 03 52 52 43 85 12 EA 90 00 10 02 91 05 52
-52 43 2E 42 85 12 EA 90 40 10 0E 91 04 53 57 50
-42 00 85 12 EA 90 80 10 1C 91 03 52 52 41 85 12
-EA 90 00 11 2A 91 05 52 52 41 2E 42 85 12 EA 90
-40 11 36 91 03 53 58 54 85 12 EA 90 80 11 00 00
-04 50 55 53 48 00 85 12 EA 90 00 12 50 91 06 50
-55 53 48 2E 42 00 85 12 EA 90 40 12 AA 90 04 43
-41 4C 4C 00 85 12 EA 90 80 12 1A 53 0E 4A 0D 12
-84 12 D6 84 14 80 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 81 44 91 03 53 3E 3D 86 12 00 38
-98 91 02 53 3C 00 86 12 00 34 5E 91 03 30 3E 3D
-86 12 00 30 AC 91 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C C0 91 03 55 3E 3D 86 12
-00 28 B6 91 03 30 3C 3E 86 12 00 24 D4 91 02 30
-3D 00 86 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 CA 91 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 B1 2F 88 DA 00 00 30 4D
-5A 90 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 6E 91
-05 42 45 47 49 4E 30 40 28 80 FE 91 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D DE 90 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 EC 91 BA 83 60 84 A2 91 06 52 45 50
-45 41 54 00 0D 12 84 12 80 92 04 92 60 84 B0 92
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 40 92 03 42 57 31 85 12 AE 92
-00 00 C8 92 03 42 57 32 85 12 AE 92 00 00 D4 92
-03 42 57 33 85 12 AE 92 00 00 EC 92 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 EA 92 00 00 0C 93 03 46 57 32 85 12 EA 92
-00 00 18 93 03 46 57 33 85 12 EA 92 00 00 24 93
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 92 88 EE 87 60 84 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 14 88 B4 8D 6E 93 92 53
-C4 21 3E 40 2C 00 84 12 2C 85 50 86 34 80 12 88
-4A 8F 84 93 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-9C 92 04 52 52 43 4D 00 85 12 68 93 50 00 B2 93
-04 52 52 41 4D 00 85 12 68 93 50 01 C0 93 04 52
-4C 41 4D 00 85 12 68 93 50 02 CE 93 04 52 52 55
-4D 00 85 12 68 93 50 03 DE 91 05 50 55 53 48 4D
-85 12 68 93 00 15 EA 93 04 50 4F 50 4D 00 85 12
-68 93 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 94 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 1A 8D
-q
diff --git a/binaries/MSP_EXP430FR2355_8MHz_115200.txt b/binaries/MSP_EXP430FR2355_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..625dfb5
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A1 59
+BC 82 7E 81 84 81 54 81 2C 83 1A 93 D2 8B 8C 8B
+8C 8B A2 82 60 83 28 83 3C 21 E0 20 80 85 B6 80
+C4 80 9C 84 20 00 0A 00 00 20 7E 81 84 81 54 81
+2C 83 1A 93 D2 8B 8C 8B 8C 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@8000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F9 3C 0E 93 3E 4F
+8E 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A0 82 B2 49
+5E 83 B2 49 26 83 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 46 8C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 2C 83 92 C3 9C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 9C 05 F3 23
+B0 12 D0 80 A6 84 AC 80 52 81 6E 83 1E 80 04 1B
+5B 37 6D 00 90 83 90 83 1E 80 04 1B 5B 30 6D 00
+90 83 DC 88 B0 12 7E 81 B2 40 81 00 80 05 92 42
+02 18 86 05 92 42 04 18 88 05 F2 D0 0C 00 2B 02
+92 C3 80 05 92 D3 9A 05 92 C3 30 01 30 41 92 B3
+8A 05 FD 23 30 41 92 12 3E 18 84 12 6E 83 1E 80
+07 0D 0A 1B 5B 37 6D 23 90 83 F4 85 1E 80 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 90 83 0A 80 40 FF 32 80
+BC 84 C0 85 1E 80 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 80 46 81 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 81 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
+26 02 B2 43 22 02 F2 D3 47 02 F2 40 BF 00 43 02
+B2 40 00 A5 60 01 82 43 88 01 F2 D0 C0 00 0D 02
+F2 C3 82 01 F2 D0 06 00 82 01 B2 40 F4 00 84 01
+39 40 5C 00 18 42 00 18 18 83 FE 23 19 83 FA 23
+39 40 00 10 29 83 89 43 00 20 FC 23 19 42 5E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 80 86 81 00 00 0C 41 43 43 45 50 54 00 30 40
+A2 82 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 00 83 3C 40 0C 83 5D 15 A2 3E 21 52 3A 17
+58 42 8C 05 48 9B 09 20 A2 B3 9C 05 FD 27 B2 40
+13 00 8E 05 D2 D3 03 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 9C 05 FD 27 C2 48 8E 05 30 4D
+02 83 2D 83 92 B3 9C 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 9C 05 FD 27 58 42 8C 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 28 83 30 12 3E 83 A2 B3 9C 05
+FD 27 B2 40 11 00 8E 05 D2 C3 03 02 30 41 2F 83
+8F 4E 00 00 92 B3 9C 05 FD 27 B0 12 C8 82 1E 42
+8C 05 30 4D 00 00 08 45 4D 49 54 00 30 40 60 83
+08 4E 3E 4F C7 3F 56 83 08 45 43 48 4F 00 B2 40
+C2 48 FA 82 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D FA 82 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 A0 83 29 4F 8F 4E 00 00 7E 49 DE 3F
+A2 83 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+78 22 F9 98 00 00 75 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 6C 22 9B 24 20 83 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A 80 00 00 C0 84
+B2 83 04 86 BE 88 B0 80 2E 84 14 80 06 5B 54 48
+45 4E 5D 00 B6 83 0C 84 D2 83 F0 83 14 80 06 5B
+45 4C 53 45 5D 00 B6 83 1E 84 D2 83 EE 83 1E 80
+04 5B 49 46 5D 00 B6 83 F0 83 B2 80 EE 83 1E 80
+05 0D 6B 6F 20 0A 90 83 9A 80 84 80 B2 80 F0 83
+DE 83 0D 5B 54 48 45 4E 5D 00 30 4D 42 84 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 4E 84 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 B2 83 04 86
+6C 86 10 88 80 85 5E 84 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 B2 83 04 86 6C 86 90 84
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D 96 82 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 81 05 53 22 00 82 43
+C0 21 0D 12 84 12 0A 80 1E 80 6E 88 0A 80 22 00
+04 86 04 85 B2 40 20 00 C0 21 1A 53 1A B3 82 6A
+C8 21 3E 4F 3D 41 30 4D 78 83 05 2E 22 00 0D 12
+84 12 EE 84 0A 80 90 83 6E 88 80 85 00 00 04 3C
+23 00 B2 40 B2 21 B2 21 30 4D EA 84 02 23 1B 42
+BE 21 2C 4F 2F 83 B0 12 46 80 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 3C 85 04 23 53 00
+0D 12 84 12 3E 85 78 85 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 6C 85 04 23 3E 00 9F 42 B2 21 00 00
+3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 86 85 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 68 83 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 32 85
+B2 83 A0 85 70 85 9C 84 AE 85 8A 85 90 83 80 85
+1A 85 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D F2 85 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40
+76 87 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 78 87 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 2E 85 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 80 B2 83 04 86 B0 80 48 89 6C 86
+32 88 0A 4E 3E 4F 3D 40 4C 88 6D 27 3D 40 26 88
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 4E 88 3E 4F
+3D 40 26 88 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 24 8A 2A 3C 16 88 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 6C 88
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A 80 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D A8 85 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D CE 84 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E 80 02 0D 0A 00 90 83 94 80 20 88
+AE 84 D8 84 1E 80 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 81 32 80 0A 80 40 FF E0 84 1E 80 09 46
+52 41 4D 20 66 75 6C 6C 08 81 B2 80 E4 88 CE 88
+0D 41 42 4F 52 54 22 00 0D 12 84 12 EE 84 0A 80
+08 81 6E 88 80 85 FE 85 02 27 0D 12 84 12 B2 83
+04 86 6C 86 B0 80 4A 89 12 85 56 88 78 84 07 5B
+27 5D 0D 12 84 12 3A 89 0A 80 0A 80 6E 88 6E 88
+80 85 4E 89 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D C6 84 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 B2 83 04 86 6C 86 B0 80 4A 89
+D8 84 AC 80 A2 89 0A 80 0A 80 6E 88 6E 88 0A 80
+6E 88 6E 88 80 85 00 00 02 3A 30 12 F8 89 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 B2 83 04 86 C0 89
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 81 64 89 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A 80 80 85 6E 88 0A 8A 66 89 80 85
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D B8 88 0C 43 52 45 41 54 45 00
+B0 12 AE 89 BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+8A 83 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D A8 89 0E 3A 4E 4F
+4E 41 4D 45 30 12 F8 89 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+42 8A 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+3A 89 C4 8A 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+52 89 0A 80 C6 8A 6E 88 80 85 58 8A 08 43 4F 44
+45 00 B0 12 AE 89 A2 82 C8 21 61 3C 9A 85 0E 48
+44 4E 43 4F 44 45 B2 40 B2 8B CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 0A 8A 10 8B
+3D 41 92 42 D0 21 CC 21 5D 3C DC 8A 0E 43 4F 44
+45 4E 4E 4D 30 12 E6 8A B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F EE 8A
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F 7A 8B B2 40 8C 8B D0 21
+82 4E CE 21 30 40 12 85 85 12 78 8B 78 89 20 89
+0A 8C 1C 8B 72 8A BC 85 66 86 38 89 60 8B B2 8A
+8C 8A 28 8A 80 88 94 8C BE 86 00 00 00 00 85 12
+78 8B 0E 93 92 91 F2 92 BA 90 16 91 64 91 40 92
+4C 92 DC 8F 00 91 00 00 00 00 4E 8B CC 8E 00 00
+68 92 AC 8B B2 40 8C 8B CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 E0 8B 30 4D F2 8B 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 E0 8B
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 82 FE FF 29 83 B9 40
+F2 81 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+E2 FF 3B 40 10 00 3A 40 3A 18 B0 12 E4 8B 82 43
+4A 18 C7 3F 86 8C B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 6E 89 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 B2 83 04 86 6C 86 AC 80 B2 8C A6 84
+46 88 B4 8C 3E 4F 3D 41 B2 41 C6 21 B0 12 AE 89
+BA 40 85 12 FC FF BA 40 84 8C FE FF 28 83 8A 48
+00 00 BA 40 82 80 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 04 86 6C 86 AC 80 1E 8D FE 8C 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+84 8C 00 00 01 20 3E 52 2E 83 21 53 30 41 16 87
+AC 80 26 8D 1A 8D 28 8D B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 EE 8C 15 20
+3E 40 2B 00 B0 12 EE 8C 06 20 3E 40 2D 00 B0 12
+EE 8C 92 83 C6 21 0E 12 1E 41 02 00 84 12 04 86
+16 87 AC 80 4A 89 68 8D 3E 51 3A 17 30 41 B0 12
+2E 8D 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 04 86
+16 87 AC 80 A0 8D 98 8D 3E 90 10 00 E6 2B 7C 2D
+A2 8D A2 41 C6 21 E1 3F 03 20 B0 12 86 8D 43 3C
+7A 90 23 00 24 20 B0 12 36 8D 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 36 8D F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 82 8D 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 86 8D 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 6E 8D F2 3F 03 20 B0 12 86 8D F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+6E 8D EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A 80 00 13
+6E 88 80 85 0A 80 2C 00 64 8E A8 8D B2 83 6E 8E
+46 8E B4 8E 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 A4 8E 00 40 C0 8E 0A 4D 4F 56
+2E 42 85 12 A4 8E 40 40 00 00 06 41 44 44 85 12
+A4 8E 00 50 DA 8E 0A 41 44 44 2E 42 85 12 A4 8E
+40 50 E6 8E 08 41 44 44 43 00 85 12 A4 8E 00 60
+F4 8E 0C 41 44 44 43 2E 42 00 85 12 A4 8E 40 60
+2C 8B 08 53 55 42 43 00 85 12 A4 8E 00 70 12 8F
+0C 53 55 42 43 2E 42 00 85 12 A4 8E 40 70 20 8F
+06 53 55 42 85 12 A4 8E 00 80 30 8F 0A 53 55 42
+2E 42 85 12 A4 8E 40 80 3C 8F 06 43 4D 50 85 12
+A4 8E 00 90 4A 8F 0A 43 4D 50 2E 42 85 12 A4 8E
+40 90 00 00 08 44 41 44 44 00 85 12 A4 8E 00 A0
+64 8F 0C 44 41 44 44 2E 42 00 85 12 A4 8E 40 A0
+92 8E 06 42 49 54 85 12 A4 8E 00 B0 82 8F 0A 42
+49 54 2E 42 85 12 A4 8E 40 B0 8E 8F 06 42 49 43
+85 12 A4 8E 00 C0 9C 8F 0A 42 49 43 2E 42 85 12
+A4 8E 40 C0 A8 8F 06 42 49 53 85 12 A4 8E 00 D0
+B6 8F 0A 42 49 53 2E 42 85 12 A4 8E 40 D0 00 00
+06 58 4F 52 85 12 A4 8E 00 E0 D0 8F 0A 58 4F 52
+2E 42 85 12 A4 8E 40 E0 02 8F 06 41 4E 44 85 12
+A4 8E 00 F0 EA 8F 0A 41 4E 44 2E 42 85 12 A4 8E
+40 F0 B2 83 64 8E A8 8D 0A 90 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F C2 8F 06 52 52 43
+85 12 02 90 00 10 1C 90 0A 52 52 43 2E 42 85 12
+02 90 40 10 56 8F 08 53 57 50 42 00 85 12 02 90
+80 10 28 90 06 52 52 41 85 12 02 90 00 11 44 90
+0A 52 52 41 2E 42 85 12 02 90 40 11 36 90 06 53
+58 54 85 12 02 90 80 11 00 00 08 50 55 53 48 00
+85 12 02 90 00 12 6A 90 0C 50 55 53 48 2E 42 00
+85 12 02 90 40 12 5E 90 08 43 41 4C 4C 00 85 12
+02 90 80 12 1A 53 0E 4A 84 12 F4 85 1E 80 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 81 88 90
+06 53 3E 3D 86 12 00 38 B0 90 04 53 3C 00 86 12
+00 34 78 90 06 30 3E 3D 86 12 00 30 C4 90 04 30
+3C 00 86 12 00 30 00 8B 04 55 3C 00 86 12 00 2C
+D8 90 06 55 3E 3D 86 12 00 28 CE 90 06 30 3C 3E
+86 12 00 24 EC 90 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D 72 8F 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D E2 90 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F 50 90 0A 42 45 47 49 4E 30 40
+32 80 3A 91 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+F6 8F 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 04 91 9A 84
+80 85 58 91 0C 52 45 50 45 41 54 00 0D 12 84 12
+98 91 1C 91 80 85 C8 91 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D B4 91
+06 42 57 31 85 12 C6 91 00 00 E0 91 06 42 57 32
+85 12 C6 91 00 00 EC 91 06 42 57 33 85 12 C6 91
+00 00 04 92 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 02 92
+00 00 28 92 06 46 57 32 85 12 02 92 00 00 34 92
+06 46 57 33 85 12 02 92 00 00 A2 91 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+3A 89 46 88 80 85 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F 6E 8E 0A 80 2C 00 04 86 16 87 AC 80
+4A 89 B2 83 64 8E 46 8E 9A 92 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E F8 91 08 52 52 43 4D 00 85 12
+84 92 50 00 C8 92 08 52 52 41 4D 00 85 12 84 92
+50 01 D6 92 08 52 4C 41 4D 00 85 12 84 92 50 02
+E4 92 08 52 52 55 4D 00 85 12 84 92 50 03 F6 90
+0A 50 55 53 48 4D 85 12 84 92 00 15 00 93 08 50
+4F 50 4D 00 85 12 84 92 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 BC 82 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81
+F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 F2 81 06 82
+q
index 09d9f81..c98de54 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF DE 93 F0 8B 34 01
-10 00 41 87 B6 81 AA 80 B8 81 8C 81 82 82 DE 93
-F0 8B 70 82 80 83 FE 82 DA 82 3C 21 4E 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+B6 82 56 81 56 81 58 81 44 81 F6 92 AE 8B 68 8B
+68 8B A4 82 28 83 00 83 3C 21 E0 20 5C 85 B6 80
+C4 80 78 84 20 00 0A 00 00 20 56 81 56 81 58 81
+44 81 F6 92 AE 8B 68 8B 68 8B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @8000
-B0 12 B8 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 6E 82 B2 49 7E 83 B2 49 FC 82 B2 49 D8 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 81 0E 12 B0 12
-F8 80 0A 80 DE 21 CE 83 16 83 EE 80 34 80 8A 81
-14 80 05 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83
-C4 84 96 83 34 80 7E 81 14 80 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 83 8E 84 4A 83
-14 80 04 1B 5B 30 6D 00 4A 83 16 88 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 81 E2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 81 04 57 41 52 4D 00 B0 12
-8C 81 78 40 03 00 B0 12 BA 81 84 12 14 80 07 0D
-0A 1B 5B 37 6D 40 4A 83 0A 80 02 18 CE 83 C4 84
-0A 80 23 00 FA 82 C4 84 14 80 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 4A 83 0A 80 40 FF 28 80 C2 83 8E 84
-14 80 0A 62 79 74 65 73 20 66 72 65 65 00 3A 80
-7E 81 00 00 06 41 43 43 45 50 54 00 30 40 70 82
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 81 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 82 2F 83 8F 4E 00 00
-58 43 B0 12 BA 81 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 82 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 82
-04 45 43 48 4F 00 B2 40 C2 48 08 83 82 43 DE 21
-38 40 05 00 B0 12 BA 81 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 83 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 83 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 82 68 83 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 81 02 43 52 00 30 40 80 83
-0D 12 84 12 14 80 02 0D 0A 00 4A 83 4E 84 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 82 01 40 2E 4E
-30 4D CC 83 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 83 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E 80 BF 4F 00 00 7A 90 0A 00 02 28
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 80 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 FA 3C 0E 93 3E 4F
+7C 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A2 82 B2 49
+26 83 B2 49 FE 82 B2 49 A0 80 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 22 8C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 81 B0 12 D0 80 82 84 AC 80
+42 81 40 83 1E 80 05 1B 5B 37 6D 40 6C 83 0A 80
+02 18 A4 84 D0 85 6C 83 1E 80 04 1B 5B 30 6D 00
+6C 83 B8 88 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 40 83 1E 80 07 0D 0A 1B 5B 37
+6D 40 6C 83 0A 80 02 18 A4 84 D0 85 0A 80 23 00
+24 83 D0 85 1E 80 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+6C 83 0A 80 40 FF 32 80 98 84 9C 85 1E 80 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 80 36 81 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 81 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 D3 06 02 B2 40 FE FF
+02 02 B2 D3 26 02 B2 43 22 02 F2 D3 47 02 F2 40
+BF 00 43 02 B2 40 00 A5 60 01 82 43 88 01 F2 D0
+C0 00 0D 02 F2 C3 82 01 F2 D0 06 00 82 01 B2 40
+F4 00 84 01 39 40 5C 00 18 42 00 18 18 83 FE 23
+19 83 FA 23 39 40 00 10 29 83 89 43 00 20 FC 23
+1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01
+B0 12 D0 80 80 81 00 00 0C 41 43 43 45 50 54 00
+30 40 A4 82 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40
+20 00 3D 15 A5 3E 21 52 A2 C2 6C 05 B2 B0 10 00
+40 05 9E 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05
+48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27
+1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F
+3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40 00 83
+58 43 B0 12 46 81 2F 83 8F 4E 00 00 92 B3 6C 05
+FD 27 1E 42 4C 05 B0 12 44 81 30 4D 00 00 08 45
+4D 49 54 00 30 40 28 83 08 4E 3E 4F A2 B3 6C 05
+FD 27 C2 48 4E 05 30 4D 1E 83 08 45 43 48 4F 00
+B2 40 C2 48 32 83 38 40 05 00 B0 12 46 81 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 32 83
+28 42 F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40
+7C 83 29 4F 8F 4E 00 00 7E 49 D4 3F 7E 83 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 8A 22 F9 98
+00 00 87 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 7E 22 9B 24 F8 82 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A 80 00 00 9C 84 8E 83 E0 85
+9A 88 B0 80 0A 84 14 80 06 5B 54 48 45 4E 5D 00
+92 83 E8 83 AE 83 CC 83 14 80 06 5B 45 4C 53 45
+5D 00 92 83 FA 83 AE 83 CA 83 1E 80 04 5B 49 46
+5D 00 92 83 CC 83 B2 80 CA 83 1E 80 05 0D 6B 6F
+20 0A 6C 83 9A 80 84 80 B2 80 CC 83 BA 83 0D 5B
+54 48 45 4E 5D 00 30 4D 1E 84 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 2A 84 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 8E 83 E0 85 48 86 EC 87
+5C 85 3A 84 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 8E 83 E0 85 48 86 6C 84 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D 98 82 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D E0 81 05 53 22 00 82 43 C0 21 0D 12
+84 12 0A 80 1E 80 4A 88 0A 80 22 00 E0 85 E0 84
+B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F
+3D 41 30 4D 52 83 05 2E 22 00 0D 12 84 12 CA 84
+0A 80 6C 83 4A 88 5C 85 00 00 04 3C 23 00 B2 40
+B2 21 B2 21 30 4D C6 84 02 23 1B 42 BE 21 2C 4F
+2F 83 B0 12 46 80 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 08 84 02 23 53 00 0D 12 84 12
-0A 84 44 84 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 84 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 83 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 83
-3C 84 EE 80 7C 84 58 84 4A 83 02 88 FA 82 4E 84
-2C 83 01 2E 0E 93 E3 37 38 43 E2 3F 76 84 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80 48 87
-0A 80 22 00 1A 85 E8 84 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 84
-82 2E 22 00 0D 12 84 12 D2 84 0A 80 4A 83 48 87
-4E 84 F8 81 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 80 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80 30 4D
-00 00 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 9C 86 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 86 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 87 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 84 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 80 02 88 1A 85 BE 87 9C 26
-3D 40 C6 87 DE 3E C8 87 0A 4E 3E 4F 3D 40 E2 87
-36 27 3D 40 B8 87 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 87 3E 4F 3D 40 B8 87 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 89 CC 3F
-EC 87 86 12 20 00 D4 83 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C 83 BC 80
-B2 87 B2 83 E4 83 14 80 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80 EC 83
-14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 81
-3A 80 2C 88 08 88 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 84 0A 80 2A 81 48 87 4E 84 7C 85 01 27
-0D 12 84 12 02 88 1A 85 82 85 34 80 00 88 4E 84
-00 00 83 5B 27 5D 0D 12 84 12 80 88 0A 80 0A 80
-48 87 48 87 4E 84 92 88 81 5B 82 43 BE 21 30 4D
-FA 83 01 5D B2 43 BE 21 30 4D B2 88 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 88 1A 85 82 85 96 83 34 80
-00 88 E4 83 34 80 F4 88 0A 80 0A 80 48 87 48 87
-0A 80 48 87 48 87 4E 84 A8 88 01 3A 30 12 44 89
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 88 1A 85
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 81 FA 88 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A 80 4E 84 48 87 56 89 AA 88 4E 84
-A8 87 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 87 06 43 52 45 41 54
-45 00 B0 12 00 89 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 89 04 43 4F 44 45 00 B0 12 00 89 A2 82
-C6 21 0D 12 84 12 F2 8B CC 8B 4E 84 A2 89 07 48
-44 4E 43 4F 44 45 B2 40 D0 8B DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 89 0C 8C
-2A 8C 4E 84 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C 8C 2A 8C 4E 84 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE 89 85 48 49 32 4C 4F 0D 12 84 12 28 80 9A 8B
-48 87 AA 88 E2 89 4E 84 88 89 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 8A 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 80 00 00 C6 83 02 88 1A 85 98 87
-8E 83 34 80 02 8B 9C 83 14 80 06 5B 54 48 45 4E
-5D 00 74 8A DC 8A 98 8A BA 8A 4E 84 9C 83 14 80
-06 5B 45 4C 53 45 5D 00 74 8A F2 8A 98 8A B8 8A
-4E 84 14 80 04 5B 49 46 5D 00 74 8A BA 8A 3A 80
-B8 8A 70 83 14 80 05 0D 0A 6B 6F 20 4A 83 BC 80
-AC 80 3A 80 BA 8A A8 8A 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 8B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 88 1A 85 82 85
-26 8B 4E 84 2C 8B 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 8B DE 83 4E 84 5E 8B B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 87 06 4D
-41 52 4B 45 52 00 B0 12 00 89 BA 40 85 12 FC FF
-BA 40 5C 8B FE FF 28 83 8A 48 00 00 BA 40 AA 80
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A 80
-CA 21 D6 83 4E 84 85 12 9E 8B 66 88 D4 89 10 83
-7E 88 52 8A D2 82 6E 8B 00 85 96 8C AA 8C 8A 84
-14 85 00 00 46 8B BC 88 E2 85 00 00 85 12 9E 8B
-54 92 BA 92 FC 91 0A 93 C2 91 00 00 8E 8F 00 00
-D2 93 B6 93 26 92 64 92 9E 90 00 00 00 00 26 93
-CA 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 8B 24 8C 2A 8C 3A 8C 1A 42 20 18 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 C8 88
-09 50 57 52 5F 53 54 41 54 45 85 12 32 8C DE 93
-CE 84 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 8C F3 3F 70 8C 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E 8C 30 4D 82 8C 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 8D FE FF 29 83 B9 40
-E2 81 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 81 B2 49 FA 80 B2 49 02 80 B2 49 00 82 B2 49
-E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 10 29 83 89 43 00 20 FC 23 B2 D3
-06 02 B2 40 FE FF 02 02 B2 D3 26 02 B2 43 22 02
-F2 D3 47 02 F2 40 BF 00 43 02 B2 40 00 A5 60 01
-B2 40 FF 1E 80 01 B2 40 B6 00 82 01 B2 40 F3 00
-84 01 82 43 88 01 F2 D0 C0 00 0D 02 39 40 5C 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 1E 42 08 18
-82 43 08 18 1E D2 5E 01 B0 12 F8 80 FE 81 38 40
-C0 21 0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21
-30 4D 1C 15 0E 12 12 12 C4 21 84 12 1A 85 82 85
-DE 83 34 80 CE 8D 3E 86 34 80 E8 8D E2 8D D0 8D
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 EA 8D B2 41 C4 21 3E 41
-84 12 0A 80 2B 00 1A 85 82 85 DE 83 34 80 06 8E
-3E 86 34 80 00 88 A8 83 1A 85 3E 86 34 80 00 88
-12 8E 3E 5F E7 3F 3E 40 28 00 B0 12 B2 8D 19 42
-C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92
-C0 21 C4 21 02 20 30 40 6E 89 1C 15 12 12 C4 21
-92 53 C4 21 84 12 1A 85 3E 86 34 80 5A 8E 50 8E
-21 53 3E 90 10 00 C6 2B 7F 2D 5C 8E B2 41 C4 21
-C1 3F 0D 12 84 12 02 88 8E 8D 6C 8E 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 B2 8D 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 B2 8D
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
-B0 12 3A 8E 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-3A 8E 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
-0C 5E DA 3F B0 12 3A 8E FA 23 3C 50 10 00 B0 12
-16 8E EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12
-84 12 02 88 8E 8D 38 8F FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 3A 8E E0 23
-3C 50 80 00 B0 12 16 8E DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 80 00 13 48 87 4E 84 0A 80
-2C 00 62 8E 2E 8F 78 8F 09 4B 2E 4E 0E DC A2 3F
-40 8A 03 4D 4F 56 85 12 6E 8F 00 40 82 8F 05 4D
-4F 56 2E 42 85 12 6E 8F 40 40 00 00 03 41 44 44
-85 12 6E 8F 00 50 9C 8F 05 41 44 44 2E 42 85 12
-6E 8F 40 50 A8 8F 04 41 44 44 43 00 85 12 6E 8F
-00 60 B6 8F 06 41 44 44 43 2E 42 00 85 12 6E 8F
-40 60 5C 8F 04 53 55 42 43 00 85 12 6E 8F 00 70
-D4 8F 06 53 55 42 43 2E 42 00 85 12 6E 8F 40 70
-E2 8F 03 53 55 42 85 12 6E 8F 00 80 F2 8F 05 53
-55 42 2E 42 85 12 6E 8F 40 80 16 8A 03 43 4D 50
-85 12 6E 8F 00 90 0C 90 05 43 4D 50 2E 42 85 12
-6E 8F 40 90 00 8A 04 44 41 44 44 00 85 12 6E 8F
-00 A0 26 90 06 44 41 44 44 2E 42 00 85 12 6E 8F
-40 A0 18 90 03 42 49 54 85 12 6E 8F 00 B0 44 90
-05 42 49 54 2E 42 85 12 6E 8F 40 B0 50 90 03 42
-49 43 85 12 6E 8F 00 C0 5E 90 05 42 49 43 2E 42
-85 12 6E 8F 40 C0 6A 90 03 42 49 53 85 12 6E 8F
-00 D0 78 90 05 42 49 53 2E 42 85 12 6E 8F 40 D0
-00 00 03 58 4F 52 85 12 6E 8F 00 E0 92 90 05 58
-4F 52 2E 42 85 12 6E 8F 40 E0 C4 8F 03 41 4E 44
-85 12 6E 8F 00 F0 AC 90 05 41 4E 44 2E 42 85 12
-6E 8F 40 F0 02 88 62 8E CA 90 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F FE 8F 03 52 52 43
-85 12 C4 90 00 10 DC 90 05 52 52 43 2E 42 85 12
-C4 90 40 10 E8 90 04 53 57 50 42 00 85 12 C4 90
-80 10 F6 90 03 52 52 41 85 12 C4 90 00 11 04 91
-05 52 52 41 2E 42 85 12 C4 90 40 11 10 91 03 53
-58 54 85 12 C4 90 80 11 00 00 04 50 55 53 48 00
-85 12 C4 90 00 12 2A 91 06 50 55 53 48 2E 42 00
-85 12 C4 90 40 12 84 90 04 43 41 4C 4C 00 85 12
-C4 90 80 12 1A 53 0E 4A 0D 12 84 12 C4 84 14 80
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 81
-1E 91 03 53 3E 3D 86 12 00 38 72 91 02 53 3C 00
-86 12 00 34 38 91 03 30 3E 3D 86 12 00 30 86 91
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C 9A 91 03 55 3E 3D 86 12 00 28 90 91 03 30
-3C 3E 86 12 00 24 AE 91 02 30 3D 00 86 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 A4 91 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 B1 2F 88 DA 00 00 30 4D 34 90 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 48 91 05 42 45 47 49 4E
-30 40 28 80 D8 91 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
-30 4D B8 90 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 C6 91
-A8 83 4E 84 7C 91 06 52 45 50 45 41 54 00 0D 12
-84 12 5A 92 DE 91 4E 84 8A 92 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D
-1A 92 03 42 57 31 85 12 88 92 00 00 A2 92 03 42
-57 32 85 12 88 92 00 00 AE 92 03 42 57 33 85 12
-88 92 00 00 C6 92 3D 41 1A 42 C6 21 28 4E B2 92
-C4 21 88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 C4 92 00 00
-E6 92 03 46 57 32 85 12 C4 92 00 00 F2 92 03 46
-57 33 85 12 C4 92 00 00 FE 92 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 80 88
-DC 87 4E 84 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 02 88 8E 8D 48 93 92 53 C4 21 3E 40 2C 00
-84 12 1A 85 3E 86 34 80 00 88 24 8F 5E 93 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E 76 92 04 52 52 43
-4D 00 85 12 42 93 50 00 8C 93 04 52 52 41 4D 00
-85 12 42 93 50 01 9A 93 04 52 4C 41 4D 00 85 12
-42 93 50 02 A8 93 04 52 52 55 4D 00 85 12 42 93
-50 03 B8 91 05 50 55 53 48 4D 85 12 42 93 00 15
-C4 93 04 50 4F 50 4D 00 85 12 42 93 00 17
+C8 4A 00 00 30 4D 18 85 04 23 53 00 0D 12 84 12
+1A 85 54 85 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+48 85 04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F 62 85 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 3A 83 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 0E 85 8E 83 7C 85
+4C 85 78 84 8A 85 66 85 6C 83 5C 85 F6 84 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21
+82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D CE 85 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 52 87 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 54 87 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 80 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+0A 85 03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12
+84 80 8E 83 E0 85 B0 80 24 89 48 86 0E 88 0A 4E
+3E 4F 3D 40 28 88 6D 27 3D 40 02 88 1A E2 BC 21
+14 24 0E 12 3E 4F 30 41 2A 88 3E 4F 3D 40 02 88
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 00 8A 2A 3C F2 87 02 2C A2 53 C8 21 1A 42
+C8 21 8A 4E FE FF 3E 4F 30 4D 48 88 0F 4C 49 54
+45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21
+A2 52 C8 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D 84 85 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D AA 84 0A 41 4C 4C 4F 54
+82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12
+1E 80 02 0D 0A 00 6C 83 94 80 FC 87 8A 84 B4 84
+1E 80 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 81
+32 80 0A 80 40 FF BC 84 1E 80 09 46 52 41 4D 20
+66 75 6C 6C 08 81 B2 80 C0 88 AA 88 0D 41 42 4F
+52 54 22 00 0D 12 84 12 CA 84 0A 80 08 81 4A 88
+5C 85 DA 85 02 27 0D 12 84 12 8E 83 E0 85 48 86
+B0 80 26 89 EE 84 32 88 54 84 07 5B 27 5D 0D 12
+84 12 16 89 0A 80 0A 80 4A 88 4A 88 5C 85 2A 89
+03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21
+30 4D A2 84 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 8E 83 E0 85 48 86 B0 80 26 89 B4 84 AC 80
+7E 89 0A 80 0A 80 4A 88 4A 88 0A 80 4A 88 4A 88
+5C 85 00 00 02 3A 30 12 D4 89 92 B3 C8 21 A2 63
+C8 21 0D 12 84 12 8E 83 E0 85 9C 89 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21
+82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A
+C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12 1E 80
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 81 40 89 03 3B 82 93 BC 21 F4 26 0D 12 84 12
+0A 80 5C 85 4A 88 E6 89 42 89 5C 85 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00
+30 4D 94 88 0C 43 52 45 41 54 45 00 B0 12 8A 89
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 66 83 0A 44
+4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D 84 89 0E 3A 4E 4F 4E 41 4D 45
+30 12 D4 89 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 1E 8A 05 49
+53 00 0D 12 82 93 BC 21 08 20 84 12 16 89 A0 8A
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 2E 89 0A 80
+A2 8A 4A 88 5C 85 34 8A 08 43 4F 44 45 00 B0 12
+8A 89 A2 82 C8 21 61 3C 76 85 0E 48 44 4E 43 4F
+44 45 B2 40 8E 8B CC 21 F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 E6 89 EC 8A 3D 41 92 42
+D0 21 CC 21 5D 3C B8 8A 0E 43 4F 44 45 4E 4E 4D
+30 12 C2 8A B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 21 1A 42 C8 21 EF 3F CA 8A 0B 48 49 32
+4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43
+BC 21 B9 3F 56 8B B2 40 68 8B D0 21 82 4E CE 21
+30 40 EE 84 85 12 54 8B 54 89 FC 88 E6 8B F8 8A
+4E 8A 98 85 42 86 14 89 3C 8B 8E 8A 68 8A 04 8A
+5C 88 70 8C 9A 86 00 00 00 00 85 12 54 8B EA 92
+6E 91 CE 92 96 90 F2 90 40 91 1C 92 28 92 B8 8F
+DC 90 00 00 00 00 2A 8B A8 8E 00 00 44 92 88 8B
+B2 40 68 8B CE 21 82 43 D0 21 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12
+BC 8B 30 4D CE 8B 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 21 B0 12 BC 8B 1A 42 CA 21
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 0E 82 FE FF 29 83 B9 40 FA 81 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 E0 FF 3B 40
+10 00 3A 40 3A 18 B0 12 C0 8B 82 43 4A 18 C7 3F
+62 8C B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 4A 89
+0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12
+8E 83 E0 85 48 86 AC 80 8E 8C 82 84 22 88 90 8C
+3E 4F 3D 41 B2 41 C6 21 B0 12 8A 89 BA 40 85 12
+FC FF BA 40 60 8C FE FF 28 83 8A 48 00 00 BA 40
+82 80 02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12
+E0 85 48 86 AC 80 FA 8C DA 8C 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 60 8C 00 00
+01 20 3E 52 2E 83 21 53 30 41 F2 86 AC 80 02 8D
+F6 8C 04 8D B2 41 C6 21 30 41 92 83 C6 21 3E 40
+28 00 0A 4E 3D 15 B0 12 CA 8C 15 20 3E 40 2B 00
+B0 12 CA 8C 06 20 3E 40 2D 00 B0 12 CA 8C 92 83
+C6 21 0E 12 1E 41 02 00 84 12 E0 85 F2 86 AC 80
+26 89 44 8D 3E 51 3A 17 30 41 B0 12 0A 8D 19 42
+C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53
+C6 21 1A 42 C6 21 3D 15 84 12 E0 85 F2 86 AC 80
+7C 8D 74 8D 3E 90 10 00 E6 2B 7C 2D 7E 8D A2 41
+C6 21 E1 3F 03 20 B0 12 62 8D 43 3C 7A 90 23 00
+24 20 B0 12 12 8D 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 C8 21 A2 53
+C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 12 8D F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 5E 8D 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 62 8D 92 92 C2 21 C6 21 02 24 92 53
+C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 4A 8D
+F2 3F 03 20 B0 12 62 8D F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 4A 8D EA 3F
+0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42
+C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82
+C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A 80 00 13 4A 88 5C 85
+0A 80 2C 00 40 8E 84 8D 8E 83 4A 8E 22 8E 90 8E
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 80 8E 00 40 9C 8E 0A 4D 4F 56 2E 42 85 12
+80 8E 40 40 00 00 06 41 44 44 85 12 80 8E 00 50
+B6 8E 0A 41 44 44 2E 42 85 12 80 8E 40 50 C2 8E
+08 41 44 44 43 00 85 12 80 8E 00 60 D0 8E 0C 41
+44 44 43 2E 42 00 85 12 80 8E 40 60 08 8B 08 53
+55 42 43 00 85 12 80 8E 00 70 EE 8E 0C 53 55 42
+43 2E 42 00 85 12 80 8E 40 70 FC 8E 06 53 55 42
+85 12 80 8E 00 80 0C 8F 0A 53 55 42 2E 42 85 12
+80 8E 40 80 18 8F 06 43 4D 50 85 12 80 8E 00 90
+26 8F 0A 43 4D 50 2E 42 85 12 80 8E 40 90 00 00
+08 44 41 44 44 00 85 12 80 8E 00 A0 40 8F 0C 44
+41 44 44 2E 42 00 85 12 80 8E 40 A0 6E 8E 06 42
+49 54 85 12 80 8E 00 B0 5E 8F 0A 42 49 54 2E 42
+85 12 80 8E 40 B0 6A 8F 06 42 49 43 85 12 80 8E
+00 C0 78 8F 0A 42 49 43 2E 42 85 12 80 8E 40 C0
+84 8F 06 42 49 53 85 12 80 8E 00 D0 92 8F 0A 42
+49 53 2E 42 85 12 80 8E 40 D0 00 00 06 58 4F 52
+85 12 80 8E 00 E0 AC 8F 0A 58 4F 52 2E 42 85 12
+80 8E 40 E0 DE 8E 06 41 4E 44 85 12 80 8E 00 F0
+C6 8F 0A 41 4E 44 2E 42 85 12 80 8E 40 F0 8E 83
+40 8E 84 8D E6 8F 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F 9E 8F 06 52 52 43 85 12 DE 8F
+00 10 F8 8F 0A 52 52 43 2E 42 85 12 DE 8F 40 10
+32 8F 08 53 57 50 42 00 85 12 DE 8F 80 10 04 90
+06 52 52 41 85 12 DE 8F 00 11 20 90 0A 52 52 41
+2E 42 85 12 DE 8F 40 11 12 90 06 53 58 54 85 12
+DE 8F 80 11 00 00 08 50 55 53 48 00 85 12 DE 8F
+00 12 46 90 0C 50 55 53 48 2E 42 00 85 12 DE 8F
+40 12 3A 90 08 43 41 4C 4C 00 85 12 DE 8F 80 12
+1A 53 0E 4A 84 12 D0 85 1E 80 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 81 64 90 06 53 3E 3D
+86 12 00 38 8C 90 04 53 3C 00 86 12 00 34 54 90
+06 30 3E 3D 86 12 00 30 A0 90 04 30 3C 00 86 12
+00 30 DC 8A 04 55 3C 00 86 12 00 2C B4 90 06 55
+3E 3D 86 12 00 28 AA 90 06 30 3C 3E 86 12 00 24
+C8 90 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D
+4E 8F 08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D BE 90 08 45 4C 53 45 00 1A 42 C8 21
+BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00
+E3 3F 2C 90 0A 42 45 47 49 4E 30 40 32 80 16 91
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 21 30 4D D2 8F 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 E0 90 76 84 5C 85 34 91
+0C 52 45 50 45 41 54 00 0D 12 84 12 74 91 F8 90
+5C 85 A4 91 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21
+CB 2F 98 42 C8 21 00 00 30 4D 90 91 06 42 57 31
+85 12 A2 91 00 00 BC 91 06 42 57 32 85 12 A2 91
+00 00 C8 91 06 42 57 33 85 12 A2 91 00 00 E0 91
+3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21
+86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 DE 91 00 00 04 92
+06 46 57 32 85 12 DE 91 00 00 10 92 06 46 57 33
+85 12 DE 91 00 00 7E 91 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 16 89 22 88
+5C 85 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+4A 8E 0A 80 2C 00 E0 85 F2 86 AC 80 26 89 8E 83
+40 8E 22 8E 76 92 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E D4 91 08 52 52 43 4D 00 85 12 60 92 50 00
+A4 92 08 52 52 41 4D 00 85 12 60 92 50 01 B2 92
+08 52 4C 41 4D 00 85 12 60 92 50 02 C0 92 08 52
+52 55 4D 00 85 12 60 92 50 03 D2 90 0A 50 55 53
+48 4D 85 12 60 92 00 15 DC 92 08 50 4F 50 4D 00
+85 12 60 92 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-82 82 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81
-E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 E2 81 08 8D
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+B6 82 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81
+FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 FA 81 0E 82
 q
diff --git a/binaries/MSP_EXP430FR2355_8MHz_UART.txt b/binaries/MSP_EXP430FR2355_8MHz_UART.txt
deleted file mode 100644 (file)
index 933fdc7..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF F4 93 02 8C 34 01
-10 00 41 B3 94 81 AA 80 DA 81 9C 81 94 82 F4 93
-02 8C 7A 82 92 83 24 83 FE 82 3C 21 60 84 D4 80
-E2 80 EE 80 20 00 0A 00 00 00 00 00 00 00 00 00
-@8000
-B0 12 DA 81 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 80
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 80 39 40 22 18
-B2 49 78 82 B2 49 90 83 B2 49 22 83 B2 49 FC 82
-B2 49 CA 80 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE 8C 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 81 92 C3 9C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-9C 05 F3 23 B0 12 F8 80 0A 80 DE 21 E0 83 32 83
-14 80 04 1B 5B 37 6D 00 5C 83 A8 83 34 80 86 81
-14 80 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 83 A0 84 5C 83 14 80 04 1B 5B 30 6D 00
-5C 83 28 88 92 B3 8A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 80 05 92 42 02 18 86 05 92 42 04 18
-88 05 F2 D0 0C 00 2B 02 92 C3 80 05 92 D3 9A 05
-92 C3 30 01 30 41 09 3C A2 B3 9C 05 FD 27 B2 40
-13 00 8E 05 D2 D3 03 02 30 41 A2 B3 9C 05 FD 27
-B2 40 11 00 8E 05 D2 C3 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 81 E2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 81 04 57 41 52 4D 00 B0 12
-9C 81 84 12 14 80 07 0D 0A 1B 5B 37 6D 23 5C 83
-D6 84 14 80 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 5C 83
-0A 80 40 FF 28 80 D4 83 A0 84 14 80 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 80 86 81 00 00 06 41
-43 43 45 50 54 00 30 40 7A 82 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 82 3C 40 D2 82
-5D 15 B6 3E 21 52 3A 17 58 42 8C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 8E 05 30 4D C8 82 2D 83 92 B3 9C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 9C 05
-FD 27 58 42 8C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 82 2F 83
-8F 4E 00 00 B0 12 DA 81 92 B3 9C 05 FD 27 1E 42
-8C 05 B0 12 C8 81 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 83 08 4E 3E 4F C8 3F 1A 83 04 45 43 48
-4F 00 B2 40 C2 48 C0 82 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 82 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 83 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 83 7A 83 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 81 02 43 52 00 30 40
-92 83 0D 12 84 12 14 80 02 0D 0A 00 5C 83 60 84
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 82 01 40
-2E 4E 30 4D DE 83 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A 83 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E 80 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 1A 84 02 23 53 00 0D 12
-84 12 1C 84 56 84 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 84 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 83 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 84 4E 84 EE 80 8E 84 6A 84 5C 83 14 88 20 83
-60 84 40 83 01 2E 0E 93 E3 37 38 43 E2 3F 88 84
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A 80 14 80
-5A 87 0A 80 22 00 2C 85 FA 84 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 84 82 2E 22 00 0D 12 84 12 E4 84 0A 80 5C 83
-5A 87 60 84 18 82 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 80 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 80 35 40 D4 80
-30 4D 00 00 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 AE 86
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 86
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 80 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 87 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A 80 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 84 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 84 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 80 14 88 2C 85 D0 87
-9C 26 3D 40 D8 87 DE 3E DA 87 0A 4E 3E 4F 3D 40
-F4 87 36 27 3D 40 CA 87 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 87 3E 4F 3D 40 CA 87 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 89
-CC 3F FE 87 86 12 20 00 E6 83 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E 83
-BC 80 C4 87 C4 83 F6 83 14 80 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 81 0A 80 40 FF 28 80
-FE 83 14 80 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 81 3A 80 3E 88 1A 88 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 84 0A 80 2A 81 5A 87 60 84 8E 85
-01 27 0D 12 84 12 14 88 2C 85 94 85 34 80 12 88
-60 84 00 00 83 5B 27 5D 0D 12 84 12 92 88 0A 80
-0A 80 5A 87 5A 87 60 84 A4 88 81 5B 82 43 BE 21
-30 4D 0C 84 01 5D B2 43 BE 21 30 4D C4 88 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 88 2C 85 94 85 A8 83
-34 80 12 88 F6 83 34 80 06 89 0A 80 0A 80 5A 87
-5A 87 0A 80 5A 87 5A 87 60 84 BA 88 01 3A 30 12
-56 89 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 88
-2C 85 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 80 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 81 0C 89 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A 80 60 84 5A 87 68 89 BC 88
-60 84 BA 87 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 87 06 43 52 45
-41 54 45 00 B0 12 12 89 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 89 04 43 4F 44 45 00 B0 12 12 89
-A2 82 C6 21 0D 12 84 12 04 8C DE 8B 60 84 B4 89
-07 48 44 4E 43 4F 44 45 B2 40 E2 8B DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 89
-1E 8C 3C 8C 60 84 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E 8C 3C 8C 60 84
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 8A 85 48 49 32 4C 4F 0D 12 84 12 28 80
-AC 8B 5A 87 BC 88 F4 89 60 84 9A 89 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 8A 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 80 00 00 D8 83 14 88 2C 85
-AA 87 A0 83 34 80 14 8B AE 83 14 80 06 5B 54 48
-45 4E 5D 00 86 8A EE 8A AA 8A CC 8A 60 84 AE 83
-14 80 06 5B 45 4C 53 45 5D 00 86 8A 04 8B AA 8A
-CA 8A 60 84 14 80 04 5B 49 46 5D 00 86 8A CC 8A
-3A 80 CA 8A 82 83 14 80 05 0D 0A 6B 6F 20 5C 83
-BC 80 AC 80 3A 80 CC 8A BA 8A 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 8B 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 88 2C 85
-94 85 38 8B 60 84 3E 8B 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 8B F0 83 60 84 70 8B
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 87
-06 4D 41 52 4B 45 52 00 B0 12 12 89 BA 40 85 12
-FC FF BA 40 6E 8B FE FF 28 83 8A 48 00 00 BA 40
-AA 80 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A 80 CA 21 E8 83 60 84 85 12 B0 8B 78 88 E6 89
-2C 83 90 88 64 8A F6 82 80 8B 12 85 A8 8C BC 8C
-9C 84 26 85 00 00 58 8B CE 88 F4 85 00 00 85 12
-B0 8B 6A 92 D0 92 12 92 20 93 D8 91 00 00 A4 8F
-00 00 E8 93 CC 93 3C 92 7A 92 B4 90 00 00 00 00
-3C 93 DC 8B 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 8B 36 8C 3C 8C 4C 8C 1A 42 20 18
-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
-DA 88 09 50 57 52 5F 53 54 41 54 45 85 12 44 8C
-F4 93 E0 84 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 8C F3 3F 82 8C 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 8C 30 4D 94 8C 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 8D FE FF 29 83
-B9 40 02 82 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 82 B2 49 FA 80 B2 49 02 80 B2 49 20 82
-B2 49 E2 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 D3 06 02 B2 40 FE FF 02 02 D2 D3 05 02 B2 D3
-26 02 B2 43 22 02 F2 D3 47 02 F2 40 BF 00 43 02
-B2 40 00 A5 60 01 B2 40 FF 1E 80 01 B2 40 B6 00
-82 01 B2 40 F3 00 84 01 82 43 88 01 F2 D0 C0 00
-0D 02 39 40 5C 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 80 1E 82 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 2C 85 94 85 F0 83 34 80 E4 8D 50 86 34 80
-FE 8D F8 8D E6 8D 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 00 8E
-B2 41 C4 21 3E 41 84 12 0A 80 2B 00 2C 85 94 85
-F0 83 34 80 1C 8E 50 86 34 80 12 88 BA 83 2C 85
-50 86 34 80 12 88 28 8E 3E 5F E7 3F 3E 40 28 00
-B0 12 C8 8D 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 80 89
-1C 15 12 12 C4 21 92 53 C4 21 84 12 2C 85 50 86
-34 80 70 8E 66 8E 21 53 3E 90 10 00 C6 2B 7F 2D
-72 8E B2 41 C4 21 C1 3F 0D 12 84 12 14 88 A4 8D
-82 8E 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 C8 8D 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 C8 8D ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 50 8E 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 50 8E 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 50 8E FA 23
-3C 50 10 00 B0 12 2C 8E EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 14 88 A4 8D 4E 8F FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 50 8E E0 23 3C 50 80 00 B0 12 2C 8E DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A 80 00 13
-5A 87 60 84 0A 80 2C 00 78 8E 44 8F 8E 8F 09 4B
-2E 4E 0E DC A2 3F 52 8A 03 4D 4F 56 85 12 84 8F
-00 40 98 8F 05 4D 4F 56 2E 42 85 12 84 8F 40 40
-00 00 03 41 44 44 85 12 84 8F 00 50 B2 8F 05 41
-44 44 2E 42 85 12 84 8F 40 50 BE 8F 04 41 44 44
-43 00 85 12 84 8F 00 60 CC 8F 06 41 44 44 43 2E
-42 00 85 12 84 8F 40 60 72 8F 04 53 55 42 43 00
-85 12 84 8F 00 70 EA 8F 06 53 55 42 43 2E 42 00
-85 12 84 8F 40 70 F8 8F 03 53 55 42 85 12 84 8F
-00 80 08 90 05 53 55 42 2E 42 85 12 84 8F 40 80
-28 8A 03 43 4D 50 85 12 84 8F 00 90 22 90 05 43
-4D 50 2E 42 85 12 84 8F 40 90 12 8A 04 44 41 44
-44 00 85 12 84 8F 00 A0 3C 90 06 44 41 44 44 2E
-42 00 85 12 84 8F 40 A0 2E 90 03 42 49 54 85 12
-84 8F 00 B0 5A 90 05 42 49 54 2E 42 85 12 84 8F
-40 B0 66 90 03 42 49 43 85 12 84 8F 00 C0 74 90
-05 42 49 43 2E 42 85 12 84 8F 40 C0 80 90 03 42
-49 53 85 12 84 8F 00 D0 8E 90 05 42 49 53 2E 42
-85 12 84 8F 40 D0 00 00 03 58 4F 52 85 12 84 8F
-00 E0 A8 90 05 58 4F 52 2E 42 85 12 84 8F 40 E0
-DA 8F 03 41 4E 44 85 12 84 8F 00 F0 C2 90 05 41
-4E 44 2E 42 85 12 84 8F 40 F0 14 88 78 8E E0 90
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-14 90 03 52 52 43 85 12 DA 90 00 10 F2 90 05 52
-52 43 2E 42 85 12 DA 90 40 10 FE 90 04 53 57 50
-42 00 85 12 DA 90 80 10 0C 91 03 52 52 41 85 12
-DA 90 00 11 1A 91 05 52 52 41 2E 42 85 12 DA 90
-40 11 26 91 03 53 58 54 85 12 DA 90 80 11 00 00
-04 50 55 53 48 00 85 12 DA 90 00 12 40 91 06 50
-55 53 48 2E 42 00 85 12 DA 90 40 12 9A 90 04 43
-41 4C 4C 00 85 12 DA 90 80 12 1A 53 0E 4A 0D 12
-84 12 D6 84 14 80 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 81 34 91 03 53 3E 3D 86 12 00 38
-88 91 02 53 3C 00 86 12 00 34 4E 91 03 30 3E 3D
-86 12 00 30 9C 91 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C B0 91 03 55 3E 3D 86 12
-00 28 A6 91 03 30 3C 3E 86 12 00 24 C4 91 02 30
-3D 00 86 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 BA 91 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 B1 2F 88 DA 00 00 30 4D
-4A 90 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 5E 91
-05 42 45 47 49 4E 30 40 28 80 EE 91 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D CE 90 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 DC 91 BA 83 60 84 92 91 06 52 45 50
-45 41 54 00 0D 12 84 12 70 92 F4 91 60 84 A0 92
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 30 92 03 42 57 31 85 12 9E 92
-00 00 B8 92 03 42 57 32 85 12 9E 92 00 00 C4 92
-03 42 57 33 85 12 9E 92 00 00 DC 92 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 DA 92 00 00 FC 92 03 46 57 32 85 12 DA 92
-00 00 08 93 03 46 57 33 85 12 DA 92 00 00 14 93
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 92 88 EE 87 60 84 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 14 88 A4 8D 5E 93 92 53
-C4 21 3E 40 2C 00 84 12 2C 85 50 86 34 80 12 88
-3A 8F 74 93 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-8C 92 04 52 52 43 4D 00 85 12 58 93 50 00 A2 93
-04 52 52 41 4D 00 85 12 58 93 50 01 B0 93 04 52
-4C 41 4D 00 85 12 58 93 50 02 BE 93 04 52 52 55
-4D 00 85 12 58 93 50 03 CE 91 05 50 55 53 48 4D
-85 12 58 93 00 15 DA 93 04 50 4F 50 4D 00 85 12
-58 93 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 94 82 02 82 02 82 02 82 02 82 02 82 02 82
-02 82 02 82 02 82 02 82 02 82 02 82 02 82 1A 8D
-q
diff --git a/binaries/MSP_EXP430FR2433_16MHz_115200.txt b/binaries/MSP_EXP430FR2433_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..d76dd56
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A0 59
+C2 C6 7E C5 84 C5 54 C5 32 C7 20 D7 D8 CF 92 CF
+92 CF A8 C6 66 C7 2E C7 3C 21 E0 20 86 C9 B6 C4
+C4 C4 A2 C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+32 C7 20 D7 D8 CF 92 CF 92 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 FC 3C 0E 93 3E 4F
+91 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A6 C6 B2 49
+64 C7 B2 49 2C C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 4C D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 32 C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 AC C8 AC C4 52 C5 74 C7 1E C4 04 1B
+5B 37 6D 00 96 C7 96 C7 1E C4 04 1B 5B 30 6D 00
+96 C7 E2 CC B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 74 C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 96 C7 FA C9 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 96 C7 0A C4 40 FF 32 C4
+C2 C8 C6 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B2 01 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 43 06 02 B2 40 FC FF 02 02 D2 D3 04 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 82 43 88 01
+F2 D0 03 00 0B 02 F2 C3 82 01 F2 D0 0A 00 82 01
+B2 40 E8 01 84 01 39 40 80 00 18 42 00 18 18 83
+FE 23 19 83 FA 23 39 40 00 10 29 83 89 43 00 20
+FC 23 19 42 5E 01 1E 42 08 18 82 43 08 18 3E F3
+01 20 0E 49 B0 12 D0 C4 86 C5 00 00 0C 41 43 43
+45 50 54 00 30 40 A8 C6 08 4E 2E 4F 08 5E 39 40
+0D 00 3A 40 20 00 3B 40 06 C7 3C 40 12 C7 5D 15
+9F 3E 21 52 3A 17 58 42 0C 05 48 9B 09 20 A2 B3
+1C 05 FD 27 B2 40 13 00 0E 05 D2 D3 02 02 30 41
+48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 1C 05 FD 27
+C2 48 0E 05 30 4D 08 C7 2D 83 92 B3 1C 05 DB 23
+FC 3F 3E 8F 3D 41 92 B3 1C 05 FD 27 58 42 0C 05
+08 4C EB 3F 00 00 06 4B 45 59 30 40 2E C7 30 12
+44 C7 A2 B3 1C 05 FD 27 B2 40 11 00 0E 05 D2 C3
+02 02 30 41 2F 83 8F 4E 00 00 92 B3 1C 05 FD 27
+B0 12 CE C6 1E 42 0C 05 30 4D 00 00 08 45 4D 49
+54 00 30 40 66 C7 08 4E 3E 4F C7 3F 5C C7 08 45
+43 48 4F 00 B2 40 C2 48 00 C7 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D 00 C7 30 4D 00 00
+08 54 59 50 45 00 0D 12 3D 40 A6 C7 29 4F 8F 4E
+00 00 7E 49 DE 3F A8 C7 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 75 22 F9 98 00 00 72 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 69 22
+9B 24 26 C7 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A C4 00 00 C6 C8 B8 C7 0A CA C4 CC B0 C4 34 C8
+14 C4 06 5B 54 48 45 4E 5D 00 BC C7 12 C8 D8 C7
+F6 C7 14 C4 06 5B 45 4C 53 45 5D 00 BC C7 24 C8
+D8 C7 F4 C7 1E C4 04 5B 49 46 5D 00 BC C7 F6 C7
+B2 C4 F4 C7 1E C4 05 0D 6B 6F 20 0A 96 C7 9A C4
+84 C4 B2 C4 F6 C7 E4 C7 0D 5B 54 48 45 4E 5D 00
+30 4D 48 C8 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 54 C8 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 B8 C7 0A CA 72 CA 16 CC 86 C9 64 C8 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 B8 C7
+0A CA 72 CA 96 C8 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D 9C C6 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C5
+05 53 22 00 82 43 C0 21 0D 12 84 12 0A C4 1E C4
+74 CC 0A C4 22 00 0A CA 0A C9 B2 40 20 00 C0 21
+1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 7E C7
+05 2E 22 00 0D 12 84 12 F4 C8 0A C4 96 C7 74 CC
+86 C9 00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D
+F0 C8 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4
+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
+42 C9 04 23 53 00 0D 12 84 12 44 C9 7E C9 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 72 C9 04 23 3E 00
+9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 8C C9 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+6E C7 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 38 C9 B8 C7 A6 C9 76 C9 A2 C8 B4 C9
+90 C9 96 C7 86 C9 20 C9 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42
+C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D F8 C9 0E 3E 4E 55 4D 42 45 52 1B 42 BE 21
+3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80
+3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B
+22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 21 0C 4E
+0E 43 1E 15 3D 40 7C CB 7E 4C 6A 4C 7A 80 2D 00
+16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24
+3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00
+3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43
+02 00 1E 83 FC 9C 00 00 E0 23 AE 27 7E CB 2F 24
+2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20
+32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E
+09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80
+3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B
+08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E C4 2A 17
+E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17
+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 34 C9 03 5C 92 42
+C2 21 C6 21 30 4D 0D 12 84 12 84 C4 B8 C7 0A CA
+B0 C4 4E CD 72 CA 38 CC 0A 4E 3E 4F 3D 40 52 CC
+6D 27 3D 40 2C CC 1A E2 BC 21 14 24 0E 12 3E 4F
+30 41 54 CC 3E 4F 3D 40 2C CC 19 20 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 2A CE 2A 3C
+1C CC 02 2C A2 53 C8 21 1A 42 C8 21 8A 4E FE FF
+3E 4F 30 4D 72 CC 0F 4C 49 54 45 52 41 4C 82 93
+BC 21 0D 24 09 4E 1A 42 C8 21 A2 52 C8 21 BA 40
+0A C4 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
+00 02 03 24 8A 4E 02 00 EE 3F 30 4D AE C9 0A 43
+4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3
+30 4D D4 C8 0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F
+30 4D 3F 40 80 20 0E 43 84 12 1E C4 02 0D 0A 00
+96 C7 94 C4 26 CC B4 C8 DE C8 1E C4 0B 73 74 61
+63 6B 20 65 6D 70 74 79 08 C5 32 C4 0A C4 40 FF
+E6 C8 1E C4 09 46 52 41 4D 20 66 75 6C 6C 08 C5
+B2 C4 EA CC D4 CC 0D 41 42 4F 52 54 22 00 0D 12
+84 12 F4 C8 0A C4 08 C5 74 CC 86 C9 04 CA 02 27
+0D 12 84 12 B8 C7 0A CA 72 CA B0 C4 50 CD 18 C9
+5C CC 7E C8 07 5B 27 5D 0D 12 84 12 40 CD 0A C4
+0A C4 74 CC 74 CC 86 C9 54 CD 03 5B 82 43 BC 21
+30 4D 00 00 02 5D B2 43 BC 21 30 4D CC C8 11 50
+4F 53 54 50 4F 4E 45 00 0D 12 84 12 B8 C7 0A CA
+72 CA B0 C4 50 CD DE C8 AC C4 A8 CD 0A C4 0A C4
+74 CC 74 CC 0A C4 74 CC 74 CC 86 C9 00 00 02 3A
+30 12 FE CD 92 B3 C8 21 A2 63 C8 21 0D 12 84 12
+B8 C7 0A CA C6 CD 3D 41 5A D3 5A 53 0A 5E 19 42
+CC 21 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E
+3E 4F E8 58 00 00 82 48 B4 21 82 49 B6 21 82 4A
+B8 21 82 4F BA 21 2A 52 82 4A C8 21 30 41 BA 40
+0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 21 30 4D
+82 9F BA 21 66 25 84 12 1E C4 0F 73 74 61 63 6B
+20 6D 69 73 6D 61 74 63 68 21 12 C5 6A CD 03 3B
+82 93 BC 21 F4 26 0D 12 84 12 0A C4 86 C9 74 CC
+10 CE 6C CD 86 C9 00 00 12 49 4D 4D 45 44 49 41
+54 45 18 42 B4 21 D8 D3 00 00 30 4D BE CC 0C 43
+52 45 41 54 45 00 B0 12 B4 CD BA 40 86 12 FC FF
+8A 4A FE FF 3A 3D 90 C7 0A 44 4F 45 53 3E 1A 42
+B8 21 BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
+AE CD 0E 3A 4E 4F 4E 41 4D 45 30 12 FE CD 2F 83
+8F 4E 00 00 1A 42 C8 21 1A B3 0A 63 0E 4A 39 40
+12 02 08 49 98 3F 48 CE 05 49 53 00 0D 12 82 93
+BC 21 08 20 84 12 40 CD CA CE 3D 41 BE 4F 02 00
+3E 4F 30 4D 84 12 58 CD 0A C4 CC CE 74 CC 86 C9
+5E CE 08 43 4F 44 45 00 B0 12 B4 CD A2 82 C8 21
+61 3C A0 C9 0E 48 44 4E 43 4F 44 45 B2 40 B8 CF
+CC 21 F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12
+84 12 10 CE 16 CF 3D 41 92 42 D0 21 CC 21 5D 3C
+E2 CE 0E 43 4F 44 45 4E 4E 4D 30 12 EC CE B7 3F
+00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12
+00 00 BA 40 84 12 02 00 A2 52 C8 21 B2 43 BC 21
+E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 21 1A 42
+C8 21 EF 3F F4 CE 0B 48 49 32 4C 4F A2 53 C8 21
+1A 42 C8 21 8A 4A FE FF 82 43 BC 21 B9 3F 80 CF
+B2 40 92 CF D0 21 82 4E CE 21 30 40 18 C9 85 12
+7E CF 7E CD 26 CD 10 D0 22 CF 78 CE C2 C9 6C CA
+3E CD 66 CF B8 CE 92 CE 2E CE 86 CC 9A D0 C4 CA
+00 00 00 00 85 12 7E CF 14 D7 98 D5 F8 D6 C0 D4
+1C D5 6A D5 46 D6 52 D6 E2 D3 06 D5 00 00 00 00
+54 CF D2 D2 00 00 6E D6 B2 CF B2 40 92 CF CE 21
+82 43 D0 21 30 4D 3B 40 0A 00 BA 49 00 00 2A 53
+2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54
+39 40 C8 21 3A 40 42 18 B0 12 E6 CF 30 4D F8 CF
+0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40
+C8 21 B0 12 E6 CF 1A 42 CA 21 3B 40 10 00 09 4A
+08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00
+1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37
+39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40 06 C6
+FE FF 29 83 B9 40 F2 C5 FE FF 39 90 AE FF F9 23
+39 40 10 18 B2 49 E4 FF 3B 40 10 00 3A 40 3A 18
+B0 12 EA CF 82 43 4A 18 C7 3F 8C D0 B2 4E 42 18
+BE 12 3E 4F 3D 41 C0 3F 74 CD 0C 4D 41 52 4B 45
+52 00 12 12 C6 21 0D 12 84 12 B8 C7 0A CA 72 CA
+AC C4 B8 D0 AC C8 4C CC BA D0 3E 4F 3D 41 B2 41
+C6 21 B0 12 B4 CD BA 40 85 12 FC FF BA 40 8A D0
+FE FF 28 83 8A 48 00 00 BA 40 82 C4 02 00 A2 52
+C8 21 18 42 B4 21 19 42 B6 21 A8 49 FE FF 89 48
+00 00 30 4D 12 12 C6 21 84 12 0A CA 72 CA AC C4
+24 D1 04 D1 3C 4E 3C 80 87 12 0A 24 1C 53 02 20
+2E 4E 06 3C BE 90 8A D0 00 00 01 20 3E 52 2E 83
+21 53 30 41 1C CB AC C4 2C D1 20 D1 2E D1 B2 41
+C6 21 30 41 92 83 C6 21 3E 40 28 00 0A 4E 3D 15
+B0 12 F4 D0 15 20 3E 40 2B 00 B0 12 F4 D0 06 20
+3E 40 2D 00 B0 12 F4 D0 92 83 C6 21 0E 12 1E 41
+02 00 84 12 0A CA 1C CB AC C4 50 CD 6E D1 3E 51
+3A 17 30 41 B0 12 34 D1 19 42 C8 21 89 4E 00 00
+A2 53 C8 21 3E 40 29 00 92 53 C6 21 1A 42 C6 21
+3D 15 84 12 0A CA 1C CB AC C4 A6 D1 9E D1 3E 90
+10 00 E6 2B 7C 2D A8 D1 A2 41 C6 21 E1 3F 03 20
+B0 12 8C D1 43 3C 7A 90 23 00 24 20 B0 12 3C D1
+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 C8 21 A2 53 C8 21 89 4E 00 00
+3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12
+3C D1 F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12
+88 D1 0C 20 3C D0 10 00 3E 40 2B 00 B0 12 8C D1
+92 92 C2 21 C6 21 02 24 92 53 C6 21 8E 10 0C 5E
+DF 3F 3C D0 10 00 B0 12 74 D1 F2 3F 03 20 B0 12
+8C D1 F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F
+3C D0 80 00 B0 12 74 D1 EA 3F 0C 43 1B 42 C8 21
+A2 53 C8 21 3A 40 20 00 19 42 C6 21 19 52 C4 21
+7A 99 FE 27 5A 49 FF FF 19 82 C4 21 82 49 C6 21
+7A 90 52 00 30 4D 00 00 08 52 45 54 49 00 0D 12
+84 12 0A C4 00 13 74 CC 86 C9 0A C4 2C 00 6A D2
+AE D1 B8 C7 74 D2 4C D2 BA D2 3D 41 2C DE 8B 4C
+00 00 9E 3F 00 00 06 4D 4F 56 85 12 AA D2 00 40
+C6 D2 0A 4D 4F 56 2E 42 85 12 AA D2 40 40 00 00
+06 41 44 44 85 12 AA D2 00 50 E0 D2 0A 41 44 44
+2E 42 85 12 AA D2 40 50 EC D2 08 41 44 44 43 00
+85 12 AA D2 00 60 FA D2 0C 41 44 44 43 2E 42 00
+85 12 AA D2 40 60 32 CF 08 53 55 42 43 00 85 12
+AA D2 00 70 18 D3 0C 53 55 42 43 2E 42 00 85 12
+AA D2 40 70 26 D3 06 53 55 42 85 12 AA D2 00 80
+36 D3 0A 53 55 42 2E 42 85 12 AA D2 40 80 42 D3
+06 43 4D 50 85 12 AA D2 00 90 50 D3 0A 43 4D 50
+2E 42 85 12 AA D2 40 90 00 00 08 44 41 44 44 00
+85 12 AA D2 00 A0 6A D3 0C 44 41 44 44 2E 42 00
+85 12 AA D2 40 A0 98 D2 06 42 49 54 85 12 AA D2
+00 B0 88 D3 0A 42 49 54 2E 42 85 12 AA D2 40 B0
+94 D3 06 42 49 43 85 12 AA D2 00 C0 A2 D3 0A 42
+49 43 2E 42 85 12 AA D2 40 C0 AE D3 06 42 49 53
+85 12 AA D2 00 D0 BC D3 0A 42 49 53 2E 42 85 12
+AA D2 40 D0 00 00 06 58 4F 52 85 12 AA D2 00 E0
+D6 D3 0A 58 4F 52 2E 42 85 12 AA D2 40 E0 08 D3
+06 41 4E 44 85 12 AA D2 00 F0 F0 D3 0A 41 4E 44
+2E 42 85 12 AA D2 40 F0 B8 C7 6A D2 AE D1 10 D4
+0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F
+C8 D3 06 52 52 43 85 12 08 D4 00 10 22 D4 0A 52
+52 43 2E 42 85 12 08 D4 40 10 5C D3 08 53 57 50
+42 00 85 12 08 D4 80 10 2E D4 06 52 52 41 85 12
+08 D4 00 11 4A D4 0A 52 52 41 2E 42 85 12 08 D4
+40 11 3C D4 06 53 58 54 85 12 08 D4 80 11 00 00
+08 50 55 53 48 00 85 12 08 D4 00 12 70 D4 0C 50
+55 53 48 2E 42 00 85 12 08 D4 40 12 64 D4 08 43
+41 4C 4C 00 85 12 08 D4 80 12 1A 53 0E 4A 84 12
+FA C9 1E C4 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
+64 73 12 C5 8E D4 06 53 3E 3D 86 12 00 38 B6 D4
+04 53 3C 00 86 12 00 34 7E D4 06 30 3E 3D 86 12
+00 30 CA D4 04 30 3C 00 86 12 00 30 06 CF 04 55
+3C 00 86 12 00 2C DE D4 06 55 3E 3D 86 12 00 28
+D4 D4 06 30 3C 3E 86 12 00 24 F2 D4 04 30 3D 00
+86 12 00 20 00 00 04 49 46 00 1A 42 C8 21 8A 4E
+00 00 A2 53 C8 21 0E 4A 30 4D 78 D3 08 54 48 45
+4E 00 1A 42 C8 21 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D E8 D4
+08 45 4C 53 45 00 1A 42 C8 21 BA 40 00 3C 00 00
+A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F 56 D4 0A 42
+45 47 49 4E 30 40 32 C4 40 D5 0A 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83 0A 89 0A 11
+3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C8 21 30 4D FC D3 0A 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12
+84 12 0A D5 A0 C8 86 C9 5E D5 0C 52 45 50 45 41
+54 00 0D 12 84 12 9E D5 22 D5 86 C9 CE D5 3D 41
+08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42 C8 21
+00 00 30 4D BA D5 06 42 57 31 85 12 CC D5 00 00
+E6 D5 06 42 57 32 85 12 CC D5 00 00 F2 D5 06 42
+57 33 85 12 CC D5 00 00 0A D6 3D 41 1A 42 C8 21
+28 4E 8E 43 00 00 B2 92 C6 21 86 2B BA 4F 00 00
+A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D 00 00 06 46
+57 31 85 12 08 D6 00 00 2E D6 06 46 57 32 85 12
+08 D6 00 00 3A D6 06 46 57 33 85 12 08 D6 00 00
+A8 D5 08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C 0D 12 84 12 40 CD 4C CC 86 C9 00 00 0A 3F
+47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
+00 10 EF 27 3E E0 00 08 EC 3F 74 D2 0A C4 2C 00
+0A CA 1C CB AC C4 50 CD B8 C7 6A D2 4C D2 A0 D6
+0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E
+AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E FE D5 08 52
+52 43 4D 00 85 12 8A D6 50 00 CE D6 08 52 52 41
+4D 00 85 12 8A D6 50 01 DC D6 08 52 4C 41 4D 00
+85 12 8A D6 50 02 EA D6 08 52 52 55 4D 00 85 12
+8A D6 50 03 FC D4 0A 50 55 53 48 4D 85 12 8A D6
+00 15 06 D7 08 50 4F 50 4D 00 85 12 8A D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 C2 C6 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 06 C6
+q
diff --git a/binaries/MSP_EXP430FR2433_16MHz_4MBds.txt b/binaries/MSP_EXP430FR2433_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..f6946da
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A0 59
+C2 C6 7E C5 84 C5 54 C5 32 C7 20 D7 D8 CF 92 CF
+92 CF A8 C6 66 C7 2E C7 3C 21 E0 20 86 C9 B6 C4
+C4 C4 A2 C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+32 C7 20 D7 D8 CF 92 CF 92 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 FC 3C 0E 93 3E 4F
+91 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A6 C6 B2 49
+64 C7 B2 49 2C C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 4C D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 32 C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 AC C8 AC C4 52 C5 74 C7 1E C4 04 1B
+5B 37 6D 00 96 C7 96 C7 1E C4 04 1B 5B 30 6D 00
+96 C7 E2 CC B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 74 C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 96 C7 FA C9 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 96 C7 0A C4 40 FF 32 C4
+C2 C8 C6 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B2 01 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 43 06 02 B2 40 FC FF 02 02 D2 D3 04 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 82 43 88 01
+F2 D0 03 00 0B 02 F2 C3 82 01 F2 D0 0A 00 82 01
+B2 40 E8 01 84 01 39 40 80 00 18 42 00 18 18 83
+FE 23 19 83 FA 23 39 40 00 10 29 83 89 43 00 20
+FC 23 19 42 5E 01 1E 42 08 18 82 43 08 18 3E F3
+01 20 0E 49 B0 12 D0 C4 86 C5 00 00 0C 41 43 43
+45 50 54 00 30 40 A8 C6 08 4E 2E 4F 08 5E 39 40
+0D 00 3A 40 20 00 3B 40 06 C7 3C 40 12 C7 5D 15
+9F 3E 21 52 3A 17 58 42 0C 05 48 9B 09 20 A2 B3
+1C 05 FD 27 B2 40 13 00 0E 05 D2 D3 02 02 30 41
+48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 1C 05 FD 27
+C2 48 0E 05 30 4D 08 C7 2D 83 92 B3 1C 05 DB 23
+FC 3F 3E 8F 3D 41 92 B3 1C 05 FD 27 58 42 0C 05
+08 4C EB 3F 00 00 06 4B 45 59 30 40 2E C7 30 12
+44 C7 A2 B3 1C 05 FD 27 B2 40 11 00 0E 05 D2 C3
+02 02 30 41 2F 83 8F 4E 00 00 92 B3 1C 05 FD 27
+B0 12 CE C6 1E 42 0C 05 30 4D 00 00 08 45 4D 49
+54 00 30 40 66 C7 08 4E 3E 4F C7 3F 5C C7 08 45
+43 48 4F 00 B2 40 C2 48 00 C7 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D 00 C7 30 4D 00 00
+08 54 59 50 45 00 0D 12 3D 40 A6 C7 29 4F 8F 4E
+00 00 7E 49 DE 3F A8 C7 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 75 22 F9 98 00 00 72 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 69 22
+9B 24 26 C7 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A C4 00 00 C6 C8 B8 C7 0A CA C4 CC B0 C4 34 C8
+14 C4 06 5B 54 48 45 4E 5D 00 BC C7 12 C8 D8 C7
+F6 C7 14 C4 06 5B 45 4C 53 45 5D 00 BC C7 24 C8
+D8 C7 F4 C7 1E C4 04 5B 49 46 5D 00 BC C7 F6 C7
+B2 C4 F4 C7 1E C4 05 0D 6B 6F 20 0A 96 C7 9A C4
+84 C4 B2 C4 F6 C7 E4 C7 0D 5B 54 48 45 4E 5D 00
+30 4D 48 C8 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 54 C8 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 B8 C7 0A CA 72 CA 16 CC 86 C9 64 C8 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 B8 C7
+0A CA 72 CA 96 C8 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D 9C C6 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C5
+05 53 22 00 82 43 C0 21 0D 12 84 12 0A C4 1E C4
+74 CC 0A C4 22 00 0A CA 0A C9 B2 40 20 00 C0 21
+1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 7E C7
+05 2E 22 00 0D 12 84 12 F4 C8 0A C4 96 C7 74 CC
+86 C9 00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D
+F0 C8 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4
+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
+42 C9 04 23 53 00 0D 12 84 12 44 C9 7E C9 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 72 C9 04 23 3E 00
+9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 8C C9 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+6E C7 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 38 C9 B8 C7 A6 C9 76 C9 A2 C8 B4 C9
+90 C9 96 C7 86 C9 20 C9 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42
+C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D F8 C9 0E 3E 4E 55 4D 42 45 52 1B 42 BE 21
+3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80
+3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B
+22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 21 0C 4E
+0E 43 1E 15 3D 40 7C CB 7E 4C 6A 4C 7A 80 2D 00
+16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24
+3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00
+3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43
+02 00 1E 83 FC 9C 00 00 E0 23 AE 27 7E CB 2F 24
+2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20
+32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E
+09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80
+3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B
+08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E C4 2A 17
+E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17
+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 34 C9 03 5C 92 42
+C2 21 C6 21 30 4D 0D 12 84 12 84 C4 B8 C7 0A CA
+B0 C4 4E CD 72 CA 38 CC 0A 4E 3E 4F 3D 40 52 CC
+6D 27 3D 40 2C CC 1A E2 BC 21 14 24 0E 12 3E 4F
+30 41 54 CC 3E 4F 3D 40 2C CC 19 20 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 2A CE 2A 3C
+1C CC 02 2C A2 53 C8 21 1A 42 C8 21 8A 4E FE FF
+3E 4F 30 4D 72 CC 0F 4C 49 54 45 52 41 4C 82 93
+BC 21 0D 24 09 4E 1A 42 C8 21 A2 52 C8 21 BA 40
+0A C4 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
+00 02 03 24 8A 4E 02 00 EE 3F 30 4D AE C9 0A 43
+4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3
+30 4D D4 C8 0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F
+30 4D 3F 40 80 20 0E 43 84 12 1E C4 02 0D 0A 00
+96 C7 94 C4 26 CC B4 C8 DE C8 1E C4 0B 73 74 61
+63 6B 20 65 6D 70 74 79 08 C5 32 C4 0A C4 40 FF
+E6 C8 1E C4 09 46 52 41 4D 20 66 75 6C 6C 08 C5
+B2 C4 EA CC D4 CC 0D 41 42 4F 52 54 22 00 0D 12
+84 12 F4 C8 0A C4 08 C5 74 CC 86 C9 04 CA 02 27
+0D 12 84 12 B8 C7 0A CA 72 CA B0 C4 50 CD 18 C9
+5C CC 7E C8 07 5B 27 5D 0D 12 84 12 40 CD 0A C4
+0A C4 74 CC 74 CC 86 C9 54 CD 03 5B 82 43 BC 21
+30 4D 00 00 02 5D B2 43 BC 21 30 4D CC C8 11 50
+4F 53 54 50 4F 4E 45 00 0D 12 84 12 B8 C7 0A CA
+72 CA B0 C4 50 CD DE C8 AC C4 A8 CD 0A C4 0A C4
+74 CC 74 CC 0A C4 74 CC 74 CC 86 C9 00 00 02 3A
+30 12 FE CD 92 B3 C8 21 A2 63 C8 21 0D 12 84 12
+B8 C7 0A CA C6 CD 3D 41 5A D3 5A 53 0A 5E 19 42
+CC 21 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E
+3E 4F E8 58 00 00 82 48 B4 21 82 49 B6 21 82 4A
+B8 21 82 4F BA 21 2A 52 82 4A C8 21 30 41 BA 40
+0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 21 30 4D
+82 9F BA 21 66 25 84 12 1E C4 0F 73 74 61 63 6B
+20 6D 69 73 6D 61 74 63 68 21 12 C5 6A CD 03 3B
+82 93 BC 21 F4 26 0D 12 84 12 0A C4 86 C9 74 CC
+10 CE 6C CD 86 C9 00 00 12 49 4D 4D 45 44 49 41
+54 45 18 42 B4 21 D8 D3 00 00 30 4D BE CC 0C 43
+52 45 41 54 45 00 B0 12 B4 CD BA 40 86 12 FC FF
+8A 4A FE FF 3A 3D 90 C7 0A 44 4F 45 53 3E 1A 42
+B8 21 BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
+AE CD 0E 3A 4E 4F 4E 41 4D 45 30 12 FE CD 2F 83
+8F 4E 00 00 1A 42 C8 21 1A B3 0A 63 0E 4A 39 40
+12 02 08 49 98 3F 48 CE 05 49 53 00 0D 12 82 93
+BC 21 08 20 84 12 40 CD CA CE 3D 41 BE 4F 02 00
+3E 4F 30 4D 84 12 58 CD 0A C4 CC CE 74 CC 86 C9
+5E CE 08 43 4F 44 45 00 B0 12 B4 CD A2 82 C8 21
+61 3C A0 C9 0E 48 44 4E 43 4F 44 45 B2 40 B8 CF
+CC 21 F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12
+84 12 10 CE 16 CF 3D 41 92 42 D0 21 CC 21 5D 3C
+E2 CE 0E 43 4F 44 45 4E 4E 4D 30 12 EC CE B7 3F
+00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12
+00 00 BA 40 84 12 02 00 A2 52 C8 21 B2 43 BC 21
+E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 21 1A 42
+C8 21 EF 3F F4 CE 0B 48 49 32 4C 4F A2 53 C8 21
+1A 42 C8 21 8A 4A FE FF 82 43 BC 21 B9 3F 80 CF
+B2 40 92 CF D0 21 82 4E CE 21 30 40 18 C9 85 12
+7E CF 7E CD 26 CD 10 D0 22 CF 78 CE C2 C9 6C CA
+3E CD 66 CF B8 CE 92 CE 2E CE 86 CC 9A D0 C4 CA
+00 00 00 00 85 12 7E CF 14 D7 98 D5 F8 D6 C0 D4
+1C D5 6A D5 46 D6 52 D6 E2 D3 06 D5 00 00 00 00
+54 CF D2 D2 00 00 6E D6 B2 CF B2 40 92 CF CE 21
+82 43 D0 21 30 4D 3B 40 0A 00 BA 49 00 00 2A 53
+2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54
+39 40 C8 21 3A 40 42 18 B0 12 E6 CF 30 4D F8 CF
+0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40
+C8 21 B0 12 E6 CF 1A 42 CA 21 3B 40 10 00 09 4A
+08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00
+1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37
+39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40 06 C6
+FE FF 29 83 B9 40 F2 C5 FE FF 39 90 AE FF F9 23
+39 40 10 18 B2 49 E4 FF 3B 40 10 00 3A 40 3A 18
+B0 12 EA CF 82 43 4A 18 C7 3F 8C D0 B2 4E 42 18
+BE 12 3E 4F 3D 41 C0 3F 74 CD 0C 4D 41 52 4B 45
+52 00 12 12 C6 21 0D 12 84 12 B8 C7 0A CA 72 CA
+AC C4 B8 D0 AC C8 4C CC BA D0 3E 4F 3D 41 B2 41
+C6 21 B0 12 B4 CD BA 40 85 12 FC FF BA 40 8A D0
+FE FF 28 83 8A 48 00 00 BA 40 82 C4 02 00 A2 52
+C8 21 18 42 B4 21 19 42 B6 21 A8 49 FE FF 89 48
+00 00 30 4D 12 12 C6 21 84 12 0A CA 72 CA AC C4
+24 D1 04 D1 3C 4E 3C 80 87 12 0A 24 1C 53 02 20
+2E 4E 06 3C BE 90 8A D0 00 00 01 20 3E 52 2E 83
+21 53 30 41 1C CB AC C4 2C D1 20 D1 2E D1 B2 41
+C6 21 30 41 92 83 C6 21 3E 40 28 00 0A 4E 3D 15
+B0 12 F4 D0 15 20 3E 40 2B 00 B0 12 F4 D0 06 20
+3E 40 2D 00 B0 12 F4 D0 92 83 C6 21 0E 12 1E 41
+02 00 84 12 0A CA 1C CB AC C4 50 CD 6E D1 3E 51
+3A 17 30 41 B0 12 34 D1 19 42 C8 21 89 4E 00 00
+A2 53 C8 21 3E 40 29 00 92 53 C6 21 1A 42 C6 21
+3D 15 84 12 0A CA 1C CB AC C4 A6 D1 9E D1 3E 90
+10 00 E6 2B 7C 2D A8 D1 A2 41 C6 21 E1 3F 03 20
+B0 12 8C D1 43 3C 7A 90 23 00 24 20 B0 12 3C D1
+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 C8 21 A2 53 C8 21 89 4E 00 00
+3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12
+3C D1 F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12
+88 D1 0C 20 3C D0 10 00 3E 40 2B 00 B0 12 8C D1
+92 92 C2 21 C6 21 02 24 92 53 C6 21 8E 10 0C 5E
+DF 3F 3C D0 10 00 B0 12 74 D1 F2 3F 03 20 B0 12
+8C D1 F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F
+3C D0 80 00 B0 12 74 D1 EA 3F 0C 43 1B 42 C8 21
+A2 53 C8 21 3A 40 20 00 19 42 C6 21 19 52 C4 21
+7A 99 FE 27 5A 49 FF FF 19 82 C4 21 82 49 C6 21
+7A 90 52 00 30 4D 00 00 08 52 45 54 49 00 0D 12
+84 12 0A C4 00 13 74 CC 86 C9 0A C4 2C 00 6A D2
+AE D1 B8 C7 74 D2 4C D2 BA D2 3D 41 2C DE 8B 4C
+00 00 9E 3F 00 00 06 4D 4F 56 85 12 AA D2 00 40
+C6 D2 0A 4D 4F 56 2E 42 85 12 AA D2 40 40 00 00
+06 41 44 44 85 12 AA D2 00 50 E0 D2 0A 41 44 44
+2E 42 85 12 AA D2 40 50 EC D2 08 41 44 44 43 00
+85 12 AA D2 00 60 FA D2 0C 41 44 44 43 2E 42 00
+85 12 AA D2 40 60 32 CF 08 53 55 42 43 00 85 12
+AA D2 00 70 18 D3 0C 53 55 42 43 2E 42 00 85 12
+AA D2 40 70 26 D3 06 53 55 42 85 12 AA D2 00 80
+36 D3 0A 53 55 42 2E 42 85 12 AA D2 40 80 42 D3
+06 43 4D 50 85 12 AA D2 00 90 50 D3 0A 43 4D 50
+2E 42 85 12 AA D2 40 90 00 00 08 44 41 44 44 00
+85 12 AA D2 00 A0 6A D3 0C 44 41 44 44 2E 42 00
+85 12 AA D2 40 A0 98 D2 06 42 49 54 85 12 AA D2
+00 B0 88 D3 0A 42 49 54 2E 42 85 12 AA D2 40 B0
+94 D3 06 42 49 43 85 12 AA D2 00 C0 A2 D3 0A 42
+49 43 2E 42 85 12 AA D2 40 C0 AE D3 06 42 49 53
+85 12 AA D2 00 D0 BC D3 0A 42 49 53 2E 42 85 12
+AA D2 40 D0 00 00 06 58 4F 52 85 12 AA D2 00 E0
+D6 D3 0A 58 4F 52 2E 42 85 12 AA D2 40 E0 08 D3
+06 41 4E 44 85 12 AA D2 00 F0 F0 D3 0A 41 4E 44
+2E 42 85 12 AA D2 40 F0 B8 C7 6A D2 AE D1 10 D4
+0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F
+C8 D3 06 52 52 43 85 12 08 D4 00 10 22 D4 0A 52
+52 43 2E 42 85 12 08 D4 40 10 5C D3 08 53 57 50
+42 00 85 12 08 D4 80 10 2E D4 06 52 52 41 85 12
+08 D4 00 11 4A D4 0A 52 52 41 2E 42 85 12 08 D4
+40 11 3C D4 06 53 58 54 85 12 08 D4 80 11 00 00
+08 50 55 53 48 00 85 12 08 D4 00 12 70 D4 0C 50
+55 53 48 2E 42 00 85 12 08 D4 40 12 64 D4 08 43
+41 4C 4C 00 85 12 08 D4 80 12 1A 53 0E 4A 84 12
+FA C9 1E C4 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
+64 73 12 C5 8E D4 06 53 3E 3D 86 12 00 38 B6 D4
+04 53 3C 00 86 12 00 34 7E D4 06 30 3E 3D 86 12
+00 30 CA D4 04 30 3C 00 86 12 00 30 06 CF 04 55
+3C 00 86 12 00 2C DE D4 06 55 3E 3D 86 12 00 28
+D4 D4 06 30 3C 3E 86 12 00 24 F2 D4 04 30 3D 00
+86 12 00 20 00 00 04 49 46 00 1A 42 C8 21 8A 4E
+00 00 A2 53 C8 21 0E 4A 30 4D 78 D3 08 54 48 45
+4E 00 1A 42 C8 21 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D E8 D4
+08 45 4C 53 45 00 1A 42 C8 21 BA 40 00 3C 00 00
+A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F 56 D4 0A 42
+45 47 49 4E 30 40 32 C4 40 D5 0A 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83 0A 89 0A 11
+3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C8 21 30 4D FC D3 0A 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12
+84 12 0A D5 A0 C8 86 C9 5E D5 0C 52 45 50 45 41
+54 00 0D 12 84 12 9E D5 22 D5 86 C9 CE D5 3D 41
+08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42 C8 21
+00 00 30 4D BA D5 06 42 57 31 85 12 CC D5 00 00
+E6 D5 06 42 57 32 85 12 CC D5 00 00 F2 D5 06 42
+57 33 85 12 CC D5 00 00 0A D6 3D 41 1A 42 C8 21
+28 4E 8E 43 00 00 B2 92 C6 21 86 2B BA 4F 00 00
+A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D 00 00 06 46
+57 31 85 12 08 D6 00 00 2E D6 06 46 57 32 85 12
+08 D6 00 00 3A D6 06 46 57 33 85 12 08 D6 00 00
+A8 D5 08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C 0D 12 84 12 40 CD 4C CC 86 C9 00 00 0A 3F
+47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
+00 10 EF 27 3E E0 00 08 EC 3F 74 D2 0A C4 2C 00
+0A CA 1C CB AC C4 50 CD B8 C7 6A D2 4C D2 A0 D6
+0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E
+AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E FE D5 08 52
+52 43 4D 00 85 12 8A D6 50 00 CE D6 08 52 52 41
+4D 00 85 12 8A D6 50 01 DC D6 08 52 4C 41 4D 00
+85 12 8A D6 50 02 EA D6 08 52 52 55 4D 00 85 12
+8A D6 50 03 FC D4 0A 50 55 53 48 4D 85 12 8A D6
+00 15 06 D7 08 50 4F 50 4D 00 85 12 8A D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 C2 C6 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 06 C6
+q
index 91f43b5..a82fc2c 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF E4 D7 F0 CF 34 01
-10 00 41 87 B6 C5 AA C4 B8 C5 8C C5 82 C6 E4 D7
-F0 CF 70 C6 80 C7 FE C6 DA C6 3C 21 4E C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 43
+BC C6 56 C5 56 C5 58 C5 44 C5 FC D6 B4 CF 6E CF
+6E CF AA C6 2E C7 06 C7 3C 21 E0 20 62 C9 B6 C4
+C4 C4 7E C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 FC D6 B4 CF 6E CF 6E CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 6E C6 B2 49 7E C7 B2 49 FC C6 B2 49 D8 C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 CE C7 16 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7
-C4 C8 96 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C7 8E C8 4A C7
-14 C4 04 1B 5B 30 6D 00 4A C7 16 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 F2 B2 01 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00 B0 12
-8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4 07 0D
-0A 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7 C4 C8
-0A C4 23 00 FA C6 C4 C8 14 C4 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 4A C7 0A C4 40 FF 28 C4 C2 C7 8E C8
-14 C4 0A 62 79 74 65 73 20 66 72 65 65 00 3A C4
-7E C5 00 00 06 41 43 43 45 50 54 00 30 40 70 C6
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C6 2F 83 8F 4E 00 00
-58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C6 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 C6
-04 45 43 48 4F 00 B2 40 C2 48 08 C7 82 43 DE 21
-38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C7 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C7 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C6 68 C7 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40 80 C7
-0D 12 84 12 14 C4 02 0D 0A 00 4A C7 4E C8 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C6 01 40 2E 4E
-30 4D CC C7 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 C7 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E C4 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 08 C8 02 23 53 00 0D 12 84 12
-0A C8 44 C8 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C8 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C7 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C7
-3C C8 EE C4 7C C8 58 C8 4A C7 02 CC FA C6 4E C8
-2C C7 01 2E 0E 93 E3 37 38 43 E2 3F 76 C8 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4 48 CB
-0A C4 22 00 1A C9 E8 C8 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 C8
-82 2E 22 00 0D 12 84 12 D2 C8 0A C4 4A C7 48 CB
-4E C8 F8 C5 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C4 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4 30 4D
-00 00 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 9C CA 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E CA 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 C8 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC C4 02 CC 1A C9 BE CB 9C 26
-3D 40 C6 CB DE 3E C8 CB 0A 4E 3E 4F 3D 40 E2 CB
-36 27 3D 40 B8 CB 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 CB 3E 4F 3D 40 B8 CB BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 CD CC 3F
-EC CB 86 12 20 00 D4 C7 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C C7 BC C4
-B2 CB B2 C7 E4 C7 14 C4 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4 EC C7
-14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A C5
-3A C4 2C CC 08 CC 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 C8 0A C4 2A C5 48 CB 4E C8 7C C9 01 27
-0D 12 84 12 02 CC 1A C9 82 C9 34 C4 00 CC 4E C8
-00 00 83 5B 27 5D 0D 12 84 12 80 CC 0A C4 0A C4
-48 CB 48 CB 4E C8 92 CC 81 5B 82 43 BE 21 30 4D
-FA C7 01 5D B2 43 BE 21 30 4D B2 CC 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 CC 1A C9 82 C9 96 C7 34 C4
-00 CC E4 C7 34 C4 F4 CC 0A C4 0A C4 48 CB 48 CB
-0A C4 48 CB 48 CB 4E C8 A8 CC 01 3A 30 12 44 CD
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 CC 1A C9
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 C5 FA CC 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A C4 4E C8 48 CB 56 CD AA CC 4E C8
-A8 CB 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 CB 06 43 52 45 41 54
-45 00 B0 12 00 CD BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA CD 04 43 4F 44 45 00 B0 12 00 CD A2 82
-C6 21 0D 12 84 12 F2 CF CC CF 4E C8 A2 CD 07 48
-44 4E 43 4F 44 45 B2 40 D0 CF DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 CD 0C D0
-2A D0 4E C8 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C D0 2A D0 4E C8 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE CD 85 48 49 32 4C 4F 0D 12 84 12 28 C4 9A CF
-48 CB AA CC E2 CD 4E C8 88 CD 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A CE 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A C4 00 00 C6 C7 02 CC 1A C9 98 CB
-8E C7 34 C4 02 CF 9C C7 14 C4 06 5B 54 48 45 4E
-5D 00 74 CE DC CE 98 CE BA CE 4E C8 9C C7 14 C4
-06 5B 45 4C 53 45 5D 00 74 CE F2 CE 98 CE B8 CE
-4E C8 14 C4 04 5B 49 46 5D 00 74 CE BA CE 3A C4
-B8 CE 70 C7 14 C4 05 0D 0A 6B 6F 20 4A C7 BC C4
-AC C4 3A C4 BA CE A8 CE 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 CF 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 CC 1A C9 82 C9
-26 CF 4E C8 2C CF 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 CF DE C7 4E C8 5E CF B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A CB 06 4D
-41 52 4B 45 52 00 B0 12 00 CD BA 40 85 12 FC FF
-BA 40 5C CF FE FF 28 83 8A 48 00 00 BA 40 AA C4
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A C4
-CA 21 D6 C7 4E C8 85 12 9E CF 66 CC D4 CD 10 C7
-7E CC 52 CE D2 C6 6E CF 00 C9 96 D0 AA D0 8A C8
-14 C9 00 00 46 CF BC CC E2 C9 00 00 85 12 9E CF
-5A D6 C0 D6 02 D6 10 D7 C8 D5 00 00 94 D3 00 00
-D8 D7 BC D7 2C D6 6A D6 A4 D4 00 00 00 00 2C D7
-CA CF 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 CF 24 D0 2A D0 3A D0 1A 42 20 18 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 C8 CC
-09 50 57 52 5F 53 54 41 54 45 85 12 32 D0 E4 D7
-CE C8 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E D0 F3 3F 70 D0 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E D0 30 4D 82 D0 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 D1 FE FF 29 83 B9 40
-E2 C5 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 C5 B2 49 FA C4 B2 49 02 C4 B2 49 00 C6 B2 49
-E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 10 29 83 89 43 00 20 FC 23 B2 43
-06 02 B2 40 FC FF 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 82 43 88 01 F2 D0 03 00
-0B 02 39 40 80 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 C4 FE C5 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 1A C9 82 C9 DE C7 34 C4 D4 D1 3E CA 34 C4
-EE D1 E8 D1 D6 D1 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 F0 D1
-B2 41 C4 21 3E 41 84 12 0A C4 2B 00 1A C9 82 C9
-DE C7 34 C4 0C D2 3E CA 34 C4 00 CC A8 C7 1A C9
-3E CA 34 C4 00 CC 18 D2 3E 5F E7 3F 3E 40 28 00
-B0 12 B8 D1 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 6E CD
-1C 15 12 12 C4 21 92 53 C4 21 84 12 1A C9 3E CA
-34 C4 60 D2 56 D2 21 53 3E 90 10 00 C6 2B 7F 2D
-62 D2 B2 41 C4 21 C1 3F 0D 12 84 12 02 CC 94 D1
-72 D2 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 B8 D1 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 B8 D1 ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 40 D2 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 40 D2 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 40 D2 FA 23
-3C 50 10 00 B0 12 1C D2 EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 02 CC 94 D1 3E D3 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 40 D2 E0 23 3C 50 80 00 B0 12 1C D2 DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A C4 00 13
-48 CB 4E C8 0A C4 2C 00 68 D2 34 D3 7E D3 09 4B
-2E 4E 0E DC A2 3F 40 CE 03 4D 4F 56 85 12 74 D3
-00 40 88 D3 05 4D 4F 56 2E 42 85 12 74 D3 40 40
-00 00 03 41 44 44 85 12 74 D3 00 50 A2 D3 05 41
-44 44 2E 42 85 12 74 D3 40 50 AE D3 04 41 44 44
-43 00 85 12 74 D3 00 60 BC D3 06 41 44 44 43 2E
-42 00 85 12 74 D3 40 60 62 D3 04 53 55 42 43 00
-85 12 74 D3 00 70 DA D3 06 53 55 42 43 2E 42 00
-85 12 74 D3 40 70 E8 D3 03 53 55 42 85 12 74 D3
-00 80 F8 D3 05 53 55 42 2E 42 85 12 74 D3 40 80
-16 CE 03 43 4D 50 85 12 74 D3 00 90 12 D4 05 43
-4D 50 2E 42 85 12 74 D3 40 90 00 CE 04 44 41 44
-44 00 85 12 74 D3 00 A0 2C D4 06 44 41 44 44 2E
-42 00 85 12 74 D3 40 A0 1E D4 03 42 49 54 85 12
-74 D3 00 B0 4A D4 05 42 49 54 2E 42 85 12 74 D3
-40 B0 56 D4 03 42 49 43 85 12 74 D3 00 C0 64 D4
-05 42 49 43 2E 42 85 12 74 D3 40 C0 70 D4 03 42
-49 53 85 12 74 D3 00 D0 7E D4 05 42 49 53 2E 42
-85 12 74 D3 40 D0 00 00 03 58 4F 52 85 12 74 D3
-00 E0 98 D4 05 58 4F 52 2E 42 85 12 74 D3 40 E0
-CA D3 03 41 4E 44 85 12 74 D3 00 F0 B2 D4 05 41
-4E 44 2E 42 85 12 74 D3 40 F0 02 CC 68 D2 D0 D4
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-04 D4 03 52 52 43 85 12 CA D4 00 10 E2 D4 05 52
-52 43 2E 42 85 12 CA D4 40 10 EE D4 04 53 57 50
-42 00 85 12 CA D4 80 10 FC D4 03 52 52 41 85 12
-CA D4 00 11 0A D5 05 52 52 41 2E 42 85 12 CA D4
-40 11 16 D5 03 53 58 54 85 12 CA D4 80 11 00 00
-04 50 55 53 48 00 85 12 CA D4 00 12 30 D5 06 50
-55 53 48 2E 42 00 85 12 CA D4 40 12 8A D4 04 43
-41 4C 4C 00 85 12 CA D4 80 12 1A 53 0E 4A 0D 12
-84 12 C4 C8 14 C4 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 C5 24 D5 03 53 3E 3D 86 12 00 38
-78 D5 02 53 3C 00 86 12 00 34 3E D5 03 30 3E 3D
-86 12 00 30 8C D5 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C A0 D5 03 55 3E 3D 86 12
-00 28 96 D5 03 30 3C 3E 86 12 00 24 B4 D5 02 30
-3D 00 86 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 AA D5 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 B1 2F 88 DA 00 00 30 4D
-3A D4 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 4E D5
-05 42 45 47 49 4E 30 40 28 C4 DE D5 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D BE D4 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 CC D5 A8 C7 4E C8 82 D5 06 52 45 50
-45 41 54 00 0D 12 84 12 60 D6 E4 D5 4E C8 90 D6
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 20 D6 03 42 57 31 85 12 8E D6
-00 00 A8 D6 03 42 57 32 85 12 8E D6 00 00 B4 D6
-03 42 57 33 85 12 8E D6 00 00 CC D6 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 CA D6 00 00 EC D6 03 46 57 32 85 12 CA D6
-00 00 F8 D6 03 46 57 33 85 12 CA D6 00 00 04 D7
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 80 CC DC CB 4E C8 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 02 CC 94 D1 4E D7 92 53
-C4 21 3E 40 2C 00 84 12 1A C9 3E CA 34 C4 00 CC
-2A D3 64 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-7C D6 04 52 52 43 4D 00 85 12 48 D7 50 00 92 D7
-04 52 52 41 4D 00 85 12 48 D7 50 01 A0 D7 04 52
-4C 41 4D 00 85 12 48 D7 50 02 AE D7 04 52 52 55
-4D 00 85 12 48 D7 50 03 BE D5 05 50 55 53 48 4D
-85 12 48 D7 00 15 CA D7 04 50 4F 50 4D 00 85 12
-48 D7 00 17
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 FD 3C 0E 93 3E 4F
+7F 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A8 C6 B2 49
+2C C7 B2 49 04 C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 28 D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 88 C8 AC C4
+42 C5 46 C7 1E C4 05 1B 5B 37 6D 40 72 C7 0A C4
+02 18 AA C8 D6 C9 72 C7 1E C4 04 1B 5B 30 6D 00
+72 C7 BE CC 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 46 C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 72 C7 0A C4 02 18 AA C8 D6 C9 0A C4 23 00
+2A C7 D6 C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+72 C7 0A C4 40 FF 32 C4 9E C8 A2 C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B2
+01 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 43 06 02 B2 40 FC FF
+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
+82 43 88 01 F2 D0 03 00 0B 02 F2 C3 82 01 F2 D0
+0A 00 82 01 B2 40 E8 01 84 01 39 40 80 00 18 42
+00 18 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
+89 43 00 20 FC 23 1E 42 08 18 82 43 08 18 3E F3
+02 20 1E 42 5E 01 B0 12 D0 C4 80 C5 00 00 0C 41
+43 43 45 50 54 00 30 40 AA C6 0A 4E 2E 4F 0A 5E
+3B 40 0A 00 3C 40 20 00 3D 15 A2 3E 21 52 A2 C2
+6C 05 B2 B0 10 00 40 05 9B 22 3A 17 92 B3 6C 05
+FD 27 58 42 4C 05 48 9B 0E 24 48 9C 06 2C 78 92
+F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48
+00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00 06 4B
+45 59 30 40 06 C7 58 43 B0 12 46 C5 2F 83 8F 4E
+00 00 92 B3 6C 05 FD 27 1E 42 4C 05 B0 12 44 C5
+30 4D 00 00 08 45 4D 49 54 00 30 40 2E C7 08 4E
+3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D 24 C7
+08 45 43 48 4F 00 B2 40 C2 48 38 C7 38 40 05 00
+B0 12 46 C5 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 38 C7 28 42 F3 3F 00 00 08 54 59 50
+45 00 0D 12 3D 40 82 C7 29 4F 8F 4E 00 00 7E 49
+D4 3F 84 C7 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53
+3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F
+3E 4F 87 22 F9 98 00 00 84 22 19 53 1C 83 FA 23
+2D 53 30 4D 2F 53 3E 4F 1E 83 7B 22 9B 24 FE C6
+0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C4 00 00
+A2 C8 94 C7 E6 C9 A0 CC B0 C4 10 C8 14 C4 06 5B
+54 48 45 4E 5D 00 98 C7 EE C7 B4 C7 D2 C7 14 C4
+06 5B 45 4C 53 45 5D 00 98 C7 00 C8 B4 C7 D0 C7
+1E C4 04 5B 49 46 5D 00 98 C7 D2 C7 B2 C4 D0 C7
+1E C4 05 0D 6B 6F 20 0A 72 C7 9A C4 84 C4 B2 C4
+D2 C7 C0 C7 0D 5B 54 48 45 4E 5D 00 30 4D 24 C8
+09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D 30 C8
+13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 94 C7
+E6 C9 4E CA F2 CB 62 C9 40 C8 17 5B 55 4E 44 45
+46 49 4E 45 44 5D 0D 12 84 12 94 C7 E6 C9 4E CA
+72 C8 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83
+8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D
+8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F
+3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D 9E C6
+02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3
+30 4D 3E 8F 01 28 0E F3 30 4D E0 C5 05 53 22 00
+82 43 C0 21 0D 12 84 12 0A C4 1E C4 50 CC 0A C4
+22 00 E6 C9 E6 C8 B2 40 20 00 C0 21 1A 53 1A B3
+82 6A C8 21 3E 4F 3D 41 30 4D 58 C7 05 2E 22 00
+0D 12 84 12 D0 C8 0A C4 72 C7 50 CC 62 C9 00 00
+04 3C 23 00 B2 40 B2 21 B2 21 30 4D CC C8 02 23
+1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4 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 1E C9 04 23
+53 00 0D 12 84 12 20 C9 5A C9 2D 83 09 DE 09 93
+E1 23 3D 41 30 4D 4E C9 04 23 3E 00 9F 42 B2 21
+00 00 3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C
+44 00 4A 4E 3E 4F DB 3F 68 C9 08 53 49 47 4E 00
+0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 40 C7 04 55
+2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3
+06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
+14 C9 94 C7 82 C9 52 C9 7E C8 90 C9 6C C9 72 C7
+62 C9 FC C8 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00
+08 57 4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58
+38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42
+C0 21 F8 90 27 00 00 00 04 20 E8 98 02 00 01 20
+0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24
+1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B
+F0 3F 18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E
+CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83
+0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00
+78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93
+F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99
+01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49
+6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D D4 C9
+0E 3E 4E 55 4D 42 45 52 1B 42 BE 21 3C 4F 38 4F
+29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28
+7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C
+82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04
+09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48
+02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E
+06 00 08 43 09 43 1B 42 BE 21 0C 4E 0E 43 1E 15
+3D 40 58 CB 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F
+2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00
+5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C
+01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83
+FC 9C 00 00 E0 23 AE 27 5A CB 2F 24 2D 83 6A 4C
+7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02
+7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49
+02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28
+79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49
+00 00 0E 4B 2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F
+04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 10 C9 03 5C 92 42 C2 21 C6 21
+30 4D 0D 12 84 12 84 C4 94 C7 E6 C9 B0 C4 2A CD
+4E CA 14 CC 0A 4E 3E 4F 3D 40 2E CC 6D 27 3D 40
+08 CC 1A E2 BC 21 14 24 0E 12 3E 4F 30 41 30 CC
+3E 4F 3D 40 08 CC 19 20 DE 53 00 00 68 4E 08 5E
+F8 40 3F 00 00 00 3D 40 06 CE 2A 3C F8 CB 02 2C
+A2 53 C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D
+4E CC 0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24
+09 4E 1A 42 C8 21 A2 52 C8 21 BA 40 0A C4 00 00
+8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24
+8A 4E 02 00 EE 3F 30 4D 8A C9 0A 43 4F 55 4E 54
+2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D B0 C8
+0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40
+80 20 0E 43 84 12 1E C4 02 0D 0A 00 72 C7 94 C4
+02 CC 90 C8 BA C8 1E C4 0B 73 74 61 63 6B 20 65
+6D 70 74 79 08 C5 32 C4 0A C4 40 FF C2 C8 1E C4
+09 46 52 41 4D 20 66 75 6C 6C 08 C5 B2 C4 C6 CC
+B0 CC 0D 41 42 4F 52 54 22 00 0D 12 84 12 D0 C8
+0A C4 08 C5 50 CC 62 C9 E0 C9 02 27 0D 12 84 12
+94 C7 E6 C9 4E CA B0 C4 2C CD F4 C8 38 CC 5A C8
+07 5B 27 5D 0D 12 84 12 1C CD 0A C4 0A C4 50 CC
+50 CC 62 C9 30 CD 03 5B 82 43 BC 21 30 4D 00 00
+02 5D B2 43 BC 21 30 4D A8 C8 11 50 4F 53 54 50
+4F 4E 45 00 0D 12 84 12 94 C7 E6 C9 4E CA B0 C4
+2C CD BA C8 AC C4 84 CD 0A C4 0A C4 50 CC 50 CC
+0A C4 50 CC 50 CC 62 C9 00 00 02 3A 30 12 DA CD
+92 B3 C8 21 A2 63 C8 21 0D 12 84 12 94 C7 E6 C9
+A2 CD 3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E
+5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58
+00 00 82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F
+BA 21 2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF
+BA 40 84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21
+66 25 84 12 1E C4 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 12 C5 46 CD 03 3B 82 93 BC 21
+F4 26 0D 12 84 12 0A C4 62 C9 50 CC EC CD 48 CD
+62 C9 00 00 12 49 4D 4D 45 44 49 41 54 45 18 42
+B4 21 D8 D3 00 00 30 4D 9A CC 0C 43 52 45 41 54
+45 00 B0 12 90 CD BA 40 86 12 FC FF 8A 4A FE FF
+3A 3D 6C C7 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40
+85 12 00 00 8A 4D 02 00 3D 41 30 4D 8A CD 0E 3A
+4E 4F 4E 41 4D 45 30 12 DA CD 2F 83 8F 4E 00 00
+1A 42 C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49
+98 3F 24 CE 05 49 53 00 0D 12 82 93 BC 21 08 20
+84 12 1C CD A6 CE 3D 41 BE 4F 02 00 3E 4F 30 4D
+84 12 34 CD 0A C4 A8 CE 50 CC 62 C9 3A CE 08 43
+4F 44 45 00 B0 12 90 CD A2 82 C8 21 61 3C 7C C9
+0E 48 44 4E 43 4F 44 45 B2 40 94 CF CC 21 F2 3F
+00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12 EC CD
+F2 CE 3D 41 92 42 D0 21 CC 21 5D 3C BE CE 0E 43
+4F 44 45 4E 4E 4D 30 12 C8 CE B7 3F 00 00 0A 43
+4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40
+84 12 02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00
+0A 4C 4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F
+D0 CE 0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21
+8A 4A FE FF 82 43 BC 21 B9 3F 5C CF B2 40 6E CF
+D0 21 82 4E CE 21 30 40 F4 C8 85 12 5A CF 5A CD
+02 CD EC CF FE CE 54 CE 9E C9 48 CA 1A CD 42 CF
+94 CE 6E CE 0A CE 62 CC 76 D0 A0 CA 00 00 00 00
+85 12 5A CF F0 D6 74 D5 D4 D6 9C D4 F8 D4 46 D5
+22 D6 2E D6 BE D3 E2 D4 00 00 00 00 30 CF AE D2
+00 00 4A D6 8E CF B2 40 6E CF CE 21 82 43 D0 21
+30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23
+30 41 00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21
+3A 40 42 18 B0 12 C2 CF 30 4D D4 CF 0E 52 53 54
+5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12
+C2 CF 1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83
+18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23
+2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00
+29 83 B9 43 80 FF FC 23 B9 40 0E C6 FE FF 29 83
+B9 40 FA C5 FE FF 39 90 AE FF F9 23 39 40 10 18
+B2 49 E0 FF 3B 40 10 00 3A 40 3A 18 B0 12 C6 CF
+82 43 4A 18 C7 3F 68 D0 B2 4E 42 18 BE 12 3E 4F
+3D 41 C0 3F 50 CD 0C 4D 41 52 4B 45 52 00 12 12
+C6 21 0D 12 84 12 94 C7 E6 C9 4E CA AC C4 94 D0
+88 C8 28 CC 96 D0 3E 4F 3D 41 B2 41 C6 21 B0 12
+90 CD BA 40 85 12 FC FF BA 40 66 D0 FE FF 28 83
+8A 48 00 00 BA 40 82 C4 02 00 A2 52 C8 21 18 42
+B4 21 19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D
+12 12 C6 21 84 12 E6 C9 4E CA AC C4 00 D1 E0 D0
+3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C
+BE 90 66 D0 00 00 01 20 3E 52 2E 83 21 53 30 41
+F8 CA AC C4 08 D1 FC D0 0A D1 B2 41 C6 21 30 41
+92 83 C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 D0 D0
+15 20 3E 40 2B 00 B0 12 D0 D0 06 20 3E 40 2D 00
+B0 12 D0 D0 92 83 C6 21 0E 12 1E 41 02 00 84 12
+E6 C9 F8 CA AC C4 2C CD 4A D1 3E 51 3A 17 30 41
+B0 12 10 D1 19 42 C8 21 89 4E 00 00 A2 53 C8 21
+3E 40 29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12
+E6 C9 F8 CA AC C4 82 D1 7A D1 3E 90 10 00 E6 2B
+7C 2D 84 D1 A2 41 C6 21 E1 3F 03 20 B0 12 68 D1
+43 3C 7A 90 23 00 24 20 B0 12 18 D1 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 C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D
+7A 90 26 00 05 20 3C 40 10 02 B0 12 18 D1 F0 3F
+7A 90 40 00 14 20 3C 40 20 00 B0 12 64 D1 0C 20
+3C D0 10 00 3E 40 2B 00 B0 12 68 D1 92 92 C2 21
+C6 21 02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0
+10 00 B0 12 50 D1 F2 3F 03 20 B0 12 68 D1 F5 3F
+7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00
+B0 12 50 D1 EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21
+3A 40 20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27
+5A 49 FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00
+30 4D 00 00 08 52 45 54 49 00 0D 12 84 12 0A C4
+00 13 50 CC 62 C9 0A C4 2C 00 46 D2 8A D1 94 C7
+50 D2 28 D2 96 D2 3D 41 2C DE 8B 4C 00 00 9E 3F
+00 00 06 4D 4F 56 85 12 86 D2 00 40 A2 D2 0A 4D
+4F 56 2E 42 85 12 86 D2 40 40 00 00 06 41 44 44
+85 12 86 D2 00 50 BC D2 0A 41 44 44 2E 42 85 12
+86 D2 40 50 C8 D2 08 41 44 44 43 00 85 12 86 D2
+00 60 D6 D2 0C 41 44 44 43 2E 42 00 85 12 86 D2
+40 60 0E CF 08 53 55 42 43 00 85 12 86 D2 00 70
+F4 D2 0C 53 55 42 43 2E 42 00 85 12 86 D2 40 70
+02 D3 06 53 55 42 85 12 86 D2 00 80 12 D3 0A 53
+55 42 2E 42 85 12 86 D2 40 80 1E D3 06 43 4D 50
+85 12 86 D2 00 90 2C D3 0A 43 4D 50 2E 42 85 12
+86 D2 40 90 00 00 08 44 41 44 44 00 85 12 86 D2
+00 A0 46 D3 0C 44 41 44 44 2E 42 00 85 12 86 D2
+40 A0 74 D2 06 42 49 54 85 12 86 D2 00 B0 64 D3
+0A 42 49 54 2E 42 85 12 86 D2 40 B0 70 D3 06 42
+49 43 85 12 86 D2 00 C0 7E D3 0A 42 49 43 2E 42
+85 12 86 D2 40 C0 8A D3 06 42 49 53 85 12 86 D2
+00 D0 98 D3 0A 42 49 53 2E 42 85 12 86 D2 40 D0
+00 00 06 58 4F 52 85 12 86 D2 00 E0 B2 D3 0A 58
+4F 52 2E 42 85 12 86 D2 40 E0 E4 D2 06 41 4E 44
+85 12 86 D2 00 F0 CC D3 0A 41 4E 44 2E 42 85 12
+86 D2 40 F0 94 C7 46 D2 8A D1 EC D3 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4D 3F A4 D3 06 52
+52 43 85 12 E4 D3 00 10 FE D3 0A 52 52 43 2E 42
+85 12 E4 D3 40 10 38 D3 08 53 57 50 42 00 85 12
+E4 D3 80 10 0A D4 06 52 52 41 85 12 E4 D3 00 11
+26 D4 0A 52 52 41 2E 42 85 12 E4 D3 40 11 18 D4
+06 53 58 54 85 12 E4 D3 80 11 00 00 08 50 55 53
+48 00 85 12 E4 D3 00 12 4C D4 0C 50 55 53 48 2E
+42 00 85 12 E4 D3 40 12 40 D4 08 43 41 4C 4C 00
+85 12 E4 D3 80 12 1A 53 0E 4A 84 12 D6 C9 1E C4
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C5
+6A D4 06 53 3E 3D 86 12 00 38 92 D4 04 53 3C 00
+86 12 00 34 5A D4 06 30 3E 3D 86 12 00 30 A6 D4
+04 30 3C 00 86 12 00 30 E2 CE 04 55 3C 00 86 12
+00 2C BA D4 06 55 3E 3D 86 12 00 28 B0 D4 06 30
+3C 3E 86 12 00 24 CE D4 04 30 3D 00 86 12 00 20
+00 00 04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53
+C8 21 0E 4A 30 4D 54 D3 08 54 48 45 4E 00 1A 42
+C8 21 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 B2 2F 88 DA 00 00 30 4D C4 D4 08 45 4C 53
+45 00 1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21
+2F 83 8F 4A 00 00 E3 3F 32 D4 0A 42 45 47 49 4E
+30 40 32 C4 1C D5 0A 55 4E 54 49 4C 3A 4F 08 4E
+3E 4F 19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE
+8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21
+30 4D D8 D3 0A 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12 E6 D4
+7C C8 62 C9 3A D5 0C 52 45 50 45 41 54 00 0D 12
+84 12 7A D5 FE D4 62 C9 AA D5 3D 41 08 4E 3E 4F
+2A 48 B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D
+96 D5 06 42 57 31 85 12 A8 D5 00 00 C2 D5 06 42
+57 32 85 12 A8 D5 00 00 CE D5 06 42 57 33 85 12
+A8 D5 00 00 E6 D5 3D 41 1A 42 C8 21 28 4E 8E 43
+00 00 B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21
+8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12
+E4 D5 00 00 0A D6 06 46 57 32 85 12 E4 D5 00 00
+16 D6 06 46 57 33 85 12 E4 D5 00 00 84 D5 08 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
+84 12 1C CD 28 CC 62 C9 00 00 0A 3F 47 4F 54 4F
+3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
+3E E0 00 08 EC 3F 50 D2 0A C4 2C 00 E6 C9 F8 CA
+AC C4 2C CD 94 C7 46 D2 28 D2 7C D6 0A 4E 3E 4F
+1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92
+EA 2E 8A 10 5A 06 A8 3E DA D5 08 52 52 43 4D 00
+85 12 66 D6 50 00 AA D6 08 52 52 41 4D 00 85 12
+66 D6 50 01 B8 D6 08 52 4C 41 4D 00 85 12 66 D6
+50 02 C6 D6 08 52 52 55 4D 00 85 12 66 D6 50 03
+D8 D4 0A 50 55 53 48 4D 85 12 66 D6 00 15 E2 D6
+08 50 4F 50 4D 00 85 12 66 D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-82 C6 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 08 D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+BC C6 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 0E C6
 q
diff --git a/binaries/MSP_EXP430FR2433_16MHz_UART.txt b/binaries/MSP_EXP430FR2433_16MHz_UART.txt
deleted file mode 100644 (file)
index b5bfa6c..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF FA D7 02 D0 34 01
-10 00 41 B3 94 C5 AA C4 DA C5 9C C5 94 C6 FA D7
-02 D0 7A C6 92 C7 24 C7 FE C6 3C 21 60 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 78 C6 B2 49 90 C7 B2 49 22 C7 B2 49 FC C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E0 C7 32 C7
-14 C4 04 1B 5B 37 6D 00 5C C7 A8 C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C7 A0 C8 5C C7 14 C4 04 1B 5B 30 6D 00
-5C C7 28 CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 D2 D3 02 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 D2 C3 02 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 F2 B2 01 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00 B0 12
-9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23 5C C7
-D6 C8 14 C4 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 5C C7
-0A C4 40 FF 28 C4 D4 C7 A0 C8 14 C4 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C4 86 C5 00 00 06 41
-43 43 45 50 54 00 30 40 7A C6 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C6 3C 40 D2 C6
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 C6 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C6 2F 83
-8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C7 08 4E 3E 4F C8 3F 1A C7 04 45 43 48
-4F 00 B2 40 C2 48 C0 C6 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C6 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C7 7A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00 30 40
-92 C7 0D 12 84 12 14 C4 02 0D 0A 00 5C C7 60 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C6 01 40
-2E 4E 30 4D DE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 1A C8 02 23 53 00 0D 12
-84 12 1C C8 56 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C8 4E C8 EE C4 8E C8 6A C8 5C C7 14 CC 20 C7
-60 C8 40 C7 01 2E 0E 93 E3 37 38 43 E2 3F 88 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-5A CB 0A C4 22 00 2C C9 FA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 C8 82 2E 22 00 0D 12 84 12 E4 C8 0A C4 5C C7
-5A CB 60 C8 18 C6 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 00 00 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 AE CA
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 CA
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 CB 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A C8 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C4 14 CC 2C C9 D0 CB
-9C 26 3D 40 D8 CB DE 3E DA CB 0A 4E 3E 4F 3D 40
-F4 CB 36 27 3D 40 CA CB 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 CB 3E 4F 3D 40 CA CB BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 CD
-CC 3F FE CB 86 12 20 00 E6 C7 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E C7
-BC C4 C4 CB C4 C7 F6 C7 14 C4 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4
-FE C7 14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C5 3A C4 3E CC 1A CC 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 C8 0A C4 2A C5 5A CB 60 C8 8E C9
-01 27 0D 12 84 12 14 CC 2C C9 94 C9 34 C4 12 CC
-60 C8 00 00 83 5B 27 5D 0D 12 84 12 92 CC 0A C4
-0A C4 5A CB 5A CB 60 C8 A4 CC 81 5B 82 43 BE 21
-30 4D 0C C8 01 5D B2 43 BE 21 30 4D C4 CC 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 CC 2C C9 94 C9 A8 C7
-34 C4 12 CC F6 C7 34 C4 06 CD 0A C4 0A C4 5A CB
-5A CB 0A C4 5A CB 5A CB 60 C8 BA CC 01 3A 30 12
-56 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 CC
-2C C9 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C5 0C CD 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A C4 60 C8 5A CB 68 CD BC CC
-60 C8 BA CB 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 CB 06 43 52 45
-41 54 45 00 B0 12 12 CD BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC CD 04 43 4F 44 45 00 B0 12 12 CD
-A2 82 C6 21 0D 12 84 12 04 D0 DE CF 60 C8 B4 CD
-07 48 44 4E 43 4F 44 45 B2 40 E2 CF DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 CD
-1E D0 3C D0 60 C8 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E D0 3C D0 60 C8
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 CE 85 48 49 32 4C 4F 0D 12 84 12 28 C4
-AC CF 5A CB BC CC F4 CD 60 C8 9A CD 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C CE 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C4 00 00 D8 C7 14 CC 2C C9
-AA CB A0 C7 34 C4 14 CF AE C7 14 C4 06 5B 54 48
-45 4E 5D 00 86 CE EE CE AA CE CC CE 60 C8 AE C7
-14 C4 06 5B 45 4C 53 45 5D 00 86 CE 04 CF AA CE
-CA CE 60 C8 14 C4 04 5B 49 46 5D 00 86 CE CC CE
-3A C4 CA CE 82 C7 14 C4 05 0D 0A 6B 6F 20 5C C7
-BC C4 AC C4 3A C4 CC CE BA CE 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A CF 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 CC 2C C9
-94 C9 38 CF 60 C8 3E CF 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 CF F0 C7 60 C8 70 CF
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C CB
-06 4D 41 52 4B 45 52 00 B0 12 12 CD BA 40 85 12
-FC FF BA 40 6E CF FE FF 28 83 8A 48 00 00 BA 40
-AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A C4 CA 21 E8 C7 60 C8 85 12 B0 CF 78 CC E6 CD
-2C C7 90 CC 64 CE F6 C6 80 CF 12 C9 A8 D0 BC D0
-9C C8 26 C9 00 00 58 CF CE CC F4 C9 00 00 85 12
-B0 CF 70 D6 D6 D6 18 D6 26 D7 DE D5 00 00 AA D3
-00 00 EE D7 D2 D7 42 D6 80 D6 BA D4 00 00 00 00
-42 D7 DC CF 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 CF 36 D0 3C D0 4C D0 1A 42 20 18
-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
-DA CC 09 50 57 52 5F 53 54 41 54 45 85 12 44 D0
-FA D7 E0 C8 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 D0 F3 3F 82 D0 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 D0 30 4D 94 D0 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A D1 FE FF 29 83
-B9 40 02 C6 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 C6 B2 49 FA C4 B2 49 02 C4 B2 49 20 C6
-B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 43 06 02 B2 40 FC FF 02 02 D2 D3 04 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 82 43
-88 01 F2 D0 03 00 0B 02 39 40 80 00 18 42 00 18
-18 83 FE 23 19 83 FA 23 1E 42 08 18 82 43 08 18
-1E D2 5E 01 B0 12 F8 C4 1E C6 38 40 C0 21 0A 4E
-39 48 2E 48 09 5E 1E 52 C4 21 09 9E 03 24 7A 9E
-FC 27 1E 83 0A 4E 2A 88 82 4A C4 21 30 4D 1C 15
-0E 12 12 12 C4 21 84 12 2C C9 94 C9 F0 C7 34 C4
-EA D1 50 CA 34 C4 04 D2 FE D1 EC D1 3C 4E 3C 80
-87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52
-1B 17 30 41 06 D2 B2 41 C4 21 3E 41 84 12 0A C4
-2B 00 2C C9 94 C9 F0 C7 34 C4 22 D2 50 CA 34 C4
-12 CC BA C7 2C C9 50 CA 34 C4 12 CC 2E D2 3E 5F
-E7 3F 3E 40 28 00 B0 12 CE D1 19 42 C6 21 A2 53
-C6 21 89 4E 00 00 3E 40 29 00 92 92 C0 21 C4 21
-02 20 30 40 80 CD 1C 15 12 12 C4 21 92 53 C4 21
-84 12 2C C9 50 CA 34 C4 76 D2 6C D2 21 53 3E 90
-10 00 C6 2B 7F 2D 78 D2 B2 41 C4 21 C1 3F 0D 12
-84 12 14 CC AA D1 88 D2 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 CE D1 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 CE D1 ED 3F 7A 90
-40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12 56 D2
-0C 20 3C 50 10 00 3E 40 2B 00 B0 12 56 D2 92 92
-C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F
-B0 12 56 D2 FA 23 3C 50 10 00 B0 12 32 D2 EF 3F
-0C 43 1B 42 C6 21 A2 53 C6 21 0D 12 84 12 14 CC
-AA D1 54 D3 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C7 3F B0 12 56 D2 E0 23 3C 50 80 00
-B0 12 32 D2 DB 3F 00 00 04 52 45 54 49 00 0D 12
-84 12 0A C4 00 13 5A CB 60 C8 0A C4 2C 00 7E D2
-4A D3 94 D3 09 4B 2E 4E 0E DC A2 3F 52 CE 03 4D
-4F 56 85 12 8A D3 00 40 9E D3 05 4D 4F 56 2E 42
-85 12 8A D3 40 40 00 00 03 41 44 44 85 12 8A D3
-00 50 B8 D3 05 41 44 44 2E 42 85 12 8A D3 40 50
-C4 D3 04 41 44 44 43 00 85 12 8A D3 00 60 D2 D3
-06 41 44 44 43 2E 42 00 85 12 8A D3 40 60 78 D3
-04 53 55 42 43 00 85 12 8A D3 00 70 F0 D3 06 53
-55 42 43 2E 42 00 85 12 8A D3 40 70 FE D3 03 53
-55 42 85 12 8A D3 00 80 0E D4 05 53 55 42 2E 42
-85 12 8A D3 40 80 28 CE 03 43 4D 50 85 12 8A D3
-00 90 28 D4 05 43 4D 50 2E 42 85 12 8A D3 40 90
-12 CE 04 44 41 44 44 00 85 12 8A D3 00 A0 42 D4
-06 44 41 44 44 2E 42 00 85 12 8A D3 40 A0 34 D4
-03 42 49 54 85 12 8A D3 00 B0 60 D4 05 42 49 54
-2E 42 85 12 8A D3 40 B0 6C D4 03 42 49 43 85 12
-8A D3 00 C0 7A D4 05 42 49 43 2E 42 85 12 8A D3
-40 C0 86 D4 03 42 49 53 85 12 8A D3 00 D0 94 D4
-05 42 49 53 2E 42 85 12 8A D3 40 D0 00 00 03 58
-4F 52 85 12 8A D3 00 E0 AE D4 05 58 4F 52 2E 42
-85 12 8A D3 40 E0 E0 D3 03 41 4E 44 85 12 8A D3
-00 F0 C8 D4 05 41 4E 44 2E 42 85 12 8A D3 40 F0
-14 CC 7E D2 E6 D4 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F 1A D4 03 52 52 43 85 12 E0 D4
-00 10 F8 D4 05 52 52 43 2E 42 85 12 E0 D4 40 10
-04 D5 04 53 57 50 42 00 85 12 E0 D4 80 10 12 D5
-03 52 52 41 85 12 E0 D4 00 11 20 D5 05 52 52 41
-2E 42 85 12 E0 D4 40 11 2C D5 03 53 58 54 85 12
-E0 D4 80 11 00 00 04 50 55 53 48 00 85 12 E0 D4
-00 12 46 D5 06 50 55 53 48 2E 42 00 85 12 E0 D4
-40 12 A0 D4 04 43 41 4C 4C 00 85 12 E0 D4 80 12
-1A 53 0E 4A 0D 12 84 12 D6 C8 14 C4 0D 6F 75 74
-20 6F 66 20 62 6F 75 6E 64 73 36 C5 3A D5 03 53
-3E 3D 86 12 00 38 8E D5 02 53 3C 00 86 12 00 34
-54 D5 03 30 3E 3D 86 12 00 30 A2 D5 02 30 3C 00
-86 12 00 30 00 00 02 55 3C 00 86 12 00 2C B6 D5
-03 55 3E 3D 86 12 00 28 AC D5 03 30 3C 3E 86 12
-00 24 CA D5 02 30 3D 00 86 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 C0 D5 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 B1 2F
-88 DA 00 00 30 4D 50 D4 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 64 D5 05 42 45 47 49 4E 30 40 28 C4
-F4 D5 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 8A 3B 3A F0
-FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D D4 D4
-05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
-05 57 48 49 4C 45 0D 12 84 12 E2 D5 BA C7 60 C8
-98 D5 06 52 45 50 45 41 54 00 0D 12 84 12 76 D6
-FA D5 60 C8 A6 D6 3D 41 08 4E 3E 4F 2A 48 B2 92
-C4 21 CB 2F 98 42 C6 21 00 00 30 4D 36 D6 03 42
-57 31 85 12 A4 D6 00 00 BE D6 03 42 57 32 85 12
-A4 D6 00 00 CA D6 03 42 57 33 85 12 A4 D6 00 00
-E2 D6 3D 41 1A 42 C6 21 28 4E B2 92 C4 21 88 2B
-BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D
-00 00 03 46 57 31 85 12 E0 D6 00 00 02 D7 03 46
-57 32 85 12 E0 D6 00 00 0E D7 03 46 57 33 85 12
-E0 D6 00 00 1A D7 04 47 4F 54 4F 00 2F 83 8F 4E
-00 00 3E 40 00 3C 0D 12 84 12 92 CC EE CB 60 C8
-00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
-00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 14 CC
-AA D1 64 D7 92 53 C4 21 3E 40 2C 00 84 12 2C C9
-50 CA 34 C4 12 CC 40 D3 7A D7 0A 4E 3E 4F 1A 83
-F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
-08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E
-8A 10 5A 06 A6 3E 92 D6 04 52 52 43 4D 00 85 12
-5E D7 50 00 A8 D7 04 52 52 41 4D 00 85 12 5E D7
-50 01 B6 D7 04 52 4C 41 4D 00 85 12 5E D7 50 02
-C4 D7 04 52 52 55 4D 00 85 12 5E D7 50 03 D4 D5
-05 50 55 53 48 4D 85 12 5E D7 00 15 E0 D7 04 50
-4F 50 4D 00 85 12 5E D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 94 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 1A D1
-q
diff --git a/binaries/MSP_EXP430FR2433_1MHz_115200.txt b/binaries/MSP_EXP430FR2433_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..3c6b20e
--- /dev/null
@@ -0,0 +1,323 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A0 59
+AC C6 7E C5 84 C5 54 C5 1C C7 0A D7 C2 CF 7C CF
+7C CF 92 C6 50 C7 18 C7 3C 21 E0 20 70 C9 B6 C4
+C4 C4 8C C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+1C C7 0A D7 C2 CF 7C CF 7C CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F1 3C 0E 93 3E 4F
+86 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 90 C6 B2 49
+4E C7 B2 49 16 C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 36 D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 1C C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 96 C8 AC C4 52 C5 5E C7 1E C4 04 1B
+5B 37 6D 00 80 C7 80 C7 1E C4 04 1B 5B 30 6D 00
+80 C7 CC CC B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 5E C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 80 C7 E4 C9 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 80 C7 0A C4 40 FF 32 C4
+AC C8 B0 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B2 01 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 43 06 02 B2 40 FC FF 02 02 D2 D3 04 02 F2 D3
+26 02 F2 43 22 02 B2 40 00 A5 60 01 82 43 88 01
+F2 D0 03 00 0B 02 F2 C3 82 01 B2 40 1E 00 84 01
+39 40 80 00 18 42 00 18 18 83 FE 23 19 83 FA 23
+39 40 00 10 29 83 89 43 00 20 FC 23 19 42 5E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 C4 86 C5 00 00 0C 41 43 43 45 50 54 00 30 40
+92 C6 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 F0 C6 3C 40 FC C6 5D 15 AA 3E 21 52 3A 17
+58 42 0C 05 48 9B 09 20 A2 B3 1C 05 FD 27 B2 40
+13 00 0E 05 D2 D3 02 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 1C 05 FD 27 C2 48 0E 05 30 4D
+F2 C6 2D 83 92 B3 1C 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 1C 05 FD 27 58 42 0C 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 18 C7 30 12 2E C7 A2 B3 1C 05
+FD 27 B2 40 11 00 0E 05 D2 C3 02 02 30 41 2F 83
+8F 4E 00 00 92 B3 1C 05 FD 27 B0 12 B8 C6 1E 42
+0C 05 30 4D 00 00 08 45 4D 49 54 00 30 40 50 C7
+08 4E 3E 4F C7 3F 46 C7 08 45 43 48 4F 00 B2 40
+C2 48 EA C6 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D EA C6 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 90 C7 29 4F 8F 4E 00 00 7E 49 DE 3F
+92 C7 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+80 22 F9 98 00 00 7D 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 74 22 9B 24 10 C7 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A C4 00 00 B0 C8
+A2 C7 F4 C9 AE CC B0 C4 1E C8 14 C4 06 5B 54 48
+45 4E 5D 00 A6 C7 FC C7 C2 C7 E0 C7 14 C4 06 5B
+45 4C 53 45 5D 00 A6 C7 0E C8 C2 C7 DE C7 1E C4
+04 5B 49 46 5D 00 A6 C7 E0 C7 B2 C4 DE C7 1E C4
+05 0D 6B 6F 20 0A 80 C7 9A C4 84 C4 B2 C4 E0 C7
+CE C7 0D 5B 54 48 45 4E 5D 00 30 4D 32 C8 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 3E C8 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 A2 C7 F4 C9
+5C CA 00 CC 70 C9 4E C8 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 A2 C7 F4 C9 5C CA 80 C8
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D 86 C6 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 C5 05 53 22 00 82 43
+C0 21 0D 12 84 12 0A C4 1E C4 5E CC 0A C4 22 00
+F4 C9 F4 C8 B2 40 20 00 C0 21 1A 53 1A B3 82 6A
+C8 21 3E 4F 3D 41 30 4D 68 C7 05 2E 22 00 0D 12
+84 12 DE C8 0A C4 80 C7 5E CC 70 C9 00 00 04 3C
+23 00 B2 40 B2 21 B2 21 30 4D DA C8 02 23 1B 42
+BE 21 2C 4F 2F 83 B0 12 46 C4 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 2C C9 04 23 53 00
+0D 12 84 12 2E C9 68 C9 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 5C C9 04 23 3E 00 9F 42 B2 21 00 00
+3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 76 C9 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 58 C7 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 22 C9
+A2 C7 90 C9 60 C9 8C C8 9E C9 7A C9 80 C7 70 C9
+0A C9 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D E2 C9 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 21 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40
+66 CB 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 68 CB 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 1E C9 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 C4 A2 C7 F4 C9 B0 C4 38 CD 5C CA
+22 CC 0A 4E 3E 4F 3D 40 3C CC 6D 27 3D 40 16 CC
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 3E CC 3E 4F
+3D 40 16 CC 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 14 CE 2A 3C 06 CC 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D 5C CC
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A C4 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D 98 C9 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D BE C8 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E C4 02 0D 0A 00 80 C7 94 C4 10 CC
+9E C8 C8 C8 1E C4 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 C5 32 C4 0A C4 40 FF D0 C8 1E C4 09 46
+52 41 4D 20 66 75 6C 6C 08 C5 B2 C4 D4 CC BE CC
+0D 41 42 4F 52 54 22 00 0D 12 84 12 DE C8 0A C4
+08 C5 5E CC 70 C9 EE C9 02 27 0D 12 84 12 A2 C7
+F4 C9 5C CA B0 C4 3A CD 02 C9 46 CC 68 C8 07 5B
+27 5D 0D 12 84 12 2A CD 0A C4 0A C4 5E CC 5E CC
+70 C9 3E CD 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D B6 C8 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 A2 C7 F4 C9 5C CA B0 C4 3A CD
+C8 C8 AC C4 92 CD 0A C4 0A C4 5E CC 5E CC 0A C4
+5E CC 5E CC 70 C9 00 00 02 3A 30 12 E8 CD 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 A2 C7 F4 C9 B0 CD
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 C5 54 CD 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A C4 70 C9 5E CC FA CD 56 CD 70 C9
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D A8 CC 0C 43 52 45 41 54 45 00
+B0 12 9E CD BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+7A C7 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D 98 CD 0E 3A 4E 4F
+4E 41 4D 45 30 12 E8 CD 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+32 CE 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+2A CD B4 CE 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+42 CD 0A C4 B6 CE 5E CC 70 C9 48 CE 08 43 4F 44
+45 00 B0 12 9E CD A2 82 C8 21 61 3C 8A C9 0E 48
+44 4E 43 4F 44 45 B2 40 A2 CF CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 FA CD 00 CF
+3D 41 92 42 D0 21 CC 21 5D 3C CC CE 0E 43 4F 44
+45 4E 4E 4D 30 12 D6 CE B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F DE CE
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F 6A CF B2 40 7C CF D0 21
+82 4E CE 21 30 40 02 C9 85 12 68 CF 68 CD 10 CD
+FA CF 0C CF 62 CE AC C9 56 CA 28 CD 50 CF A2 CE
+7C CE 18 CE 70 CC 84 D0 AE CA 00 00 00 00 85 12
+68 CF FE D6 82 D5 E2 D6 AA D4 06 D5 54 D5 30 D6
+3C D6 CC D3 F0 D4 00 00 00 00 3E CF BC D2 00 00
+58 D6 9C CF B2 40 7C CF CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 D0 CF 30 4D E2 CF 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 D0 CF
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 C6 FE FF 29 83 B9 40
+F2 C5 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+E4 FF 3B 40 10 00 3A 40 3A 18 B0 12 D4 CF 82 43
+4A 18 C7 3F 76 D0 B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 5E CD 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 A2 C7 F4 C9 5C CA AC C4 A2 D0 96 C8
+36 CC A4 D0 3E 4F 3D 41 B2 41 C6 21 B0 12 9E CD
+BA 40 85 12 FC FF BA 40 74 D0 FE FF 28 83 8A 48
+00 00 BA 40 82 C4 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 F4 C9 5C CA AC C4 0E D1 EE D0 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+74 D0 00 00 01 20 3E 52 2E 83 21 53 30 41 06 CB
+AC C4 16 D1 0A D1 18 D1 B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 DE D0 15 20
+3E 40 2B 00 B0 12 DE D0 06 20 3E 40 2D 00 B0 12
+DE D0 92 83 C6 21 0E 12 1E 41 02 00 84 12 F4 C9
+06 CB AC C4 3A CD 58 D1 3E 51 3A 17 30 41 B0 12
+1E D1 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 F4 C9
+06 CB AC C4 90 D1 88 D1 3E 90 10 00 E6 2B 7C 2D
+92 D1 A2 41 C6 21 E1 3F 03 20 B0 12 76 D1 43 3C
+7A 90 23 00 24 20 B0 12 26 D1 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 26 D1 F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 72 D1 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 76 D1 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 5E D1 F2 3F 03 20 B0 12 76 D1 F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+5E D1 EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A C4 00 13
+5E CC 70 C9 0A C4 2C 00 54 D2 98 D1 A2 C7 5E D2
+36 D2 A4 D2 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 94 D2 00 40 B0 D2 0A 4D 4F 56
+2E 42 85 12 94 D2 40 40 00 00 06 41 44 44 85 12
+94 D2 00 50 CA D2 0A 41 44 44 2E 42 85 12 94 D2
+40 50 D6 D2 08 41 44 44 43 00 85 12 94 D2 00 60
+E4 D2 0C 41 44 44 43 2E 42 00 85 12 94 D2 40 60
+1C CF 08 53 55 42 43 00 85 12 94 D2 00 70 02 D3
+0C 53 55 42 43 2E 42 00 85 12 94 D2 40 70 10 D3
+06 53 55 42 85 12 94 D2 00 80 20 D3 0A 53 55 42
+2E 42 85 12 94 D2 40 80 2C D3 06 43 4D 50 85 12
+94 D2 00 90 3A D3 0A 43 4D 50 2E 42 85 12 94 D2
+40 90 00 00 08 44 41 44 44 00 85 12 94 D2 00 A0
+54 D3 0C 44 41 44 44 2E 42 00 85 12 94 D2 40 A0
+82 D2 06 42 49 54 85 12 94 D2 00 B0 72 D3 0A 42
+49 54 2E 42 85 12 94 D2 40 B0 7E D3 06 42 49 43
+85 12 94 D2 00 C0 8C D3 0A 42 49 43 2E 42 85 12
+94 D2 40 C0 98 D3 06 42 49 53 85 12 94 D2 00 D0
+A6 D3 0A 42 49 53 2E 42 85 12 94 D2 40 D0 00 00
+06 58 4F 52 85 12 94 D2 00 E0 C0 D3 0A 58 4F 52
+2E 42 85 12 94 D2 40 E0 F2 D2 06 41 4E 44 85 12
+94 D2 00 F0 DA D3 0A 41 4E 44 2E 42 85 12 94 D2
+40 F0 A2 C7 54 D2 98 D1 FA D3 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F B2 D3 06 52 52 43
+85 12 F2 D3 00 10 0C D4 0A 52 52 43 2E 42 85 12
+F2 D3 40 10 46 D3 08 53 57 50 42 00 85 12 F2 D3
+80 10 18 D4 06 52 52 41 85 12 F2 D3 00 11 34 D4
+0A 52 52 41 2E 42 85 12 F2 D3 40 11 26 D4 06 53
+58 54 85 12 F2 D3 80 11 00 00 08 50 55 53 48 00
+85 12 F2 D3 00 12 5A D4 0C 50 55 53 48 2E 42 00
+85 12 F2 D3 40 12 4E D4 08 43 41 4C 4C 00 85 12
+F2 D3 80 12 1A 53 0E 4A 84 12 E4 C9 1E C4 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C5 78 D4
+06 53 3E 3D 86 12 00 38 A0 D4 04 53 3C 00 86 12
+00 34 68 D4 06 30 3E 3D 86 12 00 30 B4 D4 04 30
+3C 00 86 12 00 30 F0 CE 04 55 3C 00 86 12 00 2C
+C8 D4 06 55 3E 3D 86 12 00 28 BE D4 06 30 3C 3E
+86 12 00 24 DC D4 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D 62 D3 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D D2 D4 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F 40 D4 0A 42 45 47 49 4E 30 40
+32 C4 2A D5 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+E6 D3 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 F4 D4 8A C8
+70 C9 48 D5 0C 52 45 50 45 41 54 00 0D 12 84 12
+88 D5 0C D5 70 C9 B8 D5 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D A4 D5
+06 42 57 31 85 12 B6 D5 00 00 D0 D5 06 42 57 32
+85 12 B6 D5 00 00 DC D5 06 42 57 33 85 12 B6 D5
+00 00 F4 D5 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 F2 D5
+00 00 18 D6 06 46 57 32 85 12 F2 D5 00 00 24 D6
+06 46 57 33 85 12 F2 D5 00 00 92 D5 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+2A CD 36 CC 70 C9 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F 5E D2 0A C4 2C 00 F4 C9 06 CB AC C4
+3A CD A2 C7 54 D2 36 D2 8A D6 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E E8 D5 08 52 52 43 4D 00 85 12
+74 D6 50 00 B8 D6 08 52 52 41 4D 00 85 12 74 D6
+50 01 C6 D6 08 52 4C 41 4D 00 85 12 74 D6 50 02
+D4 D6 08 52 52 55 4D 00 85 12 74 D6 50 03 E6 D4
+0A 50 55 53 48 4D 85 12 74 D6 00 15 F0 D6 08 50
+4F 50 4D 00 85 12 74 D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 AC C6 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 06 C6
+q
index 8e2adf1..93b1202 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF D4 D7 F0 CF 34 01
-10 00 41 87 B6 C5 AA C4 B8 C5 8C C5 82 C6 D4 D7
-F0 CF 70 C6 80 C7 FE C6 DA C6 3C 21 4E C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 43
+A6 C6 56 C5 56 C5 58 C5 44 C5 E6 D6 9E CF 58 CF
+58 CF 94 C6 18 C7 F0 C6 3C 21 E0 20 4C C9 B6 C4
+C4 C4 68 C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 E6 D6 9E CF 58 CF 58 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 6E C6 B2 49 7E C7 B2 49 FC C6 B2 49 D8 C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 CE C7 16 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7
-C4 C8 96 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C7 8E C8 4A C7
-14 C4 04 1B 5B 30 6D 00 4A C7 16 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 F2 B2 01 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00 B0 12
-8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4 07 0D
-0A 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7 C4 C8
-0A C4 23 00 FA C6 C4 C8 14 C4 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 4A C7 0A C4 40 FF 28 C4 C2 C7 8E C8
-14 C4 0A 62 79 74 65 73 20 66 72 65 65 00 3A C4
-7E C5 00 00 06 41 43 43 45 50 54 00 30 40 70 C6
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C6 2F 83 8F 4E 00 00
-58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C6 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 C6
-04 45 43 48 4F 00 B2 40 C2 48 08 C7 82 43 DE 21
-38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C7 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C7 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C6 68 C7 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40 80 C7
-0D 12 84 12 14 C4 02 0D 0A 00 4A C7 4E C8 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C6 01 40 2E 4E
-30 4D CC C7 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 C7 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E C4 BF 4F 00 00 7A 90 0A 00 02 28
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F2 3C 0E 93 3E 4F
+74 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 92 C6 B2 49
+16 C7 B2 49 EE C6 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 12 D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 72 C8 AC C4
+42 C5 30 C7 1E C4 05 1B 5B 37 6D 40 5C C7 0A C4
+02 18 94 C8 C0 C9 5C C7 1E C4 04 1B 5B 30 6D 00
+5C C7 A8 CC 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 30 C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 5C C7 0A C4 02 18 94 C8 C0 C9 0A C4 23 00
+14 C7 C0 C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+5C C7 0A C4 40 FF 32 C4 88 C8 8C C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B2
+01 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 43 06 02 B2 40 FC FF
+02 02 F2 D3 26 02 F2 43 22 02 B2 40 00 A5 60 01
+82 43 88 01 F2 D0 03 00 0B 02 F2 C3 82 01 B2 40
+1E 00 84 01 39 40 80 00 18 42 00 18 18 83 FE 23
+19 83 FA 23 39 40 00 10 29 83 89 43 00 20 FC 23
+1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01
+B0 12 D0 C4 80 C5 00 00 0C 41 43 43 45 50 54 00
+30 40 94 C6 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40
+20 00 3D 15 AD 3E 21 52 A2 C2 6C 05 B2 B0 10 00
+40 05 A6 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05
+48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27
+1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F
+3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40 F0 C6
+58 43 B0 12 46 C5 2F 83 8F 4E 00 00 92 B3 6C 05
+FD 27 1E 42 4C 05 B0 12 44 C5 30 4D 00 00 08 45
+4D 49 54 00 30 40 18 C7 08 4E 3E 4F A2 B3 6C 05
+FD 27 C2 48 4E 05 30 4D 0E C7 08 45 43 48 4F 00
+B2 40 C2 48 22 C7 38 40 05 00 B0 12 46 C5 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 22 C7
+28 42 F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40
+6C C7 29 4F 8F 4E 00 00 7E 49 D4 3F 6E C7 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 92 22 F9 98
+00 00 8F 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 86 22 9B 24 E8 C6 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A C4 00 00 8C C8 7E C7 D0 C9
+8A CC B0 C4 FA C7 14 C4 06 5B 54 48 45 4E 5D 00
+82 C7 D8 C7 9E C7 BC C7 14 C4 06 5B 45 4C 53 45
+5D 00 82 C7 EA C7 9E C7 BA C7 1E C4 04 5B 49 46
+5D 00 82 C7 BC C7 B2 C4 BA C7 1E C4 05 0D 6B 6F
+20 0A 5C C7 9A C4 84 C4 B2 C4 BC C7 AA C7 0D 5B
+54 48 45 4E 5D 00 30 4D 0E C8 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 1A C8 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 7E C7 D0 C9 38 CA DC CB
+4C C9 2A C8 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 7E C7 D0 C9 38 CA 5C C8 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D 88 C6 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D E0 C5 05 53 22 00 82 43 C0 21 0D 12
+84 12 0A C4 1E C4 3A CC 0A C4 22 00 D0 C9 D0 C8
+B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F
+3D 41 30 4D 42 C7 05 2E 22 00 0D 12 84 12 BA C8
+0A C4 5C C7 3A CC 4C C9 00 00 04 3C 23 00 B2 40
+B2 21 B2 21 30 4D B6 C8 02 23 1B 42 BE 21 2C 4F
+2F 83 B0 12 46 C4 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 08 C8 02 23 53 00 0D 12 84 12
-0A C8 44 C8 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C8 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C7 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C7
-3C C8 EE C4 7C C8 58 C8 4A C7 02 CC FA C6 4E C8
-2C C7 01 2E 0E 93 E3 37 38 43 E2 3F 76 C8 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4 48 CB
-0A C4 22 00 1A C9 E8 C8 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 C8
-82 2E 22 00 0D 12 84 12 D2 C8 0A C4 4A C7 48 CB
-4E C8 F8 C5 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C4 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4 30 4D
-00 00 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 9C CA 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E CA 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 C8 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC C4 02 CC 1A C9 BE CB 9C 26
-3D 40 C6 CB DE 3E C8 CB 0A 4E 3E 4F 3D 40 E2 CB
-36 27 3D 40 B8 CB 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 CB 3E 4F 3D 40 B8 CB BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 CD CC 3F
-EC CB 86 12 20 00 D4 C7 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C C7 BC C4
-B2 CB B2 C7 E4 C7 14 C4 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4 EC C7
-14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A C5
-3A C4 2C CC 08 CC 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 C8 0A C4 2A C5 48 CB 4E C8 7C C9 01 27
-0D 12 84 12 02 CC 1A C9 82 C9 34 C4 00 CC 4E C8
-00 00 83 5B 27 5D 0D 12 84 12 80 CC 0A C4 0A C4
-48 CB 48 CB 4E C8 92 CC 81 5B 82 43 BE 21 30 4D
-FA C7 01 5D B2 43 BE 21 30 4D B2 CC 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 CC 1A C9 82 C9 96 C7 34 C4
-00 CC E4 C7 34 C4 F4 CC 0A C4 0A C4 48 CB 48 CB
-0A C4 48 CB 48 CB 4E C8 A8 CC 01 3A 30 12 44 CD
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 CC 1A C9
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 C5 FA CC 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A C4 4E C8 48 CB 56 CD AA CC 4E C8
-A8 CB 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 CB 06 43 52 45 41 54
-45 00 B0 12 00 CD BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA CD 04 43 4F 44 45 00 B0 12 00 CD A2 82
-C6 21 0D 12 84 12 F2 CF CC CF 4E C8 A2 CD 07 48
-44 4E 43 4F 44 45 B2 40 D0 CF DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 CD 0C D0
-2A D0 4E C8 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C D0 2A D0 4E C8 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE CD 85 48 49 32 4C 4F 0D 12 84 12 28 C4 9A CF
-48 CB AA CC E2 CD 4E C8 88 CD 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A CE 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A C4 00 00 C6 C7 02 CC 1A C9 98 CB
-8E C7 34 C4 02 CF 9C C7 14 C4 06 5B 54 48 45 4E
-5D 00 74 CE DC CE 98 CE BA CE 4E C8 9C C7 14 C4
-06 5B 45 4C 53 45 5D 00 74 CE F2 CE 98 CE B8 CE
-4E C8 14 C4 04 5B 49 46 5D 00 74 CE BA CE 3A C4
-B8 CE 70 C7 14 C4 05 0D 0A 6B 6F 20 4A C7 BC C4
-AC C4 3A C4 BA CE A8 CE 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 CF 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 CC 1A C9 82 C9
-26 CF 4E C8 2C CF 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 CF DE C7 4E C8 5E CF B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A CB 06 4D
-41 52 4B 45 52 00 B0 12 00 CD BA 40 85 12 FC FF
-BA 40 5C CF FE FF 28 83 8A 48 00 00 BA 40 AA C4
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A C4
-CA 21 D6 C7 4E C8 85 12 9E CF 66 CC D4 CD 10 C7
-7E CC 52 CE D2 C6 6E CF 00 C9 96 D0 AA D0 8A C8
-14 C9 00 00 46 CF BC CC E2 C9 00 00 85 12 9E CF
-4A D6 B0 D6 F2 D5 00 D7 B8 D5 00 00 84 D3 00 00
-C8 D7 AC D7 1C D6 5A D6 94 D4 00 00 00 00 1C D7
-CA CF 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 CF 24 D0 2A D0 3A D0 1A 42 20 18 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 C8 CC
-09 50 57 52 5F 53 54 41 54 45 85 12 32 D0 D4 D7
-CE C8 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E D0 F3 3F 70 D0 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E D0 30 4D 82 D0 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 D1 FE FF 29 83 B9 40
-E2 C5 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 C5 B2 49 FA C4 B2 49 02 C4 B2 49 00 C6 B2 49
-E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 10 29 83 89 43 00 20 FC 23 B2 43
-06 02 B2 40 FC FF 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 82 43 88 01 F2 D0 03 00
-0B 02 39 40 80 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 C4 FE C5 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 1A C9 82 C9 DE C7 34 C4 C4 D1 3E CA 34 C4
-DE D1 D8 D1 C6 D1 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 E0 D1
-B2 41 C4 21 3E 41 84 12 0A C4 2B 00 1A C9 82 C9
-DE C7 34 C4 FC D1 3E CA 34 C4 00 CC A8 C7 1A C9
-3E CA 34 C4 00 CC 08 D2 3E 5F E7 3F 3E 40 28 00
-B0 12 A8 D1 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 6E CD
-1C 15 12 12 C4 21 92 53 C4 21 84 12 1A C9 3E CA
-34 C4 50 D2 46 D2 21 53 3E 90 10 00 C6 2B 7F 2D
-52 D2 B2 41 C4 21 C1 3F 0D 12 84 12 02 CC 84 D1
-62 D2 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 A8 D1 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 A8 D1 ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 30 D2 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 30 D2 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 30 D2 FA 23
-3C 50 10 00 B0 12 0C D2 EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 02 CC 84 D1 2E D3 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 30 D2 E0 23 3C 50 80 00 B0 12 0C D2 DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A C4 00 13
-48 CB 4E C8 0A C4 2C 00 58 D2 24 D3 6E D3 09 4B
-2E 4E 0E DC A2 3F 40 CE 03 4D 4F 56 85 12 64 D3
-00 40 78 D3 05 4D 4F 56 2E 42 85 12 64 D3 40 40
-00 00 03 41 44 44 85 12 64 D3 00 50 92 D3 05 41
-44 44 2E 42 85 12 64 D3 40 50 9E D3 04 41 44 44
-43 00 85 12 64 D3 00 60 AC D3 06 41 44 44 43 2E
-42 00 85 12 64 D3 40 60 52 D3 04 53 55 42 43 00
-85 12 64 D3 00 70 CA D3 06 53 55 42 43 2E 42 00
-85 12 64 D3 40 70 D8 D3 03 53 55 42 85 12 64 D3
-00 80 E8 D3 05 53 55 42 2E 42 85 12 64 D3 40 80
-16 CE 03 43 4D 50 85 12 64 D3 00 90 02 D4 05 43
-4D 50 2E 42 85 12 64 D3 40 90 00 CE 04 44 41 44
-44 00 85 12 64 D3 00 A0 1C D4 06 44 41 44 44 2E
-42 00 85 12 64 D3 40 A0 0E D4 03 42 49 54 85 12
-64 D3 00 B0 3A D4 05 42 49 54 2E 42 85 12 64 D3
-40 B0 46 D4 03 42 49 43 85 12 64 D3 00 C0 54 D4
-05 42 49 43 2E 42 85 12 64 D3 40 C0 60 D4 03 42
-49 53 85 12 64 D3 00 D0 6E D4 05 42 49 53 2E 42
-85 12 64 D3 40 D0 00 00 03 58 4F 52 85 12 64 D3
-00 E0 88 D4 05 58 4F 52 2E 42 85 12 64 D3 40 E0
-BA D3 03 41 4E 44 85 12 64 D3 00 F0 A2 D4 05 41
-4E 44 2E 42 85 12 64 D3 40 F0 02 CC 58 D2 C0 D4
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-F4 D3 03 52 52 43 85 12 BA D4 00 10 D2 D4 05 52
-52 43 2E 42 85 12 BA D4 40 10 DE D4 04 53 57 50
-42 00 85 12 BA D4 80 10 EC D4 03 52 52 41 85 12
-BA D4 00 11 FA D4 05 52 52 41 2E 42 85 12 BA D4
-40 11 06 D5 03 53 58 54 85 12 BA D4 80 11 00 00
-04 50 55 53 48 00 85 12 BA D4 00 12 20 D5 06 50
-55 53 48 2E 42 00 85 12 BA D4 40 12 7A D4 04 43
-41 4C 4C 00 85 12 BA D4 80 12 1A 53 0E 4A 0D 12
-84 12 C4 C8 14 C4 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 C5 14 D5 03 53 3E 3D 86 12 00 38
-68 D5 02 53 3C 00 86 12 00 34 2E D5 03 30 3E 3D
-86 12 00 30 7C D5 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C 90 D5 03 55 3E 3D 86 12
-00 28 86 D5 03 30 3C 3E 86 12 00 24 A4 D5 02 30
-3D 00 86 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 9A D5 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 B1 2F 88 DA 00 00 30 4D
-2A D4 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 D5
-05 42 45 47 49 4E 30 40 28 C4 CE D5 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D AE D4 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 BC D5 A8 C7 4E C8 72 D5 06 52 45 50
-45 41 54 00 0D 12 84 12 50 D6 D4 D5 4E C8 80 D6
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 10 D6 03 42 57 31 85 12 7E D6
-00 00 98 D6 03 42 57 32 85 12 7E D6 00 00 A4 D6
-03 42 57 33 85 12 7E D6 00 00 BC D6 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 BA D6 00 00 DC D6 03 46 57 32 85 12 BA D6
-00 00 E8 D6 03 46 57 33 85 12 BA D6 00 00 F4 D6
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 80 CC DC CB 4E C8 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 02 CC 84 D1 3E D7 92 53
-C4 21 3E 40 2C 00 84 12 1A C9 3E CA 34 C4 00 CC
-1A D3 54 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-6C D6 04 52 52 43 4D 00 85 12 38 D7 50 00 82 D7
-04 52 52 41 4D 00 85 12 38 D7 50 01 90 D7 04 52
-4C 41 4D 00 85 12 38 D7 50 02 9E D7 04 52 52 55
-4D 00 85 12 38 D7 50 03 AE D5 05 50 55 53 48 4D
-85 12 38 D7 00 15 BA D7 04 50 4F 50 4D 00 85 12
-38 D7 00 17
+C8 4A 00 00 30 4D 08 C9 04 23 53 00 0D 12 84 12
+0A C9 44 C9 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+38 C9 04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F 52 C9 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 2A C7 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 FE C8 7E C7 6C C9
+3C C9 68 C8 7A C9 56 C9 5C C7 4C C9 E6 C8 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21
+82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D BE C9 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 21 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 21 0C 4E 0E 43 1E 15 3D 40 42 CB 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 44 CB 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+FA C8 03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12
+84 C4 7E C7 D0 C9 B0 C4 14 CD 38 CA FE CB 0A 4E
+3E 4F 3D 40 18 CC 6D 27 3D 40 F2 CB 1A E2 BC 21
+14 24 0E 12 3E 4F 30 41 1A CC 3E 4F 3D 40 F2 CB
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 F0 CD 2A 3C E2 CB 02 2C A2 53 C8 21 1A 42
+C8 21 8A 4E FE FF 3E 4F 30 4D 38 CC 0F 4C 49 54
+45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21
+A2 52 C8 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D 74 C9 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D 9A C8 0A 41 4C 4C 4F 54
+82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12
+1E C4 02 0D 0A 00 5C C7 94 C4 EC CB 7A C8 A4 C8
+1E C4 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 C5
+32 C4 0A C4 40 FF AC C8 1E C4 09 46 52 41 4D 20
+66 75 6C 6C 08 C5 B2 C4 B0 CC 9A CC 0D 41 42 4F
+52 54 22 00 0D 12 84 12 BA C8 0A C4 08 C5 3A CC
+4C C9 CA C9 02 27 0D 12 84 12 7E C7 D0 C9 38 CA
+B0 C4 16 CD DE C8 22 CC 44 C8 07 5B 27 5D 0D 12
+84 12 06 CD 0A C4 0A C4 3A CC 3A CC 4C C9 1A CD
+03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21
+30 4D 92 C8 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 7E C7 D0 C9 38 CA B0 C4 16 CD A4 C8 AC C4
+6E CD 0A C4 0A C4 3A CC 3A CC 0A C4 3A CC 3A CC
+4C C9 00 00 02 3A 30 12 C4 CD 92 B3 C8 21 A2 63
+C8 21 0D 12 84 12 7E C7 D0 C9 8C CD 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21
+82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A
+C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12 1E C4
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 C5 30 CD 03 3B 82 93 BC 21 F4 26 0D 12 84 12
+0A C4 4C C9 3A CC D6 CD 32 CD 4C C9 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00
+30 4D 84 CC 0C 43 52 45 41 54 45 00 B0 12 7A CD
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 56 C7 0A 44
+4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D 74 CD 0E 3A 4E 4F 4E 41 4D 45
+30 12 C4 CD 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 0E CE 05 49
+53 00 0D 12 82 93 BC 21 08 20 84 12 06 CD 90 CE
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 1E CD 0A C4
+92 CE 3A CC 4C C9 24 CE 08 43 4F 44 45 00 B0 12
+7A CD A2 82 C8 21 61 3C 66 C9 0E 48 44 4E 43 4F
+44 45 B2 40 7E CF CC 21 F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 D6 CD DC CE 3D 41 92 42
+D0 21 CC 21 5D 3C A8 CE 0E 43 4F 44 45 4E 4E 4D
+30 12 B2 CE B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 21 1A 42 C8 21 EF 3F BA CE 0B 48 49 32
+4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43
+BC 21 B9 3F 46 CF B2 40 58 CF D0 21 82 4E CE 21
+30 40 DE C8 85 12 44 CF 44 CD EC CC D6 CF E8 CE
+3E CE 88 C9 32 CA 04 CD 2C CF 7E CE 58 CE F4 CD
+4C CC 60 D0 8A CA 00 00 00 00 85 12 44 CF DA D6
+5E D5 BE D6 86 D4 E2 D4 30 D5 0C D6 18 D6 A8 D3
+CC D4 00 00 00 00 1A CF 98 D2 00 00 34 D6 78 CF
+B2 40 58 CF CE 21 82 43 D0 21 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12
+AC CF 30 4D BE CF 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 21 B0 12 AC CF 1A 42 CA 21
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 0E C6 FE FF 29 83 B9 40 FA C5 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 E0 FF 3B 40
+10 00 3A 40 3A 18 B0 12 B0 CF 82 43 4A 18 C7 3F
+52 D0 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 3A CD
+0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12
+7E C7 D0 C9 38 CA AC C4 7E D0 72 C8 12 CC 80 D0
+3E 4F 3D 41 B2 41 C6 21 B0 12 7A CD BA 40 85 12
+FC FF BA 40 50 D0 FE FF 28 83 8A 48 00 00 BA 40
+82 C4 02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12
+D0 C9 38 CA AC C4 EA D0 CA D0 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 50 D0 00 00
+01 20 3E 52 2E 83 21 53 30 41 E2 CA AC C4 F2 D0
+E6 D0 F4 D0 B2 41 C6 21 30 41 92 83 C6 21 3E 40
+28 00 0A 4E 3D 15 B0 12 BA D0 15 20 3E 40 2B 00
+B0 12 BA D0 06 20 3E 40 2D 00 B0 12 BA D0 92 83
+C6 21 0E 12 1E 41 02 00 84 12 D0 C9 E2 CA AC C4
+16 CD 34 D1 3E 51 3A 17 30 41 B0 12 FA D0 19 42
+C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53
+C6 21 1A 42 C6 21 3D 15 84 12 D0 C9 E2 CA AC C4
+6C D1 64 D1 3E 90 10 00 E6 2B 7C 2D 6E D1 A2 41
+C6 21 E1 3F 03 20 B0 12 52 D1 43 3C 7A 90 23 00
+24 20 B0 12 02 D1 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 C8 21 A2 53
+C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 02 D1 F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 4E D1 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 52 D1 92 92 C2 21 C6 21 02 24 92 53
+C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 3A D1
+F2 3F 03 20 B0 12 52 D1 F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 3A D1 EA 3F
+0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42
+C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82
+C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A C4 00 13 3A CC 4C C9
+0A C4 2C 00 30 D2 74 D1 7E C7 3A D2 12 D2 80 D2
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 70 D2 00 40 8C D2 0A 4D 4F 56 2E 42 85 12
+70 D2 40 40 00 00 06 41 44 44 85 12 70 D2 00 50
+A6 D2 0A 41 44 44 2E 42 85 12 70 D2 40 50 B2 D2
+08 41 44 44 43 00 85 12 70 D2 00 60 C0 D2 0C 41
+44 44 43 2E 42 00 85 12 70 D2 40 60 F8 CE 08 53
+55 42 43 00 85 12 70 D2 00 70 DE D2 0C 53 55 42
+43 2E 42 00 85 12 70 D2 40 70 EC D2 06 53 55 42
+85 12 70 D2 00 80 FC D2 0A 53 55 42 2E 42 85 12
+70 D2 40 80 08 D3 06 43 4D 50 85 12 70 D2 00 90
+16 D3 0A 43 4D 50 2E 42 85 12 70 D2 40 90 00 00
+08 44 41 44 44 00 85 12 70 D2 00 A0 30 D3 0C 44
+41 44 44 2E 42 00 85 12 70 D2 40 A0 5E D2 06 42
+49 54 85 12 70 D2 00 B0 4E D3 0A 42 49 54 2E 42
+85 12 70 D2 40 B0 5A D3 06 42 49 43 85 12 70 D2
+00 C0 68 D3 0A 42 49 43 2E 42 85 12 70 D2 40 C0
+74 D3 06 42 49 53 85 12 70 D2 00 D0 82 D3 0A 42
+49 53 2E 42 85 12 70 D2 40 D0 00 00 06 58 4F 52
+85 12 70 D2 00 E0 9C D3 0A 58 4F 52 2E 42 85 12
+70 D2 40 E0 CE D2 06 41 4E 44 85 12 70 D2 00 F0
+B6 D3 0A 41 4E 44 2E 42 85 12 70 D2 40 F0 7E C7
+30 D2 74 D1 D6 D3 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F 8E D3 06 52 52 43 85 12 CE D3
+00 10 E8 D3 0A 52 52 43 2E 42 85 12 CE D3 40 10
+22 D3 08 53 57 50 42 00 85 12 CE D3 80 10 F4 D3
+06 52 52 41 85 12 CE D3 00 11 10 D4 0A 52 52 41
+2E 42 85 12 CE D3 40 11 02 D4 06 53 58 54 85 12
+CE D3 80 11 00 00 08 50 55 53 48 00 85 12 CE D3
+00 12 36 D4 0C 50 55 53 48 2E 42 00 85 12 CE D3
+40 12 2A D4 08 43 41 4C 4C 00 85 12 CE D3 80 12
+1A 53 0E 4A 84 12 C0 C9 1E C4 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 C5 54 D4 06 53 3E 3D
+86 12 00 38 7C D4 04 53 3C 00 86 12 00 34 44 D4
+06 30 3E 3D 86 12 00 30 90 D4 04 30 3C 00 86 12
+00 30 CC CE 04 55 3C 00 86 12 00 2C A4 D4 06 55
+3E 3D 86 12 00 28 9A D4 06 30 3C 3E 86 12 00 24
+B8 D4 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D
+3E D3 08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D AE D4 08 45 4C 53 45 00 1A 42 C8 21
+BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00
+E3 3F 1C D4 0A 42 45 47 49 4E 30 40 32 C4 06 D5
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 21 30 4D C2 D3 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 D0 D4 66 C8 4C C9 24 D5
+0C 52 45 50 45 41 54 00 0D 12 84 12 64 D5 E8 D4
+4C C9 94 D5 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21
+CB 2F 98 42 C8 21 00 00 30 4D 80 D5 06 42 57 31
+85 12 92 D5 00 00 AC D5 06 42 57 32 85 12 92 D5
+00 00 B8 D5 06 42 57 33 85 12 92 D5 00 00 D0 D5
+3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21
+86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 CE D5 00 00 F4 D5
+06 46 57 32 85 12 CE D5 00 00 00 D6 06 46 57 33
+85 12 CE D5 00 00 6E D5 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 06 CD 12 CC
+4C C9 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+3A D2 0A C4 2C 00 D0 C9 E2 CA AC C4 16 CD 7E C7
+30 D2 12 D2 66 D6 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E C4 D5 08 52 52 43 4D 00 85 12 50 D6 50 00
+94 D6 08 52 52 41 4D 00 85 12 50 D6 50 01 A2 D6
+08 52 4C 41 4D 00 85 12 50 D6 50 02 B0 D6 08 52
+52 55 4D 00 85 12 50 D6 50 03 C2 D4 0A 50 55 53
+48 4D 85 12 50 D6 00 15 CC D6 08 50 4F 50 4D 00
+85 12 50 D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-82 C6 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 08 D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+A6 C6 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 0E C6
 q
diff --git a/binaries/MSP_EXP430FR2433_1MHz_UART.txt b/binaries/MSP_EXP430FR2433_1MHz_UART.txt
deleted file mode 100644 (file)
index 6b62c01..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF EA D7 02 D0 34 01
-10 00 41 B3 94 C5 AA C4 DA C5 9C C5 94 C6 EA D7
-02 D0 7A C6 92 C7 24 C7 FE C6 3C 21 60 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 78 C6 B2 49 90 C7 B2 49 22 C7 B2 49 FC C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E0 C7 32 C7
-14 C4 04 1B 5B 37 6D 00 5C C7 A8 C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C7 A0 C8 5C C7 14 C4 04 1B 5B 30 6D 00
-5C C7 28 CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 D2 D3 02 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 D2 C3 02 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 F2 B2 01 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00 B0 12
-9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23 5C C7
-D6 C8 14 C4 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 5C C7
-0A C4 40 FF 28 C4 D4 C7 A0 C8 14 C4 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C4 86 C5 00 00 06 41
-43 43 45 50 54 00 30 40 7A C6 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C6 3C 40 D2 C6
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 C6 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C6 2F 83
-8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C7 08 4E 3E 4F C8 3F 1A C7 04 45 43 48
-4F 00 B2 40 C2 48 C0 C6 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C6 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C7 7A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00 30 40
-92 C7 0D 12 84 12 14 C4 02 0D 0A 00 5C C7 60 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C6 01 40
-2E 4E 30 4D DE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 1A C8 02 23 53 00 0D 12
-84 12 1C C8 56 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C8 4E C8 EE C4 8E C8 6A C8 5C C7 14 CC 20 C7
-60 C8 40 C7 01 2E 0E 93 E3 37 38 43 E2 3F 88 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-5A CB 0A C4 22 00 2C C9 FA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 C8 82 2E 22 00 0D 12 84 12 E4 C8 0A C4 5C C7
-5A CB 60 C8 18 C6 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 00 00 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 AE CA
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 CA
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 CB 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A C8 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C4 14 CC 2C C9 D0 CB
-9C 26 3D 40 D8 CB DE 3E DA CB 0A 4E 3E 4F 3D 40
-F4 CB 36 27 3D 40 CA CB 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 CB 3E 4F 3D 40 CA CB BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 CD
-CC 3F FE CB 86 12 20 00 E6 C7 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E C7
-BC C4 C4 CB C4 C7 F6 C7 14 C4 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4
-FE C7 14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C5 3A C4 3E CC 1A CC 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 C8 0A C4 2A C5 5A CB 60 C8 8E C9
-01 27 0D 12 84 12 14 CC 2C C9 94 C9 34 C4 12 CC
-60 C8 00 00 83 5B 27 5D 0D 12 84 12 92 CC 0A C4
-0A C4 5A CB 5A CB 60 C8 A4 CC 81 5B 82 43 BE 21
-30 4D 0C C8 01 5D B2 43 BE 21 30 4D C4 CC 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 CC 2C C9 94 C9 A8 C7
-34 C4 12 CC F6 C7 34 C4 06 CD 0A C4 0A C4 5A CB
-5A CB 0A C4 5A CB 5A CB 60 C8 BA CC 01 3A 30 12
-56 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 CC
-2C C9 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C5 0C CD 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A C4 60 C8 5A CB 68 CD BC CC
-60 C8 BA CB 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 CB 06 43 52 45
-41 54 45 00 B0 12 12 CD BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC CD 04 43 4F 44 45 00 B0 12 12 CD
-A2 82 C6 21 0D 12 84 12 04 D0 DE CF 60 C8 B4 CD
-07 48 44 4E 43 4F 44 45 B2 40 E2 CF DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 CD
-1E D0 3C D0 60 C8 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E D0 3C D0 60 C8
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 CE 85 48 49 32 4C 4F 0D 12 84 12 28 C4
-AC CF 5A CB BC CC F4 CD 60 C8 9A CD 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C CE 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C4 00 00 D8 C7 14 CC 2C C9
-AA CB A0 C7 34 C4 14 CF AE C7 14 C4 06 5B 54 48
-45 4E 5D 00 86 CE EE CE AA CE CC CE 60 C8 AE C7
-14 C4 06 5B 45 4C 53 45 5D 00 86 CE 04 CF AA CE
-CA CE 60 C8 14 C4 04 5B 49 46 5D 00 86 CE CC CE
-3A C4 CA CE 82 C7 14 C4 05 0D 0A 6B 6F 20 5C C7
-BC C4 AC C4 3A C4 CC CE BA CE 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A CF 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 CC 2C C9
-94 C9 38 CF 60 C8 3E CF 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 CF F0 C7 60 C8 70 CF
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C CB
-06 4D 41 52 4B 45 52 00 B0 12 12 CD BA 40 85 12
-FC FF BA 40 6E CF FE FF 28 83 8A 48 00 00 BA 40
-AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A C4 CA 21 E8 C7 60 C8 85 12 B0 CF 78 CC E6 CD
-2C C7 90 CC 64 CE F6 C6 80 CF 12 C9 A8 D0 BC D0
-9C C8 26 C9 00 00 58 CF CE CC F4 C9 00 00 85 12
-B0 CF 60 D6 C6 D6 08 D6 16 D7 CE D5 00 00 9A D3
-00 00 DE D7 C2 D7 32 D6 70 D6 AA D4 00 00 00 00
-32 D7 DC CF 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 CF 36 D0 3C D0 4C D0 1A 42 20 18
-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
-DA CC 09 50 57 52 5F 53 54 41 54 45 85 12 44 D0
-EA D7 E0 C8 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 D0 F3 3F 82 D0 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 D0 30 4D 94 D0 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A D1 FE FF 29 83
-B9 40 02 C6 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 C6 B2 49 FA C4 B2 49 02 C4 B2 49 20 C6
-B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 43 06 02 B2 40 FC FF 02 02 D2 D3 04 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 82 43
-88 01 F2 D0 03 00 0B 02 39 40 80 00 18 42 00 18
-18 83 FE 23 19 83 FA 23 1E 42 08 18 82 43 08 18
-1E D2 5E 01 B0 12 F8 C4 1E C6 38 40 C0 21 0A 4E
-39 48 2E 48 09 5E 1E 52 C4 21 09 9E 03 24 7A 9E
-FC 27 1E 83 0A 4E 2A 88 82 4A C4 21 30 4D 1C 15
-0E 12 12 12 C4 21 84 12 2C C9 94 C9 F0 C7 34 C4
-DA D1 50 CA 34 C4 F4 D1 EE D1 DC D1 3C 4E 3C 80
-87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52
-1B 17 30 41 F6 D1 B2 41 C4 21 3E 41 84 12 0A C4
-2B 00 2C C9 94 C9 F0 C7 34 C4 12 D2 50 CA 34 C4
-12 CC BA C7 2C C9 50 CA 34 C4 12 CC 1E D2 3E 5F
-E7 3F 3E 40 28 00 B0 12 BE D1 19 42 C6 21 A2 53
-C6 21 89 4E 00 00 3E 40 29 00 92 92 C0 21 C4 21
-02 20 30 40 80 CD 1C 15 12 12 C4 21 92 53 C4 21
-84 12 2C C9 50 CA 34 C4 66 D2 5C D2 21 53 3E 90
-10 00 C6 2B 7F 2D 68 D2 B2 41 C4 21 C1 3F 0D 12
-84 12 14 CC 9A D1 78 D2 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 BE D1 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 BE D1 ED 3F 7A 90
-40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12 46 D2
-0C 20 3C 50 10 00 3E 40 2B 00 B0 12 46 D2 92 92
-C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F
-B0 12 46 D2 FA 23 3C 50 10 00 B0 12 22 D2 EF 3F
-0C 43 1B 42 C6 21 A2 53 C6 21 0D 12 84 12 14 CC
-9A D1 44 D3 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C7 3F B0 12 46 D2 E0 23 3C 50 80 00
-B0 12 22 D2 DB 3F 00 00 04 52 45 54 49 00 0D 12
-84 12 0A C4 00 13 5A CB 60 C8 0A C4 2C 00 6E D2
-3A D3 84 D3 09 4B 2E 4E 0E DC A2 3F 52 CE 03 4D
-4F 56 85 12 7A D3 00 40 8E D3 05 4D 4F 56 2E 42
-85 12 7A D3 40 40 00 00 03 41 44 44 85 12 7A D3
-00 50 A8 D3 05 41 44 44 2E 42 85 12 7A D3 40 50
-B4 D3 04 41 44 44 43 00 85 12 7A D3 00 60 C2 D3
-06 41 44 44 43 2E 42 00 85 12 7A D3 40 60 68 D3
-04 53 55 42 43 00 85 12 7A D3 00 70 E0 D3 06 53
-55 42 43 2E 42 00 85 12 7A D3 40 70 EE D3 03 53
-55 42 85 12 7A D3 00 80 FE D3 05 53 55 42 2E 42
-85 12 7A D3 40 80 28 CE 03 43 4D 50 85 12 7A D3
-00 90 18 D4 05 43 4D 50 2E 42 85 12 7A D3 40 90
-12 CE 04 44 41 44 44 00 85 12 7A D3 00 A0 32 D4
-06 44 41 44 44 2E 42 00 85 12 7A D3 40 A0 24 D4
-03 42 49 54 85 12 7A D3 00 B0 50 D4 05 42 49 54
-2E 42 85 12 7A D3 40 B0 5C D4 03 42 49 43 85 12
-7A D3 00 C0 6A D4 05 42 49 43 2E 42 85 12 7A D3
-40 C0 76 D4 03 42 49 53 85 12 7A D3 00 D0 84 D4
-05 42 49 53 2E 42 85 12 7A D3 40 D0 00 00 03 58
-4F 52 85 12 7A D3 00 E0 9E D4 05 58 4F 52 2E 42
-85 12 7A D3 40 E0 D0 D3 03 41 4E 44 85 12 7A D3
-00 F0 B8 D4 05 41 4E 44 2E 42 85 12 7A D3 40 F0
-14 CC 6E D2 D6 D4 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F 0A D4 03 52 52 43 85 12 D0 D4
-00 10 E8 D4 05 52 52 43 2E 42 85 12 D0 D4 40 10
-F4 D4 04 53 57 50 42 00 85 12 D0 D4 80 10 02 D5
-03 52 52 41 85 12 D0 D4 00 11 10 D5 05 52 52 41
-2E 42 85 12 D0 D4 40 11 1C D5 03 53 58 54 85 12
-D0 D4 80 11 00 00 04 50 55 53 48 00 85 12 D0 D4
-00 12 36 D5 06 50 55 53 48 2E 42 00 85 12 D0 D4
-40 12 90 D4 04 43 41 4C 4C 00 85 12 D0 D4 80 12
-1A 53 0E 4A 0D 12 84 12 D6 C8 14 C4 0D 6F 75 74
-20 6F 66 20 62 6F 75 6E 64 73 36 C5 2A D5 03 53
-3E 3D 86 12 00 38 7E D5 02 53 3C 00 86 12 00 34
-44 D5 03 30 3E 3D 86 12 00 30 92 D5 02 30 3C 00
-86 12 00 30 00 00 02 55 3C 00 86 12 00 2C A6 D5
-03 55 3E 3D 86 12 00 28 9C D5 03 30 3C 3E 86 12
-00 24 BA D5 02 30 3D 00 86 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 B0 D5 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 B1 2F
-88 DA 00 00 30 4D 40 D4 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 D5 05 42 45 47 49 4E 30 40 28 C4
-E4 D5 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 8A 3B 3A F0
-FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D C4 D4
-05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
-05 57 48 49 4C 45 0D 12 84 12 D2 D5 BA C7 60 C8
-88 D5 06 52 45 50 45 41 54 00 0D 12 84 12 66 D6
-EA D5 60 C8 96 D6 3D 41 08 4E 3E 4F 2A 48 B2 92
-C4 21 CB 2F 98 42 C6 21 00 00 30 4D 26 D6 03 42
-57 31 85 12 94 D6 00 00 AE D6 03 42 57 32 85 12
-94 D6 00 00 BA D6 03 42 57 33 85 12 94 D6 00 00
-D2 D6 3D 41 1A 42 C6 21 28 4E B2 92 C4 21 88 2B
-BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D
-00 00 03 46 57 31 85 12 D0 D6 00 00 F2 D6 03 46
-57 32 85 12 D0 D6 00 00 FE D6 03 46 57 33 85 12
-D0 D6 00 00 0A D7 04 47 4F 54 4F 00 2F 83 8F 4E
-00 00 3E 40 00 3C 0D 12 84 12 92 CC EE CB 60 C8
-00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
-00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 14 CC
-9A D1 54 D7 92 53 C4 21 3E 40 2C 00 84 12 2C C9
-50 CA 34 C4 12 CC 30 D3 6A D7 0A 4E 3E 4F 1A 83
-F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
-08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E
-8A 10 5A 06 A6 3E 82 D6 04 52 52 43 4D 00 85 12
-4E D7 50 00 98 D7 04 52 52 41 4D 00 85 12 4E D7
-50 01 A6 D7 04 52 4C 41 4D 00 85 12 4E D7 50 02
-B4 D7 04 52 52 55 4D 00 85 12 4E D7 50 03 C4 D5
-05 50 55 53 48 4D 85 12 4E D7 00 15 D0 D7 04 50
-4F 50 4D 00 85 12 4E D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 94 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 1A D1
-q
diff --git a/binaries/MSP_EXP430FR2433_8MHz_115200.txt b/binaries/MSP_EXP430FR2433_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..3055563
--- /dev/null
@@ -0,0 +1,323 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A0 59
+B2 C6 7E C5 84 C5 54 C5 22 C7 10 D7 C8 CF 82 CF
+82 CF 98 C6 56 C7 1E C7 3C 21 E0 20 76 C9 B6 C4
+C4 C4 92 C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+22 C7 10 D7 C8 CF 82 CF 82 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F4 3C 0E 93 3E 4F
+89 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 96 C6 B2 49
+54 C7 B2 49 1C C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 3C D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 22 C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 9C C8 AC C4 52 C5 64 C7 1E C4 04 1B
+5B 37 6D 00 86 C7 86 C7 1E C4 04 1B 5B 30 6D 00
+86 C7 D2 CC B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 30 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 64 C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 86 C7 EA C9 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 86 C7 0A C4 40 FF 32 C4
+B2 C8 B6 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B2 01 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 43 06 02 B2 40 FC FF 02 02 D2 D3 04 02 F2 D3
+26 02 F2 43 22 02 B2 40 00 A5 60 01 82 43 88 01
+F2 D0 03 00 0B 02 F2 C3 82 01 F2 D0 06 00 82 01
+B2 40 F4 00 84 01 39 40 80 00 18 42 00 18 18 83
+FE 23 19 83 FA 23 39 40 00 10 29 83 89 43 00 20
+FC 23 19 42 5E 01 1E 42 08 18 82 43 08 18 3E F3
+01 20 0E 49 B0 12 D0 C4 86 C5 00 00 0C 41 43 43
+45 50 54 00 30 40 98 C6 08 4E 2E 4F 08 5E 39 40
+0D 00 3A 40 20 00 3B 40 F6 C6 3C 40 02 C7 5D 15
+A7 3E 21 52 3A 17 58 42 0C 05 48 9B 09 20 A2 B3
+1C 05 FD 27 B2 40 13 00 0E 05 D2 D3 02 02 30 41
+48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 1C 05 FD 27
+C2 48 0E 05 30 4D F8 C6 2D 83 92 B3 1C 05 DB 23
+FC 3F 3E 8F 3D 41 92 B3 1C 05 FD 27 58 42 0C 05
+08 4C EB 3F 00 00 06 4B 45 59 30 40 1E C7 30 12
+34 C7 A2 B3 1C 05 FD 27 B2 40 11 00 0E 05 D2 C3
+02 02 30 41 2F 83 8F 4E 00 00 92 B3 1C 05 FD 27
+B0 12 BE C6 1E 42 0C 05 30 4D 00 00 08 45 4D 49
+54 00 30 40 56 C7 08 4E 3E 4F C7 3F 4C C7 08 45
+43 48 4F 00 B2 40 C2 48 F0 C6 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D F0 C6 30 4D 00 00
+08 54 59 50 45 00 0D 12 3D 40 96 C7 29 4F 8F 4E
+00 00 7E 49 DE 3F 98 C7 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 7D 22 F9 98 00 00 7A 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 71 22
+9B 24 16 C7 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A C4 00 00 B6 C8 A8 C7 FA C9 B4 CC B0 C4 24 C8
+14 C4 06 5B 54 48 45 4E 5D 00 AC C7 02 C8 C8 C7
+E6 C7 14 C4 06 5B 45 4C 53 45 5D 00 AC C7 14 C8
+C8 C7 E4 C7 1E C4 04 5B 49 46 5D 00 AC C7 E6 C7
+B2 C4 E4 C7 1E C4 05 0D 6B 6F 20 0A 86 C7 9A C4
+84 C4 B2 C4 E6 C7 D4 C7 0D 5B 54 48 45 4E 5D 00
+30 4D 38 C8 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 44 C8 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 A8 C7 FA C9 62 CA 06 CC 76 C9 54 C8 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 A8 C7
+FA C9 62 CA 86 C8 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D 8C C6 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C5
+05 53 22 00 82 43 C0 21 0D 12 84 12 0A C4 1E C4
+64 CC 0A C4 22 00 FA C9 FA C8 B2 40 20 00 C0 21
+1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 6E C7
+05 2E 22 00 0D 12 84 12 E4 C8 0A C4 86 C7 64 CC
+76 C9 00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D
+E0 C8 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4
+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
+32 C9 04 23 53 00 0D 12 84 12 34 C9 6E C9 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 62 C9 04 23 3E 00
+9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 7C C9 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+5E C7 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 28 C9 A8 C7 96 C9 66 C9 92 C8 A4 C9
+80 C9 86 C7 76 C9 10 C9 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42
+C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D E8 C9 0E 3E 4E 55 4D 42 45 52 1B 42 BE 21
+3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80
+3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B
+22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 21 0C 4E
+0E 43 1E 15 3D 40 6C CB 7E 4C 6A 4C 7A 80 2D 00
+16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24
+3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00
+3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43
+02 00 1E 83 FC 9C 00 00 E0 23 AE 27 6E CB 2F 24
+2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20
+32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E
+09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80
+3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B
+08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E C4 2A 17
+E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17
+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 24 C9 03 5C 92 42
+C2 21 C6 21 30 4D 0D 12 84 12 84 C4 A8 C7 FA C9
+B0 C4 3E CD 62 CA 28 CC 0A 4E 3E 4F 3D 40 42 CC
+6D 27 3D 40 1C CC 1A E2 BC 21 14 24 0E 12 3E 4F
+30 41 44 CC 3E 4F 3D 40 1C CC 19 20 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 1A CE 2A 3C
+0C CC 02 2C A2 53 C8 21 1A 42 C8 21 8A 4E FE FF
+3E 4F 30 4D 62 CC 0F 4C 49 54 45 52 41 4C 82 93
+BC 21 0D 24 09 4E 1A 42 C8 21 A2 52 C8 21 BA 40
+0A C4 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
+00 02 03 24 8A 4E 02 00 EE 3F 30 4D 9E C9 0A 43
+4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3
+30 4D C4 C8 0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F
+30 4D 3F 40 80 20 0E 43 84 12 1E C4 02 0D 0A 00
+86 C7 94 C4 16 CC A4 C8 CE C8 1E C4 0B 73 74 61
+63 6B 20 65 6D 70 74 79 08 C5 32 C4 0A C4 40 FF
+D6 C8 1E C4 09 46 52 41 4D 20 66 75 6C 6C 08 C5
+B2 C4 DA CC C4 CC 0D 41 42 4F 52 54 22 00 0D 12
+84 12 E4 C8 0A C4 08 C5 64 CC 76 C9 F4 C9 02 27
+0D 12 84 12 A8 C7 FA C9 62 CA B0 C4 40 CD 08 C9
+4C CC 6E C8 07 5B 27 5D 0D 12 84 12 30 CD 0A C4
+0A C4 64 CC 64 CC 76 C9 44 CD 03 5B 82 43 BC 21
+30 4D 00 00 02 5D B2 43 BC 21 30 4D BC C8 11 50
+4F 53 54 50 4F 4E 45 00 0D 12 84 12 A8 C7 FA C9
+62 CA B0 C4 40 CD CE C8 AC C4 98 CD 0A C4 0A C4
+64 CC 64 CC 0A C4 64 CC 64 CC 76 C9 00 00 02 3A
+30 12 EE CD 92 B3 C8 21 A2 63 C8 21 0D 12 84 12
+A8 C7 FA C9 B6 CD 3D 41 5A D3 5A 53 0A 5E 19 42
+CC 21 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E
+3E 4F E8 58 00 00 82 48 B4 21 82 49 B6 21 82 4A
+B8 21 82 4F BA 21 2A 52 82 4A C8 21 30 41 BA 40
+0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 21 30 4D
+82 9F BA 21 66 25 84 12 1E C4 0F 73 74 61 63 6B
+20 6D 69 73 6D 61 74 63 68 21 12 C5 5A CD 03 3B
+82 93 BC 21 F4 26 0D 12 84 12 0A C4 76 C9 64 CC
+00 CE 5C CD 76 C9 00 00 12 49 4D 4D 45 44 49 41
+54 45 18 42 B4 21 D8 D3 00 00 30 4D AE CC 0C 43
+52 45 41 54 45 00 B0 12 A4 CD BA 40 86 12 FC FF
+8A 4A FE FF 3A 3D 80 C7 0A 44 4F 45 53 3E 1A 42
+B8 21 BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
+9E CD 0E 3A 4E 4F 4E 41 4D 45 30 12 EE CD 2F 83
+8F 4E 00 00 1A 42 C8 21 1A B3 0A 63 0E 4A 39 40
+12 02 08 49 98 3F 38 CE 05 49 53 00 0D 12 82 93
+BC 21 08 20 84 12 30 CD BA CE 3D 41 BE 4F 02 00
+3E 4F 30 4D 84 12 48 CD 0A C4 BC CE 64 CC 76 C9
+4E CE 08 43 4F 44 45 00 B0 12 A4 CD A2 82 C8 21
+61 3C 90 C9 0E 48 44 4E 43 4F 44 45 B2 40 A8 CF
+CC 21 F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12
+84 12 00 CE 06 CF 3D 41 92 42 D0 21 CC 21 5D 3C
+D2 CE 0E 43 4F 44 45 4E 4E 4D 30 12 DC CE B7 3F
+00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12
+00 00 BA 40 84 12 02 00 A2 52 C8 21 B2 43 BC 21
+E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 21 1A 42
+C8 21 EF 3F E4 CE 0B 48 49 32 4C 4F A2 53 C8 21
+1A 42 C8 21 8A 4A FE FF 82 43 BC 21 B9 3F 70 CF
+B2 40 82 CF D0 21 82 4E CE 21 30 40 08 C9 85 12
+6E CF 6E CD 16 CD 00 D0 12 CF 68 CE B2 C9 5C CA
+2E CD 56 CF A8 CE 82 CE 1E CE 76 CC 8A D0 B4 CA
+00 00 00 00 85 12 6E CF 04 D7 88 D5 E8 D6 B0 D4
+0C D5 5A D5 36 D6 42 D6 D2 D3 F6 D4 00 00 00 00
+44 CF C2 D2 00 00 5E D6 A2 CF B2 40 82 CF CE 21
+82 43 D0 21 30 4D 3B 40 0A 00 BA 49 00 00 2A 53
+2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54
+39 40 C8 21 3A 40 42 18 B0 12 D6 CF 30 4D E8 CF
+0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40
+C8 21 B0 12 D6 CF 1A 42 CA 21 3B 40 10 00 09 4A
+08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00
+1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37
+39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40 06 C6
+FE FF 29 83 B9 40 F2 C5 FE FF 39 90 AE FF F9 23
+39 40 10 18 B2 49 E4 FF 3B 40 10 00 3A 40 3A 18
+B0 12 DA CF 82 43 4A 18 C7 3F 7C D0 B2 4E 42 18
+BE 12 3E 4F 3D 41 C0 3F 64 CD 0C 4D 41 52 4B 45
+52 00 12 12 C6 21 0D 12 84 12 A8 C7 FA C9 62 CA
+AC C4 A8 D0 9C C8 3C CC AA D0 3E 4F 3D 41 B2 41
+C6 21 B0 12 A4 CD BA 40 85 12 FC FF BA 40 7A D0
+FE FF 28 83 8A 48 00 00 BA 40 82 C4 02 00 A2 52
+C8 21 18 42 B4 21 19 42 B6 21 A8 49 FE FF 89 48
+00 00 30 4D 12 12 C6 21 84 12 FA C9 62 CA AC C4
+14 D1 F4 D0 3C 4E 3C 80 87 12 0A 24 1C 53 02 20
+2E 4E 06 3C BE 90 7A D0 00 00 01 20 3E 52 2E 83
+21 53 30 41 0C CB AC C4 1C D1 10 D1 1E D1 B2 41
+C6 21 30 41 92 83 C6 21 3E 40 28 00 0A 4E 3D 15
+B0 12 E4 D0 15 20 3E 40 2B 00 B0 12 E4 D0 06 20
+3E 40 2D 00 B0 12 E4 D0 92 83 C6 21 0E 12 1E 41
+02 00 84 12 FA C9 0C CB AC C4 40 CD 5E D1 3E 51
+3A 17 30 41 B0 12 24 D1 19 42 C8 21 89 4E 00 00
+A2 53 C8 21 3E 40 29 00 92 53 C6 21 1A 42 C6 21
+3D 15 84 12 FA C9 0C CB AC C4 96 D1 8E D1 3E 90
+10 00 E6 2B 7C 2D 98 D1 A2 41 C6 21 E1 3F 03 20
+B0 12 7C D1 43 3C 7A 90 23 00 24 20 B0 12 2C D1
+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 C8 21 A2 53 C8 21 89 4E 00 00
+3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12
+2C D1 F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12
+78 D1 0C 20 3C D0 10 00 3E 40 2B 00 B0 12 7C D1
+92 92 C2 21 C6 21 02 24 92 53 C6 21 8E 10 0C 5E
+DF 3F 3C D0 10 00 B0 12 64 D1 F2 3F 03 20 B0 12
+7C D1 F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F
+3C D0 80 00 B0 12 64 D1 EA 3F 0C 43 1B 42 C8 21
+A2 53 C8 21 3A 40 20 00 19 42 C6 21 19 52 C4 21
+7A 99 FE 27 5A 49 FF FF 19 82 C4 21 82 49 C6 21
+7A 90 52 00 30 4D 00 00 08 52 45 54 49 00 0D 12
+84 12 0A C4 00 13 64 CC 76 C9 0A C4 2C 00 5A D2
+9E D1 A8 C7 64 D2 3C D2 AA D2 3D 41 2C DE 8B 4C
+00 00 9E 3F 00 00 06 4D 4F 56 85 12 9A D2 00 40
+B6 D2 0A 4D 4F 56 2E 42 85 12 9A D2 40 40 00 00
+06 41 44 44 85 12 9A D2 00 50 D0 D2 0A 41 44 44
+2E 42 85 12 9A D2 40 50 DC D2 08 41 44 44 43 00
+85 12 9A D2 00 60 EA D2 0C 41 44 44 43 2E 42 00
+85 12 9A D2 40 60 22 CF 08 53 55 42 43 00 85 12
+9A D2 00 70 08 D3 0C 53 55 42 43 2E 42 00 85 12
+9A D2 40 70 16 D3 06 53 55 42 85 12 9A D2 00 80
+26 D3 0A 53 55 42 2E 42 85 12 9A D2 40 80 32 D3
+06 43 4D 50 85 12 9A D2 00 90 40 D3 0A 43 4D 50
+2E 42 85 12 9A D2 40 90 00 00 08 44 41 44 44 00
+85 12 9A D2 00 A0 5A D3 0C 44 41 44 44 2E 42 00
+85 12 9A D2 40 A0 88 D2 06 42 49 54 85 12 9A D2
+00 B0 78 D3 0A 42 49 54 2E 42 85 12 9A D2 40 B0
+84 D3 06 42 49 43 85 12 9A D2 00 C0 92 D3 0A 42
+49 43 2E 42 85 12 9A D2 40 C0 9E D3 06 42 49 53
+85 12 9A D2 00 D0 AC D3 0A 42 49 53 2E 42 85 12
+9A D2 40 D0 00 00 06 58 4F 52 85 12 9A D2 00 E0
+C6 D3 0A 58 4F 52 2E 42 85 12 9A D2 40 E0 F8 D2
+06 41 4E 44 85 12 9A D2 00 F0 E0 D3 0A 41 4E 44
+2E 42 85 12 9A D2 40 F0 A8 C7 5A D2 9E D1 00 D4
+0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F
+B8 D3 06 52 52 43 85 12 F8 D3 00 10 12 D4 0A 52
+52 43 2E 42 85 12 F8 D3 40 10 4C D3 08 53 57 50
+42 00 85 12 F8 D3 80 10 1E D4 06 52 52 41 85 12
+F8 D3 00 11 3A D4 0A 52 52 41 2E 42 85 12 F8 D3
+40 11 2C D4 06 53 58 54 85 12 F8 D3 80 11 00 00
+08 50 55 53 48 00 85 12 F8 D3 00 12 60 D4 0C 50
+55 53 48 2E 42 00 85 12 F8 D3 40 12 54 D4 08 43
+41 4C 4C 00 85 12 F8 D3 80 12 1A 53 0E 4A 84 12
+EA C9 1E C4 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
+64 73 12 C5 7E D4 06 53 3E 3D 86 12 00 38 A6 D4
+04 53 3C 00 86 12 00 34 6E D4 06 30 3E 3D 86 12
+00 30 BA D4 04 30 3C 00 86 12 00 30 F6 CE 04 55
+3C 00 86 12 00 2C CE D4 06 55 3E 3D 86 12 00 28
+C4 D4 06 30 3C 3E 86 12 00 24 E2 D4 04 30 3D 00
+86 12 00 20 00 00 04 49 46 00 1A 42 C8 21 8A 4E
+00 00 A2 53 C8 21 0E 4A 30 4D 68 D3 08 54 48 45
+4E 00 1A 42 C8 21 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D D8 D4
+08 45 4C 53 45 00 1A 42 C8 21 BA 40 00 3C 00 00
+A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F 46 D4 0A 42
+45 47 49 4E 30 40 32 C4 30 D5 0A 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83 0A 89 0A 11
+3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C8 21 30 4D EC D3 0A 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12
+84 12 FA D4 90 C8 76 C9 4E D5 0C 52 45 50 45 41
+54 00 0D 12 84 12 8E D5 12 D5 76 C9 BE D5 3D 41
+08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42 C8 21
+00 00 30 4D AA D5 06 42 57 31 85 12 BC D5 00 00
+D6 D5 06 42 57 32 85 12 BC D5 00 00 E2 D5 06 42
+57 33 85 12 BC D5 00 00 FA D5 3D 41 1A 42 C8 21
+28 4E 8E 43 00 00 B2 92 C6 21 86 2B BA 4F 00 00
+A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D 00 00 06 46
+57 31 85 12 F8 D5 00 00 1E D6 06 46 57 32 85 12
+F8 D5 00 00 2A D6 06 46 57 33 85 12 F8 D5 00 00
+98 D5 08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C 0D 12 84 12 30 CD 3C CC 76 C9 00 00 0A 3F
+47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
+00 10 EF 27 3E E0 00 08 EC 3F 64 D2 0A C4 2C 00
+FA C9 0C CB AC C4 40 CD A8 C7 5A D2 3C D2 90 D6
+0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E
+AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E EE D5 08 52
+52 43 4D 00 85 12 7A D6 50 00 BE D6 08 52 52 41
+4D 00 85 12 7A D6 50 01 CC D6 08 52 4C 41 4D 00
+85 12 7A D6 50 02 DA D6 08 52 52 55 4D 00 85 12
+7A D6 50 03 EC D4 0A 50 55 53 48 4D 85 12 7A D6
+00 15 F6 D6 08 50 4F 50 4D 00 85 12 7A D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 B2 C6 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 06 C6
+q
index 452bea6..93bb7dd 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF D4 D7 F0 CF 34 01
-10 00 41 87 B6 C5 AA C4 B8 C5 8C C5 82 C6 D4 D7
-F0 CF 70 C6 80 C7 FE C6 DA C6 3C 21 4E C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 43
+AC C6 56 C5 56 C5 58 C5 44 C5 EC D6 A4 CF 5E CF
+5E CF 9A C6 1E C7 F6 C6 3C 21 E0 20 52 C9 B6 C4
+C4 C4 6E C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 EC D6 A4 CF 5E CF 5E CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 6E C6 B2 49 7E C7 B2 49 FC C6 B2 49 D8 C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 BC D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 CE C7 16 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7
-C4 C8 96 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C7 8E C8 4A C7
-14 C4 04 1B 5B 30 6D 00 4A C7 16 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 0A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 F2 B2 01 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00 B0 12
-8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4 07 0D
-0A 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7 C4 C8
-0A C4 23 00 FA C6 C4 C8 14 C4 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 4A C7 0A C4 40 FF 28 C4 C2 C7 8E C8
-14 C4 0A 62 79 74 65 73 20 66 72 65 65 00 3A C4
-7E C5 00 00 06 41 43 43 45 50 54 00 30 40 70 C6
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C6 2F 83 8F 4E 00 00
-58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C6 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 C6
-04 45 43 48 4F 00 B2 40 C2 48 08 C7 82 43 DE 21
-38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C7 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C7 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C6 68 C7 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40 80 C7
-0D 12 84 12 14 C4 02 0D 0A 00 4A C7 4E C8 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C6 01 40 2E 4E
-30 4D CC C7 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 C7 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E C4 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 08 C8 02 23 53 00 0D 12 84 12
-0A C8 44 C8 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C8 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C7 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C7
-3C C8 EE C4 7C C8 58 C8 4A C7 02 CC FA C6 4E C8
-2C C7 01 2E 0E 93 E3 37 38 43 E2 3F 76 C8 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4 48 CB
-0A C4 22 00 1A C9 E8 C8 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 C8
-82 2E 22 00 0D 12 84 12 D2 C8 0A C4 4A C7 48 CB
-4E C8 F8 C5 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C4 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4 30 4D
-00 00 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 9C CA 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E CA 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 21 8A 4E 00 00
-A2 53 C6 21 3E 4F 30 4D 46 CB 87 4C 49 54 45 52
-41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21 A2 52
-C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 C8 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC C4 02 CC 1A C9 BE CB 9C 26
-3D 40 C6 CB DE 3E C8 CB 0A 4E 3E 4F 3D 40 E2 CB
-36 27 3D 40 B8 CB 1A E2 BE 21 B6 27 0E 12 3E 4F
-30 41 E4 CB 3E 4F 3D 40 B8 CB BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 CD CC 3F
-EC CB 86 12 20 00 D4 C7 05 41 4C 4C 4F 54 82 5E
-C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40 E0 20
-B2 40 00 20 00 20 82 43 BE 21 84 12 7C C7 BC C4
-B2 CB B2 C7 E4 C7 14 C4 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4 EC C7
-14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A C5
-3A C4 2C CC 08 CC 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 C8 0A C4 2A C5 48 CB 4E C8 7C C9 01 27
-0D 12 84 12 02 CC 1A C9 82 C9 34 C4 00 CC 4E C8
-00 00 83 5B 27 5D 0D 12 84 12 80 CC 0A C4 0A C4
-48 CB 48 CB 4E C8 92 CC 81 5B 82 43 BE 21 30 4D
-FA C7 01 5D B2 43 BE 21 30 4D B2 CC 81 5C 92 42
-C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 CC 1A C9 82 C9 96 C7 34 C4
-00 CC E4 C7 34 C4 F4 CC 0A C4 0A C4 48 CB 48 CB
-0A C4 48 CB 48 CB 4E C8 A8 CC 01 3A 30 12 44 CD
-92 B3 C6 21 A2 63 C6 21 0D 12 84 12 02 CC 1A C9
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42 B6 21
-19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 C5 FA CC 81 3B 82 93 BE 21 97 27
-0D 12 84 12 0A C4 4E C8 48 CB 56 CD AA CC 4E C8
-A8 CB 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 21
-F8 D0 80 00 00 00 30 4D 92 CB 06 43 52 45 41 54
-45 00 B0 12 00 CD BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA CD 04 43 4F 44 45 00 B0 12 00 CD A2 82
-C6 21 0D 12 84 12 F2 CF CC CF 4E C8 A2 CD 07 48
-44 4E 43 4F 44 45 B2 40 D0 CF DA 21 EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 CD 0C D0
-2A D0 4E C8 00 00 05 43 4F 4C 4F 4E 1A 42 C6 21
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 21
-B2 43 BE 21 0D 12 84 12 0C D0 2A D0 4E C8 00 00
-05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21 EB 3F
-EE CD 85 48 49 32 4C 4F 0D 12 84 12 28 C4 9A CF
-48 CB AA CC E2 CD 4E C8 88 CD 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A CE 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A C4 00 00 C6 C7 02 CC 1A C9 98 CB
-8E C7 34 C4 02 CF 9C C7 14 C4 06 5B 54 48 45 4E
-5D 00 74 CE DC CE 98 CE BA CE 4E C8 9C C7 14 C4
-06 5B 45 4C 53 45 5D 00 74 CE F2 CE 98 CE B8 CE
-4E C8 14 C4 04 5B 49 46 5D 00 74 CE BA CE 3A C4
-B8 CE 70 C7 14 C4 05 0D 0A 6B 6F 20 4A C7 BC C4
-AC C4 3A C4 BA CE A8 CE 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 CF 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 CC 1A C9 82 C9
-26 CF 4E C8 2C CF 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 CF DE C7 4E C8 5E CF B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A CB 06 4D
-41 52 4B 45 52 00 B0 12 00 CD BA 40 85 12 FC FF
-BA 40 5C CF FE FF 28 83 8A 48 00 00 BA 40 AA C4
-04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D 0A C4
-CA 21 D6 C7 4E C8 85 12 9E CF 66 CC D4 CD 10 C7
-7E CC 52 CE D2 C6 6E CF 00 C9 96 D0 AA D0 8A C8
-14 C9 00 00 46 CF BC CC E2 C9 00 00 85 12 9E CF
-4A D6 B0 D6 F2 D5 00 D7 B8 D5 00 00 84 D3 00 00
-C8 D7 AC D7 1C D6 5A D6 94 D4 00 00 00 00 1C D7
-CA CF 3A 40 0C 00 39 40 D6 21 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 21 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21 DA 21
-30 4D A6 CF 24 D0 2A D0 3A D0 1A 42 20 18 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 C8 CC
-09 50 57 52 5F 53 54 41 54 45 85 12 32 D0 D4 D7
-CE C8 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E D0 F3 3F 70 D0 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 21 7E D0 30 4D 82 D0 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 D1 FE FF 29 83 B9 40
-E2 C5 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 C5 B2 49 FA C4 B2 49 02 C4 B2 49 00 C6 B2 49
-E0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20 3F 40
-80 20 39 40 00 10 29 83 89 43 00 20 FC 23 B2 43
-06 02 B2 40 FC FF 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 82 43 88 01 F2 D0 03 00
-0B 02 39 40 80 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 C4 FE C5 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 1A C9 82 C9 DE C7 34 C4 C4 D1 3E CA 34 C4
-DE D1 D8 D1 C6 D1 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 E0 D1
-B2 41 C4 21 3E 41 84 12 0A C4 2B 00 1A C9 82 C9
-DE C7 34 C4 FC D1 3E CA 34 C4 00 CC A8 C7 1A C9
-3E CA 34 C4 00 CC 08 D2 3E 5F E7 3F 3E 40 28 00
-B0 12 A8 D1 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 6E CD
-1C 15 12 12 C4 21 92 53 C4 21 84 12 1A C9 3E CA
-34 C4 50 D2 46 D2 21 53 3E 90 10 00 C6 2B 7F 2D
-52 D2 B2 41 C4 21 C1 3F 0D 12 84 12 02 CC 84 D1
-62 D2 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 A8 D1 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 A8 D1 ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 30 D2 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 30 D2 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 30 D2 FA 23
-3C 50 10 00 B0 12 0C D2 EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 02 CC 84 D1 2E D3 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 30 D2 E0 23 3C 50 80 00 B0 12 0C D2 DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A C4 00 13
-48 CB 4E C8 0A C4 2C 00 58 D2 24 D3 6E D3 09 4B
-2E 4E 0E DC A2 3F 40 CE 03 4D 4F 56 85 12 64 D3
-00 40 78 D3 05 4D 4F 56 2E 42 85 12 64 D3 40 40
-00 00 03 41 44 44 85 12 64 D3 00 50 92 D3 05 41
-44 44 2E 42 85 12 64 D3 40 50 9E D3 04 41 44 44
-43 00 85 12 64 D3 00 60 AC D3 06 41 44 44 43 2E
-42 00 85 12 64 D3 40 60 52 D3 04 53 55 42 43 00
-85 12 64 D3 00 70 CA D3 06 53 55 42 43 2E 42 00
-85 12 64 D3 40 70 D8 D3 03 53 55 42 85 12 64 D3
-00 80 E8 D3 05 53 55 42 2E 42 85 12 64 D3 40 80
-16 CE 03 43 4D 50 85 12 64 D3 00 90 02 D4 05 43
-4D 50 2E 42 85 12 64 D3 40 90 00 CE 04 44 41 44
-44 00 85 12 64 D3 00 A0 1C D4 06 44 41 44 44 2E
-42 00 85 12 64 D3 40 A0 0E D4 03 42 49 54 85 12
-64 D3 00 B0 3A D4 05 42 49 54 2E 42 85 12 64 D3
-40 B0 46 D4 03 42 49 43 85 12 64 D3 00 C0 54 D4
-05 42 49 43 2E 42 85 12 64 D3 40 C0 60 D4 03 42
-49 53 85 12 64 D3 00 D0 6E D4 05 42 49 53 2E 42
-85 12 64 D3 40 D0 00 00 03 58 4F 52 85 12 64 D3
-00 E0 88 D4 05 58 4F 52 2E 42 85 12 64 D3 40 E0
-BA D3 03 41 4E 44 85 12 64 D3 00 F0 A2 D4 05 41
-4E 44 2E 42 85 12 64 D3 40 F0 02 CC 58 D2 C0 D4
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-F4 D3 03 52 52 43 85 12 BA D4 00 10 D2 D4 05 52
-52 43 2E 42 85 12 BA D4 40 10 DE D4 04 53 57 50
-42 00 85 12 BA D4 80 10 EC D4 03 52 52 41 85 12
-BA D4 00 11 FA D4 05 52 52 41 2E 42 85 12 BA D4
-40 11 06 D5 03 53 58 54 85 12 BA D4 80 11 00 00
-04 50 55 53 48 00 85 12 BA D4 00 12 20 D5 06 50
-55 53 48 2E 42 00 85 12 BA D4 40 12 7A D4 04 43
-41 4C 4C 00 85 12 BA D4 80 12 1A 53 0E 4A 0D 12
-84 12 C4 C8 14 C4 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 C5 14 D5 03 53 3E 3D 86 12 00 38
-68 D5 02 53 3C 00 86 12 00 34 2E D5 03 30 3E 3D
-86 12 00 30 7C D5 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C 90 D5 03 55 3E 3D 86 12
-00 28 86 D5 03 30 3C 3E 86 12 00 24 A4 D5 02 30
-3D 00 86 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 9A D5 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 B1 2F 88 DA 00 00 30 4D
-2A D4 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 D5
-05 42 45 47 49 4E 30 40 28 C4 CE D5 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D AE D4 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 BC D5 A8 C7 4E C8 72 D5 06 52 45 50
-45 41 54 00 0D 12 84 12 50 D6 D4 D5 4E C8 80 D6
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 10 D6 03 42 57 31 85 12 7E D6
-00 00 98 D6 03 42 57 32 85 12 7E D6 00 00 A4 D6
-03 42 57 33 85 12 7E D6 00 00 BC D6 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 BA D6 00 00 DC D6 03 46 57 32 85 12 BA D6
-00 00 E8 D6 03 46 57 33 85 12 BA D6 00 00 F4 D6
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 80 CC DC CB 4E C8 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 02 CC 84 D1 3E D7 92 53
-C4 21 3E 40 2C 00 84 12 1A C9 3E CA 34 C4 00 CC
-1A D3 54 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-6C D6 04 52 52 43 4D 00 85 12 38 D7 50 00 82 D7
-04 52 52 41 4D 00 85 12 38 D7 50 01 90 D7 04 52
-4C 41 4D 00 85 12 38 D7 50 02 9E D7 04 52 52 55
-4D 00 85 12 38 D7 50 03 AE D5 05 50 55 53 48 4D
-85 12 38 D7 00 15 BA D7 04 50 4F 50 4D 00 85 12
-38 D7 00 17
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F5 3C 0E 93 3E 4F
+77 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 98 C6 B2 49
+1C C7 B2 49 F4 C6 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 18 D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 78 C8 AC C4
+42 C5 36 C7 1E C4 05 1B 5B 37 6D 40 62 C7 0A C4
+02 18 9A C8 C6 C9 62 C7 1E C4 04 1B 5B 30 6D 00
+62 C7 AE CC 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+0A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 36 C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 62 C7 0A C4 02 18 9A C8 C6 C9 0A C4 23 00
+1A C7 C6 C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+62 C7 0A C4 40 FF 32 C4 8E C8 92 C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B2
+01 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 43 06 02 B2 40 FC FF
+02 02 F2 D3 26 02 F2 43 22 02 B2 40 00 A5 60 01
+82 43 88 01 F2 D0 03 00 0B 02 F2 C3 82 01 F2 D0
+06 00 82 01 B2 40 F4 00 84 01 39 40 80 00 18 42
+00 18 18 83 FE 23 19 83 FA 23 39 40 00 10 29 83
+89 43 00 20 FC 23 1E 42 08 18 82 43 08 18 3E F3
+02 20 1E 42 5E 01 B0 12 D0 C4 80 C5 00 00 0C 41
+43 43 45 50 54 00 30 40 9A C6 0A 4E 2E 4F 0A 5E
+3B 40 0A 00 3C 40 20 00 3D 15 AA 3E 21 52 A2 C2
+6C 05 B2 B0 10 00 40 05 A3 22 3A 17 92 B3 6C 05
+FD 27 58 42 4C 05 48 9B 0E 24 48 9C 06 2C 78 92
+F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48
+00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00 06 4B
+45 59 30 40 F6 C6 58 43 B0 12 46 C5 2F 83 8F 4E
+00 00 92 B3 6C 05 FD 27 1E 42 4C 05 B0 12 44 C5
+30 4D 00 00 08 45 4D 49 54 00 30 40 1E C7 08 4E
+3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D 14 C7
+08 45 43 48 4F 00 B2 40 C2 48 28 C7 38 40 05 00
+B0 12 46 C5 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 28 C7 28 42 F3 3F 00 00 08 54 59 50
+45 00 0D 12 3D 40 72 C7 29 4F 8F 4E 00 00 7E 49
+D4 3F 74 C7 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53
+3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F
+3E 4F 8F 22 F9 98 00 00 8C 22 19 53 1C 83 FA 23
+2D 53 30 4D 2F 53 3E 4F 1E 83 83 22 9B 24 EE C6
+0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C4 00 00
+92 C8 84 C7 D6 C9 90 CC B0 C4 00 C8 14 C4 06 5B
+54 48 45 4E 5D 00 88 C7 DE C7 A4 C7 C2 C7 14 C4
+06 5B 45 4C 53 45 5D 00 88 C7 F0 C7 A4 C7 C0 C7
+1E C4 04 5B 49 46 5D 00 88 C7 C2 C7 B2 C4 C0 C7
+1E C4 05 0D 6B 6F 20 0A 62 C7 9A C4 84 C4 B2 C4
+C2 C7 B0 C7 0D 5B 54 48 45 4E 5D 00 30 4D 14 C8
+09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D 20 C8
+13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 84 C7
+D6 C9 3E CA E2 CB 52 C9 30 C8 17 5B 55 4E 44 45
+46 49 4E 45 44 5D 0D 12 84 12 84 C7 D6 C9 3E CA
+62 C8 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83
+8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D
+8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F
+3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D 8E C6
+02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3
+30 4D 3E 8F 01 28 0E F3 30 4D E0 C5 05 53 22 00
+82 43 C0 21 0D 12 84 12 0A C4 1E C4 40 CC 0A C4
+22 00 D6 C9 D6 C8 B2 40 20 00 C0 21 1A 53 1A B3
+82 6A C8 21 3E 4F 3D 41 30 4D 48 C7 05 2E 22 00
+0D 12 84 12 C0 C8 0A C4 62 C7 40 CC 52 C9 00 00
+04 3C 23 00 B2 40 B2 21 B2 21 30 4D BC C8 02 23
+1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4 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 0E C9 04 23
+53 00 0D 12 84 12 10 C9 4A C9 2D 83 09 DE 09 93
+E1 23 3D 41 30 4D 3E C9 04 23 3E 00 9F 42 B2 21
+00 00 3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C
+44 00 4A 4E 3E 4F DB 3F 58 C9 08 53 49 47 4E 00
+0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 30 C7 04 55
+2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3
+06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
+04 C9 84 C7 72 C9 42 C9 6E C8 80 C9 5C C9 62 C7
+52 C9 EC C8 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00
+08 57 4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58
+38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42
+C0 21 F8 90 27 00 00 00 04 20 E8 98 02 00 01 20
+0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24
+1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B
+F0 3F 18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E
+CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83
+0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00
+78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93
+F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99
+01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49
+6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D C4 C9
+0E 3E 4E 55 4D 42 45 52 1B 42 BE 21 3C 4F 38 4F
+29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28
+7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C
+82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04
+09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48
+02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E
+06 00 08 43 09 43 1B 42 BE 21 0C 4E 0E 43 1E 15
+3D 40 48 CB 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F
+2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00
+5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C
+01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83
+FC 9C 00 00 E0 23 AE 27 4A CB 2F 24 2D 83 6A 4C
+7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02
+7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49
+02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28
+79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49
+00 00 0E 4B 2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F
+04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 00 C9 03 5C 92 42 C2 21 C6 21
+30 4D 0D 12 84 12 84 C4 84 C7 D6 C9 B0 C4 1A CD
+3E CA 04 CC 0A 4E 3E 4F 3D 40 1E CC 6D 27 3D 40
+F8 CB 1A E2 BC 21 14 24 0E 12 3E 4F 30 41 20 CC
+3E 4F 3D 40 F8 CB 19 20 DE 53 00 00 68 4E 08 5E
+F8 40 3F 00 00 00 3D 40 F6 CD 2A 3C E8 CB 02 2C
+A2 53 C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D
+3E CC 0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24
+09 4E 1A 42 C8 21 A2 52 C8 21 BA 40 0A C4 00 00
+8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24
+8A 4E 02 00 EE 3F 30 4D 7A C9 0A 43 4F 55 4E 54
+2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D A0 C8
+0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40
+80 20 0E 43 84 12 1E C4 02 0D 0A 00 62 C7 94 C4
+F2 CB 80 C8 AA C8 1E C4 0B 73 74 61 63 6B 20 65
+6D 70 74 79 08 C5 32 C4 0A C4 40 FF B2 C8 1E C4
+09 46 52 41 4D 20 66 75 6C 6C 08 C5 B2 C4 B6 CC
+A0 CC 0D 41 42 4F 52 54 22 00 0D 12 84 12 C0 C8
+0A C4 08 C5 40 CC 52 C9 D0 C9 02 27 0D 12 84 12
+84 C7 D6 C9 3E CA B0 C4 1C CD E4 C8 28 CC 4A C8
+07 5B 27 5D 0D 12 84 12 0C CD 0A C4 0A C4 40 CC
+40 CC 52 C9 20 CD 03 5B 82 43 BC 21 30 4D 00 00
+02 5D B2 43 BC 21 30 4D 98 C8 11 50 4F 53 54 50
+4F 4E 45 00 0D 12 84 12 84 C7 D6 C9 3E CA B0 C4
+1C CD AA C8 AC C4 74 CD 0A C4 0A C4 40 CC 40 CC
+0A C4 40 CC 40 CC 52 C9 00 00 02 3A 30 12 CA CD
+92 B3 C8 21 A2 63 C8 21 0D 12 84 12 84 C7 D6 C9
+92 CD 3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E
+5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58
+00 00 82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F
+BA 21 2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF
+BA 40 84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21
+66 25 84 12 1E C4 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 12 C5 36 CD 03 3B 82 93 BC 21
+F4 26 0D 12 84 12 0A C4 52 C9 40 CC DC CD 38 CD
+52 C9 00 00 12 49 4D 4D 45 44 49 41 54 45 18 42
+B4 21 D8 D3 00 00 30 4D 8A CC 0C 43 52 45 41 54
+45 00 B0 12 80 CD BA 40 86 12 FC FF 8A 4A FE FF
+3A 3D 5C C7 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40
+85 12 00 00 8A 4D 02 00 3D 41 30 4D 7A CD 0E 3A
+4E 4F 4E 41 4D 45 30 12 CA CD 2F 83 8F 4E 00 00
+1A 42 C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49
+98 3F 14 CE 05 49 53 00 0D 12 82 93 BC 21 08 20
+84 12 0C CD 96 CE 3D 41 BE 4F 02 00 3E 4F 30 4D
+84 12 24 CD 0A C4 98 CE 40 CC 52 C9 2A CE 08 43
+4F 44 45 00 B0 12 80 CD A2 82 C8 21 61 3C 6C C9
+0E 48 44 4E 43 4F 44 45 B2 40 84 CF CC 21 F2 3F
+00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12 DC CD
+E2 CE 3D 41 92 42 D0 21 CC 21 5D 3C AE CE 0E 43
+4F 44 45 4E 4E 4D 30 12 B8 CE B7 3F 00 00 0A 43
+4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40
+84 12 02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00
+0A 4C 4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F
+C0 CE 0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21
+8A 4A FE FF 82 43 BC 21 B9 3F 4C CF B2 40 5E CF
+D0 21 82 4E CE 21 30 40 E4 C8 85 12 4A CF 4A CD
+F2 CC DC CF EE CE 44 CE 8E C9 38 CA 0A CD 32 CF
+84 CE 5E CE FA CD 52 CC 66 D0 90 CA 00 00 00 00
+85 12 4A CF E0 D6 64 D5 C4 D6 8C D4 E8 D4 36 D5
+12 D6 1E D6 AE D3 D2 D4 00 00 00 00 20 CF 9E D2
+00 00 3A D6 7E CF B2 40 5E CF CE 21 82 43 D0 21
+30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23
+30 41 00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21
+3A 40 42 18 B0 12 B2 CF 30 4D C4 CF 0E 52 53 54
+5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12
+B2 CF 1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83
+18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23
+2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00
+29 83 B9 43 80 FF FC 23 B9 40 0E C6 FE FF 29 83
+B9 40 FA C5 FE FF 39 90 AE FF F9 23 39 40 10 18
+B2 49 E0 FF 3B 40 10 00 3A 40 3A 18 B0 12 B6 CF
+82 43 4A 18 C7 3F 58 D0 B2 4E 42 18 BE 12 3E 4F
+3D 41 C0 3F 40 CD 0C 4D 41 52 4B 45 52 00 12 12
+C6 21 0D 12 84 12 84 C7 D6 C9 3E CA AC C4 84 D0
+78 C8 18 CC 86 D0 3E 4F 3D 41 B2 41 C6 21 B0 12
+80 CD BA 40 85 12 FC FF BA 40 56 D0 FE FF 28 83
+8A 48 00 00 BA 40 82 C4 02 00 A2 52 C8 21 18 42
+B4 21 19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D
+12 12 C6 21 84 12 D6 C9 3E CA AC C4 F0 D0 D0 D0
+3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C
+BE 90 56 D0 00 00 01 20 3E 52 2E 83 21 53 30 41
+E8 CA AC C4 F8 D0 EC D0 FA D0 B2 41 C6 21 30 41
+92 83 C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 C0 D0
+15 20 3E 40 2B 00 B0 12 C0 D0 06 20 3E 40 2D 00
+B0 12 C0 D0 92 83 C6 21 0E 12 1E 41 02 00 84 12
+D6 C9 E8 CA AC C4 1C CD 3A D1 3E 51 3A 17 30 41
+B0 12 00 D1 19 42 C8 21 89 4E 00 00 A2 53 C8 21
+3E 40 29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12
+D6 C9 E8 CA AC C4 72 D1 6A D1 3E 90 10 00 E6 2B
+7C 2D 74 D1 A2 41 C6 21 E1 3F 03 20 B0 12 58 D1
+43 3C 7A 90 23 00 24 20 B0 12 08 D1 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 C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D
+7A 90 26 00 05 20 3C 40 10 02 B0 12 08 D1 F0 3F
+7A 90 40 00 14 20 3C 40 20 00 B0 12 54 D1 0C 20
+3C D0 10 00 3E 40 2B 00 B0 12 58 D1 92 92 C2 21
+C6 21 02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0
+10 00 B0 12 40 D1 F2 3F 03 20 B0 12 58 D1 F5 3F
+7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00
+B0 12 40 D1 EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21
+3A 40 20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27
+5A 49 FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00
+30 4D 00 00 08 52 45 54 49 00 0D 12 84 12 0A C4
+00 13 40 CC 52 C9 0A C4 2C 00 36 D2 7A D1 84 C7
+40 D2 18 D2 86 D2 3D 41 2C DE 8B 4C 00 00 9E 3F
+00 00 06 4D 4F 56 85 12 76 D2 00 40 92 D2 0A 4D
+4F 56 2E 42 85 12 76 D2 40 40 00 00 06 41 44 44
+85 12 76 D2 00 50 AC D2 0A 41 44 44 2E 42 85 12
+76 D2 40 50 B8 D2 08 41 44 44 43 00 85 12 76 D2
+00 60 C6 D2 0C 41 44 44 43 2E 42 00 85 12 76 D2
+40 60 FE CE 08 53 55 42 43 00 85 12 76 D2 00 70
+E4 D2 0C 53 55 42 43 2E 42 00 85 12 76 D2 40 70
+F2 D2 06 53 55 42 85 12 76 D2 00 80 02 D3 0A 53
+55 42 2E 42 85 12 76 D2 40 80 0E D3 06 43 4D 50
+85 12 76 D2 00 90 1C D3 0A 43 4D 50 2E 42 85 12
+76 D2 40 90 00 00 08 44 41 44 44 00 85 12 76 D2
+00 A0 36 D3 0C 44 41 44 44 2E 42 00 85 12 76 D2
+40 A0 64 D2 06 42 49 54 85 12 76 D2 00 B0 54 D3
+0A 42 49 54 2E 42 85 12 76 D2 40 B0 60 D3 06 42
+49 43 85 12 76 D2 00 C0 6E D3 0A 42 49 43 2E 42
+85 12 76 D2 40 C0 7A D3 06 42 49 53 85 12 76 D2
+00 D0 88 D3 0A 42 49 53 2E 42 85 12 76 D2 40 D0
+00 00 06 58 4F 52 85 12 76 D2 00 E0 A2 D3 0A 58
+4F 52 2E 42 85 12 76 D2 40 E0 D4 D2 06 41 4E 44
+85 12 76 D2 00 F0 BC D3 0A 41 4E 44 2E 42 85 12
+76 D2 40 F0 84 C7 36 D2 7A D1 DC D3 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4D 3F 94 D3 06 52
+52 43 85 12 D4 D3 00 10 EE D3 0A 52 52 43 2E 42
+85 12 D4 D3 40 10 28 D3 08 53 57 50 42 00 85 12
+D4 D3 80 10 FA D3 06 52 52 41 85 12 D4 D3 00 11
+16 D4 0A 52 52 41 2E 42 85 12 D4 D3 40 11 08 D4
+06 53 58 54 85 12 D4 D3 80 11 00 00 08 50 55 53
+48 00 85 12 D4 D3 00 12 3C D4 0C 50 55 53 48 2E
+42 00 85 12 D4 D3 40 12 30 D4 08 43 41 4C 4C 00
+85 12 D4 D3 80 12 1A 53 0E 4A 84 12 C6 C9 1E C4
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C5
+5A D4 06 53 3E 3D 86 12 00 38 82 D4 04 53 3C 00
+86 12 00 34 4A D4 06 30 3E 3D 86 12 00 30 96 D4
+04 30 3C 00 86 12 00 30 D2 CE 04 55 3C 00 86 12
+00 2C AA D4 06 55 3E 3D 86 12 00 28 A0 D4 06 30
+3C 3E 86 12 00 24 BE D4 04 30 3D 00 86 12 00 20
+00 00 04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53
+C8 21 0E 4A 30 4D 44 D3 08 54 48 45 4E 00 1A 42
+C8 21 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 B2 2F 88 DA 00 00 30 4D B4 D4 08 45 4C 53
+45 00 1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21
+2F 83 8F 4A 00 00 E3 3F 22 D4 0A 42 45 47 49 4E
+30 40 32 C4 0C D5 0A 55 4E 54 49 4C 3A 4F 08 4E
+3E 4F 19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE
+8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21
+30 4D C8 D3 0A 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12 D6 D4
+6C C8 52 C9 2A D5 0C 52 45 50 45 41 54 00 0D 12
+84 12 6A D5 EE D4 52 C9 9A D5 3D 41 08 4E 3E 4F
+2A 48 B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D
+86 D5 06 42 57 31 85 12 98 D5 00 00 B2 D5 06 42
+57 32 85 12 98 D5 00 00 BE D5 06 42 57 33 85 12
+98 D5 00 00 D6 D5 3D 41 1A 42 C8 21 28 4E 8E 43
+00 00 B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21
+8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12
+D4 D5 00 00 FA D5 06 46 57 32 85 12 D4 D5 00 00
+06 D6 06 46 57 33 85 12 D4 D5 00 00 74 D5 08 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
+84 12 0C CD 18 CC 52 C9 00 00 0A 3F 47 4F 54 4F
+3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
+3E E0 00 08 EC 3F 40 D2 0A C4 2C 00 D6 C9 E8 CA
+AC C4 1C CD 84 C7 36 D2 18 D2 6C D6 0A 4E 3E 4F
+1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92
+EA 2E 8A 10 5A 06 A8 3E CA D5 08 52 52 43 4D 00
+85 12 56 D6 50 00 9A D6 08 52 52 41 4D 00 85 12
+56 D6 50 01 A8 D6 08 52 4C 41 4D 00 85 12 56 D6
+50 02 B6 D6 08 52 52 55 4D 00 85 12 56 D6 50 03
+C8 D4 0A 50 55 53 48 4D 85 12 56 D6 00 15 D2 D6
+08 50 4F 50 4D 00 85 12 56 D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-82 C6 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 08 D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+AC C6 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 0E C6
 q
diff --git a/binaries/MSP_EXP430FR2433_8MHz_UART.txt b/binaries/MSP_EXP430FR2433_8MHz_UART.txt
deleted file mode 100644 (file)
index 56b4116..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF EA D7 02 D0 34 01
-10 00 41 B3 94 C5 AA C4 DA C5 9C C5 94 C6 EA D7
-02 D0 7A C6 92 C7 24 C7 FE C6 3C 21 60 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 78 C6 B2 49 90 C7 B2 49 22 C7 B2 49 FC C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 CE D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E0 C7 32 C7
-14 C4 04 1B 5B 37 6D 00 5C C7 A8 C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C7 A0 C8 5C C7 14 C4 04 1B 5B 30 6D 00
-5C C7 28 CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 30 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 D2 D3 02 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 D2 C3 02 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 F2 B2 01 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00 B0 12
-9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23 5C C7
-D6 C8 14 C4 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 5C C7
-0A C4 40 FF 28 C4 D4 C7 A0 C8 14 C4 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C4 86 C5 00 00 06 41
-43 43 45 50 54 00 30 40 7A C6 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C6 3C 40 D2 C6
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 C6 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C6 2F 83
-8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C7 08 4E 3E 4F C8 3F 1A C7 04 45 43 48
-4F 00 B2 40 C2 48 C0 C6 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C6 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C7 7A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00 30 40
-92 C7 0D 12 84 12 14 C4 02 0D 0A 00 5C C7 60 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C6 01 40
-2E 4E 30 4D DE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 1A C8 02 23 53 00 0D 12
-84 12 1C C8 56 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C8 4E C8 EE C4 8E C8 6A C8 5C C7 14 CC 20 C7
-60 C8 40 C7 01 2E 0E 93 E3 37 38 43 E2 3F 88 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-5A CB 0A C4 22 00 2C C9 FA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 C8 82 2E 22 00 0D 12 84 12 E4 C8 0A C4 5C C7
-5A CB 60 C8 18 C6 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 00 00 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 AE CA
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 CA
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C4 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 21 8A 4E
-00 00 A2 53 C6 21 3E 4F 30 4D 58 CB 87 4C 49 54
-45 52 41 4C 82 93 BE 21 0D 24 09 4E 1A 42 C6 21
-A2 52 C6 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 C8 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A C8 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C4 14 CC 2C C9 D0 CB
-9C 26 3D 40 D8 CB DE 3E DA CB 0A 4E 3E 4F 3D 40
-F4 CB 36 27 3D 40 CA CB 1A E2 BE 21 B6 27 0E 12
-3E 4F 30 41 F6 CB 3E 4F 3D 40 CA CB BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 CD
-CC 3F FE CB 86 12 20 00 E6 C7 05 41 4C 4C 4F 54
-82 5E C6 21 3E 4F 30 4D 3F 40 80 20 0E 43 31 40
-E0 20 B2 40 00 20 00 20 82 43 BE 21 84 12 8E C7
-BC C4 C4 CB C4 C7 F6 C7 14 C4 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C5 0A C4 40 FF 28 C4
-FE C7 14 C4 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C5 3A C4 3E CC 1A CC 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 C8 0A C4 2A C5 5A CB 60 C8 8E C9
-01 27 0D 12 84 12 14 CC 2C C9 94 C9 34 C4 12 CC
-60 C8 00 00 83 5B 27 5D 0D 12 84 12 92 CC 0A C4
-0A C4 5A CB 5A CB 60 C8 A4 CC 81 5B 82 43 BE 21
-30 4D 0C C8 01 5D B2 43 BE 21 30 4D C4 CC 81 5C
-92 42 C0 21 C4 21 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 CC 2C C9 94 C9 A8 C7
-34 C4 12 CC F6 C7 34 C4 06 CD 0A C4 0A C4 5A CB
-5A CB 0A C4 5A CB 5A CB 60 C8 BA CC 01 3A 30 12
-56 CD 92 B3 C6 21 A2 63 C6 21 0D 12 84 12 14 CC
-2C C9 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 21 30 4D 82 9F BC 21 09 20 18 42
-B6 21 19 42 B8 21 A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C4 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C5 0C CD 81 3B 82 93 BE 21
-97 27 0D 12 84 12 0A C4 60 C8 5A CB 68 CD BC CC
-60 C8 BA CB 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 21 F8 D0 80 00 00 00 30 4D A4 CB 06 43 52 45
-41 54 45 00 B0 12 12 CD BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC CD 04 43 4F 44 45 00 B0 12 12 CD
-A2 82 C6 21 0D 12 84 12 04 D0 DE CF 60 C8 B4 CD
-07 48 44 4E 43 4F 44 45 B2 40 E2 CF DA 21 EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 CD
-1E D0 3C D0 60 C8 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 21 B2 43 BE 21 0D 12 84 12 1E D0 3C D0 60 C8
-00 00 05 4C 4F 32 48 49 A2 83 C6 21 1A 42 C6 21
-EB 3F 00 CE 85 48 49 32 4C 4F 0D 12 84 12 28 C4
-AC CF 5A CB BC CC F4 CD 60 C8 9A CD 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C CE 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C4 00 00 D8 C7 14 CC 2C C9
-AA CB A0 C7 34 C4 14 CF AE C7 14 C4 06 5B 54 48
-45 4E 5D 00 86 CE EE CE AA CE CC CE 60 C8 AE C7
-14 C4 06 5B 45 4C 53 45 5D 00 86 CE 04 CF AA CE
-CA CE 60 C8 14 C4 04 5B 49 46 5D 00 86 CE CC CE
-3A C4 CA CE 82 C7 14 C4 05 0D 0A 6B 6F 20 5C C7
-BC C4 AC C4 3A C4 CC CE BA CE 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A CF 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 CC 2C C9
-94 C9 38 CF 60 C8 3E CF 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 CF F0 C7 60 C8 70 CF
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C CB
-06 4D 41 52 4B 45 52 00 B0 12 12 CD BA 40 85 12
-FC FF BA 40 6E CF FE FF 28 83 8A 48 00 00 BA 40
-AA C4 04 00 B2 50 06 00 C6 21 E1 3E 2E 53 30 4D
-0A C4 CA 21 E8 C7 60 C8 85 12 B0 CF 78 CC E6 CD
-2C C7 90 CC 64 CE F6 C6 80 CF 12 C9 A8 D0 BC D0
-9C C8 26 C9 00 00 58 CF CE CC F4 C9 00 00 85 12
-B0 CF 60 D6 C6 D6 08 D6 16 D7 CE D5 00 00 9A D3
-00 00 DE D7 C2 D7 32 D6 70 D6 AA D4 00 00 00 00
-32 D7 DC CF 3A 40 0C 00 39 40 D6 21 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 21 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 21 30 4D 92 42 CA 21
-DA 21 30 4D B8 CF 36 D0 3C D0 4C D0 1A 42 20 18
-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
-DA CC 09 50 57 52 5F 53 54 41 54 45 85 12 44 D0
-EA D7 E0 C8 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 D0 F3 3F 82 D0 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 21 90 D0 30 4D 94 D0 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 21 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A D1 FE FF 29 83
-B9 40 02 C6 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 C6 B2 49 FA C4 B2 49 02 C4 B2 49 20 C6
-B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A CC 01 31 40 E0 20
-3F 40 80 20 39 40 00 10 29 83 89 43 00 20 FC 23
-B2 43 06 02 B2 40 FC FF 02 02 D2 D3 04 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 82 43
-88 01 F2 D0 03 00 0B 02 39 40 80 00 18 42 00 18
-18 83 FE 23 19 83 FA 23 1E 42 08 18 82 43 08 18
-1E D2 5E 01 B0 12 F8 C4 1E C6 38 40 C0 21 0A 4E
-39 48 2E 48 09 5E 1E 52 C4 21 09 9E 03 24 7A 9E
-FC 27 1E 83 0A 4E 2A 88 82 4A C4 21 30 4D 1C 15
-0E 12 12 12 C4 21 84 12 2C C9 94 C9 F0 C7 34 C4
-DA D1 50 CA 34 C4 F4 D1 EE D1 DC D1 3C 4E 3C 80
-87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52
-1B 17 30 41 F6 D1 B2 41 C4 21 3E 41 84 12 0A C4
-2B 00 2C C9 94 C9 F0 C7 34 C4 12 D2 50 CA 34 C4
-12 CC BA C7 2C C9 50 CA 34 C4 12 CC 1E D2 3E 5F
-E7 3F 3E 40 28 00 B0 12 BE D1 19 42 C6 21 A2 53
-C6 21 89 4E 00 00 3E 40 29 00 92 92 C0 21 C4 21
-02 20 30 40 80 CD 1C 15 12 12 C4 21 92 53 C4 21
-84 12 2C C9 50 CA 34 C4 66 D2 5C D2 21 53 3E 90
-10 00 C6 2B 7F 2D 68 D2 B2 41 C4 21 C1 3F 0D 12
-84 12 14 CC 9A D1 78 D2 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 BE D1 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 BE D1 ED 3F 7A 90
-40 00 16 20 3C 40 20 00 92 53 C4 21 B0 12 46 D2
-0C 20 3C 50 10 00 3E 40 2B 00 B0 12 46 D2 92 92
-C0 21 C4 21 02 24 92 53 C4 21 8E 10 0C 5E DA 3F
-B0 12 46 D2 FA 23 3C 50 10 00 B0 12 22 D2 EF 3F
-0C 43 1B 42 C6 21 A2 53 C6 21 0D 12 84 12 14 CC
-9A D1 44 D3 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C7 3F B0 12 46 D2 E0 23 3C 50 80 00
-B0 12 22 D2 DB 3F 00 00 04 52 45 54 49 00 0D 12
-84 12 0A C4 00 13 5A CB 60 C8 0A C4 2C 00 6E D2
-3A D3 84 D3 09 4B 2E 4E 0E DC A2 3F 52 CE 03 4D
-4F 56 85 12 7A D3 00 40 8E D3 05 4D 4F 56 2E 42
-85 12 7A D3 40 40 00 00 03 41 44 44 85 12 7A D3
-00 50 A8 D3 05 41 44 44 2E 42 85 12 7A D3 40 50
-B4 D3 04 41 44 44 43 00 85 12 7A D3 00 60 C2 D3
-06 41 44 44 43 2E 42 00 85 12 7A D3 40 60 68 D3
-04 53 55 42 43 00 85 12 7A D3 00 70 E0 D3 06 53
-55 42 43 2E 42 00 85 12 7A D3 40 70 EE D3 03 53
-55 42 85 12 7A D3 00 80 FE D3 05 53 55 42 2E 42
-85 12 7A D3 40 80 28 CE 03 43 4D 50 85 12 7A D3
-00 90 18 D4 05 43 4D 50 2E 42 85 12 7A D3 40 90
-12 CE 04 44 41 44 44 00 85 12 7A D3 00 A0 32 D4
-06 44 41 44 44 2E 42 00 85 12 7A D3 40 A0 24 D4
-03 42 49 54 85 12 7A D3 00 B0 50 D4 05 42 49 54
-2E 42 85 12 7A D3 40 B0 5C D4 03 42 49 43 85 12
-7A D3 00 C0 6A D4 05 42 49 43 2E 42 85 12 7A D3
-40 C0 76 D4 03 42 49 53 85 12 7A D3 00 D0 84 D4
-05 42 49 53 2E 42 85 12 7A D3 40 D0 00 00 03 58
-4F 52 85 12 7A D3 00 E0 9E D4 05 58 4F 52 2E 42
-85 12 7A D3 40 E0 D0 D3 03 41 4E 44 85 12 7A D3
-00 F0 B8 D4 05 41 4E 44 2E 42 85 12 7A D3 40 F0
-14 CC 6E D2 D6 D4 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F 0A D4 03 52 52 43 85 12 D0 D4
-00 10 E8 D4 05 52 52 43 2E 42 85 12 D0 D4 40 10
-F4 D4 04 53 57 50 42 00 85 12 D0 D4 80 10 02 D5
-03 52 52 41 85 12 D0 D4 00 11 10 D5 05 52 52 41
-2E 42 85 12 D0 D4 40 11 1C D5 03 53 58 54 85 12
-D0 D4 80 11 00 00 04 50 55 53 48 00 85 12 D0 D4
-00 12 36 D5 06 50 55 53 48 2E 42 00 85 12 D0 D4
-40 12 90 D4 04 43 41 4C 4C 00 85 12 D0 D4 80 12
-1A 53 0E 4A 0D 12 84 12 D6 C8 14 C4 0D 6F 75 74
-20 6F 66 20 62 6F 75 6E 64 73 36 C5 2A D5 03 53
-3E 3D 86 12 00 38 7E D5 02 53 3C 00 86 12 00 34
-44 D5 03 30 3E 3D 86 12 00 30 92 D5 02 30 3C 00
-86 12 00 30 00 00 02 55 3C 00 86 12 00 2C A6 D5
-03 55 3E 3D 86 12 00 28 9C D5 03 30 3C 3E 86 12
-00 24 BA D5 02 30 3D 00 86 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 B0 D5 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 B1 2F
-88 DA 00 00 30 4D 40 D4 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 D5 05 42 45 47 49 4E 30 40 28 C4
-E4 D5 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 8A 3B 3A F0
-FF 03 08 DA 89 48 00 00 A2 53 C6 21 30 4D C4 D4
-05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
-05 57 48 49 4C 45 0D 12 84 12 D2 D5 BA C7 60 C8
-88 D5 06 52 45 50 45 41 54 00 0D 12 84 12 66 D6
-EA D5 60 C8 96 D6 3D 41 08 4E 3E 4F 2A 48 B2 92
-C4 21 CB 2F 98 42 C6 21 00 00 30 4D 26 D6 03 42
-57 31 85 12 94 D6 00 00 AE D6 03 42 57 32 85 12
-94 D6 00 00 BA D6 03 42 57 33 85 12 94 D6 00 00
-D2 D6 3D 41 1A 42 C6 21 28 4E B2 92 C4 21 88 2B
-BA 4F 00 00 A2 53 C6 21 8E 4A 00 00 3E 4F 30 4D
-00 00 03 46 57 31 85 12 D0 D6 00 00 F2 D6 03 46
-57 32 85 12 D0 D6 00 00 FE D6 03 46 57 33 85 12
-D0 D6 00 00 0A D7 04 47 4F 54 4F 00 2F 83 8F 4E
-00 00 3E 40 00 3C 0D 12 84 12 92 CC EE CB 60 C8
-00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
-00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 14 CC
-9A D1 54 D7 92 53 C4 21 3E 40 2C 00 84 12 2C C9
-50 CA 34 C4 12 CC 30 D3 6A D7 0A 4E 3E 4F 1A 83
-F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
-08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E
-8A 10 5A 06 A6 3E 82 D6 04 52 52 43 4D 00 85 12
-4E D7 50 00 98 D7 04 52 52 41 4D 00 85 12 4E D7
-50 01 A6 D7 04 52 4C 41 4D 00 85 12 4E D7 50 02
-B4 D7 04 52 52 55 4D 00 85 12 4E D7 50 03 C4 D5
-05 50 55 53 48 4D 85 12 4E D7 00 15 D0 D7 04 50
-4F 50 4D 00 85 12 4E D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 94 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 1A D1
-q
diff --git a/binaries/MSP_EXP430FR4133_16MHz_115200.txt b/binaries/MSP_EXP430FR4133_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..80d9649
--- /dev/null
@@ -0,0 +1,329 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A0 59
+D2 C6 7E C5 84 C5 54 C5 42 C7 6A D7 22 D0 DC CF
+DC CF B8 C6 76 C7 3E C7 3C 21 E0 20 96 C9 B6 C4
+C4 C4 B2 C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+42 C7 6A D7 22 D0 DC CF DC CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 04 3D 0E 93 3E 4F
+99 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B6 C6 B2 49
+74 C7 B2 49 3C C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 96 D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 42 C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 BC C8 AC C4 52 C5 84 C7 1E C4 04 1B
+5B 37 6D 00 A6 C7 A6 C7 1E C4 04 1B 5B 30 6D 00
+A6 C7 2C CD B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 03 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 84 C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 A6 C7 0A CA 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A6 C7 0A C4 40 FF 32 C4
+D2 C8 D6 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B2 00 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 D3 02 02 F2 D2 05 02 B2 D0 FF FE
+26 02 B2 43 22 02 B2 D3 46 02 B2 43 42 02 B2 D3
+66 02 B2 43 62 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
+F2 D0 06 00 2B 02 F2 C3 82 01 F2 D0 0A 00 82 01
+B2 40 E8 01 84 01 39 40 40 00 18 42 00 18 18 83
+FE 23 19 83 FA 23 39 40 00 08 29 83 89 43 00 20
+FC 23 19 42 5E 01 1E 42 08 18 82 43 08 18 3E F3
+01 20 0E 49 B0 12 D0 C4 86 C5 00 00 0C 41 43 43
+45 50 54 00 30 40 B8 C6 08 4E 2E 4F 08 5E 39 40
+0D 00 3A 40 20 00 3B 40 16 C7 3C 40 22 C7 5D 15
+97 3E 21 52 3A 17 58 42 0C 05 48 9B 09 20 A2 B3
+1C 05 FD 27 B2 40 13 00 0E 05 F2 D2 03 02 30 41
+48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 1C 05 FD 27
+C2 48 0E 05 30 4D 18 C7 2D 83 92 B3 1C 05 DB 23
+FC 3F 3E 8F 3D 41 92 B3 1C 05 FD 27 58 42 0C 05
+08 4C EB 3F 00 00 06 4B 45 59 30 40 3E C7 30 12
+54 C7 A2 B3 1C 05 FD 27 B2 40 11 00 0E 05 F2 C2
+03 02 30 41 2F 83 8F 4E 00 00 92 B3 1C 05 FD 27
+B0 12 DE C6 1E 42 0C 05 30 4D 00 00 08 45 4D 49
+54 00 30 40 76 C7 08 4E 3E 4F C7 3F 6C C7 08 45
+43 48 4F 00 B2 40 C2 48 10 C7 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D 10 C7 30 4D 00 00
+08 54 59 50 45 00 0D 12 3D 40 B6 C7 29 4F 8F 4E
+00 00 7E 49 DE 3F B8 C7 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 6D 22 F9 98 00 00 6A 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 61 22
+9B 24 36 C7 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A C4 00 00 D6 C8 C8 C7 1A CA 0E CD B0 C4 44 C8
+14 C4 06 5B 54 48 45 4E 5D 00 CC C7 22 C8 E8 C7
+06 C8 14 C4 06 5B 45 4C 53 45 5D 00 CC C7 34 C8
+E8 C7 04 C8 1E C4 04 5B 49 46 5D 00 CC C7 06 C8
+B2 C4 04 C8 1E C4 05 0D 6B 6F 20 0A A6 C7 9A C4
+84 C4 B2 C4 06 C8 F4 C7 0D 5B 54 48 45 4E 5D 00
+30 4D 58 C8 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 64 C8 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 C8 C7 1A CA 82 CA 60 CC 96 C9 74 C8 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 C8 C7
+1A CA 82 CA A6 C8 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D AC C6 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C5
+05 53 22 00 82 43 C0 21 0D 12 84 12 0A C4 1E C4
+BE CC 0A C4 22 00 1A CA 1A C9 B2 40 20 00 C0 21
+1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 8E C7
+05 2E 22 00 0D 12 84 12 04 C9 0A C4 A6 C7 BE CC
+96 C9 00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D
+00 C9 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4
+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
+52 C9 04 23 53 00 0D 12 84 12 54 C9 8E C9 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 82 C9 04 23 3E 00
+9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 9C C9 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+7E C7 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 48 C9 C8 C7 B6 C9 86 C9 B2 C8 C4 C9
+A0 C9 A6 C7 96 C9 30 C9 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42
+C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D D2 C9 06 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 08 CA 0E 3E 4E 55
+4D 42 45 52 1A 42 BE 21 2C 4F 0B 4E 68 4C 78 80
+3A 00 03 28 78 80 07 00 21 28 78 50 0A 00 08 9A
+22 C3 1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 32 CB
+D4 3F 34 CB 81 49 02 00 1C 4F 04 00 1E 41 04 00
+3D 40 46 CB CA 3F 48 CB 39 51 3E 61 8F 49 04 00
+8F 4E 02 00 3A 17 1C 53 1B 83 D8 23 8F 4C 00 00
+0E 4B 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 8F 43
+04 00 8F 43 02 00 1A 42 BE 21 0C 4E 0E 43 1E 15
+3D 40 C8 CB 7B 4C 68 4C 78 80 2D 00 16 24 BE 2F
+2A 43 78 52 14 24 3A 52 68 53 11 24 3A 40 10 00
+58 93 0D 24 68 92 40 20 3E 90 03 00 3D 20 FC 9C
+01 00 6C 4C 8F 4C 04 00 37 3C B1 43 02 00 1B 83
+FC 9C 00 00 E0 23 A2 27 CA CB 2E 24 2D 83 68 4C
+78 90 5F 00 C0 27 32 B0 00 02 26 20 32 D0 00 02
+78 80 2E 00 B8 27 68 53 1F 20 09 43 8F 49 02 00
+5B 83 09 4B 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9A 08 2C 8F 49 00 00
+0E 4A 2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4B 93 1D 17 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 44 C9 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 C4 C8 C7 1A CA B0 C4 98 CD 82 CA
+82 CC 0A 4E 3E 4F 3D 40 9C CC 6C 27 3D 40 76 CC
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 9E CC 3E 4F
+3D 40 76 CC 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 74 CE 2A 3C 66 CC 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D BC CC
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A C4 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D BE C9 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D E4 C8 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E C4 02 0D 0A 00 A6 C7 94 C4 70 CC
+C4 C8 EE C8 1E C4 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 C5 32 C4 0A C4 40 FF F6 C8 1E C4 09 46
+52 41 4D 20 66 75 6C 6C 08 C5 B2 C4 34 CD 1E CD
+0D 41 42 4F 52 54 22 00 0D 12 84 12 04 C9 0A C4
+08 C5 BE CC 96 C9 14 CA 02 27 0D 12 84 12 C8 C7
+1A CA 82 CA B0 C4 9A CD 28 C9 A6 CC 8E C8 07 5B
+27 5D 0D 12 84 12 8A CD 0A C4 0A C4 BE CC BE CC
+96 C9 9E CD 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D DC C8 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 C8 C7 1A CA 82 CA B0 C4 9A CD
+EE C8 AC C4 F2 CD 0A C4 0A C4 BE CC BE CC 0A C4
+BE CC BE CC 96 C9 00 00 02 3A 30 12 48 CE 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 C8 C7 1A CA 10 CE
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 C5 B4 CD 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A C4 96 C9 BE CC 5A CE B6 CD 96 C9
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D 08 CD 0C 43 52 45 41 54 45 00
+B0 12 FE CD BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+A0 C7 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D F8 CD 0E 3A 4E 4F
+4E 41 4D 45 30 12 48 CE 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+92 CE 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+8A CD 14 CF 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+A2 CD 0A C4 16 CF BE CC 96 C9 A8 CE 08 43 4F 44
+45 00 B0 12 FE CD A2 82 C8 21 61 3C B0 C9 0E 48
+44 4E 43 4F 44 45 B2 40 02 D0 CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 5A CE 60 CF
+3D 41 92 42 D0 21 CC 21 5D 3C 2C CF 0E 43 4F 44
+45 4E 4E 4D 30 12 36 CF B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F 3E CF
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F CA CF B2 40 DC CF D0 21
+82 4E CE 21 30 40 28 C9 85 12 C8 CF C8 CD 70 CD
+5A D0 6C CF C2 CE D4 CA 7C CA 88 CD B0 CF 02 CF
+DC CE 78 CE D0 CC E4 D0 FC CA 00 00 00 00 85 12
+C8 CF 5E D7 E2 D5 42 D7 0A D5 66 D5 B4 D5 90 D6
+9C D6 2C D4 50 D5 00 00 00 00 9E CF 1C D3 00 00
+B8 D6 FC CF B2 40 DC CF CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 30 D0 30 4D 42 D0 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 30 D0
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 C6 FE FF 29 83 B9 40
+F2 C5 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+EC FF 3B 40 10 00 3A 40 3A 18 B0 12 34 D0 82 43
+4A 18 C7 3F D6 D0 B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F BE CD 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 C8 C7 1A CA 82 CA AC C4 02 D1 BC C8
+96 CC 04 D1 3E 4F 3D 41 B2 41 C6 21 B0 12 FE CD
+BA 40 85 12 FC FF BA 40 D4 D0 FE FF 28 83 8A 48
+00 00 BA 40 82 C4 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 1A CA 82 CA AC C4 6E D1 4E D1 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+D4 D0 00 00 01 20 3E 52 2E 83 21 53 30 41 64 CB
+AC C4 76 D1 6A D1 78 D1 B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 3E D1 15 20
+3E 40 2B 00 B0 12 3E D1 06 20 3E 40 2D 00 B0 12
+3E D1 92 83 C6 21 0E 12 1E 41 02 00 84 12 1A CA
+64 CB AC C4 9A CD B8 D1 3E 51 3A 17 30 41 B0 12
+7E D1 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 1A CA
+64 CB AC C4 F0 D1 E8 D1 3E 90 10 00 E6 2B 7C 2D
+F2 D1 A2 41 C6 21 E1 3F 03 20 B0 12 D6 D1 43 3C
+7A 90 23 00 24 20 B0 12 86 D1 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 86 D1 F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 D2 D1 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 D6 D1 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 BE D1 F2 3F 03 20 B0 12 D6 D1 F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+BE D1 EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A C4 00 13
+BE CC 96 C9 0A C4 2C 00 B4 D2 F8 D1 C8 C7 BE D2
+96 D2 04 D3 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 F4 D2 00 40 10 D3 0A 4D 4F 56
+2E 42 85 12 F4 D2 40 40 00 00 06 41 44 44 85 12
+F4 D2 00 50 2A D3 0A 41 44 44 2E 42 85 12 F4 D2
+40 50 36 D3 08 41 44 44 43 00 85 12 F4 D2 00 60
+44 D3 0C 41 44 44 43 2E 42 00 85 12 F4 D2 40 60
+7C CF 08 53 55 42 43 00 85 12 F4 D2 00 70 62 D3
+0C 53 55 42 43 2E 42 00 85 12 F4 D2 40 70 70 D3
+06 53 55 42 85 12 F4 D2 00 80 80 D3 0A 53 55 42
+2E 42 85 12 F4 D2 40 80 8C D3 06 43 4D 50 85 12
+F4 D2 00 90 9A D3 0A 43 4D 50 2E 42 85 12 F4 D2
+40 90 00 00 08 44 41 44 44 00 85 12 F4 D2 00 A0
+B4 D3 0C 44 41 44 44 2E 42 00 85 12 F4 D2 40 A0
+E2 D2 06 42 49 54 85 12 F4 D2 00 B0 D2 D3 0A 42
+49 54 2E 42 85 12 F4 D2 40 B0 DE D3 06 42 49 43
+85 12 F4 D2 00 C0 EC D3 0A 42 49 43 2E 42 85 12
+F4 D2 40 C0 F8 D3 06 42 49 53 85 12 F4 D2 00 D0
+06 D4 0A 42 49 53 2E 42 85 12 F4 D2 40 D0 00 00
+06 58 4F 52 85 12 F4 D2 00 E0 20 D4 0A 58 4F 52
+2E 42 85 12 F4 D2 40 E0 52 D3 06 41 4E 44 85 12
+F4 D2 00 F0 3A D4 0A 41 4E 44 2E 42 85 12 F4 D2
+40 F0 C8 C7 B4 D2 F8 D1 5A D4 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F 12 D4 06 52 52 43
+85 12 52 D4 00 10 6C D4 0A 52 52 43 2E 42 85 12
+52 D4 40 10 A6 D3 08 53 57 50 42 00 85 12 52 D4
+80 10 78 D4 06 52 52 41 85 12 52 D4 00 11 94 D4
+0A 52 52 41 2E 42 85 12 52 D4 40 11 86 D4 06 53
+58 54 85 12 52 D4 80 11 00 00 08 50 55 53 48 00
+85 12 52 D4 00 12 BA D4 0C 50 55 53 48 2E 42 00
+85 12 52 D4 40 12 AE D4 08 43 41 4C 4C 00 85 12
+52 D4 80 12 1A 53 0E 4A 84 12 0A CA 1E C4 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C5 D8 D4
+06 53 3E 3D 86 12 00 38 00 D5 04 53 3C 00 86 12
+00 34 C8 D4 06 30 3E 3D 86 12 00 30 14 D5 04 30
+3C 00 86 12 00 30 50 CF 04 55 3C 00 86 12 00 2C
+28 D5 06 55 3E 3D 86 12 00 28 1E D5 06 30 3C 3E
+86 12 00 24 3C D5 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D C2 D3 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D 32 D5 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F A0 D4 0A 42 45 47 49 4E 30 40
+32 C4 8A D5 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+46 D4 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 54 D5 B0 C8
+96 C9 A8 D5 0C 52 45 50 45 41 54 00 0D 12 84 12
+E8 D5 6C D5 96 C9 18 D6 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D 04 D6
+06 42 57 31 85 12 16 D6 00 00 30 D6 06 42 57 32
+85 12 16 D6 00 00 3C D6 06 42 57 33 85 12 16 D6
+00 00 54 D6 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 52 D6
+00 00 78 D6 06 46 57 32 85 12 52 D6 00 00 84 D6
+06 46 57 33 85 12 52 D6 00 00 F2 D5 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+8A CD 96 CC 96 C9 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F BE D2 0A C4 2C 00 1A CA 64 CB AC C4
+9A CD C8 C7 B4 D2 96 D2 EA D6 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 48 D6 08 52 52 43 4D 00 85 12
+D4 D6 50 00 18 D7 08 52 52 41 4D 00 85 12 D4 D6
+50 01 26 D7 08 52 4C 41 4D 00 85 12 D4 D6 50 02
+34 D7 08 52 52 55 4D 00 85 12 D4 D6 50 03 46 D5
+0A 50 55 53 48 4D 85 12 D4 D6 00 15 50 D7 08 50
+4F 50 4D 00 85 12 D4 D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 D2 C6 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 06 C6
+q
diff --git a/binaries/MSP_EXP430FR4133_16MHz_4MBds.txt b/binaries/MSP_EXP430FR4133_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..6392de8
--- /dev/null
@@ -0,0 +1,329 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A0 59
+D2 C6 7E C5 84 C5 54 C5 42 C7 6A D7 22 D0 DC CF
+DC CF B8 C6 76 C7 3E C7 3C 21 E0 20 96 C9 B6 C4
+C4 C4 B2 C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+42 C7 6A D7 22 D0 DC CF DC CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 04 3D 0E 93 3E 4F
+99 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B6 C6 B2 49
+74 C7 B2 49 3C C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 96 D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 42 C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 BC C8 AC C4 52 C5 84 C7 1E C4 04 1B
+5B 37 6D 00 A6 C7 A6 C7 1E C4 04 1B 5B 30 6D 00
+A6 C7 2C CD B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 03 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 84 C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 A6 C7 0A CA 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A6 C7 0A C4 40 FF 32 C4
+D2 C8 D6 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B2 00 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 D3 02 02 F2 D2 05 02 B2 D0 FF FE
+26 02 B2 43 22 02 B2 D3 46 02 B2 43 42 02 B2 D3
+66 02 B2 43 62 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
+F2 D0 06 00 2B 02 F2 C3 82 01 F2 D0 0A 00 82 01
+B2 40 E8 01 84 01 39 40 40 00 18 42 00 18 18 83
+FE 23 19 83 FA 23 39 40 00 08 29 83 89 43 00 20
+FC 23 19 42 5E 01 1E 42 08 18 82 43 08 18 3E F3
+01 20 0E 49 B0 12 D0 C4 86 C5 00 00 0C 41 43 43
+45 50 54 00 30 40 B8 C6 08 4E 2E 4F 08 5E 39 40
+0D 00 3A 40 20 00 3B 40 16 C7 3C 40 22 C7 5D 15
+97 3E 21 52 3A 17 58 42 0C 05 48 9B 09 20 A2 B3
+1C 05 FD 27 B2 40 13 00 0E 05 F2 D2 03 02 30 41
+48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 1C 05 FD 27
+C2 48 0E 05 30 4D 18 C7 2D 83 92 B3 1C 05 DB 23
+FC 3F 3E 8F 3D 41 92 B3 1C 05 FD 27 58 42 0C 05
+08 4C EB 3F 00 00 06 4B 45 59 30 40 3E C7 30 12
+54 C7 A2 B3 1C 05 FD 27 B2 40 11 00 0E 05 F2 C2
+03 02 30 41 2F 83 8F 4E 00 00 92 B3 1C 05 FD 27
+B0 12 DE C6 1E 42 0C 05 30 4D 00 00 08 45 4D 49
+54 00 30 40 76 C7 08 4E 3E 4F C7 3F 6C C7 08 45
+43 48 4F 00 B2 40 C2 48 10 C7 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D 10 C7 30 4D 00 00
+08 54 59 50 45 00 0D 12 3D 40 B6 C7 29 4F 8F 4E
+00 00 7E 49 DE 3F B8 C7 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 6D 22 F9 98 00 00 6A 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 61 22
+9B 24 36 C7 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A C4 00 00 D6 C8 C8 C7 1A CA 0E CD B0 C4 44 C8
+14 C4 06 5B 54 48 45 4E 5D 00 CC C7 22 C8 E8 C7
+06 C8 14 C4 06 5B 45 4C 53 45 5D 00 CC C7 34 C8
+E8 C7 04 C8 1E C4 04 5B 49 46 5D 00 CC C7 06 C8
+B2 C4 04 C8 1E C4 05 0D 6B 6F 20 0A A6 C7 9A C4
+84 C4 B2 C4 06 C8 F4 C7 0D 5B 54 48 45 4E 5D 00
+30 4D 58 C8 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 64 C8 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 C8 C7 1A CA 82 CA 60 CC 96 C9 74 C8 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 C8 C7
+1A CA 82 CA A6 C8 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D AC C6 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C5
+05 53 22 00 82 43 C0 21 0D 12 84 12 0A C4 1E C4
+BE CC 0A C4 22 00 1A CA 1A C9 B2 40 20 00 C0 21
+1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 8E C7
+05 2E 22 00 0D 12 84 12 04 C9 0A C4 A6 C7 BE CC
+96 C9 00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D
+00 C9 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4
+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
+52 C9 04 23 53 00 0D 12 84 12 54 C9 8E C9 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 82 C9 04 23 3E 00
+9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 9C C9 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+7E C7 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 48 C9 C8 C7 B6 C9 86 C9 B2 C8 C4 C9
+A0 C9 A6 C7 96 C9 30 C9 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42
+C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D D2 C9 06 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 08 CA 0E 3E 4E 55
+4D 42 45 52 1A 42 BE 21 2C 4F 0B 4E 68 4C 78 80
+3A 00 03 28 78 80 07 00 21 28 78 50 0A 00 08 9A
+22 C3 1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 32 CB
+D4 3F 34 CB 81 49 02 00 1C 4F 04 00 1E 41 04 00
+3D 40 46 CB CA 3F 48 CB 39 51 3E 61 8F 49 04 00
+8F 4E 02 00 3A 17 1C 53 1B 83 D8 23 8F 4C 00 00
+0E 4B 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 8F 43
+04 00 8F 43 02 00 1A 42 BE 21 0C 4E 0E 43 1E 15
+3D 40 C8 CB 7B 4C 68 4C 78 80 2D 00 16 24 BE 2F
+2A 43 78 52 14 24 3A 52 68 53 11 24 3A 40 10 00
+58 93 0D 24 68 92 40 20 3E 90 03 00 3D 20 FC 9C
+01 00 6C 4C 8F 4C 04 00 37 3C B1 43 02 00 1B 83
+FC 9C 00 00 E0 23 A2 27 CA CB 2E 24 2D 83 68 4C
+78 90 5F 00 C0 27 32 B0 00 02 26 20 32 D0 00 02
+78 80 2E 00 B8 27 68 53 1F 20 09 43 8F 49 02 00
+5B 83 09 4B 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9A 08 2C 8F 49 00 00
+0E 4A 2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4B 93 1D 17 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 44 C9 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 C4 C8 C7 1A CA B0 C4 98 CD 82 CA
+82 CC 0A 4E 3E 4F 3D 40 9C CC 6C 27 3D 40 76 CC
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 9E CC 3E 4F
+3D 40 76 CC 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 74 CE 2A 3C 66 CC 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D BC CC
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A C4 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D BE C9 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D E4 C8 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E C4 02 0D 0A 00 A6 C7 94 C4 70 CC
+C4 C8 EE C8 1E C4 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 C5 32 C4 0A C4 40 FF F6 C8 1E C4 09 46
+52 41 4D 20 66 75 6C 6C 08 C5 B2 C4 34 CD 1E CD
+0D 41 42 4F 52 54 22 00 0D 12 84 12 04 C9 0A C4
+08 C5 BE CC 96 C9 14 CA 02 27 0D 12 84 12 C8 C7
+1A CA 82 CA B0 C4 9A CD 28 C9 A6 CC 8E C8 07 5B
+27 5D 0D 12 84 12 8A CD 0A C4 0A C4 BE CC BE CC
+96 C9 9E CD 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D DC C8 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 C8 C7 1A CA 82 CA B0 C4 9A CD
+EE C8 AC C4 F2 CD 0A C4 0A C4 BE CC BE CC 0A C4
+BE CC BE CC 96 C9 00 00 02 3A 30 12 48 CE 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 C8 C7 1A CA 10 CE
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 C5 B4 CD 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A C4 96 C9 BE CC 5A CE B6 CD 96 C9
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D 08 CD 0C 43 52 45 41 54 45 00
+B0 12 FE CD BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+A0 C7 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D F8 CD 0E 3A 4E 4F
+4E 41 4D 45 30 12 48 CE 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+92 CE 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+8A CD 14 CF 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+A2 CD 0A C4 16 CF BE CC 96 C9 A8 CE 08 43 4F 44
+45 00 B0 12 FE CD A2 82 C8 21 61 3C B0 C9 0E 48
+44 4E 43 4F 44 45 B2 40 02 D0 CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 5A CE 60 CF
+3D 41 92 42 D0 21 CC 21 5D 3C 2C CF 0E 43 4F 44
+45 4E 4E 4D 30 12 36 CF B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F 3E CF
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F CA CF B2 40 DC CF D0 21
+82 4E CE 21 30 40 28 C9 85 12 C8 CF C8 CD 70 CD
+5A D0 6C CF C2 CE D4 CA 7C CA 88 CD B0 CF 02 CF
+DC CE 78 CE D0 CC E4 D0 FC CA 00 00 00 00 85 12
+C8 CF 5E D7 E2 D5 42 D7 0A D5 66 D5 B4 D5 90 D6
+9C D6 2C D4 50 D5 00 00 00 00 9E CF 1C D3 00 00
+B8 D6 FC CF B2 40 DC CF CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 30 D0 30 4D 42 D0 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 30 D0
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 C6 FE FF 29 83 B9 40
+F2 C5 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+EC FF 3B 40 10 00 3A 40 3A 18 B0 12 34 D0 82 43
+4A 18 C7 3F D6 D0 B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F BE CD 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 C8 C7 1A CA 82 CA AC C4 02 D1 BC C8
+96 CC 04 D1 3E 4F 3D 41 B2 41 C6 21 B0 12 FE CD
+BA 40 85 12 FC FF BA 40 D4 D0 FE FF 28 83 8A 48
+00 00 BA 40 82 C4 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 1A CA 82 CA AC C4 6E D1 4E D1 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+D4 D0 00 00 01 20 3E 52 2E 83 21 53 30 41 64 CB
+AC C4 76 D1 6A D1 78 D1 B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 3E D1 15 20
+3E 40 2B 00 B0 12 3E D1 06 20 3E 40 2D 00 B0 12
+3E D1 92 83 C6 21 0E 12 1E 41 02 00 84 12 1A CA
+64 CB AC C4 9A CD B8 D1 3E 51 3A 17 30 41 B0 12
+7E D1 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 1A CA
+64 CB AC C4 F0 D1 E8 D1 3E 90 10 00 E6 2B 7C 2D
+F2 D1 A2 41 C6 21 E1 3F 03 20 B0 12 D6 D1 43 3C
+7A 90 23 00 24 20 B0 12 86 D1 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 86 D1 F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 D2 D1 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 D6 D1 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 BE D1 F2 3F 03 20 B0 12 D6 D1 F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+BE D1 EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A C4 00 13
+BE CC 96 C9 0A C4 2C 00 B4 D2 F8 D1 C8 C7 BE D2
+96 D2 04 D3 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 F4 D2 00 40 10 D3 0A 4D 4F 56
+2E 42 85 12 F4 D2 40 40 00 00 06 41 44 44 85 12
+F4 D2 00 50 2A D3 0A 41 44 44 2E 42 85 12 F4 D2
+40 50 36 D3 08 41 44 44 43 00 85 12 F4 D2 00 60
+44 D3 0C 41 44 44 43 2E 42 00 85 12 F4 D2 40 60
+7C CF 08 53 55 42 43 00 85 12 F4 D2 00 70 62 D3
+0C 53 55 42 43 2E 42 00 85 12 F4 D2 40 70 70 D3
+06 53 55 42 85 12 F4 D2 00 80 80 D3 0A 53 55 42
+2E 42 85 12 F4 D2 40 80 8C D3 06 43 4D 50 85 12
+F4 D2 00 90 9A D3 0A 43 4D 50 2E 42 85 12 F4 D2
+40 90 00 00 08 44 41 44 44 00 85 12 F4 D2 00 A0
+B4 D3 0C 44 41 44 44 2E 42 00 85 12 F4 D2 40 A0
+E2 D2 06 42 49 54 85 12 F4 D2 00 B0 D2 D3 0A 42
+49 54 2E 42 85 12 F4 D2 40 B0 DE D3 06 42 49 43
+85 12 F4 D2 00 C0 EC D3 0A 42 49 43 2E 42 85 12
+F4 D2 40 C0 F8 D3 06 42 49 53 85 12 F4 D2 00 D0
+06 D4 0A 42 49 53 2E 42 85 12 F4 D2 40 D0 00 00
+06 58 4F 52 85 12 F4 D2 00 E0 20 D4 0A 58 4F 52
+2E 42 85 12 F4 D2 40 E0 52 D3 06 41 4E 44 85 12
+F4 D2 00 F0 3A D4 0A 41 4E 44 2E 42 85 12 F4 D2
+40 F0 C8 C7 B4 D2 F8 D1 5A D4 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F 12 D4 06 52 52 43
+85 12 52 D4 00 10 6C D4 0A 52 52 43 2E 42 85 12
+52 D4 40 10 A6 D3 08 53 57 50 42 00 85 12 52 D4
+80 10 78 D4 06 52 52 41 85 12 52 D4 00 11 94 D4
+0A 52 52 41 2E 42 85 12 52 D4 40 11 86 D4 06 53
+58 54 85 12 52 D4 80 11 00 00 08 50 55 53 48 00
+85 12 52 D4 00 12 BA D4 0C 50 55 53 48 2E 42 00
+85 12 52 D4 40 12 AE D4 08 43 41 4C 4C 00 85 12
+52 D4 80 12 1A 53 0E 4A 84 12 0A CA 1E C4 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C5 D8 D4
+06 53 3E 3D 86 12 00 38 00 D5 04 53 3C 00 86 12
+00 34 C8 D4 06 30 3E 3D 86 12 00 30 14 D5 04 30
+3C 00 86 12 00 30 50 CF 04 55 3C 00 86 12 00 2C
+28 D5 06 55 3E 3D 86 12 00 28 1E D5 06 30 3C 3E
+86 12 00 24 3C D5 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D C2 D3 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D 32 D5 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F A0 D4 0A 42 45 47 49 4E 30 40
+32 C4 8A D5 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+46 D4 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 54 D5 B0 C8
+96 C9 A8 D5 0C 52 45 50 45 41 54 00 0D 12 84 12
+E8 D5 6C D5 96 C9 18 D6 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D 04 D6
+06 42 57 31 85 12 16 D6 00 00 30 D6 06 42 57 32
+85 12 16 D6 00 00 3C D6 06 42 57 33 85 12 16 D6
+00 00 54 D6 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 52 D6
+00 00 78 D6 06 46 57 32 85 12 52 D6 00 00 84 D6
+06 46 57 33 85 12 52 D6 00 00 F2 D5 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+8A CD 96 CC 96 C9 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F BE D2 0A C4 2C 00 1A CA 64 CB AC C4
+9A CD C8 C7 B4 D2 96 D2 EA D6 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 48 D6 08 52 52 43 4D 00 85 12
+D4 D6 50 00 18 D7 08 52 52 41 4D 00 85 12 D4 D6
+50 01 26 D7 08 52 4C 41 4D 00 85 12 D4 D6 50 02
+34 D7 08 52 52 55 4D 00 85 12 D4 D6 50 03 46 D5
+0A 50 55 53 48 4D 85 12 D4 D6 00 15 50 D7 08 50
+4F 50 4D 00 85 12 D4 D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 D2 C6 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 06 C6
+q
index 1b36a1a..af84ef9 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF 2E D8 2A D0 34 01
-10 00 41 87 B6 C5 AA C4 B8 C5 8C C5 82 C6 2E D8
-2A D0 70 C6 80 C7 FE C6 DA C6 3C 21 4E C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 43
+CC C6 56 C5 56 C5 58 C5 44 C5 46 D7 FE CF B8 CF
+B8 CF BA C6 3E C7 16 C7 3C 21 E0 20 72 C9 B6 C4
+C4 C4 8E C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 46 D7 FE CF B8 CF B8 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 6E C6 B2 49 7E C7 B2 49 FC C6 B2 49 D8 C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 F6 D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 CE C7 16 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7
-C4 C8 96 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C7 8E C8 4A C7
-14 C4 04 1B 5B 30 6D 00 4A C7 50 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 4A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 E2 B2 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00 B0 12
-8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4 07 0D
-0A 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7 C4 C8
-0A C4 23 00 FA C6 C4 C8 14 C4 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 4A C7 0A C4 40 FF 28 C4 C2 C7 8E C8
-14 C4 0A 62 79 74 65 73 20 66 72 65 65 00 3A C4
-7E C5 00 00 06 41 43 43 45 50 54 00 30 40 70 C6
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C6 2F 83 8F 4E 00 00
-58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C6 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 C6
-04 45 43 48 4F 00 B2 40 C2 48 08 C7 82 43 DE 21
-38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C7 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C7 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C6 68 C7 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40 80 C7
-0D 12 84 12 14 C4 02 0D 0A 00 4A C7 4E C8 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C6 01 40 2E 4E
-30 4D CC C7 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 C7 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E C4 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 08 C8 02 23 53 00 0D 12 84 12
-0A C8 44 C8 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C8 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C7 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C7
-3C C8 EE C4 7C C8 58 C8 4A C7 3C CC FA C6 4E C8
-2C C7 01 2E 0E 93 E3 37 38 43 E2 3F 76 C8 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4 82 CB
-0A C4 22 00 1A C9 E8 C8 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 C8
-82 2E 22 00 0D 12 84 12 D2 C8 0A C4 4A C7 82 CB
-4E C8 F8 C5 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C4 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4 30 4D
-8A C8 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 00 00 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
-44 CA D2 3F 46 CA 81 49 02 00 1C 4F 04 00 1E 41
-04 00 3D 40 58 CA C8 3F 5A 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 32 C0 00 02 1B 42 DC 21 0C 43
-2D 15 3D 40 D8 CA 0A 4B 3F 82 8F 4E 06 00 8F 43
-04 00 8F 43 02 00 0C 4E 7B 4C FC 90 27 00 00 00
-06 20 DF 4C 01 00 04 00 7E 90 03 00 47 3C 68 4C
-78 80 2D 00 04 28 B1 23 B1 43 02 00 0A 3C 2A 43
-78 52 07 24 3A 52 68 53 04 24 3A 40 10 00 78 53
-35 20 1C 53 1B 83 EB 3F DA CA 30 24 2D 83 78 90
-28 00 C2 27 32 B0 00 02 29 20 32 D0 00 02 78 90
-F7 00 BA 27 78 90 F5 00 21 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 66 C4 2A 17 E6 3F
-9F 4F 04 00 02 00 AF 4F 04 00 4B 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 00 00
-01 2C 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F
-30 4D 80 CB 87 4C 49 54 45 52 41 4C 82 93 BE 21
-0D 24 09 4E 1A 42 C6 21 A2 52 C6 21 BA 40 0A C4
-00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
-03 24 8A 4E 02 00 EE 3F 30 4D 54 C8 05 43 4F 55
-4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF 30 4D
-68 C8 09 49 4E 54 45 52 50 52 45 54 0D 12 84 12
-AC C4 3C CC 1A C9 F8 CB 7F 26 3D 40 00 CC C1 3E
-02 CC 0A 4E 3E 4F 3D 40 1C CC 35 27 3D 40 F2 CB
-1A E2 BE 21 B6 27 0E 12 3E 4F 30 41 1E CC 3E 4F
-3D 40 F2 CB BB 23 DE 53 00 00 68 4E 08 5E F8 40
-3F 00 00 00 3D 40 BE CD CC 3F 26 CC 86 12 20 00
-D4 C7 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
-3F 40 80 20 0E 43 31 40 E0 20 B2 40 00 20 00 20
-82 43 BE 21 84 12 7C C7 BC C4 EC CB B2 C7 E4 C7
-14 C4 0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00
-2A C5 0A C4 40 FF 28 C4 EC C7 14 C4 0A 46 52 41
-4D 20 66 75 6C 6C 21 00 2A C5 3A C4 66 CC 42 CC
-86 41 42 4F 52 54 22 00 0D 12 84 12 D2 C8 0A C4
-2A C5 82 CB 4E C8 7C C9 01 27 0D 12 84 12 3C CC
-1A C9 82 C9 34 C4 3A CC 4E C8 00 00 83 5B 27 5D
-0D 12 84 12 BA CC 0A C4 0A C4 82 CB 82 CB 4E C8
-CC CC 81 5B 82 43 BE 21 30 4D FA C7 01 5D B2 43
-BE 21 30 4D EC CC 81 5C 92 42 C0 21 C4 21 30 4D
-00 00 88 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
-3C CC 1A C9 82 C9 96 C7 34 C4 3A CC E4 C7 34 C4
-2E CD 0A C4 0A C4 82 CB 82 CB 0A C4 82 CB 82 CB
-4E C8 E2 CC 01 3A 30 12 7E CD 92 B3 C6 21 A2 63
-C6 21 0D 12 84 12 3C CC 1A C9 4C 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 BA 40
-0D 12 FC FF BA 40 84 12 FE FF B2 43 BE 21 30 4D
-82 9F BC 21 09 20 18 42 B6 21 19 42 B8 21 A8 49
-FE FF 89 48 00 00 30 4D 0D 12 84 12 14 C4 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 36 C5
-34 CD 81 3B 82 93 BE 21 97 27 0D 12 84 12 0A C4
-4E C8 82 CB 90 CD E4 CC 4E C8 E2 CB 09 49 4D 4D
-45 44 49 41 54 45 18 42 B6 21 F8 D0 80 00 00 00
-30 4D CC CB 06 43 52 45 41 54 45 00 B0 12 3A CD
-BA 40 86 12 FC FF 8A 4A FE FF C9 3F F4 CD 04 43
-4F 44 45 00 B0 12 3A CD A2 82 C6 21 0D 12 84 12
-2C D0 06 D0 4E C8 DC CD 07 48 44 4E 43 4F 44 45
-B2 40 0A D0 DA 21 EE 3F 00 00 07 45 4E 44 43 4F
-44 45 0D 12 84 12 90 CD 46 D0 64 D0 4E C8 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 0D 12 00 00
-BA 40 84 12 02 00 A2 52 C6 21 B2 43 BE 21 0D 12
-84 12 46 D0 64 D0 4E C8 00 00 05 4C 4F 32 48 49
-A2 83 C6 21 1A 42 C6 21 EB 3F 28 CE 85 48 49 32
-4C 4F 0D 12 84 12 28 C4 D4 CF 82 CB E4 CC 1C CE
-4E C8 C2 CD 86 5B 54 48 45 4E 5D 00 30 4D 0C 4E
-38 4F 3B 4F 39 4F 0E 4B 0E 5C 10 24 1B 83 06 30
-1C 83 04 30 19 53 F9 98 FF FF F5 27 2D 4D 3E 4F
-30 4D 2F 53 9F 83 00 00 F9 23 2F 53 2D 53 F7 3F
-A4 CE 86 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C4
-00 00 C6 C7 3C CC 1A C9 D2 CB 8E C7 34 C4 3C CF
-9C C7 14 C4 06 5B 54 48 45 4E 5D 00 AE CE 16 CF
-D2 CE F4 CE 4E C8 9C C7 14 C4 06 5B 45 4C 53 45
-5D 00 AE CE 2C CF D2 CE F2 CE 4E C8 14 C4 04 5B
-49 46 5D 00 AE CE F4 CE 3A C4 F2 CE 70 C7 14 C4
-05 0D 0A 6B 6F 20 4A C7 BC C4 AC C4 3A C4 F4 CE
-E2 CE 84 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
-2F 53 30 4D 52 CF 89 5B 44 45 46 49 4E 45 44 5D
-0D 12 84 12 3C CC 1A C9 82 C9 60 CF 4E C8 66 CF
-8B 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
-70 CF DE C7 4E C8 98 CF B2 4E 0A 18 2E 53 BE 12
-3E 4F 3D 41 90 3C 94 CB 06 4D 41 52 4B 45 52 00
-B0 12 3A CD BA 40 85 12 FC FF BA 40 96 CF FE FF
-28 83 8A 48 00 00 BA 40 AA C4 04 00 B2 50 06 00
-C6 21 E1 3E 2E 53 30 4D 0A C4 CA 21 D6 C7 4E C8
-85 12 D8 CF A0 CC 0E CE 10 C7 B8 CC 8C CE D2 C6
-A8 CF 00 C9 D0 D0 E4 D0 E2 C9 14 C9 00 00 80 CF
-F6 CC 0A CA 00 00 85 12 D8 CF A4 D6 0A D7 4C D6
-5A D7 12 D6 00 00 DE D3 00 00 22 D8 06 D8 76 D6
-B4 D6 EE D4 00 00 00 00 76 D7 04 D0 3A 40 0C 00
-39 40 D6 21 08 49 28 53 19 83 18 83 E8 49 00 00
-1A 83 FA 23 30 4D 3A 40 0E 00 38 40 CA 21 09 48
-29 53 F8 49 00 00 18 53 1A 83 FB 23 30 4D 82 43
-CC 21 30 4D 92 42 CA 21 DA 21 30 4D E0 CF 5E D0
-64 D0 74 D0 1A 42 20 18 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 02 CD 09 50 57 52 5F 53
-54 41 54 45 85 12 6C D0 2E D8 CE C8 09 52 53 54
-5F 53 54 41 54 45 92 42 0A 18 B8 D0 F3 3F AA D0
-08 50 57 52 5F 48 45 52 45 00 92 42 C6 21 B8 D0
-30 4D BC D0 08 52 53 54 5F 48 45 52 45 00 92 42
-C6 21 0A 18 F2 3F 3E 90 0E 00 DC 27 2E 92 E3 37
-0E 93 D8 37 39 40 10 00 29 83 B9 43 80 FF FC 23
-B9 40 42 D1 FE FF 29 83 B9 40 E2 C5 FE FF 39 90
-AE FF F9 23 39 40 14 18 B2 49 E4 C5 B2 49 FA C4
-B2 49 02 C4 B2 49 00 C6 B2 49 EA FF B2 49 0A 18
-C2 3F B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40
-80 5A CC 01 31 40 E0 20 3F 40 80 20 39 40 00 08
-29 83 89 43 00 20 FC 23 B2 D3 06 02 B2 D3 02 02
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 05 3D 0E 93 3E 4F
+87 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B8 C6 B2 49
+3C C7 B2 49 14 C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 72 D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 98 C8 AC C4
+42 C5 56 C7 1E C4 05 1B 5B 37 6D 40 82 C7 0A C4
+02 18 BA C8 E6 C9 82 C7 1E C4 04 1B 5B 30 6D 00
+82 C7 08 CD 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+4A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 56 C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 82 C7 0A C4 02 18 BA C8 E6 C9 0A C4 23 00
+3A C7 E6 C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+82 C7 0A C4 40 FF 32 C4 AE C8 B2 C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B2
+00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 D3 06 02 B2 D3 02 02
 B2 D0 FF FE 26 02 B2 43 22 02 B2 D3 46 02 B2 43
 42 02 B2 D3 66 02 B2 43 62 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 82 43 88 01 F2 D0 06 00 2B 02 39 40 40 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 1E 42 08 18
-82 43 08 18 1E D2 5E 01 B0 12 F8 C4 FE C5 38 40
-C0 21 0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21
-30 4D 1C 15 0E 12 12 12 C4 21 84 12 1A C9 82 C9
-DE C7 34 C4 1E D2 76 CA 34 C4 38 D2 32 D2 20 D2
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 3A D2 B2 41 C4 21 3E 41
-84 12 0A C4 2B 00 1A C9 82 C9 DE C7 34 C4 56 D2
-76 CA 34 C4 3A CC A8 C7 1A C9 76 CA 34 C4 3A CC
-62 D2 3E 5F E7 3F 3E 40 28 00 B0 12 02 D2 19 42
-C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92
-C0 21 C4 21 02 20 30 40 A8 CD 1C 15 12 12 C4 21
-92 53 C4 21 84 12 1A C9 76 CA 34 C4 AA D2 A0 D2
-21 53 3E 90 10 00 C6 2B 7F 2D AC D2 B2 41 C4 21
-C1 3F 0D 12 84 12 3C CC DE D1 BC D2 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 02 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 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 02 D2
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
-B0 12 8A D2 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-8A D2 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
-0C 5E DA 3F B0 12 8A D2 FA 23 3C 50 10 00 B0 12
-66 D2 EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12
-84 12 3C CC DE D1 88 D3 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 8A D2 E0 23
-3C 50 80 00 B0 12 66 D2 DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A C4 00 13 82 CB 4E C8 0A C4
-2C 00 B2 D2 7E D3 C8 D3 09 4B 2E 4E 0E DC A2 3F
-7A CE 03 4D 4F 56 85 12 BE D3 00 40 D2 D3 05 4D
-4F 56 2E 42 85 12 BE D3 40 40 00 00 03 41 44 44
-85 12 BE D3 00 50 EC D3 05 41 44 44 2E 42 85 12
-BE D3 40 50 F8 D3 04 41 44 44 43 00 85 12 BE D3
-00 60 06 D4 06 41 44 44 43 2E 42 00 85 12 BE D3
-40 60 AC D3 04 53 55 42 43 00 85 12 BE D3 00 70
-24 D4 06 53 55 42 43 2E 42 00 85 12 BE D3 40 70
-32 D4 03 53 55 42 85 12 BE D3 00 80 42 D4 05 53
-55 42 2E 42 85 12 BE D3 40 80 50 CE 03 43 4D 50
-85 12 BE D3 00 90 5C D4 05 43 4D 50 2E 42 85 12
-BE D3 40 90 3A CE 04 44 41 44 44 00 85 12 BE D3
-00 A0 76 D4 06 44 41 44 44 2E 42 00 85 12 BE D3
-40 A0 68 D4 03 42 49 54 85 12 BE D3 00 B0 94 D4
-05 42 49 54 2E 42 85 12 BE D3 40 B0 A0 D4 03 42
-49 43 85 12 BE D3 00 C0 AE D4 05 42 49 43 2E 42
-85 12 BE D3 40 C0 BA D4 03 42 49 53 85 12 BE D3
-00 D0 C8 D4 05 42 49 53 2E 42 85 12 BE D3 40 D0
-00 00 03 58 4F 52 85 12 BE D3 00 E0 E2 D4 05 58
-4F 52 2E 42 85 12 BE D3 40 E0 14 D4 03 41 4E 44
-85 12 BE D3 00 F0 FC D4 05 41 4E 44 2E 42 85 12
-BE D3 40 F0 3C CC B2 D2 1A D5 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 4E D4 03 52 52 43
-85 12 14 D5 00 10 2C D5 05 52 52 43 2E 42 85 12
-14 D5 40 10 38 D5 04 53 57 50 42 00 85 12 14 D5
-80 10 46 D5 03 52 52 41 85 12 14 D5 00 11 54 D5
-05 52 52 41 2E 42 85 12 14 D5 40 11 60 D5 03 53
-58 54 85 12 14 D5 80 11 00 00 04 50 55 53 48 00
-85 12 14 D5 00 12 7A D5 06 50 55 53 48 2E 42 00
-85 12 14 D5 40 12 D4 D4 04 43 41 4C 4C 00 85 12
-14 D5 80 12 1A 53 0E 4A 0D 12 84 12 C4 C8 14 C4
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 C5
-6E D5 03 53 3E 3D 86 12 00 38 C2 D5 02 53 3C 00
-86 12 00 34 88 D5 03 30 3E 3D 86 12 00 30 D6 D5
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C EA D5 03 55 3E 3D 86 12 00 28 E0 D5 03 30
-3C 3E 86 12 00 24 FE D5 02 30 3D 00 86 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 F4 D5 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 B1 2F 88 DA 00 00 30 4D 84 D4 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 98 D5 05 42 45 47 49 4E
-30 40 28 C4 28 D6 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
-30 4D 08 D5 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 16 D6
-A8 C7 4E C8 CC D5 06 52 45 50 45 41 54 00 0D 12
-84 12 AA D6 2E D6 4E C8 DA D6 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D
-6A D6 03 42 57 31 85 12 D8 D6 00 00 F2 D6 03 42
-57 32 85 12 D8 D6 00 00 FE D6 03 42 57 33 85 12
-D8 D6 00 00 16 D7 3D 41 1A 42 C6 21 28 4E B2 92
-C4 21 88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 14 D7 00 00
-36 D7 03 46 57 32 85 12 14 D7 00 00 42 D7 03 46
-57 33 85 12 14 D7 00 00 4E D7 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 BA CC
-16 CC 4E C8 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 3C CC DE D1 98 D7 92 53 C4 21 3E 40 2C 00
-84 12 1A C9 76 CA 34 C4 3A CC 74 D3 AE D7 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E C6 D6 04 52 52 43
-4D 00 85 12 92 D7 50 00 DC D7 04 52 52 41 4D 00
-85 12 92 D7 50 01 EA D7 04 52 4C 41 4D 00 85 12
-92 D7 50 02 F8 D7 04 52 52 55 4D 00 85 12 92 D7
-50 03 08 D6 05 50 55 53 48 4D 85 12 92 D7 00 15
-14 D8 04 50 4F 50 4D 00 85 12 92 D7 00 17
+82 43 88 01 F2 D0 06 00 2B 02 F2 C3 82 01 F2 D0
+0A 00 82 01 B2 40 E8 01 84 01 39 40 40 00 18 42
+00 18 18 83 FE 23 19 83 FA 23 39 40 00 08 29 83
+89 43 00 20 FC 23 1E 42 08 18 82 43 08 18 3E F3
+02 20 1E 42 5E 01 B0 12 D0 C4 80 C5 00 00 0C 41
+43 43 45 50 54 00 30 40 BA C6 0A 4E 2E 4F 0A 5E
+3B 40 0A 00 3C 40 20 00 3D 15 9A 3E 21 52 A2 C2
+6C 05 B2 B0 10 00 40 05 93 22 3A 17 92 B3 6C 05
+FD 27 58 42 4C 05 48 9B 0E 24 48 9C 06 2C 78 92
+F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48
+00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00 06 4B
+45 59 30 40 16 C7 58 43 B0 12 46 C5 2F 83 8F 4E
+00 00 92 B3 6C 05 FD 27 1E 42 4C 05 B0 12 44 C5
+30 4D 00 00 08 45 4D 49 54 00 30 40 3E C7 08 4E
+3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D 34 C7
+08 45 43 48 4F 00 B2 40 C2 48 48 C7 38 40 05 00
+B0 12 46 C5 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 48 C7 28 42 F3 3F 00 00 08 54 59 50
+45 00 0D 12 3D 40 92 C7 29 4F 8F 4E 00 00 7E 49
+D4 3F 94 C7 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53
+3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F
+3E 4F 7F 22 F9 98 00 00 7C 22 19 53 1C 83 FA 23
+2D 53 30 4D 2F 53 3E 4F 1E 83 73 22 9B 24 0E C7
+0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C4 00 00
+B2 C8 A4 C7 F6 C9 EA CC B0 C4 20 C8 14 C4 06 5B
+54 48 45 4E 5D 00 A8 C7 FE C7 C4 C7 E2 C7 14 C4
+06 5B 45 4C 53 45 5D 00 A8 C7 10 C8 C4 C7 E0 C7
+1E C4 04 5B 49 46 5D 00 A8 C7 E2 C7 B2 C4 E0 C7
+1E C4 05 0D 6B 6F 20 0A 82 C7 9A C4 84 C4 B2 C4
+E2 C7 D0 C7 0D 5B 54 48 45 4E 5D 00 30 4D 34 C8
+09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D 40 C8
+13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 A4 C7
+F6 C9 5E CA 3C CC 72 C9 50 C8 17 5B 55 4E 44 45
+46 49 4E 45 44 5D 0D 12 84 12 A4 C7 F6 C9 5E CA
+82 C8 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83
+8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D
+8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F
+3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D AE C6
+02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3
+30 4D 3E 8F 01 28 0E F3 30 4D E0 C5 05 53 22 00
+82 43 C0 21 0D 12 84 12 0A C4 1E C4 9A CC 0A C4
+22 00 F6 C9 F6 C8 B2 40 20 00 C0 21 1A 53 1A B3
+82 6A C8 21 3E 4F 3D 41 30 4D 68 C7 05 2E 22 00
+0D 12 84 12 E0 C8 0A C4 82 C7 9A CC 72 C9 00 00
+04 3C 23 00 B2 40 B2 21 B2 21 30 4D DC C8 02 23
+1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4 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 2E C9 04 23
+53 00 0D 12 84 12 30 C9 6A C9 2D 83 09 DE 09 93
+E1 23 3D 41 30 4D 5E C9 04 23 3E 00 9F 42 B2 21
+00 00 3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C
+44 00 4A 4E 3E 4F DB 3F 78 C9 08 53 49 47 4E 00
+0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 50 C7 04 55
+2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3
+06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
+24 C9 A4 C7 92 C9 62 C9 8E C8 A0 C9 7C C9 82 C7
+72 C9 0C C9 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00
+08 57 4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58
+38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42
+C0 21 F8 90 27 00 00 00 04 20 E8 98 02 00 01 20
+0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24
+1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B
+F0 3F 18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E
+CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83
+0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00
+78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93
+F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99
+01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49
+6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D AE C9
+06 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 E4 C9 0E 3E 4E 55 4D 42 45 52
+1A 42 BE 21 2C 4F 0B 4E 68 4C 78 80 3A 00 03 28
+78 80 07 00 21 28 78 50 0A 00 08 9A 22 C3 1C 2C
+5D 15 1C 4F 02 00 0E 4A 3D 40 0E CB D4 3F 10 CB
+81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40 22 CB
+CA 3F 24 CB 39 51 3E 61 8F 49 04 00 8F 4E 02 00
+3A 17 1C 53 1B 83 D8 23 8F 4C 00 00 0E 4B 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 8F 43 04 00 8F 43
+02 00 1A 42 BE 21 0C 4E 0E 43 1E 15 3D 40 A4 CB
+7B 4C 68 4C 78 80 2D 00 16 24 BE 2F 2A 43 78 52
+14 24 3A 52 68 53 11 24 3A 40 10 00 58 93 0D 24
+68 92 40 20 3E 90 03 00 3D 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 37 3C B1 43 02 00 1B 83 FC 9C 00 00
+E0 23 A2 27 A6 CB 2E 24 2D 83 68 4C 78 90 5F 00
+C0 27 32 B0 00 02 26 20 32 D0 00 02 78 80 2E 00
+B8 27 68 53 1F 20 09 43 8F 49 02 00 5B 83 09 4B
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9A 08 2C 8F 49 00 00 0E 4A 2C 15
+B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4B 93 1D 17 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
+20 C9 03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12
+84 C4 A4 C7 F6 C9 B0 C4 74 CD 5E CA 5E CC 0A 4E
+3E 4F 3D 40 78 CC 6C 27 3D 40 52 CC 1A E2 BC 21
+14 24 0E 12 3E 4F 30 41 7A CC 3E 4F 3D 40 52 CC
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 50 CE 2A 3C 42 CC 02 2C A2 53 C8 21 1A 42
+C8 21 8A 4E FE FF 3E 4F 30 4D 98 CC 0F 4C 49 54
+45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21
+A2 52 C8 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D 9A C9 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D C0 C8 0A 41 4C 4C 4F 54
+82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12
+1E C4 02 0D 0A 00 82 C7 94 C4 4C CC A0 C8 CA C8
+1E C4 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 C5
+32 C4 0A C4 40 FF D2 C8 1E C4 09 46 52 41 4D 20
+66 75 6C 6C 08 C5 B2 C4 10 CD FA CC 0D 41 42 4F
+52 54 22 00 0D 12 84 12 E0 C8 0A C4 08 C5 9A CC
+72 C9 F0 C9 02 27 0D 12 84 12 A4 C7 F6 C9 5E CA
+B0 C4 76 CD 04 C9 82 CC 6A C8 07 5B 27 5D 0D 12
+84 12 66 CD 0A C4 0A C4 9A CC 9A CC 72 C9 7A CD
+03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21
+30 4D B8 C8 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 A4 C7 F6 C9 5E CA B0 C4 76 CD CA C8 AC C4
+CE CD 0A C4 0A C4 9A CC 9A CC 0A C4 9A CC 9A CC
+72 C9 00 00 02 3A 30 12 24 CE 92 B3 C8 21 A2 63
+C8 21 0D 12 84 12 A4 C7 F6 C9 EC CD 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21
+82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A
+C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12 1E C4
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 C5 90 CD 03 3B 82 93 BC 21 F4 26 0D 12 84 12
+0A C4 72 C9 9A CC 36 CE 92 CD 72 C9 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00
+30 4D E4 CC 0C 43 52 45 41 54 45 00 B0 12 DA CD
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 7C C7 0A 44
+4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D D4 CD 0E 3A 4E 4F 4E 41 4D 45
+30 12 24 CE 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 6E CE 05 49
+53 00 0D 12 82 93 BC 21 08 20 84 12 66 CD F0 CE
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 7E CD 0A C4
+F2 CE 9A CC 72 C9 84 CE 08 43 4F 44 45 00 B0 12
+DA CD A2 82 C8 21 61 3C 8C C9 0E 48 44 4E 43 4F
+44 45 B2 40 DE CF CC 21 F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 36 CE 3C CF 3D 41 92 42
+D0 21 CC 21 5D 3C 08 CF 0E 43 4F 44 45 4E 4E 4D
+30 12 12 CF B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 21 1A 42 C8 21 EF 3F 1A CF 0B 48 49 32
+4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43
+BC 21 B9 3F A6 CF B2 40 B8 CF D0 21 82 4E CE 21
+30 40 04 C9 85 12 A4 CF A4 CD 4C CD 36 D0 48 CF
+9E CE B0 CA 58 CA 64 CD 8C CF DE CE B8 CE 54 CE
+AC CC C0 D0 D8 CA 00 00 00 00 85 12 A4 CF 3A D7
+BE D5 1E D7 E6 D4 42 D5 90 D5 6C D6 78 D6 08 D4
+2C D5 00 00 00 00 7A CF F8 D2 00 00 94 D6 D8 CF
+B2 40 B8 CF CE 21 82 43 D0 21 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12
+0C D0 30 4D 1E D0 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 21 B0 12 0C D0 1A 42 CA 21
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 0E C6 FE FF 29 83 B9 40 FA C5 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 EA FF 3B 40
+10 00 3A 40 3A 18 B0 12 10 D0 82 43 4A 18 C7 3F
+B2 D0 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 9A CD
+0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12
+A4 C7 F6 C9 5E CA AC C4 DE D0 98 C8 72 CC E0 D0
+3E 4F 3D 41 B2 41 C6 21 B0 12 DA CD BA 40 85 12
+FC FF BA 40 B0 D0 FE FF 28 83 8A 48 00 00 BA 40
+82 C4 02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12
+F6 C9 5E CA AC C4 4A D1 2A D1 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 B0 D0 00 00
+01 20 3E 52 2E 83 21 53 30 41 40 CB AC C4 52 D1
+46 D1 54 D1 B2 41 C6 21 30 41 92 83 C6 21 3E 40
+28 00 0A 4E 3D 15 B0 12 1A D1 15 20 3E 40 2B 00
+B0 12 1A D1 06 20 3E 40 2D 00 B0 12 1A D1 92 83
+C6 21 0E 12 1E 41 02 00 84 12 F6 C9 40 CB AC C4
+76 CD 94 D1 3E 51 3A 17 30 41 B0 12 5A D1 19 42
+C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53
+C6 21 1A 42 C6 21 3D 15 84 12 F6 C9 40 CB AC C4
+CC D1 C4 D1 3E 90 10 00 E6 2B 7C 2D CE D1 A2 41
+C6 21 E1 3F 03 20 B0 12 B2 D1 43 3C 7A 90 23 00
+24 20 B0 12 62 D1 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 C8 21 A2 53
+C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 62 D1 F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 AE D1 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 B2 D1 92 92 C2 21 C6 21 02 24 92 53
+C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 9A D1
+F2 3F 03 20 B0 12 B2 D1 F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 9A D1 EA 3F
+0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42
+C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82
+C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A C4 00 13 9A CC 72 C9
+0A C4 2C 00 90 D2 D4 D1 A4 C7 9A D2 72 D2 E0 D2
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 D0 D2 00 40 EC D2 0A 4D 4F 56 2E 42 85 12
+D0 D2 40 40 00 00 06 41 44 44 85 12 D0 D2 00 50
+06 D3 0A 41 44 44 2E 42 85 12 D0 D2 40 50 12 D3
+08 41 44 44 43 00 85 12 D0 D2 00 60 20 D3 0C 41
+44 44 43 2E 42 00 85 12 D0 D2 40 60 58 CF 08 53
+55 42 43 00 85 12 D0 D2 00 70 3E D3 0C 53 55 42
+43 2E 42 00 85 12 D0 D2 40 70 4C D3 06 53 55 42
+85 12 D0 D2 00 80 5C D3 0A 53 55 42 2E 42 85 12
+D0 D2 40 80 68 D3 06 43 4D 50 85 12 D0 D2 00 90
+76 D3 0A 43 4D 50 2E 42 85 12 D0 D2 40 90 00 00
+08 44 41 44 44 00 85 12 D0 D2 00 A0 90 D3 0C 44
+41 44 44 2E 42 00 85 12 D0 D2 40 A0 BE D2 06 42
+49 54 85 12 D0 D2 00 B0 AE D3 0A 42 49 54 2E 42
+85 12 D0 D2 40 B0 BA D3 06 42 49 43 85 12 D0 D2
+00 C0 C8 D3 0A 42 49 43 2E 42 85 12 D0 D2 40 C0
+D4 D3 06 42 49 53 85 12 D0 D2 00 D0 E2 D3 0A 42
+49 53 2E 42 85 12 D0 D2 40 D0 00 00 06 58 4F 52
+85 12 D0 D2 00 E0 FC D3 0A 58 4F 52 2E 42 85 12
+D0 D2 40 E0 2E D3 06 41 4E 44 85 12 D0 D2 00 F0
+16 D4 0A 41 4E 44 2E 42 85 12 D0 D2 40 F0 A4 C7
+90 D2 D4 D1 36 D4 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F EE D3 06 52 52 43 85 12 2E D4
+00 10 48 D4 0A 52 52 43 2E 42 85 12 2E D4 40 10
+82 D3 08 53 57 50 42 00 85 12 2E D4 80 10 54 D4
+06 52 52 41 85 12 2E D4 00 11 70 D4 0A 52 52 41
+2E 42 85 12 2E D4 40 11 62 D4 06 53 58 54 85 12
+2E D4 80 11 00 00 08 50 55 53 48 00 85 12 2E D4
+00 12 96 D4 0C 50 55 53 48 2E 42 00 85 12 2E D4
+40 12 8A D4 08 43 41 4C 4C 00 85 12 2E D4 80 12
+1A 53 0E 4A 84 12 E6 C9 1E C4 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 C5 B4 D4 06 53 3E 3D
+86 12 00 38 DC D4 04 53 3C 00 86 12 00 34 A4 D4
+06 30 3E 3D 86 12 00 30 F0 D4 04 30 3C 00 86 12
+00 30 2C CF 04 55 3C 00 86 12 00 2C 04 D5 06 55
+3E 3D 86 12 00 28 FA D4 06 30 3C 3E 86 12 00 24
+18 D5 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D
+9E D3 08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D 0E D5 08 45 4C 53 45 00 1A 42 C8 21
+BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00
+E3 3F 7C D4 0A 42 45 47 49 4E 30 40 32 C4 66 D5
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 21 30 4D 22 D4 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 30 D5 8C C8 72 C9 84 D5
+0C 52 45 50 45 41 54 00 0D 12 84 12 C4 D5 48 D5
+72 C9 F4 D5 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21
+CB 2F 98 42 C8 21 00 00 30 4D E0 D5 06 42 57 31
+85 12 F2 D5 00 00 0C D6 06 42 57 32 85 12 F2 D5
+00 00 18 D6 06 42 57 33 85 12 F2 D5 00 00 30 D6
+3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21
+86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 2E D6 00 00 54 D6
+06 46 57 32 85 12 2E D6 00 00 60 D6 06 46 57 33
+85 12 2E D6 00 00 CE D5 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 66 CD 72 CC
+72 C9 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+9A D2 0A C4 2C 00 F6 C9 40 CB AC C4 76 CD A4 C7
+90 D2 72 D2 C6 D6 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E 24 D6 08 52 52 43 4D 00 85 12 B0 D6 50 00
+F4 D6 08 52 52 41 4D 00 85 12 B0 D6 50 01 02 D7
+08 52 4C 41 4D 00 85 12 B0 D6 50 02 10 D7 08 52
+52 55 4D 00 85 12 B0 D6 50 03 22 D5 0A 50 55 53
+48 4D 85 12 B0 D6 00 15 2C D7 08 50 4F 50 4D 00
+85 12 B0 D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 82 C6 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 42 D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 CC C6 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 0E C6
 q
diff --git a/binaries/MSP_EXP430FR4133_16MHz_UART.txt b/binaries/MSP_EXP430FR4133_16MHz_UART.txt
deleted file mode 100644 (file)
index 0366e88..0000000
+++ /dev/null
@@ -1,341 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF 44 D8 3C D0 34 01
-10 00 41 B3 94 C5 AA C4 DA C5 9C C5 94 C6 44 D8
-3C D0 7A C6 92 C7 24 C7 FE C6 3C 21 60 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 78 C6 B2 49 90 C7 B2 49 22 C7 B2 49 FC C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 08 D1 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E0 C7 32 C7
-14 C4 04 1B 5B 37 6D 00 5C C7 A8 C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C7 A0 C8 5C C7 14 C4 04 1B 5B 30 6D 00
-5C C7 62 CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 03 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 F2 D2 03 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 F2 C2 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 E2 B2 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00 B0 12
-9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23 5C C7
-D6 C8 14 C4 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 5C C7
-0A C4 40 FF 28 C4 D4 C7 A0 C8 14 C4 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C4 86 C5 00 00 06 41
-43 43 45 50 54 00 30 40 7A C6 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C6 3C 40 D2 C6
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 C6 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C6 2F 83
-8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C7 08 4E 3E 4F C8 3F 1A C7 04 45 43 48
-4F 00 B2 40 C2 48 C0 C6 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C6 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C7 7A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00 30 40
-92 C7 0D 12 84 12 14 C4 02 0D 0A 00 5C C7 60 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C6 01 40
-2E 4E 30 4D DE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 1A C8 02 23 53 00 0D 12
-84 12 1C C8 56 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C8 4E C8 EE C4 8E C8 6A C8 5C C7 4E CC 20 C7
-60 C8 40 C7 01 2E 0E 93 E3 37 38 43 E2 3F 88 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-94 CB 0A C4 22 00 2C C9 FA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 C8 82 2E 22 00 0D 12 84 12 E4 C8 0A C4 5C C7
-94 CB 60 C8 18 C6 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 9C C8 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 00 00 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 56 CA D2 3F 58 CA 81 49 02 00 1C 4F 04 00
-1E 41 04 00 3D 40 6A CA C8 3F 6C 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 32 C0 00 02 1B 42 DC 21
-0C 43 2D 15 3D 40 EA CA 0A 4B 3F 82 8F 4E 06 00
-8F 43 04 00 8F 43 02 00 0C 4E 7B 4C FC 90 27 00
-00 00 06 20 DF 4C 01 00 04 00 7E 90 03 00 47 3C
-68 4C 78 80 2D 00 04 28 B1 23 B1 43 02 00 0A 3C
-2A 43 78 52 07 24 3A 52 68 53 04 24 3A 40 10 00
-78 53 35 20 1C 53 1B 83 EB 3F EC CA 30 24 2D 83
-78 90 28 00 C2 27 32 B0 00 02 29 20 32 D0 00 02
-78 90 F7 00 BA 27 78 90 F5 00 21 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 66 C4 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 4B 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
-00 00 01 2C 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21
-3E 4F 30 4D 92 CB 87 4C 49 54 45 52 41 4C 82 93
-BE 21 0D 24 09 4E 1A 42 C6 21 A2 52 C6 21 BA 40
-0A C4 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 03 24 8A 4E 02 00 EE 3F 30 4D 66 C8 05 43
-4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
-30 4D 7A C8 09 49 4E 54 45 52 50 52 45 54 0D 12
-84 12 AC C4 4E CC 2C C9 0A CC 7F 26 3D 40 12 CC
-C1 3E 14 CC 0A 4E 3E 4F 3D 40 2E CC 35 27 3D 40
-04 CC 1A E2 BE 21 B6 27 0E 12 3E 4F 30 41 30 CC
-3E 4F 3D 40 04 CC BB 23 DE 53 00 00 68 4E 08 5E
-F8 40 3F 00 00 00 3D 40 D0 CD CC 3F 38 CC 86 12
-20 00 E6 C7 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F
-30 4D 3F 40 80 20 0E 43 31 40 E0 20 B2 40 00 20
-00 20 82 43 BE 21 84 12 8E C7 BC C4 FE CB C4 C7
-F6 C7 14 C4 0C 73 74 61 63 6B 20 65 6D 70 74 79
-21 00 2A C5 0A C4 40 FF 28 C4 FE C7 14 C4 0A 46
-52 41 4D 20 66 75 6C 6C 21 00 2A C5 3A C4 78 CC
-54 CC 86 41 42 4F 52 54 22 00 0D 12 84 12 E4 C8
-0A C4 2A C5 94 CB 60 C8 8E C9 01 27 0D 12 84 12
-4E CC 2C C9 94 C9 34 C4 4C CC 60 C8 00 00 83 5B
-27 5D 0D 12 84 12 CC CC 0A C4 0A C4 94 CB 94 CB
-60 C8 DE CC 81 5B 82 43 BE 21 30 4D 0C C8 01 5D
-B2 43 BE 21 30 4D FE CC 81 5C 92 42 C0 21 C4 21
-30 4D 00 00 88 50 4F 53 54 50 4F 4E 45 00 0D 12
-84 12 4E CC 2C C9 94 C9 A8 C7 34 C4 4C CC F6 C7
-34 C4 40 CD 0A C4 0A C4 94 CB 94 CB 0A C4 94 CB
-94 CB 60 C8 F4 CC 01 3A 30 12 90 CD 92 B3 C6 21
-A2 63 C6 21 0D 12 84 12 4E CC 2C C9 5E 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
-BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BE 21
-30 4D 82 9F BC 21 09 20 18 42 B6 21 19 42 B8 21
-A8 49 FE FF 89 48 00 00 30 4D 0D 12 84 12 14 C4
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-36 C5 46 CD 81 3B 82 93 BE 21 97 27 0D 12 84 12
-0A C4 60 C8 94 CB A2 CD F6 CC 60 C8 F4 CB 09 49
-4D 4D 45 44 49 41 54 45 18 42 B6 21 F8 D0 80 00
-00 00 30 4D DE CB 06 43 52 45 41 54 45 00 B0 12
-4C CD BA 40 86 12 FC FF 8A 4A FE FF C9 3F 06 CE
-04 43 4F 44 45 00 B0 12 4C CD A2 82 C6 21 0D 12
-84 12 3E D0 18 D0 60 C8 EE CD 07 48 44 4E 43 4F
-44 45 B2 40 1C D0 DA 21 EE 3F 00 00 07 45 4E 44
-43 4F 44 45 0D 12 84 12 A2 CD 58 D0 76 D0 60 C8
-00 00 05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 0D 12
-00 00 BA 40 84 12 02 00 A2 52 C6 21 B2 43 BE 21
-0D 12 84 12 58 D0 76 D0 60 C8 00 00 05 4C 4F 32
-48 49 A2 83 C6 21 1A 42 C6 21 EB 3F 3A CE 85 48
-49 32 4C 4F 0D 12 84 12 28 C4 E6 CF 94 CB F6 CC
-2E CE 60 C8 D4 CD 86 5B 54 48 45 4E 5D 00 30 4D
-0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C 10 24 1B 83
-06 30 1C 83 04 30 19 53 F9 98 FF FF F5 27 2D 4D
-3E 4F 30 4D 2F 53 9F 83 00 00 F9 23 2F 53 2D 53
-F7 3F B6 CE 86 5B 45 4C 53 45 5D 00 0D 12 84 12
-0A C4 00 00 D8 C7 4E CC 2C C9 E4 CB A0 C7 34 C4
-4E CF AE C7 14 C4 06 5B 54 48 45 4E 5D 00 C0 CE
-28 CF E4 CE 06 CF 60 C8 AE C7 14 C4 06 5B 45 4C
-53 45 5D 00 C0 CE 3E CF E4 CE 04 CF 60 C8 14 C4
-04 5B 49 46 5D 00 C0 CE 06 CF 3A C4 04 CF 82 C7
-14 C4 05 0D 0A 6B 6F 20 5C C7 BC C4 AC C4 3A C4
-06 CF F4 CE 84 5B 49 46 5D 00 0E 93 3E 4F C6 27
-30 4D 2F 53 30 4D 64 CF 89 5B 44 45 46 49 4E 45
-44 5D 0D 12 84 12 4E CC 2C C9 94 C9 72 CF 60 C8
-78 CF 8B 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
-84 12 82 CF F0 C7 60 C8 AA CF B2 4E 0A 18 2E 53
-BE 12 3E 4F 3D 41 90 3C A6 CB 06 4D 41 52 4B 45
-52 00 B0 12 4C CD BA 40 85 12 FC FF BA 40 A8 CF
-FE FF 28 83 8A 48 00 00 BA 40 AA C4 04 00 B2 50
-06 00 C6 21 E1 3E 2E 53 30 4D 0A C4 CA 21 E8 C7
-60 C8 85 12 EA CF B2 CC 20 CE 2C C7 CA CC 9E CE
-F6 C6 BA CF 12 C9 E2 D0 F6 D0 F4 C9 26 C9 00 00
-92 CF 08 CD 1C CA 00 00 85 12 EA CF BA D6 20 D7
-62 D6 70 D7 28 D6 00 00 F4 D3 00 00 38 D8 1C D8
-8C D6 CA D6 04 D5 00 00 00 00 8C D7 16 D0 3A 40
-0C 00 39 40 D6 21 08 49 28 53 19 83 18 83 E8 49
-00 00 1A 83 FA 23 30 4D 3A 40 0E 00 38 40 CA 21
-09 48 29 53 F8 49 00 00 18 53 1A 83 FB 23 30 4D
-82 43 CC 21 30 4D 92 42 CA 21 DA 21 30 4D F2 CF
-70 D0 76 D0 86 D0 1A 42 20 18 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 14 CD 09 50 57 52
-5F 53 54 41 54 45 85 12 7E D0 44 D8 E0 C8 09 52
-53 54 5F 53 54 41 54 45 92 42 0A 18 CA D0 F3 3F
-BC D0 08 50 57 52 5F 48 45 52 45 00 92 42 C6 21
-CA D0 30 4D CE D0 08 52 53 54 5F 48 45 52 45 00
-92 42 C6 21 0A 18 F2 3F 3E 90 0E 00 DC 27 2E 92
-E3 37 0E 93 D8 37 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B9 40 54 D1 FE FF 29 83 B9 40 02 C6 FE FF
-39 90 AE FF F9 23 39 40 14 18 B2 49 04 C6 B2 49
-FA C4 B2 49 02 C4 B2 49 20 C6 B2 49 EC FF B2 49
-0A 18 C2 3F B2 D0 03 00 04 01 B2 D0 10 00 00 01
-B2 40 80 5A CC 01 31 40 E0 20 3F 40 80 20 39 40
-00 08 29 83 89 43 00 20 FC 23 B2 D3 06 02 B2 D3
-02 02 F2 D2 05 02 B2 D0 FF FE 26 02 B2 43 22 02
-B2 D3 46 02 B2 43 42 02 B2 D3 66 02 B2 43 62 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 82 43 88 01 F2 D0 06 00
-2B 02 39 40 40 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 C4 1E C6 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 2C C9 94 C9 F0 C7 34 C4 34 D2 88 CA 34 C4
-4E D2 48 D2 36 D2 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 50 D2
-B2 41 C4 21 3E 41 84 12 0A C4 2B 00 2C C9 94 C9
-F0 C7 34 C4 6C D2 88 CA 34 C4 4C CC BA C7 2C C9
-88 CA 34 C4 4C CC 78 D2 3E 5F E7 3F 3E 40 28 00
-B0 12 18 D2 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 BA CD
-1C 15 12 12 C4 21 92 53 C4 21 84 12 2C C9 88 CA
-34 C4 C0 D2 B6 D2 21 53 3E 90 10 00 C6 2B 7F 2D
-C2 D2 B2 41 C4 21 C1 3F 0D 12 84 12 4E CC F4 D1
-D2 D2 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 18 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 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 18 D2 ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 A0 D2 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 A0 D2 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 A0 D2 FA 23
-3C 50 10 00 B0 12 7C D2 EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 4E CC F4 D1 9E D3 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 A0 D2 E0 23 3C 50 80 00 B0 12 7C D2 DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A C4 00 13
-94 CB 60 C8 0A C4 2C 00 C8 D2 94 D3 DE D3 09 4B
-2E 4E 0E DC A2 3F 8C CE 03 4D 4F 56 85 12 D4 D3
-00 40 E8 D3 05 4D 4F 56 2E 42 85 12 D4 D3 40 40
-00 00 03 41 44 44 85 12 D4 D3 00 50 02 D4 05 41
-44 44 2E 42 85 12 D4 D3 40 50 0E D4 04 41 44 44
-43 00 85 12 D4 D3 00 60 1C D4 06 41 44 44 43 2E
-42 00 85 12 D4 D3 40 60 C2 D3 04 53 55 42 43 00
-85 12 D4 D3 00 70 3A D4 06 53 55 42 43 2E 42 00
-85 12 D4 D3 40 70 48 D4 03 53 55 42 85 12 D4 D3
-00 80 58 D4 05 53 55 42 2E 42 85 12 D4 D3 40 80
-62 CE 03 43 4D 50 85 12 D4 D3 00 90 72 D4 05 43
-4D 50 2E 42 85 12 D4 D3 40 90 4C CE 04 44 41 44
-44 00 85 12 D4 D3 00 A0 8C D4 06 44 41 44 44 2E
-42 00 85 12 D4 D3 40 A0 7E D4 03 42 49 54 85 12
-D4 D3 00 B0 AA D4 05 42 49 54 2E 42 85 12 D4 D3
-40 B0 B6 D4 03 42 49 43 85 12 D4 D3 00 C0 C4 D4
-05 42 49 43 2E 42 85 12 D4 D3 40 C0 D0 D4 03 42
-49 53 85 12 D4 D3 00 D0 DE D4 05 42 49 53 2E 42
-85 12 D4 D3 40 D0 00 00 03 58 4F 52 85 12 D4 D3
-00 E0 F8 D4 05 58 4F 52 2E 42 85 12 D4 D3 40 E0
-2A D4 03 41 4E 44 85 12 D4 D3 00 F0 12 D5 05 41
-4E 44 2E 42 85 12 D4 D3 40 F0 4E CC C8 D2 30 D5
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-64 D4 03 52 52 43 85 12 2A D5 00 10 42 D5 05 52
-52 43 2E 42 85 12 2A D5 40 10 4E D5 04 53 57 50
-42 00 85 12 2A D5 80 10 5C D5 03 52 52 41 85 12
-2A D5 00 11 6A D5 05 52 52 41 2E 42 85 12 2A D5
-40 11 76 D5 03 53 58 54 85 12 2A D5 80 11 00 00
-04 50 55 53 48 00 85 12 2A D5 00 12 90 D5 06 50
-55 53 48 2E 42 00 85 12 2A D5 40 12 EA D4 04 43
-41 4C 4C 00 85 12 2A D5 80 12 1A 53 0E 4A 0D 12
-84 12 D6 C8 14 C4 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 C5 84 D5 03 53 3E 3D 86 12 00 38
-D8 D5 02 53 3C 00 86 12 00 34 9E D5 03 30 3E 3D
-86 12 00 30 EC D5 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C 00 D6 03 55 3E 3D 86 12
-00 28 F6 D5 03 30 3C 3E 86 12 00 24 14 D6 02 30
-3D 00 86 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 D6 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 B1 2F 88 DA 00 00 30 4D
-9A D4 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 AE D5
-05 42 45 47 49 4E 30 40 28 C4 3E D6 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D 1E D5 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 2C D6 BA C7 60 C8 E2 D5 06 52 45 50
-45 41 54 00 0D 12 84 12 C0 D6 44 D6 60 C8 F0 D6
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 80 D6 03 42 57 31 85 12 EE D6
-00 00 08 D7 03 42 57 32 85 12 EE D6 00 00 14 D7
-03 42 57 33 85 12 EE D6 00 00 2C D7 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 2A D7 00 00 4C D7 03 46 57 32 85 12 2A D7
-00 00 58 D7 03 46 57 33 85 12 2A D7 00 00 64 D7
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 CC CC 28 CC 60 C8 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 4E CC F4 D1 AE D7 92 53
-C4 21 3E 40 2C 00 84 12 2C C9 88 CA 34 C4 4C CC
-8A D3 C4 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-DC D6 04 52 52 43 4D 00 85 12 A8 D7 50 00 F2 D7
-04 52 52 41 4D 00 85 12 A8 D7 50 01 00 D8 04 52
-4C 41 4D 00 85 12 A8 D7 50 02 0E D8 04 52 52 55
-4D 00 85 12 A8 D7 50 03 1E D6 05 50 55 53 48 4D
-85 12 A8 D7 00 15 2A D8 04 50 4F 50 4D 00 85 12
-A8 D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 94 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 54 D1
-q
diff --git a/binaries/MSP_EXP430FR4133_1MHz_115200.txt b/binaries/MSP_EXP430FR4133_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..6fd1b5e
--- /dev/null
@@ -0,0 +1,328 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A0 59
+BC C6 7E C5 84 C5 54 C5 2C C7 54 D7 0C D0 C6 CF
+C6 CF A2 C6 60 C7 28 C7 3C 21 E0 20 80 C9 B6 C4
+C4 C4 9C C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+2C C7 54 D7 0C D0 C6 CF C6 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 F9 3C 0E 93 3E 4F
+8E 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A0 C6 B2 49
+5E C7 B2 49 26 C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 80 D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 2C C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 A6 C8 AC C4 52 C5 6E C7 1E C4 04 1B
+5B 37 6D 00 90 C7 90 C7 1E C4 04 1B 5B 30 6D 00
+90 C7 16 CD B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 03 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 6E C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 90 C7 F4 C9 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 90 C7 0A C4 40 FF 32 C4
+BC C8 C0 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B2 00 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 D3 02 02 F2 D2 05 02 B2 D0 FF FE
+26 02 B2 43 22 02 B2 D3 46 02 B2 43 42 02 B2 D3
+66 02 B2 43 62 02 B2 40 00 A5 60 01 82 43 88 01
+F2 D0 06 00 2B 02 F2 C3 82 01 B2 40 1E 00 84 01
+39 40 40 00 18 42 00 18 18 83 FE 23 19 83 FA 23
+39 40 00 08 29 83 89 43 00 20 FC 23 19 42 5E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 C4 86 C5 00 00 0C 41 43 43 45 50 54 00 30 40
+A2 C6 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 00 C7 3C 40 0C C7 5D 15 A2 3E 21 52 3A 17
+58 42 0C 05 48 9B 09 20 A2 B3 1C 05 FD 27 B2 40
+13 00 0E 05 F2 D2 03 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 1C 05 FD 27 C2 48 0E 05 30 4D
+02 C7 2D 83 92 B3 1C 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 1C 05 FD 27 58 42 0C 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 28 C7 30 12 3E C7 A2 B3 1C 05
+FD 27 B2 40 11 00 0E 05 F2 C2 03 02 30 41 2F 83
+8F 4E 00 00 92 B3 1C 05 FD 27 B0 12 C8 C6 1E 42
+0C 05 30 4D 00 00 08 45 4D 49 54 00 30 40 60 C7
+08 4E 3E 4F C7 3F 56 C7 08 45 43 48 4F 00 B2 40
+C2 48 FA C6 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D FA C6 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 A0 C7 29 4F 8F 4E 00 00 7E 49 DE 3F
+A2 C7 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+78 22 F9 98 00 00 75 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 6C 22 9B 24 20 C7 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A C4 00 00 C0 C8
+B2 C7 04 CA F8 CC B0 C4 2E C8 14 C4 06 5B 54 48
+45 4E 5D 00 B6 C7 0C C8 D2 C7 F0 C7 14 C4 06 5B
+45 4C 53 45 5D 00 B6 C7 1E C8 D2 C7 EE C7 1E C4
+04 5B 49 46 5D 00 B6 C7 F0 C7 B2 C4 EE C7 1E C4
+05 0D 6B 6F 20 0A 90 C7 9A C4 84 C4 B2 C4 F0 C7
+DE C7 0D 5B 54 48 45 4E 5D 00 30 4D 42 C8 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 4E C8 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 B2 C7 04 CA
+6C CA 4A CC 80 C9 5E C8 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 B2 C7 04 CA 6C CA 90 C8
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D 96 C6 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 C5 05 53 22 00 82 43
+C0 21 0D 12 84 12 0A C4 1E C4 A8 CC 0A C4 22 00
+04 CA 04 C9 B2 40 20 00 C0 21 1A 53 1A B3 82 6A
+C8 21 3E 4F 3D 41 30 4D 78 C7 05 2E 22 00 0D 12
+84 12 EE C8 0A C4 90 C7 A8 CC 80 C9 00 00 04 3C
+23 00 B2 40 B2 21 B2 21 30 4D EA C8 02 23 1B 42
+BE 21 2C 4F 2F 83 B0 12 46 C4 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 3C C9 04 23 53 00
+0D 12 84 12 3E C9 78 C9 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 6C C9 04 23 3E 00 9F 42 B2 21 00 00
+3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 86 C9 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 68 C7 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 32 C9
+B2 C7 A0 C9 70 C9 9C C8 AE C9 8A C9 90 C7 80 C9
+1A C9 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 21
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D BC C9 06 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 F2 C9 0E 3E 4E 55 4D 42 45 52 1A 42
+BE 21 2C 4F 0B 4E 68 4C 78 80 3A 00 03 28 78 80
+07 00 21 28 78 50 0A 00 08 9A 22 C3 1C 2C 5D 15
+1C 4F 02 00 0E 4A 3D 40 1C CB D4 3F 1E CB 81 49
+02 00 1C 4F 04 00 1E 41 04 00 3D 40 30 CB CA 3F
+32 CB 39 51 3E 61 8F 49 04 00 8F 4E 02 00 3A 17
+1C 53 1B 83 D8 23 8F 4C 00 00 0E 4B 30 4D 32 C0
+00 02 3F 82 8F 4E 06 00 8F 43 04 00 8F 43 02 00
+1A 42 BE 21 0C 4E 0E 43 1E 15 3D 40 B2 CB 7B 4C
+68 4C 78 80 2D 00 16 24 BE 2F 2A 43 78 52 14 24
+3A 52 68 53 11 24 3A 40 10 00 58 93 0D 24 68 92
+40 20 3E 90 03 00 3D 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 37 3C B1 43 02 00 1B 83 FC 9C 00 00 E0 23
+A2 27 B4 CB 2E 24 2D 83 68 4C 78 90 5F 00 C0 27
+32 B0 00 02 26 20 32 D0 00 02 78 80 2E 00 B8 27
+68 53 1F 20 09 43 8F 49 02 00 5B 83 09 4B 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9A 08 2C 8F 49 00 00 0E 4A 2C 15 B0 12
+3E C4 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4B 93 1D 17 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 2E C9
+03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12 84 C4
+B2 C7 04 CA B0 C4 82 CD 6C CA 6C CC 0A 4E 3E 4F
+3D 40 86 CC 6C 27 3D 40 60 CC 1A E2 BC 21 14 24
+0E 12 3E 4F 30 41 88 CC 3E 4F 3D 40 60 CC 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+5E CE 2A 3C 50 CC 02 2C A2 53 C8 21 1A 42 C8 21
+8A 4E FE FF 3E 4F 30 4D A6 CC 0F 4C 49 54 45 52
+41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21 A2 52
+C8 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F 32 B0
+00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
+A8 C9 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D CE C8 0A 41 4C 4C 4F 54 82 5E
+C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12 1E C4
+02 0D 0A 00 90 C7 94 C4 5A CC AE C8 D8 C8 1E C4
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 C5 32 C4
+0A C4 40 FF E0 C8 1E C4 09 46 52 41 4D 20 66 75
+6C 6C 08 C5 B2 C4 1E CD 08 CD 0D 41 42 4F 52 54
+22 00 0D 12 84 12 EE C8 0A C4 08 C5 A8 CC 80 C9
+FE C9 02 27 0D 12 84 12 B2 C7 04 CA 6C CA B0 C4
+84 CD 12 C9 90 CC 78 C8 07 5B 27 5D 0D 12 84 12
+74 CD 0A C4 0A C4 A8 CC A8 CC 80 C9 88 CD 03 5B
+82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21 30 4D
+C6 C8 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+B2 C7 04 CA 6C CA B0 C4 84 CD D8 C8 AC C4 DC CD
+0A C4 0A C4 A8 CC A8 CC 0A C4 A8 CC A8 CC 80 C9
+00 00 02 3A 30 12 32 CE 92 B3 C8 21 A2 63 C8 21
+0D 12 84 12 B2 C7 04 CA FA CD 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21 82 49
+B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A C8 21
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 21 30 4D 82 9F BA 21 66 25 84 12 1E C4 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 C5
+9E CD 03 3B 82 93 BC 21 F4 26 0D 12 84 12 0A C4
+80 C9 A8 CC 44 CE A0 CD 80 C9 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00 30 4D
+F2 CC 0C 43 52 45 41 54 45 00 B0 12 E8 CD BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D 8A C7 0A 44 4F 45
+53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D E2 CD 0E 3A 4E 4F 4E 41 4D 45 30 12
+32 CE 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F 7C CE 05 49 53 00
+0D 12 82 93 BC 21 08 20 84 12 74 CD FE CE 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 8C CD 0A C4 00 CF
+A8 CC 80 C9 92 CE 08 43 4F 44 45 00 B0 12 E8 CD
+A2 82 C8 21 61 3C 9A C9 0E 48 44 4E 43 4F 44 45
+B2 40 EC CF CC 21 F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 44 CE 4A CF 3D 41 92 42 D0 21
+CC 21 5D 3C 16 CF 0E 43 4F 44 45 4E 4E 4D 30 12
+20 CF B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 21
+B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 21 1A 42 C8 21 EF 3F 28 CF 0B 48 49 32 4C 4F
+A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43 BC 21
+B9 3F B4 CF B2 40 C6 CF D0 21 82 4E CE 21 30 40
+12 C9 85 12 B2 CF B2 CD 5A CD 44 D0 56 CF AC CE
+BE CA 66 CA 72 CD 9A CF EC CE C6 CE 62 CE BA CC
+CE D0 E6 CA 00 00 00 00 85 12 B2 CF 48 D7 CC D5
+2C D7 F4 D4 50 D5 9E D5 7A D6 86 D6 16 D4 3A D5
+00 00 00 00 88 CF 06 D3 00 00 A2 D6 E6 CF B2 40
+C6 CF CE 21 82 43 D0 21 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12 1A D0
+30 4D 2C D0 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 21 B0 12 1A D0 1A 42 CA 21 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 06 C6 FE FF 29 83 B9 40 F2 C5 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 EC FF 3B 40 10 00
+3A 40 3A 18 B0 12 1E D0 82 43 4A 18 C7 3F C0 D0
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F A8 CD 0C 4D
+41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12 B2 C7
+04 CA 6C CA AC C4 EC D0 A6 C8 80 CC EE D0 3E 4F
+3D 41 B2 41 C6 21 B0 12 E8 CD BA 40 85 12 FC FF
+BA 40 BE D0 FE FF 28 83 8A 48 00 00 BA 40 82 C4
+02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21 A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12 04 CA
+6C CA AC C4 58 D1 38 D1 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 BE D0 00 00 01 20
+3E 52 2E 83 21 53 30 41 4E CB AC C4 60 D1 54 D1
+62 D1 B2 41 C6 21 30 41 92 83 C6 21 3E 40 28 00
+0A 4E 3D 15 B0 12 28 D1 15 20 3E 40 2B 00 B0 12
+28 D1 06 20 3E 40 2D 00 B0 12 28 D1 92 83 C6 21
+0E 12 1E 41 02 00 84 12 04 CA 4E CB AC C4 84 CD
+A2 D1 3E 51 3A 17 30 41 B0 12 68 D1 19 42 C8 21
+89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53 C6 21
+1A 42 C6 21 3D 15 84 12 04 CA 4E CB AC C4 DA D1
+D2 D1 3E 90 10 00 E6 2B 7C 2D DC D1 A2 41 C6 21
+E1 3F 03 20 B0 12 C0 D1 43 3C 7A 90 23 00 24 20
+B0 12 70 D1 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 C8 21 A2 53 C8 21
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 70 D1 F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 BC D1 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 C0 D1 92 92 C2 21 C6 21 02 24 92 53 C6 21
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 A8 D1 F2 3F
+03 20 B0 12 C0 D1 F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 A8 D1 EA 3F 0C 43
+1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42 C6 21
+19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82 C4 21
+82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A C4 00 13 A8 CC 80 C9 0A C4
+2C 00 9E D2 E2 D1 B2 C7 A8 D2 80 D2 EE D2 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+DE D2 00 40 FA D2 0A 4D 4F 56 2E 42 85 12 DE D2
+40 40 00 00 06 41 44 44 85 12 DE D2 00 50 14 D3
+0A 41 44 44 2E 42 85 12 DE D2 40 50 20 D3 08 41
+44 44 43 00 85 12 DE D2 00 60 2E D3 0C 41 44 44
+43 2E 42 00 85 12 DE D2 40 60 66 CF 08 53 55 42
+43 00 85 12 DE D2 00 70 4C D3 0C 53 55 42 43 2E
+42 00 85 12 DE D2 40 70 5A D3 06 53 55 42 85 12
+DE D2 00 80 6A D3 0A 53 55 42 2E 42 85 12 DE D2
+40 80 76 D3 06 43 4D 50 85 12 DE D2 00 90 84 D3
+0A 43 4D 50 2E 42 85 12 DE D2 40 90 00 00 08 44
+41 44 44 00 85 12 DE D2 00 A0 9E D3 0C 44 41 44
+44 2E 42 00 85 12 DE D2 40 A0 CC D2 06 42 49 54
+85 12 DE D2 00 B0 BC D3 0A 42 49 54 2E 42 85 12
+DE D2 40 B0 C8 D3 06 42 49 43 85 12 DE D2 00 C0
+D6 D3 0A 42 49 43 2E 42 85 12 DE D2 40 C0 E2 D3
+06 42 49 53 85 12 DE D2 00 D0 F0 D3 0A 42 49 53
+2E 42 85 12 DE D2 40 D0 00 00 06 58 4F 52 85 12
+DE D2 00 E0 0A D4 0A 58 4F 52 2E 42 85 12 DE D2
+40 E0 3C D3 06 41 4E 44 85 12 DE D2 00 F0 24 D4
+0A 41 4E 44 2E 42 85 12 DE D2 40 F0 B2 C7 9E D2
+E2 D1 44 D4 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F FC D3 06 52 52 43 85 12 3C D4 00 10
+56 D4 0A 52 52 43 2E 42 85 12 3C D4 40 10 90 D3
+08 53 57 50 42 00 85 12 3C D4 80 10 62 D4 06 52
+52 41 85 12 3C D4 00 11 7E D4 0A 52 52 41 2E 42
+85 12 3C D4 40 11 70 D4 06 53 58 54 85 12 3C D4
+80 11 00 00 08 50 55 53 48 00 85 12 3C D4 00 12
+A4 D4 0C 50 55 53 48 2E 42 00 85 12 3C D4 40 12
+98 D4 08 43 41 4C 4C 00 85 12 3C D4 80 12 1A 53
+0E 4A 84 12 F4 C9 1E C4 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 C5 C2 D4 06 53 3E 3D 86 12
+00 38 EA D4 04 53 3C 00 86 12 00 34 B2 D4 06 30
+3E 3D 86 12 00 30 FE D4 04 30 3C 00 86 12 00 30
+3A CF 04 55 3C 00 86 12 00 2C 12 D5 06 55 3E 3D
+86 12 00 28 08 D5 06 30 3C 3E 86 12 00 24 26 D5
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D AC D3
+08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D 1C D5 08 45 4C 53 45 00 1A 42 C8 21 BA 40
+00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F
+8A D4 0A 42 45 47 49 4E 30 40 32 C4 74 D5 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 21 30 4D 30 D4 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 3E D5 9A C8 80 C9 92 D5 0C 52
+45 50 45 41 54 00 0D 12 84 12 D2 D5 56 D5 80 C9
+02 D6 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F
+98 42 C8 21 00 00 30 4D EE D5 06 42 57 31 85 12
+00 D6 00 00 1A D6 06 42 57 32 85 12 00 D6 00 00
+26 D6 06 42 57 33 85 12 00 D6 00 00 3E D6 3D 41
+1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21 86 2B
+BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 3C D6 00 00 62 D6 06 46
+57 32 85 12 3C D6 00 00 6E D6 06 46 57 33 85 12
+3C D6 00 00 DC D5 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 74 CD 80 CC 80 C9
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F A8 D2
+0A C4 2C 00 04 CA 4E CB AC C4 84 CD B2 C7 9E D2
+80 D2 D4 D6 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+32 D6 08 52 52 43 4D 00 85 12 BE D6 50 00 02 D7
+08 52 52 41 4D 00 85 12 BE D6 50 01 10 D7 08 52
+4C 41 4D 00 85 12 BE D6 50 02 1E D7 08 52 52 55
+4D 00 85 12 BE D6 50 03 30 D5 0A 50 55 53 48 4D
+85 12 BE D6 00 15 3A D7 08 50 4F 50 4D 00 85 12
+BE D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 BC C6 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 06 C6
+q
index d7ad25d..1dd7746 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF 1E D8 2A D0 34 01
-10 00 41 87 B6 C5 AA C4 B8 C5 8C C5 82 C6 1E D8
-2A D0 70 C6 80 C7 FE C6 DA C6 3C 21 4E C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 43
+B6 C6 56 C5 56 C5 58 C5 44 C5 30 D7 E8 CF A2 CF
+A2 CF A4 C6 28 C7 00 C7 3C 21 E0 20 5C C9 B6 C4
+C4 C4 78 C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 30 D7 E8 CF A2 CF A2 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 6E C6 B2 49 7E C7 B2 49 FC C6 B2 49 D8 C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 F6 D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 CE C7 16 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7
-C4 C8 96 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C7 8E C8 4A C7
-14 C4 04 1B 5B 30 6D 00 4A C7 50 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 4A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 E2 B2 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00 B0 12
-8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4 07 0D
-0A 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7 C4 C8
-0A C4 23 00 FA C6 C4 C8 14 C4 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 4A C7 0A C4 40 FF 28 C4 C2 C7 8E C8
-14 C4 0A 62 79 74 65 73 20 66 72 65 65 00 3A C4
-7E C5 00 00 06 41 43 43 45 50 54 00 30 40 70 C6
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C6 2F 83 8F 4E 00 00
-58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C6 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 C6
-04 45 43 48 4F 00 B2 40 C2 48 08 C7 82 43 DE 21
-38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C7 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C7 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C6 68 C7 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40 80 C7
-0D 12 84 12 14 C4 02 0D 0A 00 4A C7 4E C8 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C6 01 40 2E 4E
-30 4D CC C7 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 C7 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E C4 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 08 C8 02 23 53 00 0D 12 84 12
-0A C8 44 C8 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C8 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C7 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C7
-3C C8 EE C4 7C C8 58 C8 4A C7 3C CC FA C6 4E C8
-2C C7 01 2E 0E 93 E3 37 38 43 E2 3F 76 C8 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4 82 CB
-0A C4 22 00 1A C9 E8 C8 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 C8
-82 2E 22 00 0D 12 84 12 D2 C8 0A C4 4A C7 82 CB
-4E C8 F8 C5 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C4 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4 30 4D
-8A C8 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 00 00 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
-44 CA D2 3F 46 CA 81 49 02 00 1C 4F 04 00 1E 41
-04 00 3D 40 58 CA C8 3F 5A 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 32 C0 00 02 1B 42 DC 21 0C 43
-2D 15 3D 40 D8 CA 0A 4B 3F 82 8F 4E 06 00 8F 43
-04 00 8F 43 02 00 0C 4E 7B 4C FC 90 27 00 00 00
-06 20 DF 4C 01 00 04 00 7E 90 03 00 47 3C 68 4C
-78 80 2D 00 04 28 B1 23 B1 43 02 00 0A 3C 2A 43
-78 52 07 24 3A 52 68 53 04 24 3A 40 10 00 78 53
-35 20 1C 53 1B 83 EB 3F DA CA 30 24 2D 83 78 90
-28 00 C2 27 32 B0 00 02 29 20 32 D0 00 02 78 90
-F7 00 BA 27 78 90 F5 00 21 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 66 C4 2A 17 E6 3F
-9F 4F 04 00 02 00 AF 4F 04 00 4B 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 00 00
-01 2C 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F
-30 4D 80 CB 87 4C 49 54 45 52 41 4C 82 93 BE 21
-0D 24 09 4E 1A 42 C6 21 A2 52 C6 21 BA 40 0A C4
-00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
-03 24 8A 4E 02 00 EE 3F 30 4D 54 C8 05 43 4F 55
-4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF 30 4D
-68 C8 09 49 4E 54 45 52 50 52 45 54 0D 12 84 12
-AC C4 3C CC 1A C9 F8 CB 7F 26 3D 40 00 CC C1 3E
-02 CC 0A 4E 3E 4F 3D 40 1C CC 35 27 3D 40 F2 CB
-1A E2 BE 21 B6 27 0E 12 3E 4F 30 41 1E CC 3E 4F
-3D 40 F2 CB BB 23 DE 53 00 00 68 4E 08 5E F8 40
-3F 00 00 00 3D 40 BE CD CC 3F 26 CC 86 12 20 00
-D4 C7 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
-3F 40 80 20 0E 43 31 40 E0 20 B2 40 00 20 00 20
-82 43 BE 21 84 12 7C C7 BC C4 EC CB B2 C7 E4 C7
-14 C4 0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00
-2A C5 0A C4 40 FF 28 C4 EC C7 14 C4 0A 46 52 41
-4D 20 66 75 6C 6C 21 00 2A C5 3A C4 66 CC 42 CC
-86 41 42 4F 52 54 22 00 0D 12 84 12 D2 C8 0A C4
-2A C5 82 CB 4E C8 7C C9 01 27 0D 12 84 12 3C CC
-1A C9 82 C9 34 C4 3A CC 4E C8 00 00 83 5B 27 5D
-0D 12 84 12 BA CC 0A C4 0A C4 82 CB 82 CB 4E C8
-CC CC 81 5B 82 43 BE 21 30 4D FA C7 01 5D B2 43
-BE 21 30 4D EC CC 81 5C 92 42 C0 21 C4 21 30 4D
-00 00 88 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
-3C CC 1A C9 82 C9 96 C7 34 C4 3A CC E4 C7 34 C4
-2E CD 0A C4 0A C4 82 CB 82 CB 0A C4 82 CB 82 CB
-4E C8 E2 CC 01 3A 30 12 7E CD 92 B3 C6 21 A2 63
-C6 21 0D 12 84 12 3C CC 1A C9 4C 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 BA 40
-0D 12 FC FF BA 40 84 12 FE FF B2 43 BE 21 30 4D
-82 9F BC 21 09 20 18 42 B6 21 19 42 B8 21 A8 49
-FE FF 89 48 00 00 30 4D 0D 12 84 12 14 C4 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 36 C5
-34 CD 81 3B 82 93 BE 21 97 27 0D 12 84 12 0A C4
-4E C8 82 CB 90 CD E4 CC 4E C8 E2 CB 09 49 4D 4D
-45 44 49 41 54 45 18 42 B6 21 F8 D0 80 00 00 00
-30 4D CC CB 06 43 52 45 41 54 45 00 B0 12 3A CD
-BA 40 86 12 FC FF 8A 4A FE FF C9 3F F4 CD 04 43
-4F 44 45 00 B0 12 3A CD A2 82 C6 21 0D 12 84 12
-2C D0 06 D0 4E C8 DC CD 07 48 44 4E 43 4F 44 45
-B2 40 0A D0 DA 21 EE 3F 00 00 07 45 4E 44 43 4F
-44 45 0D 12 84 12 90 CD 46 D0 64 D0 4E C8 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 0D 12 00 00
-BA 40 84 12 02 00 A2 52 C6 21 B2 43 BE 21 0D 12
-84 12 46 D0 64 D0 4E C8 00 00 05 4C 4F 32 48 49
-A2 83 C6 21 1A 42 C6 21 EB 3F 28 CE 85 48 49 32
-4C 4F 0D 12 84 12 28 C4 D4 CF 82 CB E4 CC 1C CE
-4E C8 C2 CD 86 5B 54 48 45 4E 5D 00 30 4D 0C 4E
-38 4F 3B 4F 39 4F 0E 4B 0E 5C 10 24 1B 83 06 30
-1C 83 04 30 19 53 F9 98 FF FF F5 27 2D 4D 3E 4F
-30 4D 2F 53 9F 83 00 00 F9 23 2F 53 2D 53 F7 3F
-A4 CE 86 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C4
-00 00 C6 C7 3C CC 1A C9 D2 CB 8E C7 34 C4 3C CF
-9C C7 14 C4 06 5B 54 48 45 4E 5D 00 AE CE 16 CF
-D2 CE F4 CE 4E C8 9C C7 14 C4 06 5B 45 4C 53 45
-5D 00 AE CE 2C CF D2 CE F2 CE 4E C8 14 C4 04 5B
-49 46 5D 00 AE CE F4 CE 3A C4 F2 CE 70 C7 14 C4
-05 0D 0A 6B 6F 20 4A C7 BC C4 AC C4 3A C4 F4 CE
-E2 CE 84 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
-2F 53 30 4D 52 CF 89 5B 44 45 46 49 4E 45 44 5D
-0D 12 84 12 3C CC 1A C9 82 C9 60 CF 4E C8 66 CF
-8B 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
-70 CF DE C7 4E C8 98 CF B2 4E 0A 18 2E 53 BE 12
-3E 4F 3D 41 90 3C 94 CB 06 4D 41 52 4B 45 52 00
-B0 12 3A CD BA 40 85 12 FC FF BA 40 96 CF FE FF
-28 83 8A 48 00 00 BA 40 AA C4 04 00 B2 50 06 00
-C6 21 E1 3E 2E 53 30 4D 0A C4 CA 21 D6 C7 4E C8
-85 12 D8 CF A0 CC 0E CE 10 C7 B8 CC 8C CE D2 C6
-A8 CF 00 C9 D0 D0 E4 D0 E2 C9 14 C9 00 00 80 CF
-F6 CC 0A CA 00 00 85 12 D8 CF 94 D6 FA D6 3C D6
-4A D7 02 D6 00 00 CE D3 00 00 12 D8 F6 D7 66 D6
-A4 D6 DE D4 00 00 00 00 66 D7 04 D0 3A 40 0C 00
-39 40 D6 21 08 49 28 53 19 83 18 83 E8 49 00 00
-1A 83 FA 23 30 4D 3A 40 0E 00 38 40 CA 21 09 48
-29 53 F8 49 00 00 18 53 1A 83 FB 23 30 4D 82 43
-CC 21 30 4D 92 42 CA 21 DA 21 30 4D E0 CF 5E D0
-64 D0 74 D0 1A 42 20 18 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 02 CD 09 50 57 52 5F 53
-54 41 54 45 85 12 6C D0 1E D8 CE C8 09 52 53 54
-5F 53 54 41 54 45 92 42 0A 18 B8 D0 F3 3F AA D0
-08 50 57 52 5F 48 45 52 45 00 92 42 C6 21 B8 D0
-30 4D BC D0 08 52 53 54 5F 48 45 52 45 00 92 42
-C6 21 0A 18 F2 3F 3E 90 0E 00 DC 27 2E 92 E3 37
-0E 93 D8 37 39 40 10 00 29 83 B9 43 80 FF FC 23
-B9 40 42 D1 FE FF 29 83 B9 40 E2 C5 FE FF 39 90
-AE FF F9 23 39 40 14 18 B2 49 E4 C5 B2 49 FA C4
-B2 49 02 C4 B2 49 00 C6 B2 49 EA FF B2 49 0A 18
-C2 3F B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40
-80 5A CC 01 31 40 E0 20 3F 40 80 20 39 40 00 08
-29 83 89 43 00 20 FC 23 B2 D3 06 02 B2 D3 02 02
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 FA 3C 0E 93 3E 4F
+7C 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A2 C6 B2 49
+26 C7 B2 49 FE C6 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 5C D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 82 C8 AC C4
+42 C5 40 C7 1E C4 05 1B 5B 37 6D 40 6C C7 0A C4
+02 18 A4 C8 D0 C9 6C C7 1E C4 04 1B 5B 30 6D 00
+6C C7 F2 CC 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+4A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 40 C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 6C C7 0A C4 02 18 A4 C8 D0 C9 0A C4 23 00
+24 C7 D0 C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+6C C7 0A C4 40 FF 32 C4 98 C8 9C C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B2
+00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 D3 06 02 B2 D3 02 02
 B2 D0 FF FE 26 02 B2 43 22 02 B2 D3 46 02 B2 43
 42 02 B2 D3 66 02 B2 43 62 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 82 43 88 01 F2 D0 06 00 2B 02 39 40 40 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 1E 42 08 18
-82 43 08 18 1E D2 5E 01 B0 12 F8 C4 FE C5 38 40
-C0 21 0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21
-30 4D 1C 15 0E 12 12 12 C4 21 84 12 1A C9 82 C9
-DE C7 34 C4 0E D2 76 CA 34 C4 28 D2 22 D2 10 D2
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 2A D2 B2 41 C4 21 3E 41
-84 12 0A C4 2B 00 1A C9 82 C9 DE C7 34 C4 46 D2
-76 CA 34 C4 3A CC A8 C7 1A C9 76 CA 34 C4 3A CC
-52 D2 3E 5F E7 3F 3E 40 28 00 B0 12 F2 D1 19 42
-C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92
-C0 21 C4 21 02 20 30 40 A8 CD 1C 15 12 12 C4 21
-92 53 C4 21 84 12 1A C9 76 CA 34 C4 9A D2 90 D2
-21 53 3E 90 10 00 C6 2B 7F 2D 9C D2 B2 41 C4 21
-C1 3F 0D 12 84 12 3C CC CE D1 AC D2 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 F2 D1 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 F2 D1
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
-B0 12 7A D2 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-7A D2 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
-0C 5E DA 3F B0 12 7A D2 FA 23 3C 50 10 00 B0 12
-56 D2 EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12
-84 12 3C CC CE D1 78 D3 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 7A D2 E0 23
-3C 50 80 00 B0 12 56 D2 DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A C4 00 13 82 CB 4E C8 0A C4
-2C 00 A2 D2 6E D3 B8 D3 09 4B 2E 4E 0E DC A2 3F
-7A CE 03 4D 4F 56 85 12 AE D3 00 40 C2 D3 05 4D
-4F 56 2E 42 85 12 AE D3 40 40 00 00 03 41 44 44
-85 12 AE D3 00 50 DC D3 05 41 44 44 2E 42 85 12
-AE D3 40 50 E8 D3 04 41 44 44 43 00 85 12 AE D3
-00 60 F6 D3 06 41 44 44 43 2E 42 00 85 12 AE D3
-40 60 9C D3 04 53 55 42 43 00 85 12 AE D3 00 70
-14 D4 06 53 55 42 43 2E 42 00 85 12 AE D3 40 70
-22 D4 03 53 55 42 85 12 AE D3 00 80 32 D4 05 53
-55 42 2E 42 85 12 AE D3 40 80 50 CE 03 43 4D 50
-85 12 AE D3 00 90 4C D4 05 43 4D 50 2E 42 85 12
-AE D3 40 90 3A CE 04 44 41 44 44 00 85 12 AE D3
-00 A0 66 D4 06 44 41 44 44 2E 42 00 85 12 AE D3
-40 A0 58 D4 03 42 49 54 85 12 AE D3 00 B0 84 D4
-05 42 49 54 2E 42 85 12 AE D3 40 B0 90 D4 03 42
-49 43 85 12 AE D3 00 C0 9E D4 05 42 49 43 2E 42
-85 12 AE D3 40 C0 AA D4 03 42 49 53 85 12 AE D3
-00 D0 B8 D4 05 42 49 53 2E 42 85 12 AE D3 40 D0
-00 00 03 58 4F 52 85 12 AE D3 00 E0 D2 D4 05 58
-4F 52 2E 42 85 12 AE D3 40 E0 04 D4 03 41 4E 44
-85 12 AE D3 00 F0 EC D4 05 41 4E 44 2E 42 85 12
-AE D3 40 F0 3C CC A2 D2 0A D5 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 3E D4 03 52 52 43
-85 12 04 D5 00 10 1C D5 05 52 52 43 2E 42 85 12
-04 D5 40 10 28 D5 04 53 57 50 42 00 85 12 04 D5
-80 10 36 D5 03 52 52 41 85 12 04 D5 00 11 44 D5
-05 52 52 41 2E 42 85 12 04 D5 40 11 50 D5 03 53
-58 54 85 12 04 D5 80 11 00 00 04 50 55 53 48 00
-85 12 04 D5 00 12 6A D5 06 50 55 53 48 2E 42 00
-85 12 04 D5 40 12 C4 D4 04 43 41 4C 4C 00 85 12
-04 D5 80 12 1A 53 0E 4A 0D 12 84 12 C4 C8 14 C4
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 C5
-5E D5 03 53 3E 3D 86 12 00 38 B2 D5 02 53 3C 00
-86 12 00 34 78 D5 03 30 3E 3D 86 12 00 30 C6 D5
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C DA D5 03 55 3E 3D 86 12 00 28 D0 D5 03 30
-3C 3E 86 12 00 24 EE D5 02 30 3D 00 86 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 E4 D5 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 B1 2F 88 DA 00 00 30 4D 74 D4 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 88 D5 05 42 45 47 49 4E
-30 40 28 C4 18 D6 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
-30 4D F8 D4 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 06 D6
-A8 C7 4E C8 BC D5 06 52 45 50 45 41 54 00 0D 12
-84 12 9A D6 1E D6 4E C8 CA D6 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D
-5A D6 03 42 57 31 85 12 C8 D6 00 00 E2 D6 03 42
-57 32 85 12 C8 D6 00 00 EE D6 03 42 57 33 85 12
-C8 D6 00 00 06 D7 3D 41 1A 42 C6 21 28 4E B2 92
-C4 21 88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 04 D7 00 00
-26 D7 03 46 57 32 85 12 04 D7 00 00 32 D7 03 46
-57 33 85 12 04 D7 00 00 3E D7 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 BA CC
-16 CC 4E C8 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 3C CC CE D1 88 D7 92 53 C4 21 3E 40 2C 00
-84 12 1A C9 76 CA 34 C4 3A CC 64 D3 9E D7 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E B6 D6 04 52 52 43
-4D 00 85 12 82 D7 50 00 CC D7 04 52 52 41 4D 00
-85 12 82 D7 50 01 DA D7 04 52 4C 41 4D 00 85 12
-82 D7 50 02 E8 D7 04 52 52 55 4D 00 85 12 82 D7
-50 03 F8 D5 05 50 55 53 48 4D 85 12 82 D7 00 15
-04 D8 04 50 4F 50 4D 00 85 12 82 D7 00 17
+82 43 88 01 F2 D0 06 00 2B 02 F2 C3 82 01 B2 40
+1E 00 84 01 39 40 40 00 18 42 00 18 18 83 FE 23
+19 83 FA 23 39 40 00 08 29 83 89 43 00 20 FC 23
+1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42 5E 01
+B0 12 D0 C4 80 C5 00 00 0C 41 43 43 45 50 54 00
+30 40 A4 C6 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40
+20 00 3D 15 A5 3E 21 52 A2 C2 6C 05 B2 B0 10 00
+40 05 9E 22 3A 17 92 B3 6C 05 FD 27 58 42 4C 05
+48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27
+1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F
+3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40 00 C7
+58 43 B0 12 46 C5 2F 83 8F 4E 00 00 92 B3 6C 05
+FD 27 1E 42 4C 05 B0 12 44 C5 30 4D 00 00 08 45
+4D 49 54 00 30 40 28 C7 08 4E 3E 4F A2 B3 6C 05
+FD 27 C2 48 4E 05 30 4D 1E C7 08 45 43 48 4F 00
+B2 40 C2 48 32 C7 38 40 05 00 B0 12 46 C5 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 32 C7
+28 42 F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40
+7C C7 29 4F 8F 4E 00 00 7E 49 D4 3F 7E C7 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 8A 22 F9 98
+00 00 87 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 7E 22 9B 24 F8 C6 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A C4 00 00 9C C8 8E C7 E0 C9
+D4 CC B0 C4 0A C8 14 C4 06 5B 54 48 45 4E 5D 00
+92 C7 E8 C7 AE C7 CC C7 14 C4 06 5B 45 4C 53 45
+5D 00 92 C7 FA C7 AE C7 CA C7 1E C4 04 5B 49 46
+5D 00 92 C7 CC C7 B2 C4 CA C7 1E C4 05 0D 6B 6F
+20 0A 6C C7 9A C4 84 C4 B2 C4 CC C7 BA C7 0D 5B
+54 48 45 4E 5D 00 30 4D 1E C8 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 2A C8 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 8E C7 E0 C9 48 CA 26 CC
+5C C9 3A C8 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 8E C7 E0 C9 48 CA 6C C8 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 20 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D 98 C6 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D E0 C5 05 53 22 00 82 43 C0 21 0D 12
+84 12 0A C4 1E C4 84 CC 0A C4 22 00 E0 C9 E0 C8
+B2 40 20 00 C0 21 1A 53 1A B3 82 6A C8 21 3E 4F
+3D 41 30 4D 52 C7 05 2E 22 00 0D 12 84 12 CA C8
+0A C4 6C C7 84 CC 5C C9 00 00 04 3C 23 00 B2 40
+B2 21 B2 21 30 4D C6 C8 02 23 1B 42 BE 21 2C 4F
+2F 83 B0 12 46 C4 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 18 C9 04 23 53 00 0D 12 84 12
+1A C9 54 C9 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+48 C9 04 23 3E 00 9F 42 B2 21 00 00 3E 40 B2 21
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F 62 C9 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 3A C7 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 0E C9 8E C7 7C C9
+4C C9 78 C8 8A C9 66 C9 6C C7 5C C9 F6 C8 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 21 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 21 F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 21
+82 48 C6 21 1E 42 C8 21 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 21
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D 98 C9 06 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
+CE C9 0E 3E 4E 55 4D 42 45 52 1A 42 BE 21 2C 4F
+0B 4E 68 4C 78 80 3A 00 03 28 78 80 07 00 21 28
+78 50 0A 00 08 9A 22 C3 1C 2C 5D 15 1C 4F 02 00
+0E 4A 3D 40 F8 CA D4 3F FA CA 81 49 02 00 1C 4F
+04 00 1E 41 04 00 3D 40 0C CB CA 3F 0E CB 39 51
+3E 61 8F 49 04 00 8F 4E 02 00 3A 17 1C 53 1B 83
+D8 23 8F 4C 00 00 0E 4B 30 4D 32 C0 00 02 3F 82
+8F 4E 06 00 8F 43 04 00 8F 43 02 00 1A 42 BE 21
+0C 4E 0E 43 1E 15 3D 40 8E CB 7B 4C 68 4C 78 80
+2D 00 16 24 BE 2F 2A 43 78 52 14 24 3A 52 68 53
+11 24 3A 40 10 00 58 93 0D 24 68 92 40 20 3E 90
+03 00 3D 20 FC 9C 01 00 6C 4C 8F 4C 04 00 37 3C
+B1 43 02 00 1B 83 FC 9C 00 00 E0 23 A2 27 90 CB
+2E 24 2D 83 68 4C 78 90 5F 00 C0 27 32 B0 00 02
+26 20 32 D0 00 02 78 80 2E 00 B8 27 68 53 1F 20
+09 43 8F 49 02 00 5B 83 09 4B 09 5C 69 49 79 80
+3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00 09 9A
+08 2C 8F 49 00 00 0E 4A 2C 15 B0 12 3E C4 2A 17
+E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4B 93 1D 17
+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 0A C9 03 5C 92 42
+C2 21 C6 21 30 4D 0D 12 84 12 84 C4 8E C7 E0 C9
+B0 C4 5E CD 48 CA 48 CC 0A 4E 3E 4F 3D 40 62 CC
+6C 27 3D 40 3C CC 1A E2 BC 21 14 24 0E 12 3E 4F
+30 41 64 CC 3E 4F 3D 40 3C CC 19 20 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 3A CE 2A 3C
+2C CC 02 2C A2 53 C8 21 1A 42 C8 21 8A 4E FE FF
+3E 4F 30 4D 82 CC 0F 4C 49 54 45 52 41 4C 82 93
+BC 21 0D 24 09 4E 1A 42 C8 21 A2 52 C8 21 BA 40
+0A C4 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
+00 02 03 24 8A 4E 02 00 EE 3F 30 4D 84 C9 0A 43
+4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3
+30 4D AA C8 0A 41 4C 4C 4F 54 82 5E C8 21 3E 4F
+30 4D 3F 40 80 20 0E 43 84 12 1E C4 02 0D 0A 00
+6C C7 94 C4 36 CC 8A C8 B4 C8 1E C4 0B 73 74 61
+63 6B 20 65 6D 70 74 79 08 C5 32 C4 0A C4 40 FF
+BC C8 1E C4 09 46 52 41 4D 20 66 75 6C 6C 08 C5
+B2 C4 FA CC E4 CC 0D 41 42 4F 52 54 22 00 0D 12
+84 12 CA C8 0A C4 08 C5 84 CC 5C C9 DA C9 02 27
+0D 12 84 12 8E C7 E0 C9 48 CA B0 C4 60 CD EE C8
+6C CC 54 C8 07 5B 27 5D 0D 12 84 12 50 CD 0A C4
+0A C4 84 CC 84 CC 5C C9 64 CD 03 5B 82 43 BC 21
+30 4D 00 00 02 5D B2 43 BC 21 30 4D A2 C8 11 50
+4F 53 54 50 4F 4E 45 00 0D 12 84 12 8E C7 E0 C9
+48 CA B0 C4 60 CD B4 C8 AC C4 B8 CD 0A C4 0A C4
+84 CC 84 CC 0A C4 84 CC 84 CC 5C C9 00 00 02 3A
+30 12 0E CE 92 B3 C8 21 A2 63 C8 21 0D 12 84 12
+8E C7 E0 C9 D6 CD 3D 41 5A D3 5A 53 0A 5E 19 42
+CC 21 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E
+3E 4F E8 58 00 00 82 48 B4 21 82 49 B6 21 82 4A
+B8 21 82 4F BA 21 2A 52 82 4A C8 21 30 41 BA 40
+0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 21 30 4D
+82 9F BA 21 66 25 84 12 1E C4 0F 73 74 61 63 6B
+20 6D 69 73 6D 61 74 63 68 21 12 C5 7A CD 03 3B
+82 93 BC 21 F4 26 0D 12 84 12 0A C4 5C C9 84 CC
+20 CE 7C CD 5C C9 00 00 12 49 4D 4D 45 44 49 41
+54 45 18 42 B4 21 D8 D3 00 00 30 4D CE CC 0C 43
+52 45 41 54 45 00 B0 12 C4 CD BA 40 86 12 FC FF
+8A 4A FE FF 3A 3D 66 C7 0A 44 4F 45 53 3E 1A 42
+B8 21 BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
+BE CD 0E 3A 4E 4F 4E 41 4D 45 30 12 0E CE 2F 83
+8F 4E 00 00 1A 42 C8 21 1A B3 0A 63 0E 4A 39 40
+12 02 08 49 98 3F 58 CE 05 49 53 00 0D 12 82 93
+BC 21 08 20 84 12 50 CD DA CE 3D 41 BE 4F 02 00
+3E 4F 30 4D 84 12 68 CD 0A C4 DC CE 84 CC 5C C9
+6E CE 08 43 4F 44 45 00 B0 12 C4 CD A2 82 C8 21
+61 3C 76 C9 0E 48 44 4E 43 4F 44 45 B2 40 C8 CF
+CC 21 F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12
+84 12 20 CE 26 CF 3D 41 92 42 D0 21 CC 21 5D 3C
+F2 CE 0E 43 4F 44 45 4E 4E 4D 30 12 FC CE B7 3F
+00 00 0A 43 4F 4C 4F 4E 1A 42 C8 21 BA 40 0D 12
+00 00 BA 40 84 12 02 00 A2 52 C8 21 B2 43 BC 21
+E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 21 1A 42
+C8 21 EF 3F 04 CF 0B 48 49 32 4C 4F A2 53 C8 21
+1A 42 C8 21 8A 4A FE FF 82 43 BC 21 B9 3F 90 CF
+B2 40 A2 CF D0 21 82 4E CE 21 30 40 EE C8 85 12
+8E CF 8E CD 36 CD 20 D0 32 CF 88 CE 9A CA 42 CA
+4E CD 76 CF C8 CE A2 CE 3E CE 96 CC AA D0 C2 CA
+00 00 00 00 85 12 8E CF 24 D7 A8 D5 08 D7 D0 D4
+2C D5 7A D5 56 D6 62 D6 F2 D3 16 D5 00 00 00 00
+64 CF E2 D2 00 00 7E D6 C2 CF B2 40 A2 CF CE 21
+82 43 D0 21 30 4D 3B 40 0A 00 BA 49 00 00 2A 53
+2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54
+39 40 C8 21 3A 40 42 18 B0 12 F6 CF 30 4D 08 D0
+0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40
+C8 21 B0 12 F6 CF 1A 42 CA 21 3B 40 10 00 09 4A
+08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00
+1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37
+39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40 0E C6
+FE FF 29 83 B9 40 FA C5 FE FF 39 90 AE FF F9 23
+39 40 10 18 B2 49 EA FF 3B 40 10 00 3A 40 3A 18
+B0 12 FA CF 82 43 4A 18 C7 3F 9C D0 B2 4E 42 18
+BE 12 3E 4F 3D 41 C0 3F 84 CD 0C 4D 41 52 4B 45
+52 00 12 12 C6 21 0D 12 84 12 8E C7 E0 C9 48 CA
+AC C4 C8 D0 82 C8 5C CC CA D0 3E 4F 3D 41 B2 41
+C6 21 B0 12 C4 CD BA 40 85 12 FC FF BA 40 9A D0
+FE FF 28 83 8A 48 00 00 BA 40 82 C4 02 00 A2 52
+C8 21 18 42 B4 21 19 42 B6 21 A8 49 FE FF 89 48
+00 00 30 4D 12 12 C6 21 84 12 E0 C9 48 CA AC C4
+34 D1 14 D1 3C 4E 3C 80 87 12 0A 24 1C 53 02 20
+2E 4E 06 3C BE 90 9A D0 00 00 01 20 3E 52 2E 83
+21 53 30 41 2A CB AC C4 3C D1 30 D1 3E D1 B2 41
+C6 21 30 41 92 83 C6 21 3E 40 28 00 0A 4E 3D 15
+B0 12 04 D1 15 20 3E 40 2B 00 B0 12 04 D1 06 20
+3E 40 2D 00 B0 12 04 D1 92 83 C6 21 0E 12 1E 41
+02 00 84 12 E0 C9 2A CB AC C4 60 CD 7E D1 3E 51
+3A 17 30 41 B0 12 44 D1 19 42 C8 21 89 4E 00 00
+A2 53 C8 21 3E 40 29 00 92 53 C6 21 1A 42 C6 21
+3D 15 84 12 E0 C9 2A CB AC C4 B6 D1 AE D1 3E 90
+10 00 E6 2B 7C 2D B8 D1 A2 41 C6 21 E1 3F 03 20
+B0 12 9C D1 43 3C 7A 90 23 00 24 20 B0 12 4C D1
+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 C8 21 A2 53 C8 21 89 4E 00 00
+3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12
+4C D1 F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12
+98 D1 0C 20 3C D0 10 00 3E 40 2B 00 B0 12 9C D1
+92 92 C2 21 C6 21 02 24 92 53 C6 21 8E 10 0C 5E
+DF 3F 3C D0 10 00 B0 12 84 D1 F2 3F 03 20 B0 12
+9C D1 F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F
+3C D0 80 00 B0 12 84 D1 EA 3F 0C 43 1B 42 C8 21
+A2 53 C8 21 3A 40 20 00 19 42 C6 21 19 52 C4 21
+7A 99 FE 27 5A 49 FF FF 19 82 C4 21 82 49 C6 21
+7A 90 52 00 30 4D 00 00 08 52 45 54 49 00 0D 12
+84 12 0A C4 00 13 84 CC 5C C9 0A C4 2C 00 7A D2
+BE D1 8E C7 84 D2 5C D2 CA D2 3D 41 2C DE 8B 4C
+00 00 9E 3F 00 00 06 4D 4F 56 85 12 BA D2 00 40
+D6 D2 0A 4D 4F 56 2E 42 85 12 BA D2 40 40 00 00
+06 41 44 44 85 12 BA D2 00 50 F0 D2 0A 41 44 44
+2E 42 85 12 BA D2 40 50 FC D2 08 41 44 44 43 00
+85 12 BA D2 00 60 0A D3 0C 41 44 44 43 2E 42 00
+85 12 BA D2 40 60 42 CF 08 53 55 42 43 00 85 12
+BA D2 00 70 28 D3 0C 53 55 42 43 2E 42 00 85 12
+BA D2 40 70 36 D3 06 53 55 42 85 12 BA D2 00 80
+46 D3 0A 53 55 42 2E 42 85 12 BA D2 40 80 52 D3
+06 43 4D 50 85 12 BA D2 00 90 60 D3 0A 43 4D 50
+2E 42 85 12 BA D2 40 90 00 00 08 44 41 44 44 00
+85 12 BA D2 00 A0 7A D3 0C 44 41 44 44 2E 42 00
+85 12 BA D2 40 A0 A8 D2 06 42 49 54 85 12 BA D2
+00 B0 98 D3 0A 42 49 54 2E 42 85 12 BA D2 40 B0
+A4 D3 06 42 49 43 85 12 BA D2 00 C0 B2 D3 0A 42
+49 43 2E 42 85 12 BA D2 40 C0 BE D3 06 42 49 53
+85 12 BA D2 00 D0 CC D3 0A 42 49 53 2E 42 85 12
+BA D2 40 D0 00 00 06 58 4F 52 85 12 BA D2 00 E0
+E6 D3 0A 58 4F 52 2E 42 85 12 BA D2 40 E0 18 D3
+06 41 4E 44 85 12 BA D2 00 F0 00 D4 0A 41 4E 44
+2E 42 85 12 BA D2 40 F0 8E C7 7A D2 BE D1 20 D4
+0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F
+D8 D3 06 52 52 43 85 12 18 D4 00 10 32 D4 0A 52
+52 43 2E 42 85 12 18 D4 40 10 6C D3 08 53 57 50
+42 00 85 12 18 D4 80 10 3E D4 06 52 52 41 85 12
+18 D4 00 11 5A D4 0A 52 52 41 2E 42 85 12 18 D4
+40 11 4C D4 06 53 58 54 85 12 18 D4 80 11 00 00
+08 50 55 53 48 00 85 12 18 D4 00 12 80 D4 0C 50
+55 53 48 2E 42 00 85 12 18 D4 40 12 74 D4 08 43
+41 4C 4C 00 85 12 18 D4 80 12 1A 53 0E 4A 84 12
+D0 C9 1E C4 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
+64 73 12 C5 9E D4 06 53 3E 3D 86 12 00 38 C6 D4
+04 53 3C 00 86 12 00 34 8E D4 06 30 3E 3D 86 12
+00 30 DA D4 04 30 3C 00 86 12 00 30 16 CF 04 55
+3C 00 86 12 00 2C EE D4 06 55 3E 3D 86 12 00 28
+E4 D4 06 30 3C 3E 86 12 00 24 02 D5 04 30 3D 00
+86 12 00 20 00 00 04 49 46 00 1A 42 C8 21 8A 4E
+00 00 A2 53 C8 21 0E 4A 30 4D 88 D3 08 54 48 45
+4E 00 1A 42 C8 21 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D F8 D4
+08 45 4C 53 45 00 1A 42 C8 21 BA 40 00 3C 00 00
+A2 53 C8 21 2F 83 8F 4A 00 00 E3 3F 66 D4 0A 42
+45 47 49 4E 30 40 32 C4 50 D5 0A 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C8 21 2A 83 0A 89 0A 11
+3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C8 21 30 4D 0C D4 0A 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12
+84 12 1A D5 76 C8 5C C9 6E D5 0C 52 45 50 45 41
+54 00 0D 12 84 12 AE D5 32 D5 5C C9 DE D5 3D 41
+08 4E 3E 4F 2A 48 B2 92 C6 21 CB 2F 98 42 C8 21
+00 00 30 4D CA D5 06 42 57 31 85 12 DC D5 00 00
+F6 D5 06 42 57 32 85 12 DC D5 00 00 02 D6 06 42
+57 33 85 12 DC D5 00 00 1A D6 3D 41 1A 42 C8 21
+28 4E 8E 43 00 00 B2 92 C6 21 86 2B BA 4F 00 00
+A2 53 C8 21 8E 4A 00 00 3E 4F 30 4D 00 00 06 46
+57 31 85 12 18 D6 00 00 3E D6 06 46 57 32 85 12
+18 D6 00 00 4A D6 06 46 57 33 85 12 18 D6 00 00
+B8 D5 08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C 0D 12 84 12 50 CD 5C CC 5C C9 00 00 0A 3F
+47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
+00 10 EF 27 3E E0 00 08 EC 3F 84 D2 0A C4 2C 00
+E0 C9 2A CB AC C4 60 CD 8E C7 7A D2 5C D2 B0 D6
+0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E
+AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E 0E D6 08 52
+52 43 4D 00 85 12 9A D6 50 00 DE D6 08 52 52 41
+4D 00 85 12 9A D6 50 01 EC D6 08 52 4C 41 4D 00
+85 12 9A D6 50 02 FA D6 08 52 52 55 4D 00 85 12
+9A D6 50 03 0C D5 0A 50 55 53 48 4D 85 12 9A D6
+00 15 16 D7 08 50 4F 50 4D 00 85 12 9A D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 82 C6 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 42 D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 B6 C6 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 0E C6
 q
diff --git a/binaries/MSP_EXP430FR4133_1MHz_UART.txt b/binaries/MSP_EXP430FR4133_1MHz_UART.txt
deleted file mode 100644 (file)
index d7f6e4e..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF 34 D8 3C D0 34 01
-10 00 41 B3 94 C5 AA C4 DA C5 9C C5 94 C6 34 D8
-3C D0 7A C6 92 C7 24 C7 FE C6 3C 21 60 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 78 C6 B2 49 90 C7 B2 49 22 C7 B2 49 FC C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 08 D1 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E0 C7 32 C7
-14 C4 04 1B 5B 37 6D 00 5C C7 A8 C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C7 A0 C8 5C C7 14 C4 04 1B 5B 30 6D 00
-5C C7 62 CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 03 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 F2 D2 03 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 F2 C2 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 E2 B2 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00 B0 12
-9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23 5C C7
-D6 C8 14 C4 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 5C C7
-0A C4 40 FF 28 C4 D4 C7 A0 C8 14 C4 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C4 86 C5 00 00 06 41
-43 43 45 50 54 00 30 40 7A C6 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C6 3C 40 D2 C6
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 C6 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C6 2F 83
-8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C7 08 4E 3E 4F C8 3F 1A C7 04 45 43 48
-4F 00 B2 40 C2 48 C0 C6 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C6 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C7 7A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00 30 40
-92 C7 0D 12 84 12 14 C4 02 0D 0A 00 5C C7 60 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C6 01 40
-2E 4E 30 4D DE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 1A C8 02 23 53 00 0D 12
-84 12 1C C8 56 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C8 4E C8 EE C4 8E C8 6A C8 5C C7 4E CC 20 C7
-60 C8 40 C7 01 2E 0E 93 E3 37 38 43 E2 3F 88 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-94 CB 0A C4 22 00 2C C9 FA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 C8 82 2E 22 00 0D 12 84 12 E4 C8 0A C4 5C C7
-94 CB 60 C8 18 C6 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 9C C8 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 00 00 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 56 CA D2 3F 58 CA 81 49 02 00 1C 4F 04 00
-1E 41 04 00 3D 40 6A CA C8 3F 6C 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 32 C0 00 02 1B 42 DC 21
-0C 43 2D 15 3D 40 EA CA 0A 4B 3F 82 8F 4E 06 00
-8F 43 04 00 8F 43 02 00 0C 4E 7B 4C FC 90 27 00
-00 00 06 20 DF 4C 01 00 04 00 7E 90 03 00 47 3C
-68 4C 78 80 2D 00 04 28 B1 23 B1 43 02 00 0A 3C
-2A 43 78 52 07 24 3A 52 68 53 04 24 3A 40 10 00
-78 53 35 20 1C 53 1B 83 EB 3F EC CA 30 24 2D 83
-78 90 28 00 C2 27 32 B0 00 02 29 20 32 D0 00 02
-78 90 F7 00 BA 27 78 90 F5 00 21 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 66 C4 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 4B 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
-00 00 01 2C 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21
-3E 4F 30 4D 92 CB 87 4C 49 54 45 52 41 4C 82 93
-BE 21 0D 24 09 4E 1A 42 C6 21 A2 52 C6 21 BA 40
-0A C4 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 03 24 8A 4E 02 00 EE 3F 30 4D 66 C8 05 43
-4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
-30 4D 7A C8 09 49 4E 54 45 52 50 52 45 54 0D 12
-84 12 AC C4 4E CC 2C C9 0A CC 7F 26 3D 40 12 CC
-C1 3E 14 CC 0A 4E 3E 4F 3D 40 2E CC 35 27 3D 40
-04 CC 1A E2 BE 21 B6 27 0E 12 3E 4F 30 41 30 CC
-3E 4F 3D 40 04 CC BB 23 DE 53 00 00 68 4E 08 5E
-F8 40 3F 00 00 00 3D 40 D0 CD CC 3F 38 CC 86 12
-20 00 E6 C7 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F
-30 4D 3F 40 80 20 0E 43 31 40 E0 20 B2 40 00 20
-00 20 82 43 BE 21 84 12 8E C7 BC C4 FE CB C4 C7
-F6 C7 14 C4 0C 73 74 61 63 6B 20 65 6D 70 74 79
-21 00 2A C5 0A C4 40 FF 28 C4 FE C7 14 C4 0A 46
-52 41 4D 20 66 75 6C 6C 21 00 2A C5 3A C4 78 CC
-54 CC 86 41 42 4F 52 54 22 00 0D 12 84 12 E4 C8
-0A C4 2A C5 94 CB 60 C8 8E C9 01 27 0D 12 84 12
-4E CC 2C C9 94 C9 34 C4 4C CC 60 C8 00 00 83 5B
-27 5D 0D 12 84 12 CC CC 0A C4 0A C4 94 CB 94 CB
-60 C8 DE CC 81 5B 82 43 BE 21 30 4D 0C C8 01 5D
-B2 43 BE 21 30 4D FE CC 81 5C 92 42 C0 21 C4 21
-30 4D 00 00 88 50 4F 53 54 50 4F 4E 45 00 0D 12
-84 12 4E CC 2C C9 94 C9 A8 C7 34 C4 4C CC F6 C7
-34 C4 40 CD 0A C4 0A C4 94 CB 94 CB 0A C4 94 CB
-94 CB 60 C8 F4 CC 01 3A 30 12 90 CD 92 B3 C6 21
-A2 63 C6 21 0D 12 84 12 4E CC 2C C9 5E 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
-BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BE 21
-30 4D 82 9F BC 21 09 20 18 42 B6 21 19 42 B8 21
-A8 49 FE FF 89 48 00 00 30 4D 0D 12 84 12 14 C4
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-36 C5 46 CD 81 3B 82 93 BE 21 97 27 0D 12 84 12
-0A C4 60 C8 94 CB A2 CD F6 CC 60 C8 F4 CB 09 49
-4D 4D 45 44 49 41 54 45 18 42 B6 21 F8 D0 80 00
-00 00 30 4D DE CB 06 43 52 45 41 54 45 00 B0 12
-4C CD BA 40 86 12 FC FF 8A 4A FE FF C9 3F 06 CE
-04 43 4F 44 45 00 B0 12 4C CD A2 82 C6 21 0D 12
-84 12 3E D0 18 D0 60 C8 EE CD 07 48 44 4E 43 4F
-44 45 B2 40 1C D0 DA 21 EE 3F 00 00 07 45 4E 44
-43 4F 44 45 0D 12 84 12 A2 CD 58 D0 76 D0 60 C8
-00 00 05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 0D 12
-00 00 BA 40 84 12 02 00 A2 52 C6 21 B2 43 BE 21
-0D 12 84 12 58 D0 76 D0 60 C8 00 00 05 4C 4F 32
-48 49 A2 83 C6 21 1A 42 C6 21 EB 3F 3A CE 85 48
-49 32 4C 4F 0D 12 84 12 28 C4 E6 CF 94 CB F6 CC
-2E CE 60 C8 D4 CD 86 5B 54 48 45 4E 5D 00 30 4D
-0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C 10 24 1B 83
-06 30 1C 83 04 30 19 53 F9 98 FF FF F5 27 2D 4D
-3E 4F 30 4D 2F 53 9F 83 00 00 F9 23 2F 53 2D 53
-F7 3F B6 CE 86 5B 45 4C 53 45 5D 00 0D 12 84 12
-0A C4 00 00 D8 C7 4E CC 2C C9 E4 CB A0 C7 34 C4
-4E CF AE C7 14 C4 06 5B 54 48 45 4E 5D 00 C0 CE
-28 CF E4 CE 06 CF 60 C8 AE C7 14 C4 06 5B 45 4C
-53 45 5D 00 C0 CE 3E CF E4 CE 04 CF 60 C8 14 C4
-04 5B 49 46 5D 00 C0 CE 06 CF 3A C4 04 CF 82 C7
-14 C4 05 0D 0A 6B 6F 20 5C C7 BC C4 AC C4 3A C4
-06 CF F4 CE 84 5B 49 46 5D 00 0E 93 3E 4F C6 27
-30 4D 2F 53 30 4D 64 CF 89 5B 44 45 46 49 4E 45
-44 5D 0D 12 84 12 4E CC 2C C9 94 C9 72 CF 60 C8
-78 CF 8B 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
-84 12 82 CF F0 C7 60 C8 AA CF B2 4E 0A 18 2E 53
-BE 12 3E 4F 3D 41 90 3C A6 CB 06 4D 41 52 4B 45
-52 00 B0 12 4C CD BA 40 85 12 FC FF BA 40 A8 CF
-FE FF 28 83 8A 48 00 00 BA 40 AA C4 04 00 B2 50
-06 00 C6 21 E1 3E 2E 53 30 4D 0A C4 CA 21 E8 C7
-60 C8 85 12 EA CF B2 CC 20 CE 2C C7 CA CC 9E CE
-F6 C6 BA CF 12 C9 E2 D0 F6 D0 F4 C9 26 C9 00 00
-92 CF 08 CD 1C CA 00 00 85 12 EA CF AA D6 10 D7
-52 D6 60 D7 18 D6 00 00 E4 D3 00 00 28 D8 0C D8
-7C D6 BA D6 F4 D4 00 00 00 00 7C D7 16 D0 3A 40
-0C 00 39 40 D6 21 08 49 28 53 19 83 18 83 E8 49
-00 00 1A 83 FA 23 30 4D 3A 40 0E 00 38 40 CA 21
-09 48 29 53 F8 49 00 00 18 53 1A 83 FB 23 30 4D
-82 43 CC 21 30 4D 92 42 CA 21 DA 21 30 4D F2 CF
-70 D0 76 D0 86 D0 1A 42 20 18 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 14 CD 09 50 57 52
-5F 53 54 41 54 45 85 12 7E D0 34 D8 E0 C8 09 52
-53 54 5F 53 54 41 54 45 92 42 0A 18 CA D0 F3 3F
-BC D0 08 50 57 52 5F 48 45 52 45 00 92 42 C6 21
-CA D0 30 4D CE D0 08 52 53 54 5F 48 45 52 45 00
-92 42 C6 21 0A 18 F2 3F 3E 90 0E 00 DC 27 2E 92
-E3 37 0E 93 D8 37 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B9 40 54 D1 FE FF 29 83 B9 40 02 C6 FE FF
-39 90 AE FF F9 23 39 40 14 18 B2 49 04 C6 B2 49
-FA C4 B2 49 02 C4 B2 49 20 C6 B2 49 EC FF B2 49
-0A 18 C2 3F B2 D0 03 00 04 01 B2 D0 10 00 00 01
-B2 40 80 5A CC 01 31 40 E0 20 3F 40 80 20 39 40
-00 08 29 83 89 43 00 20 FC 23 B2 D3 06 02 B2 D3
-02 02 F2 D2 05 02 B2 D0 FF FE 26 02 B2 43 22 02
-B2 D3 46 02 B2 43 42 02 B2 D3 66 02 B2 43 62 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 82 43 88 01 F2 D0 06 00
-2B 02 39 40 40 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 C4 1E C6 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 2C C9 94 C9 F0 C7 34 C4 24 D2 88 CA 34 C4
-3E D2 38 D2 26 D2 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 40 D2
-B2 41 C4 21 3E 41 84 12 0A C4 2B 00 2C C9 94 C9
-F0 C7 34 C4 5C D2 88 CA 34 C4 4C CC BA C7 2C C9
-88 CA 34 C4 4C CC 68 D2 3E 5F E7 3F 3E 40 28 00
-B0 12 08 D2 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 BA CD
-1C 15 12 12 C4 21 92 53 C4 21 84 12 2C C9 88 CA
-34 C4 B0 D2 A6 D2 21 53 3E 90 10 00 C6 2B 7F 2D
-B2 D2 B2 41 C4 21 C1 3F 0D 12 84 12 4E CC E4 D1
-C2 D2 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 08 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 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 08 D2 ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 90 D2 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 90 D2 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 90 D2 FA 23
-3C 50 10 00 B0 12 6C D2 EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 4E CC E4 D1 8E D3 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 90 D2 E0 23 3C 50 80 00 B0 12 6C D2 DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A C4 00 13
-94 CB 60 C8 0A C4 2C 00 B8 D2 84 D3 CE D3 09 4B
-2E 4E 0E DC A2 3F 8C CE 03 4D 4F 56 85 12 C4 D3
-00 40 D8 D3 05 4D 4F 56 2E 42 85 12 C4 D3 40 40
-00 00 03 41 44 44 85 12 C4 D3 00 50 F2 D3 05 41
-44 44 2E 42 85 12 C4 D3 40 50 FE D3 04 41 44 44
-43 00 85 12 C4 D3 00 60 0C D4 06 41 44 44 43 2E
-42 00 85 12 C4 D3 40 60 B2 D3 04 53 55 42 43 00
-85 12 C4 D3 00 70 2A D4 06 53 55 42 43 2E 42 00
-85 12 C4 D3 40 70 38 D4 03 53 55 42 85 12 C4 D3
-00 80 48 D4 05 53 55 42 2E 42 85 12 C4 D3 40 80
-62 CE 03 43 4D 50 85 12 C4 D3 00 90 62 D4 05 43
-4D 50 2E 42 85 12 C4 D3 40 90 4C CE 04 44 41 44
-44 00 85 12 C4 D3 00 A0 7C D4 06 44 41 44 44 2E
-42 00 85 12 C4 D3 40 A0 6E D4 03 42 49 54 85 12
-C4 D3 00 B0 9A D4 05 42 49 54 2E 42 85 12 C4 D3
-40 B0 A6 D4 03 42 49 43 85 12 C4 D3 00 C0 B4 D4
-05 42 49 43 2E 42 85 12 C4 D3 40 C0 C0 D4 03 42
-49 53 85 12 C4 D3 00 D0 CE D4 05 42 49 53 2E 42
-85 12 C4 D3 40 D0 00 00 03 58 4F 52 85 12 C4 D3
-00 E0 E8 D4 05 58 4F 52 2E 42 85 12 C4 D3 40 E0
-1A D4 03 41 4E 44 85 12 C4 D3 00 F0 02 D5 05 41
-4E 44 2E 42 85 12 C4 D3 40 F0 4E CC B8 D2 20 D5
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-54 D4 03 52 52 43 85 12 1A D5 00 10 32 D5 05 52
-52 43 2E 42 85 12 1A D5 40 10 3E D5 04 53 57 50
-42 00 85 12 1A D5 80 10 4C D5 03 52 52 41 85 12
-1A D5 00 11 5A D5 05 52 52 41 2E 42 85 12 1A D5
-40 11 66 D5 03 53 58 54 85 12 1A D5 80 11 00 00
-04 50 55 53 48 00 85 12 1A D5 00 12 80 D5 06 50
-55 53 48 2E 42 00 85 12 1A D5 40 12 DA D4 04 43
-41 4C 4C 00 85 12 1A D5 80 12 1A 53 0E 4A 0D 12
-84 12 D6 C8 14 C4 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 C5 74 D5 03 53 3E 3D 86 12 00 38
-C8 D5 02 53 3C 00 86 12 00 34 8E D5 03 30 3E 3D
-86 12 00 30 DC D5 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C F0 D5 03 55 3E 3D 86 12
-00 28 E6 D5 03 30 3C 3E 86 12 00 24 04 D6 02 30
-3D 00 86 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 D5 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 B1 2F 88 DA 00 00 30 4D
-8A D4 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 9E D5
-05 42 45 47 49 4E 30 40 28 C4 2E D6 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D 0E D5 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 1C D6 BA C7 60 C8 D2 D5 06 52 45 50
-45 41 54 00 0D 12 84 12 B0 D6 34 D6 60 C8 E0 D6
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 70 D6 03 42 57 31 85 12 DE D6
-00 00 F8 D6 03 42 57 32 85 12 DE D6 00 00 04 D7
-03 42 57 33 85 12 DE D6 00 00 1C D7 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 1A D7 00 00 3C D7 03 46 57 32 85 12 1A D7
-00 00 48 D7 03 46 57 33 85 12 1A D7 00 00 54 D7
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 CC CC 28 CC 60 C8 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 4E CC E4 D1 9E D7 92 53
-C4 21 3E 40 2C 00 84 12 2C C9 88 CA 34 C4 4C CC
-7A D3 B4 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-CC D6 04 52 52 43 4D 00 85 12 98 D7 50 00 E2 D7
-04 52 52 41 4D 00 85 12 98 D7 50 01 F0 D7 04 52
-4C 41 4D 00 85 12 98 D7 50 02 FE D7 04 52 52 55
-4D 00 85 12 98 D7 50 03 0E D6 05 50 55 53 48 4D
-85 12 98 D7 00 15 1A D8 04 50 4F 50 4D 00 85 12
-98 D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 94 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 54 D1
-q
diff --git a/binaries/MSP_EXP430FR4133_8MHz_115200.txt b/binaries/MSP_EXP430FR4133_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..3cf90d5
--- /dev/null
@@ -0,0 +1,328 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A0 59
+C2 C6 7E C5 84 C5 54 C5 32 C7 5A D7 12 D0 CC CF
+CC CF A8 C6 66 C7 2E C7 3C 21 E0 20 86 C9 B6 C4
+C4 C4 A2 C8 20 00 0A 00 00 20 7E C5 84 C5 54 C5
+32 C7 5A D7 12 D0 CC CF CC CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 FC 3C 0E 93 3E 4F
+91 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A6 C6 B2 49
+64 C7 B2 49 2C C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 86 D0 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 32 C7 92 C3 1C 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 1C 05 F3 23
+B0 12 D0 C4 AC C8 AC C4 52 C5 74 C7 1E C4 04 1B
+5B 37 6D 00 96 C7 96 C7 1E C4 04 1B 5B 30 6D 00
+96 C7 1C CD B0 12 7E C5 B2 40 81 00 00 05 92 42
+02 18 06 05 92 42 04 18 08 05 F2 D0 03 00 0A 02
+92 C3 00 05 92 D3 1A 05 92 C3 30 01 30 41 92 B3
+0A 05 FD 23 30 41 92 12 3E 18 84 12 74 C7 1E C4
+07 0D 0A 1B 5B 37 6D 23 96 C7 FA C9 1E C4 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 96 C7 0A C4 40 FF 32 C4
+C2 C8 C6 C9 1E C4 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C4 46 C5 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C5 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B2 00 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A CC 01 3F 40 80 20 31 40 E0 20
+B2 D3 06 02 B2 D3 02 02 F2 D2 05 02 B2 D0 FF FE
+26 02 B2 43 22 02 B2 D3 46 02 B2 43 42 02 B2 D3
+66 02 B2 43 62 02 B2 40 00 A5 60 01 82 43 88 01
+F2 D0 06 00 2B 02 F2 C3 82 01 F2 D0 06 00 82 01
+B2 40 F4 00 84 01 39 40 40 00 18 42 00 18 18 83
+FE 23 19 83 FA 23 39 40 00 08 29 83 89 43 00 20
+FC 23 19 42 5E 01 1E 42 08 18 82 43 08 18 3E F3
+01 20 0E 49 B0 12 D0 C4 86 C5 00 00 0C 41 43 43
+45 50 54 00 30 40 A8 C6 08 4E 2E 4F 08 5E 39 40
+0D 00 3A 40 20 00 3B 40 06 C7 3C 40 12 C7 5D 15
+9F 3E 21 52 3A 17 58 42 0C 05 48 9B 09 20 A2 B3
+1C 05 FD 27 B2 40 13 00 0E 05 F2 D2 03 02 30 41
+48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 1C 05 FD 27
+C2 48 0E 05 30 4D 08 C7 2D 83 92 B3 1C 05 DB 23
+FC 3F 3E 8F 3D 41 92 B3 1C 05 FD 27 58 42 0C 05
+08 4C EB 3F 00 00 06 4B 45 59 30 40 2E C7 30 12
+44 C7 A2 B3 1C 05 FD 27 B2 40 11 00 0E 05 F2 C2
+03 02 30 41 2F 83 8F 4E 00 00 92 B3 1C 05 FD 27
+B0 12 CE C6 1E 42 0C 05 30 4D 00 00 08 45 4D 49
+54 00 30 40 66 C7 08 4E 3E 4F C7 3F 5C C7 08 45
+43 48 4F 00 B2 40 C2 48 00 C7 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D 00 C7 30 4D 00 00
+08 54 59 50 45 00 0D 12 3D 40 A6 C7 29 4F 8F 4E
+00 00 7E 49 DE 3F A8 C7 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 75 22 F9 98 00 00 72 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 69 22
+9B 24 26 C7 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A C4 00 00 C6 C8 B8 C7 0A CA FE CC B0 C4 34 C8
+14 C4 06 5B 54 48 45 4E 5D 00 BC C7 12 C8 D8 C7
+F6 C7 14 C4 06 5B 45 4C 53 45 5D 00 BC C7 24 C8
+D8 C7 F4 C7 1E C4 04 5B 49 46 5D 00 BC C7 F6 C7
+B2 C4 F4 C7 1E C4 05 0D 6B 6F 20 0A 96 C7 9A C4
+84 C4 B2 C4 F6 C7 E4 C7 0D 5B 54 48 45 4E 5D 00
+30 4D 48 C8 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 54 C8 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 B8 C7 0A CA 72 CA 50 CC 86 C9 64 C8 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 B8 C7
+0A CA 72 CA 96 C8 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D 9C C6 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C5
+05 53 22 00 82 43 C0 21 0D 12 84 12 0A C4 1E C4
+AE CC 0A C4 22 00 0A CA 0A C9 B2 40 20 00 C0 21
+1A 53 1A B3 82 6A C8 21 3E 4F 3D 41 30 4D 7E C7
+05 2E 22 00 0D 12 84 12 F4 C8 0A C4 96 C7 AE CC
+86 C9 00 00 04 3C 23 00 B2 40 B2 21 B2 21 30 4D
+F0 C8 02 23 1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4
+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
+42 C9 04 23 53 00 0D 12 84 12 44 C9 7E C9 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 72 C9 04 23 3E 00
+9F 42 B2 21 00 00 3E 40 B2 21 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 8C C9 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+6E C7 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 38 C9 B8 C7 A6 C9 76 C9 A2 C8 B4 C9
+90 C9 96 C7 86 C9 20 C9 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 21 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 21 F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 21 82 48 C6 21 1E 42
+C8 21 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D C2 C9 06 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 F8 C9 0E 3E 4E 55
+4D 42 45 52 1A 42 BE 21 2C 4F 0B 4E 68 4C 78 80
+3A 00 03 28 78 80 07 00 21 28 78 50 0A 00 08 9A
+22 C3 1C 2C 5D 15 1C 4F 02 00 0E 4A 3D 40 22 CB
+D4 3F 24 CB 81 49 02 00 1C 4F 04 00 1E 41 04 00
+3D 40 36 CB CA 3F 38 CB 39 51 3E 61 8F 49 04 00
+8F 4E 02 00 3A 17 1C 53 1B 83 D8 23 8F 4C 00 00
+0E 4B 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 8F 43
+04 00 8F 43 02 00 1A 42 BE 21 0C 4E 0E 43 1E 15
+3D 40 B8 CB 7B 4C 68 4C 78 80 2D 00 16 24 BE 2F
+2A 43 78 52 14 24 3A 52 68 53 11 24 3A 40 10 00
+58 93 0D 24 68 92 40 20 3E 90 03 00 3D 20 FC 9C
+01 00 6C 4C 8F 4C 04 00 37 3C B1 43 02 00 1B 83
+FC 9C 00 00 E0 23 A2 27 BA CB 2E 24 2D 83 68 4C
+78 90 5F 00 C0 27 32 B0 00 02 26 20 32 D0 00 02
+78 80 2E 00 B8 27 68 53 1F 20 09 43 8F 49 02 00
+5B 83 09 4B 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9A 08 2C 8F 49 00 00
+0E 4A 2C 15 B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4B 93 1D 17 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 34 C9 03 5C 92 42 C2 21 C6 21 30 4D
+0D 12 84 12 84 C4 B8 C7 0A CA B0 C4 88 CD 72 CA
+72 CC 0A 4E 3E 4F 3D 40 8C CC 6C 27 3D 40 66 CC
+1A E2 BC 21 14 24 0E 12 3E 4F 30 41 8E CC 3E 4F
+3D 40 66 CC 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 64 CE 2A 3C 56 CC 02 2C A2 53
+C8 21 1A 42 C8 21 8A 4E FE FF 3E 4F 30 4D AC CC
+0F 4C 49 54 45 52 41 4C 82 93 BC 21 0D 24 09 4E
+1A 42 C8 21 A2 52 C8 21 BA 40 0A C4 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D AE C9 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D D4 C8 0A 41
+4C 4C 4F 54 82 5E C8 21 3E 4F 30 4D 3F 40 80 20
+0E 43 84 12 1E C4 02 0D 0A 00 96 C7 94 C4 60 CC
+B4 C8 DE C8 1E C4 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 C5 32 C4 0A C4 40 FF E6 C8 1E C4 09 46
+52 41 4D 20 66 75 6C 6C 08 C5 B2 C4 24 CD 0E CD
+0D 41 42 4F 52 54 22 00 0D 12 84 12 F4 C8 0A C4
+08 C5 AE CC 86 C9 04 CA 02 27 0D 12 84 12 B8 C7
+0A CA 72 CA B0 C4 8A CD 18 C9 96 CC 7E C8 07 5B
+27 5D 0D 12 84 12 7A CD 0A C4 0A C4 AE CC AE CC
+86 C9 8E CD 03 5B 82 43 BC 21 30 4D 00 00 02 5D
+B2 43 BC 21 30 4D CC C8 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 B8 C7 0A CA 72 CA B0 C4 8A CD
+DE C8 AC C4 E2 CD 0A C4 0A C4 AE CC AE CC 0A C4
+AE CC AE CC 86 C9 00 00 02 3A 30 12 38 CE 92 B3
+C8 21 A2 63 C8 21 0D 12 84 12 B8 C7 0A CA 00 CE
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 21 82 49 B6 21 82 4A B8 21 82 4F BA 21
+2A 52 82 4A C8 21 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 21 30 4D 82 9F BA 21 66 25
+84 12 1E C4 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 C5 A4 CD 03 3B 82 93 BC 21 F4 26
+0D 12 84 12 0A C4 86 C9 AE CC 4A CE A6 CD 86 C9
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 21
+D8 D3 00 00 30 4D F8 CC 0C 43 52 45 41 54 45 00
+B0 12 EE CD BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+90 C7 0A 44 4F 45 53 3E 1A 42 B8 21 BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D E8 CD 0E 3A 4E 4F
+4E 41 4D 45 30 12 38 CE 2F 83 8F 4E 00 00 1A 42
+C8 21 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+82 CE 05 49 53 00 0D 12 82 93 BC 21 08 20 84 12
+7A CD 04 CF 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+92 CD 0A C4 06 CF AE CC 86 C9 98 CE 08 43 4F 44
+45 00 B0 12 EE CD A2 82 C8 21 61 3C A0 C9 0E 48
+44 4E 43 4F 44 45 B2 40 F2 CF CC 21 F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 4A CE 50 CF
+3D 41 92 42 D0 21 CC 21 5D 3C 1C CF 0E 43 4F 44
+45 4E 4E 4D 30 12 26 CF B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 21 BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 21 1A 42 C8 21 EF 3F 2E CF
+0B 48 49 32 4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A
+FE FF 82 43 BC 21 B9 3F BA CF B2 40 CC CF D0 21
+82 4E CE 21 30 40 18 C9 85 12 B8 CF B8 CD 60 CD
+4A D0 5C CF B2 CE C4 CA 6C CA 78 CD A0 CF F2 CE
+CC CE 68 CE C0 CC D4 D0 EC CA 00 00 00 00 85 12
+B8 CF 4E D7 D2 D5 32 D7 FA D4 56 D5 A4 D5 80 D6
+8C D6 1C D4 40 D5 00 00 00 00 8E CF 0C D3 00 00
+A8 D6 EC CF B2 40 CC CF CE 21 82 43 D0 21 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 21 3A 40
+42 18 B0 12 20 D0 30 4D 32 D0 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 21 B0 12 20 D0
+1A 42 CA 21 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 C6 FE FF 29 83 B9 40
+F2 C5 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+EC FF 3B 40 10 00 3A 40 3A 18 B0 12 24 D0 82 43
+4A 18 C7 3F C6 D0 B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F AE CD 0C 4D 41 52 4B 45 52 00 12 12 C6 21
+0D 12 84 12 B8 C7 0A CA 72 CA AC C4 F2 D0 AC C8
+86 CC F4 D0 3E 4F 3D 41 B2 41 C6 21 B0 12 EE CD
+BA 40 85 12 FC FF BA 40 C4 D0 FE FF 28 83 8A 48
+00 00 BA 40 82 C4 02 00 A2 52 C8 21 18 42 B4 21
+19 42 B6 21 A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 21 84 12 0A CA 72 CA AC C4 5E D1 3E D1 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+C4 D0 00 00 01 20 3E 52 2E 83 21 53 30 41 54 CB
+AC C4 66 D1 5A D1 68 D1 B2 41 C6 21 30 41 92 83
+C6 21 3E 40 28 00 0A 4E 3D 15 B0 12 2E D1 15 20
+3E 40 2B 00 B0 12 2E D1 06 20 3E 40 2D 00 B0 12
+2E D1 92 83 C6 21 0E 12 1E 41 02 00 84 12 0A CA
+54 CB AC C4 8A CD A8 D1 3E 51 3A 17 30 41 B0 12
+6E D1 19 42 C8 21 89 4E 00 00 A2 53 C8 21 3E 40
+29 00 92 53 C6 21 1A 42 C6 21 3D 15 84 12 0A CA
+54 CB AC C4 E0 D1 D8 D1 3E 90 10 00 E6 2B 7C 2D
+E2 D1 A2 41 C6 21 E1 3F 03 20 B0 12 C6 D1 43 3C
+7A 90 23 00 24 20 B0 12 76 D1 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
+C8 21 A2 53 C8 21 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 76 D1 F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 C2 D1 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 C6 D1 92 92 C2 21 C6 21
+02 24 92 53 C6 21 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 AE D1 F2 3F 03 20 B0 12 C6 D1 F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+AE D1 EA 3F 0C 43 1B 42 C8 21 A2 53 C8 21 3A 40
+20 00 19 42 C6 21 19 52 C4 21 7A 99 FE 27 5A 49
+FF FF 19 82 C4 21 82 49 C6 21 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A C4 00 13
+AE CC 86 C9 0A C4 2C 00 A4 D2 E8 D1 B8 C7 AE D2
+86 D2 F4 D2 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 E4 D2 00 40 00 D3 0A 4D 4F 56
+2E 42 85 12 E4 D2 40 40 00 00 06 41 44 44 85 12
+E4 D2 00 50 1A D3 0A 41 44 44 2E 42 85 12 E4 D2
+40 50 26 D3 08 41 44 44 43 00 85 12 E4 D2 00 60
+34 D3 0C 41 44 44 43 2E 42 00 85 12 E4 D2 40 60
+6C CF 08 53 55 42 43 00 85 12 E4 D2 00 70 52 D3
+0C 53 55 42 43 2E 42 00 85 12 E4 D2 40 70 60 D3
+06 53 55 42 85 12 E4 D2 00 80 70 D3 0A 53 55 42
+2E 42 85 12 E4 D2 40 80 7C D3 06 43 4D 50 85 12
+E4 D2 00 90 8A D3 0A 43 4D 50 2E 42 85 12 E4 D2
+40 90 00 00 08 44 41 44 44 00 85 12 E4 D2 00 A0
+A4 D3 0C 44 41 44 44 2E 42 00 85 12 E4 D2 40 A0
+D2 D2 06 42 49 54 85 12 E4 D2 00 B0 C2 D3 0A 42
+49 54 2E 42 85 12 E4 D2 40 B0 CE D3 06 42 49 43
+85 12 E4 D2 00 C0 DC D3 0A 42 49 43 2E 42 85 12
+E4 D2 40 C0 E8 D3 06 42 49 53 85 12 E4 D2 00 D0
+F6 D3 0A 42 49 53 2E 42 85 12 E4 D2 40 D0 00 00
+06 58 4F 52 85 12 E4 D2 00 E0 10 D4 0A 58 4F 52
+2E 42 85 12 E4 D2 40 E0 42 D3 06 41 4E 44 85 12
+E4 D2 00 F0 2A D4 0A 41 4E 44 2E 42 85 12 E4 D2
+40 F0 B8 C7 A4 D2 E8 D1 4A D4 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F 02 D4 06 52 52 43
+85 12 42 D4 00 10 5C D4 0A 52 52 43 2E 42 85 12
+42 D4 40 10 96 D3 08 53 57 50 42 00 85 12 42 D4
+80 10 68 D4 06 52 52 41 85 12 42 D4 00 11 84 D4
+0A 52 52 41 2E 42 85 12 42 D4 40 11 76 D4 06 53
+58 54 85 12 42 D4 80 11 00 00 08 50 55 53 48 00
+85 12 42 D4 00 12 AA D4 0C 50 55 53 48 2E 42 00
+85 12 42 D4 40 12 9E D4 08 43 41 4C 4C 00 85 12
+42 D4 80 12 1A 53 0E 4A 84 12 FA C9 1E C4 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C5 C8 D4
+06 53 3E 3D 86 12 00 38 F0 D4 04 53 3C 00 86 12
+00 34 B8 D4 06 30 3E 3D 86 12 00 30 04 D5 04 30
+3C 00 86 12 00 30 40 CF 04 55 3C 00 86 12 00 2C
+18 D5 06 55 3E 3D 86 12 00 28 0E D5 06 30 3C 3E
+86 12 00 24 2C D5 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 21 8A 4E 00 00 A2 53 C8 21
+0E 4A 30 4D B2 D3 08 54 48 45 4E 00 1A 42 C8 21
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D 22 D5 08 45 4C 53 45 00
+1A 42 C8 21 BA 40 00 3C 00 00 A2 53 C8 21 2F 83
+8F 4A 00 00 E3 3F 90 D4 0A 42 45 47 49 4E 30 40
+32 C4 7A D5 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 21 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 21 30 4D
+36 D4 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 44 D5 A0 C8
+86 C9 98 D5 0C 52 45 50 45 41 54 00 0D 12 84 12
+D8 D5 5C D5 86 C9 08 D6 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 21 CB 2F 98 42 C8 21 00 00 30 4D F4 D5
+06 42 57 31 85 12 06 D6 00 00 20 D6 06 42 57 32
+85 12 06 D6 00 00 2C D6 06 42 57 33 85 12 06 D6
+00 00 44 D6 3D 41 1A 42 C8 21 28 4E 8E 43 00 00
+B2 92 C6 21 86 2B BA 4F 00 00 A2 53 C8 21 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 42 D6
+00 00 68 D6 06 46 57 32 85 12 42 D6 00 00 74 D6
+06 46 57 33 85 12 42 D6 00 00 E2 D5 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+7A CD 86 CC 86 C9 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F AE D2 0A C4 2C 00 0A CA 54 CB AC C4
+8A CD B8 C7 A4 D2 86 D2 DA D6 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 38 D6 08 52 52 43 4D 00 85 12
+C4 D6 50 00 08 D7 08 52 52 41 4D 00 85 12 C4 D6
+50 01 16 D7 08 52 4C 41 4D 00 85 12 C4 D6 50 02
+24 D7 08 52 52 55 4D 00 85 12 C4 D6 50 03 36 D5
+0A 50 55 53 48 4D 85 12 C4 D6 00 15 40 D7 08 50
+4F 50 4D 00 85 12 C4 D6 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 C2 C6 F2 C5
+F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 F2 C5 06 C6
+q
index 8839cdb..6c97e6f 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF 1E D8 2A D0 34 01
-10 00 41 87 B6 C5 AA C4 B8 C5 8C C5 82 C6 1E D8
-2A D0 70 C6 80 C7 FE C6 DA C6 3C 21 4E C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A0 43
+BC C6 56 C5 56 C5 58 C5 44 C5 36 D7 EE CF A8 CF
+A8 CF AA C6 2E C7 06 C7 3C 21 E0 20 62 C9 B6 C4
+C4 C4 7E C8 20 00 0A 00 00 20 56 C5 56 C5 58 C5
+44 C5 36 D7 EE CF A8 CF A8 CF 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C400
-B0 12 B8 C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 6E C6 B2 49 7E C7 B2 49 FC C6 B2 49 D8 C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 F6 D0 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C5 0E 12 B0 12
-F8 C4 0A C4 DE 21 CE C7 16 C7 EE C4 34 C4 8A C5
-14 C4 05 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7
-C4 C8 96 C7 34 C4 7E C5 14 C4 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C7 8E C8 4A C7
-14 C4 04 1B 5B 30 6D 00 4A C7 50 CC 2E 93 13 28
-B2 D0 C0 07 40 05 18 42 02 18 08 11 38 D0 00 04
-82 48 54 05 F2 D0 0C 00 4A 02 92 C3 40 05 A2 D2
-6A 05 92 C3 30 01 30 41 48 43 A2 B3 6C 05 FD 27
-C2 48 4E 05 A2 B2 6C 05 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C5 E2 B2 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C5 04 57 41 52 4D 00 B0 12
-8C C5 78 40 03 00 B0 12 BA C5 84 12 14 C4 07 0D
-0A 1B 5B 37 6D 40 4A C7 0A C4 02 18 CE C7 C4 C8
-0A C4 23 00 FA C6 C4 C8 14 C4 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 4A C7 0A C4 40 FF 28 C4 C2 C7 8E C8
-14 C4 0A 62 79 74 65 73 20 66 72 65 65 00 3A C4
-7E C5 00 00 06 41 43 43 45 50 54 00 30 40 70 C6
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 05 B2 B0 10 00 40 05 B8 22
-3A 17 92 B3 6C 05 FD 27 58 42 4C 05 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C5 82 93 DE 21 02 24 92 53 DE 21 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C6 2F 83 8F 4E 00 00
-58 43 B0 12 BA C5 92 B3 6C 05 FD 27 1E 42 4C 05
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C6 08 4E
-3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D F4 C6
-04 45 43 48 4F 00 B2 40 C2 48 08 C7 82 43 DE 21
-38 40 05 00 B0 12 BA C5 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C7 92 43 DE 21 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C7 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C6 68 C7 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C5 02 43 52 00 30 40 80 C7
-0D 12 84 12 14 C4 02 0D 0A 00 4A C7 4E C8 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C6 01 40 2E 4E
-30 4D CC C7 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 21 B2 21 30 4D 78 C7 01 23 1B 42 DC 21 2C 4F
-2F 83 B0 12 6E C4 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 08 C8 02 23 53 00 0D 12 84 12
-0A C8 44 C8 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C8 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C7 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C7
-3C C8 EE C4 7C C8 58 C8 4A C7 3C CC FA C6 4E C8
-2C C7 01 2E 0E 93 E3 37 38 43 E2 3F 76 C8 82 53
-22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4 82 CB
-0A C4 22 00 1A C9 E8 C8 B2 40 20 00 B4 21 6E 4E
-1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D C2 C8
-82 2E 22 00 0D 12 84 12 D2 C8 0A C4 4A C7 82 CB
-4E C8 F8 C5 04 57 4F 52 44 00 3C 40 C0 21 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C4 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4 30 4D
-8A C8 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 00 00 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
-44 CA D2 3F 46 CA 81 49 02 00 1C 4F 04 00 1E 41
-04 00 3D 40 58 CA C8 3F 5A 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 32 C0 00 02 1B 42 DC 21 0C 43
-2D 15 3D 40 D8 CA 0A 4B 3F 82 8F 4E 06 00 8F 43
-04 00 8F 43 02 00 0C 4E 7B 4C FC 90 27 00 00 00
-06 20 DF 4C 01 00 04 00 7E 90 03 00 47 3C 68 4C
-78 80 2D 00 04 28 B1 23 B1 43 02 00 0A 3C 2A 43
-78 52 07 24 3A 52 68 53 04 24 3A 40 10 00 78 53
-35 20 1C 53 1B 83 EB 3F DA CA 30 24 2D 83 78 90
-28 00 C2 27 32 B0 00 02 29 20 32 D0 00 02 78 90
-F7 00 BA 27 78 90 F5 00 21 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 66 C4 2A 17 E6 3F
-9F 4F 04 00 02 00 AF 4F 04 00 4B 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 00 00
-01 2C 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21 3E 4F
-30 4D 80 CB 87 4C 49 54 45 52 41 4C 82 93 BE 21
-0D 24 09 4E 1A 42 C6 21 A2 52 C6 21 BA 40 0A C4
-00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
-03 24 8A 4E 02 00 EE 3F 30 4D 54 C8 05 43 4F 55
-4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF 30 4D
-68 C8 09 49 4E 54 45 52 50 52 45 54 0D 12 84 12
-AC C4 3C CC 1A C9 F8 CB 7F 26 3D 40 00 CC C1 3E
-02 CC 0A 4E 3E 4F 3D 40 1C CC 35 27 3D 40 F2 CB
-1A E2 BE 21 B6 27 0E 12 3E 4F 30 41 1E CC 3E 4F
-3D 40 F2 CB BB 23 DE 53 00 00 68 4E 08 5E F8 40
-3F 00 00 00 3D 40 BE CD CC 3F 26 CC 86 12 20 00
-D4 C7 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F 30 4D
-3F 40 80 20 0E 43 31 40 E0 20 B2 40 00 20 00 20
-82 43 BE 21 84 12 7C C7 BC C4 EC CB B2 C7 E4 C7
-14 C4 0C 73 74 61 63 6B 20 65 6D 70 74 79 21 00
-2A C5 0A C4 40 FF 28 C4 EC C7 14 C4 0A 46 52 41
-4D 20 66 75 6C 6C 21 00 2A C5 3A C4 66 CC 42 CC
-86 41 42 4F 52 54 22 00 0D 12 84 12 D2 C8 0A C4
-2A C5 82 CB 4E C8 7C C9 01 27 0D 12 84 12 3C CC
-1A C9 82 C9 34 C4 3A CC 4E C8 00 00 83 5B 27 5D
-0D 12 84 12 BA CC 0A C4 0A C4 82 CB 82 CB 4E C8
-CC CC 81 5B 82 43 BE 21 30 4D FA C7 01 5D B2 43
-BE 21 30 4D EC CC 81 5C 92 42 C0 21 C4 21 30 4D
-00 00 88 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
-3C CC 1A C9 82 C9 96 C7 34 C4 3A CC E4 C7 34 C4
-2E CD 0A C4 0A C4 82 CB 82 CB 0A C4 82 CB 82 CB
-4E C8 E2 CC 01 3A 30 12 7E CD 92 B3 C6 21 A2 63
-C6 21 0D 12 84 12 3C CC 1A C9 4C 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 BA 40
-0D 12 FC FF BA 40 84 12 FE FF B2 43 BE 21 30 4D
-82 9F BC 21 09 20 18 42 B6 21 19 42 B8 21 A8 49
-FE FF 89 48 00 00 30 4D 0D 12 84 12 14 C4 0F 73
-74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 36 C5
-34 CD 81 3B 82 93 BE 21 97 27 0D 12 84 12 0A C4
-4E C8 82 CB 90 CD E4 CC 4E C8 E2 CB 09 49 4D 4D
-45 44 49 41 54 45 18 42 B6 21 F8 D0 80 00 00 00
-30 4D CC CB 06 43 52 45 41 54 45 00 B0 12 3A CD
-BA 40 86 12 FC FF 8A 4A FE FF C9 3F F4 CD 04 43
-4F 44 45 00 B0 12 3A CD A2 82 C6 21 0D 12 84 12
-2C D0 06 D0 4E C8 DC CD 07 48 44 4E 43 4F 44 45
-B2 40 0A D0 DA 21 EE 3F 00 00 07 45 4E 44 43 4F
-44 45 0D 12 84 12 90 CD 46 D0 64 D0 4E C8 00 00
-05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 0D 12 00 00
-BA 40 84 12 02 00 A2 52 C6 21 B2 43 BE 21 0D 12
-84 12 46 D0 64 D0 4E C8 00 00 05 4C 4F 32 48 49
-A2 83 C6 21 1A 42 C6 21 EB 3F 28 CE 85 48 49 32
-4C 4F 0D 12 84 12 28 C4 D4 CF 82 CB E4 CC 1C CE
-4E C8 C2 CD 86 5B 54 48 45 4E 5D 00 30 4D 0C 4E
-38 4F 3B 4F 39 4F 0E 4B 0E 5C 10 24 1B 83 06 30
-1C 83 04 30 19 53 F9 98 FF FF F5 27 2D 4D 3E 4F
-30 4D 2F 53 9F 83 00 00 F9 23 2F 53 2D 53 F7 3F
-A4 CE 86 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C4
-00 00 C6 C7 3C CC 1A C9 D2 CB 8E C7 34 C4 3C CF
-9C C7 14 C4 06 5B 54 48 45 4E 5D 00 AE CE 16 CF
-D2 CE F4 CE 4E C8 9C C7 14 C4 06 5B 45 4C 53 45
-5D 00 AE CE 2C CF D2 CE F2 CE 4E C8 14 C4 04 5B
-49 46 5D 00 AE CE F4 CE 3A C4 F2 CE 70 C7 14 C4
-05 0D 0A 6B 6F 20 4A C7 BC C4 AC C4 3A C4 F4 CE
-E2 CE 84 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
-2F 53 30 4D 52 CF 89 5B 44 45 46 49 4E 45 44 5D
-0D 12 84 12 3C CC 1A C9 82 C9 60 CF 4E C8 66 CF
-8B 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
-70 CF DE C7 4E C8 98 CF B2 4E 0A 18 2E 53 BE 12
-3E 4F 3D 41 90 3C 94 CB 06 4D 41 52 4B 45 52 00
-B0 12 3A CD BA 40 85 12 FC FF BA 40 96 CF FE FF
-28 83 8A 48 00 00 BA 40 AA C4 04 00 B2 50 06 00
-C6 21 E1 3E 2E 53 30 4D 0A C4 CA 21 D6 C7 4E C8
-85 12 D8 CF A0 CC 0E CE 10 C7 B8 CC 8C CE D2 C6
-A8 CF 00 C9 D0 D0 E4 D0 E2 C9 14 C9 00 00 80 CF
-F6 CC 0A CA 00 00 85 12 D8 CF 94 D6 FA D6 3C D6
-4A D7 02 D6 00 00 CE D3 00 00 12 D8 F6 D7 66 D6
-A4 D6 DE D4 00 00 00 00 66 D7 04 D0 3A 40 0C 00
-39 40 D6 21 08 49 28 53 19 83 18 83 E8 49 00 00
-1A 83 FA 23 30 4D 3A 40 0E 00 38 40 CA 21 09 48
-29 53 F8 49 00 00 18 53 1A 83 FB 23 30 4D 82 43
-CC 21 30 4D 92 42 CA 21 DA 21 30 4D E0 CF 5E D0
-64 D0 74 D0 1A 42 20 18 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 02 CD 09 50 57 52 5F 53
-54 41 54 45 85 12 6C D0 1E D8 CE C8 09 52 53 54
-5F 53 54 41 54 45 92 42 0A 18 B8 D0 F3 3F AA D0
-08 50 57 52 5F 48 45 52 45 00 92 42 C6 21 B8 D0
-30 4D BC D0 08 52 53 54 5F 48 45 52 45 00 92 42
-C6 21 0A 18 F2 3F 3E 90 0E 00 DC 27 2E 92 E3 37
-0E 93 D8 37 39 40 10 00 29 83 B9 43 80 FF FC 23
-B9 40 42 D1 FE FF 29 83 B9 40 E2 C5 FE FF 39 90
-AE FF F9 23 39 40 14 18 B2 49 E4 C5 B2 49 FA C4
-B2 49 02 C4 B2 49 00 C6 B2 49 EA FF B2 49 0A 18
-C2 3F B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40
-80 5A CC 01 31 40 E0 20 3F 40 80 20 39 40 00 08
-29 83 89 43 00 20 FC 23 B2 D3 06 02 B2 D3 02 02
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 21 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C4 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 21 B2 4F C4 21 82 43 C6 21
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 21 00 00 AF 4F FE FF 2F 83 FD 3C 0E 93 3E 4F
+7F 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A8 C6 B2 49
+2C C7 B2 49 04 C7 B2 49 A0 C4 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 21 B2 49 BE 21 B2 49 00 20
+82 43 BC 21 30 40 62 D0 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C5 B0 12 D0 C4 88 C8 AC C4
+42 C5 46 C7 1E C4 05 1B 5B 37 6D 40 72 C7 0A C4
+02 18 AA C8 D6 C9 72 C7 1E C4 04 1B 5B 30 6D 00
+72 C7 F8 CC 48 43 A2 B3 6C 05 FD 27 C2 48 4E 05
+A2 B2 6C 05 FD 27 30 41 B2 D0 C0 07 40 05 18 42
+02 18 08 11 38 D0 00 04 82 48 54 05 F2 D0 0C 00
+4A 02 92 C3 40 05 A2 D2 6A 05 92 C3 30 01 30 41
+92 12 3E 18 84 12 46 C7 1E C4 07 0D 0A 1B 5B 37
+6D 40 72 C7 0A C4 02 18 AA C8 D6 C9 0A C4 23 00
+2A C7 D6 C9 1E C4 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+72 C7 0A C4 40 FF 32 C4 9E C8 A2 C9 1E C4 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C4 36 C5 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C5 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B2
+00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A CC 01
+31 40 E0 20 3F 40 80 20 B2 D3 06 02 B2 D3 02 02
 B2 D0 FF FE 26 02 B2 43 22 02 B2 D3 46 02 B2 43
 42 02 B2 D3 66 02 B2 43 62 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 82 43 88 01 F2 D0 06 00 2B 02 39 40 40 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 1E 42 08 18
-82 43 08 18 1E D2 5E 01 B0 12 F8 C4 FE C5 38 40
-C0 21 0A 4E 39 48 2E 48 09 5E 1E 52 C4 21 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 21
-30 4D 1C 15 0E 12 12 12 C4 21 84 12 1A C9 82 C9
-DE C7 34 C4 0E D2 76 CA 34 C4 28 D2 22 D2 10 D2
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 2A D2 B2 41 C4 21 3E 41
-84 12 0A C4 2B 00 1A C9 82 C9 DE C7 34 C4 46 D2
-76 CA 34 C4 3A CC A8 C7 1A C9 76 CA 34 C4 3A CC
-52 D2 3E 5F E7 3F 3E 40 28 00 B0 12 F2 D1 19 42
-C6 21 A2 53 C6 21 89 4E 00 00 3E 40 29 00 92 92
-C0 21 C4 21 02 20 30 40 A8 CD 1C 15 12 12 C4 21
-92 53 C4 21 84 12 1A C9 76 CA 34 C4 9A D2 90 D2
-21 53 3E 90 10 00 C6 2B 7F 2D 9C D2 B2 41 C4 21
-C1 3F 0D 12 84 12 3C CC CE D1 AC D2 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 F2 D1 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 F2 D1
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 21
-B0 12 7A D2 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-7A D2 92 92 C0 21 C4 21 02 24 92 53 C4 21 8E 10
-0C 5E DA 3F B0 12 7A D2 FA 23 3C 50 10 00 B0 12
-56 D2 EF 3F 0C 43 1B 42 C6 21 A2 53 C6 21 0D 12
-84 12 3C CC CE D1 78 D3 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 7A D2 E0 23
-3C 50 80 00 B0 12 56 D2 DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A C4 00 13 82 CB 4E C8 0A C4
-2C 00 A2 D2 6E D3 B8 D3 09 4B 2E 4E 0E DC A2 3F
-7A CE 03 4D 4F 56 85 12 AE D3 00 40 C2 D3 05 4D
-4F 56 2E 42 85 12 AE D3 40 40 00 00 03 41 44 44
-85 12 AE D3 00 50 DC D3 05 41 44 44 2E 42 85 12
-AE D3 40 50 E8 D3 04 41 44 44 43 00 85 12 AE D3
-00 60 F6 D3 06 41 44 44 43 2E 42 00 85 12 AE D3
-40 60 9C D3 04 53 55 42 43 00 85 12 AE D3 00 70
-14 D4 06 53 55 42 43 2E 42 00 85 12 AE D3 40 70
-22 D4 03 53 55 42 85 12 AE D3 00 80 32 D4 05 53
-55 42 2E 42 85 12 AE D3 40 80 50 CE 03 43 4D 50
-85 12 AE D3 00 90 4C D4 05 43 4D 50 2E 42 85 12
-AE D3 40 90 3A CE 04 44 41 44 44 00 85 12 AE D3
-00 A0 66 D4 06 44 41 44 44 2E 42 00 85 12 AE D3
-40 A0 58 D4 03 42 49 54 85 12 AE D3 00 B0 84 D4
-05 42 49 54 2E 42 85 12 AE D3 40 B0 90 D4 03 42
-49 43 85 12 AE D3 00 C0 9E D4 05 42 49 43 2E 42
-85 12 AE D3 40 C0 AA D4 03 42 49 53 85 12 AE D3
-00 D0 B8 D4 05 42 49 53 2E 42 85 12 AE D3 40 D0
-00 00 03 58 4F 52 85 12 AE D3 00 E0 D2 D4 05 58
-4F 52 2E 42 85 12 AE D3 40 E0 04 D4 03 41 4E 44
-85 12 AE D3 00 F0 EC D4 05 41 4E 44 2E 42 85 12
-AE D3 40 F0 3C CC A2 D2 0A D5 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 3E D4 03 52 52 43
-85 12 04 D5 00 10 1C D5 05 52 52 43 2E 42 85 12
-04 D5 40 10 28 D5 04 53 57 50 42 00 85 12 04 D5
-80 10 36 D5 03 52 52 41 85 12 04 D5 00 11 44 D5
-05 52 52 41 2E 42 85 12 04 D5 40 11 50 D5 03 53
-58 54 85 12 04 D5 80 11 00 00 04 50 55 53 48 00
-85 12 04 D5 00 12 6A D5 06 50 55 53 48 2E 42 00
-85 12 04 D5 40 12 C4 D4 04 43 41 4C 4C 00 85 12
-04 D5 80 12 1A 53 0E 4A 0D 12 84 12 C4 C8 14 C4
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 C5
-5E D5 03 53 3E 3D 86 12 00 38 B2 D5 02 53 3C 00
-86 12 00 34 78 D5 03 30 3E 3D 86 12 00 30 C6 D5
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C DA D5 03 55 3E 3D 86 12 00 28 D0 D5 03 30
-3C 3E 86 12 00 24 EE D5 02 30 3D 00 86 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 E4 D5 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 B1 2F 88 DA 00 00 30 4D 74 D4 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 88 D5 05 42 45 47 49 4E
-30 40 28 C4 18 D6 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 21
-30 4D F8 D4 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 06 D6
-A8 C7 4E C8 BC D5 06 52 45 50 45 41 54 00 0D 12
-84 12 9A D6 1E D6 4E C8 CA D6 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 21 CB 2F 98 42 C6 21 00 00 30 4D
-5A D6 03 42 57 31 85 12 C8 D6 00 00 E2 D6 03 42
-57 32 85 12 C8 D6 00 00 EE D6 03 42 57 33 85 12
-C8 D6 00 00 06 D7 3D 41 1A 42 C6 21 28 4E B2 92
-C4 21 88 2B BA 4F 00 00 A2 53 C6 21 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 04 D7 00 00
-26 D7 03 46 57 32 85 12 04 D7 00 00 32 D7 03 46
-57 33 85 12 04 D7 00 00 3E D7 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 BA CC
-16 CC 4E C8 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 3C CC CE D1 88 D7 92 53 C4 21 3E 40 2C 00
-84 12 1A C9 76 CA 34 C4 3A CC 64 D3 9E D7 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E B6 D6 04 52 52 43
-4D 00 85 12 82 D7 50 00 CC D7 04 52 52 41 4D 00
-85 12 82 D7 50 01 DA D7 04 52 4C 41 4D 00 85 12
-82 D7 50 02 E8 D7 04 52 52 55 4D 00 85 12 82 D7
-50 03 F8 D5 05 50 55 53 48 4D 85 12 82 D7 00 15
-04 D8 04 50 4F 50 4D 00 85 12 82 D7 00 17
+82 43 88 01 F2 D0 06 00 2B 02 F2 C3 82 01 F2 D0
+06 00 82 01 B2 40 F4 00 84 01 39 40 40 00 18 42
+00 18 18 83 FE 23 19 83 FA 23 39 40 00 08 29 83
+89 43 00 20 FC 23 1E 42 08 18 82 43 08 18 3E F3
+02 20 1E 42 5E 01 B0 12 D0 C4 80 C5 00 00 0C 41
+43 43 45 50 54 00 30 40 AA C6 0A 4E 2E 4F 0A 5E
+3B 40 0A 00 3C 40 20 00 3D 15 A2 3E 21 52 A2 C2
+6C 05 B2 B0 10 00 40 05 9B 22 3A 17 92 B3 6C 05
+FD 27 58 42 4C 05 48 9B 0E 24 48 9C 06 2C 78 92
+F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48
+00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00 06 4B
+45 59 30 40 06 C7 58 43 B0 12 46 C5 2F 83 8F 4E
+00 00 92 B3 6C 05 FD 27 1E 42 4C 05 B0 12 44 C5
+30 4D 00 00 08 45 4D 49 54 00 30 40 2E C7 08 4E
+3E 4F A2 B3 6C 05 FD 27 C2 48 4E 05 30 4D 24 C7
+08 45 43 48 4F 00 B2 40 C2 48 38 C7 38 40 05 00
+B0 12 46 C5 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 38 C7 28 42 F3 3F 00 00 08 54 59 50
+45 00 0D 12 3D 40 82 C7 29 4F 8F 4E 00 00 7E 49
+D4 3F 84 C7 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53
+3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F
+3E 4F 87 22 F9 98 00 00 84 22 19 53 1C 83 FA 23
+2D 53 30 4D 2F 53 3E 4F 1E 83 7B 22 9B 24 FE C6
+0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C4 00 00
+A2 C8 94 C7 E6 C9 DA CC B0 C4 10 C8 14 C4 06 5B
+54 48 45 4E 5D 00 98 C7 EE C7 B4 C7 D2 C7 14 C4
+06 5B 45 4C 53 45 5D 00 98 C7 00 C8 B4 C7 D0 C7
+1E C4 04 5B 49 46 5D 00 98 C7 D2 C7 B2 C4 D0 C7
+1E C4 05 0D 6B 6F 20 0A 72 C7 9A C4 84 C4 B2 C4
+D2 C7 C0 C7 0D 5B 54 48 45 4E 5D 00 30 4D 24 C8
+09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D 30 C8
+13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 94 C7
+E6 C9 4E CA 2C CC 62 C9 40 C8 17 5B 55 4E 44 45
+46 49 4E 45 44 5D 0D 12 84 12 94 C7 E6 C9 4E CA
+72 C8 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83
+8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D
+8F 4E FE FF 3E 40 80 20 0E 8F 0E 11 F7 3F 3E 8F
+3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D 9E C6
+02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3
+30 4D 3E 8F 01 28 0E F3 30 4D E0 C5 05 53 22 00
+82 43 C0 21 0D 12 84 12 0A C4 1E C4 8A CC 0A C4
+22 00 E6 C9 E6 C8 B2 40 20 00 C0 21 1A 53 1A B3
+82 6A C8 21 3E 4F 3D 41 30 4D 58 C7 05 2E 22 00
+0D 12 84 12 D0 C8 0A C4 72 C7 8A CC 62 C9 00 00
+04 3C 23 00 B2 40 B2 21 B2 21 30 4D CC C8 02 23
+1B 42 BE 21 2C 4F 2F 83 B0 12 46 C4 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 1E C9 04 23
+53 00 0D 12 84 12 20 C9 5A C9 2D 83 09 DE 09 93
+E1 23 3D 41 30 4D 4E C9 04 23 3E 00 9F 42 B2 21
+00 00 3E 40 B2 21 2E 8F 30 4D 00 00 08 48 4F 4C
+44 00 4A 4E 3E 4F DB 3F 68 C9 08 53 49 47 4E 00
+0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 40 C7 04 55
+2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3
+06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
+14 C9 94 C7 82 C9 52 C9 7E C8 90 C9 6C C9 72 C7
+62 C9 FC C8 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00
+08 57 4F 52 44 00 3C 40 C2 21 39 4C 38 4C 09 58
+38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42
+C0 21 F8 90 27 00 00 00 04 20 E8 98 02 00 01 20
+0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24
+1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B
+F0 3F 18 82 C4 21 82 48 C6 21 1E 42 C8 21 0A 8E
+CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83
+0C 4E 3B 40 CE 21 3E 4B 0E 93 1E 24 58 4C 01 00
+78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93
+F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99
+01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49
+6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D 9E C9
+06 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 D4 C9 0E 3E 4E 55 4D 42 45 52
+1A 42 BE 21 2C 4F 0B 4E 68 4C 78 80 3A 00 03 28
+78 80 07 00 21 28 78 50 0A 00 08 9A 22 C3 1C 2C
+5D 15 1C 4F 02 00 0E 4A 3D 40 FE CA D4 3F 00 CB
+81 49 02 00 1C 4F 04 00 1E 41 04 00 3D 40 12 CB
+CA 3F 14 CB 39 51 3E 61 8F 49 04 00 8F 4E 02 00
+3A 17 1C 53 1B 83 D8 23 8F 4C 00 00 0E 4B 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 8F 43 04 00 8F 43
+02 00 1A 42 BE 21 0C 4E 0E 43 1E 15 3D 40 94 CB
+7B 4C 68 4C 78 80 2D 00 16 24 BE 2F 2A 43 78 52
+14 24 3A 52 68 53 11 24 3A 40 10 00 58 93 0D 24
+68 92 40 20 3E 90 03 00 3D 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 37 3C B1 43 02 00 1B 83 FC 9C 00 00
+E0 23 A2 27 96 CB 2E 24 2D 83 68 4C 78 90 5F 00
+C0 27 32 B0 00 02 26 20 32 D0 00 02 78 80 2E 00
+B8 27 68 53 1F 20 09 43 8F 49 02 00 5B 83 09 4B
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9A 08 2C 8F 49 00 00 0E 4A 2C 15
+B0 12 3E C4 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4B 93 1D 17 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
+10 C9 03 5C 92 42 C2 21 C6 21 30 4D 0D 12 84 12
+84 C4 94 C7 E6 C9 B0 C4 64 CD 4E CA 4E CC 0A 4E
+3E 4F 3D 40 68 CC 6C 27 3D 40 42 CC 1A E2 BC 21
+14 24 0E 12 3E 4F 30 41 6A CC 3E 4F 3D 40 42 CC
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 40 CE 2A 3C 32 CC 02 2C A2 53 C8 21 1A 42
+C8 21 8A 4E FE FF 3E 4F 30 4D 88 CC 0F 4C 49 54
+45 52 41 4C 82 93 BC 21 0D 24 09 4E 1A 42 C8 21
+A2 52 C8 21 BA 40 0A C4 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D 8A C9 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D B0 C8 0A 41 4C 4C 4F 54
+82 5E C8 21 3E 4F 30 4D 3F 40 80 20 0E 43 84 12
+1E C4 02 0D 0A 00 72 C7 94 C4 3C CC 90 C8 BA C8
+1E C4 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 C5
+32 C4 0A C4 40 FF C2 C8 1E C4 09 46 52 41 4D 20
+66 75 6C 6C 08 C5 B2 C4 00 CD EA CC 0D 41 42 4F
+52 54 22 00 0D 12 84 12 D0 C8 0A C4 08 C5 8A CC
+62 C9 E0 C9 02 27 0D 12 84 12 94 C7 E6 C9 4E CA
+B0 C4 66 CD F4 C8 72 CC 5A C8 07 5B 27 5D 0D 12
+84 12 56 CD 0A C4 0A C4 8A CC 8A CC 62 C9 6A CD
+03 5B 82 43 BC 21 30 4D 00 00 02 5D B2 43 BC 21
+30 4D A8 C8 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 94 C7 E6 C9 4E CA B0 C4 66 CD BA C8 AC C4
+BE CD 0A C4 0A C4 8A CC 8A CC 0A C4 8A CC 8A CC
+62 C9 00 00 02 3A 30 12 14 CE 92 B3 C8 21 A2 63
+C8 21 0D 12 84 12 94 C7 E6 C9 DC CD 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 21 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 21
+82 49 B6 21 82 4A B8 21 82 4F BA 21 2A 52 82 4A
+C8 21 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 21 30 4D 82 9F BA 21 66 25 84 12 1E C4
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 C5 80 CD 03 3B 82 93 BC 21 F4 26 0D 12 84 12
+0A C4 62 C9 8A CC 26 CE 82 CD 62 C9 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 21 D8 D3 00 00
+30 4D D4 CC 0C 43 52 45 41 54 45 00 B0 12 CA CD
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 6C C7 0A 44
+4F 45 53 3E 1A 42 B8 21 BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D C4 CD 0E 3A 4E 4F 4E 41 4D 45
+30 12 14 CE 2F 83 8F 4E 00 00 1A 42 C8 21 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 5E CE 05 49
+53 00 0D 12 82 93 BC 21 08 20 84 12 56 CD E0 CE
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 6E CD 0A C4
+E2 CE 8A CC 62 C9 74 CE 08 43 4F 44 45 00 B0 12
+CA CD A2 82 C8 21 61 3C 7C C9 0E 48 44 4E 43 4F
+44 45 B2 40 CE CF CC 21 F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 26 CE 2C CF 3D 41 92 42
+D0 21 CC 21 5D 3C F8 CE 0E 43 4F 44 45 4E 4E 4D
+30 12 02 CF B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 21 BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 21 B2 43 BC 21 E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 21 1A 42 C8 21 EF 3F 0A CF 0B 48 49 32
+4C 4F A2 53 C8 21 1A 42 C8 21 8A 4A FE FF 82 43
+BC 21 B9 3F 96 CF B2 40 A8 CF D0 21 82 4E CE 21
+30 40 F4 C8 85 12 94 CF 94 CD 3C CD 26 D0 38 CF
+8E CE A0 CA 48 CA 54 CD 7C CF CE CE A8 CE 44 CE
+9C CC B0 D0 C8 CA 00 00 00 00 85 12 94 CF 2A D7
+AE D5 0E D7 D6 D4 32 D5 80 D5 5C D6 68 D6 F8 D3
+1C D5 00 00 00 00 6A CF E8 D2 00 00 84 D6 C8 CF
+B2 40 A8 CF CE 21 82 43 D0 21 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 21 3A 40 42 18 B0 12
+FC CF 30 4D 0E D0 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 21 B0 12 FC CF 1A 42 CA 21
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 0E C6 FE FF 29 83 B9 40 FA C5 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 EA FF 3B 40
+10 00 3A 40 3A 18 B0 12 00 D0 82 43 4A 18 C7 3F
+A2 D0 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 8A CD
+0C 4D 41 52 4B 45 52 00 12 12 C6 21 0D 12 84 12
+94 C7 E6 C9 4E CA AC C4 CE D0 88 C8 62 CC D0 D0
+3E 4F 3D 41 B2 41 C6 21 B0 12 CA CD BA 40 85 12
+FC FF BA 40 A0 D0 FE FF 28 83 8A 48 00 00 BA 40
+82 C4 02 00 A2 52 C8 21 18 42 B4 21 19 42 B6 21
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 21 84 12
+E6 C9 4E CA AC C4 3A D1 1A D1 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 A0 D0 00 00
+01 20 3E 52 2E 83 21 53 30 41 30 CB AC C4 42 D1
+36 D1 44 D1 B2 41 C6 21 30 41 92 83 C6 21 3E 40
+28 00 0A 4E 3D 15 B0 12 0A D1 15 20 3E 40 2B 00
+B0 12 0A D1 06 20 3E 40 2D 00 B0 12 0A D1 92 83
+C6 21 0E 12 1E 41 02 00 84 12 E6 C9 30 CB AC C4
+66 CD 84 D1 3E 51 3A 17 30 41 B0 12 4A D1 19 42
+C8 21 89 4E 00 00 A2 53 C8 21 3E 40 29 00 92 53
+C6 21 1A 42 C6 21 3D 15 84 12 E6 C9 30 CB AC C4
+BC D1 B4 D1 3E 90 10 00 E6 2B 7C 2D BE D1 A2 41
+C6 21 E1 3F 03 20 B0 12 A2 D1 43 3C 7A 90 23 00
+24 20 B0 12 52 D1 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 C8 21 A2 53
+C8 21 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 52 D1 F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 9E D1 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 A2 D1 92 92 C2 21 C6 21 02 24 92 53
+C6 21 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 8A D1
+F2 3F 03 20 B0 12 A2 D1 F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 8A D1 EA 3F
+0C 43 1B 42 C8 21 A2 53 C8 21 3A 40 20 00 19 42
+C6 21 19 52 C4 21 7A 99 FE 27 5A 49 FF FF 19 82
+C4 21 82 49 C6 21 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A C4 00 13 8A CC 62 C9
+0A C4 2C 00 80 D2 C4 D1 94 C7 8A D2 62 D2 D0 D2
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 C0 D2 00 40 DC D2 0A 4D 4F 56 2E 42 85 12
+C0 D2 40 40 00 00 06 41 44 44 85 12 C0 D2 00 50
+F6 D2 0A 41 44 44 2E 42 85 12 C0 D2 40 50 02 D3
+08 41 44 44 43 00 85 12 C0 D2 00 60 10 D3 0C 41
+44 44 43 2E 42 00 85 12 C0 D2 40 60 48 CF 08 53
+55 42 43 00 85 12 C0 D2 00 70 2E D3 0C 53 55 42
+43 2E 42 00 85 12 C0 D2 40 70 3C D3 06 53 55 42
+85 12 C0 D2 00 80 4C D3 0A 53 55 42 2E 42 85 12
+C0 D2 40 80 58 D3 06 43 4D 50 85 12 C0 D2 00 90
+66 D3 0A 43 4D 50 2E 42 85 12 C0 D2 40 90 00 00
+08 44 41 44 44 00 85 12 C0 D2 00 A0 80 D3 0C 44
+41 44 44 2E 42 00 85 12 C0 D2 40 A0 AE D2 06 42
+49 54 85 12 C0 D2 00 B0 9E D3 0A 42 49 54 2E 42
+85 12 C0 D2 40 B0 AA D3 06 42 49 43 85 12 C0 D2
+00 C0 B8 D3 0A 42 49 43 2E 42 85 12 C0 D2 40 C0
+C4 D3 06 42 49 53 85 12 C0 D2 00 D0 D2 D3 0A 42
+49 53 2E 42 85 12 C0 D2 40 D0 00 00 06 58 4F 52
+85 12 C0 D2 00 E0 EC D3 0A 58 4F 52 2E 42 85 12
+C0 D2 40 E0 1E D3 06 41 4E 44 85 12 C0 D2 00 F0
+06 D4 0A 41 4E 44 2E 42 85 12 C0 D2 40 F0 94 C7
+80 D2 C4 D1 26 D4 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F DE D3 06 52 52 43 85 12 1E D4
+00 10 38 D4 0A 52 52 43 2E 42 85 12 1E D4 40 10
+72 D3 08 53 57 50 42 00 85 12 1E D4 80 10 44 D4
+06 52 52 41 85 12 1E D4 00 11 60 D4 0A 52 52 41
+2E 42 85 12 1E D4 40 11 52 D4 06 53 58 54 85 12
+1E D4 80 11 00 00 08 50 55 53 48 00 85 12 1E D4
+00 12 86 D4 0C 50 55 53 48 2E 42 00 85 12 1E D4
+40 12 7A D4 08 43 41 4C 4C 00 85 12 1E D4 80 12
+1A 53 0E 4A 84 12 D6 C9 1E C4 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 C5 A4 D4 06 53 3E 3D
+86 12 00 38 CC D4 04 53 3C 00 86 12 00 34 94 D4
+06 30 3E 3D 86 12 00 30 E0 D4 04 30 3C 00 86 12
+00 30 1C CF 04 55 3C 00 86 12 00 2C F4 D4 06 55
+3E 3D 86 12 00 28 EA D4 06 30 3C 3E 86 12 00 24
+08 D5 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 21 8A 4E 00 00 A2 53 C8 21 0E 4A 30 4D
+8E D3 08 54 48 45 4E 00 1A 42 C8 21 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D FE D4 08 45 4C 53 45 00 1A 42 C8 21
+BA 40 00 3C 00 00 A2 53 C8 21 2F 83 8F 4A 00 00
+E3 3F 6C D4 0A 42 45 47 49 4E 30 40 32 C4 56 D5
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 21
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 21 30 4D 12 D4 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 20 D5 7C C8 62 C9 74 D5
+0C 52 45 50 45 41 54 00 0D 12 84 12 B4 D5 38 D5
+62 C9 E4 D5 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 21
+CB 2F 98 42 C8 21 00 00 30 4D D0 D5 06 42 57 31
+85 12 E2 D5 00 00 FC D5 06 42 57 32 85 12 E2 D5
+00 00 08 D6 06 42 57 33 85 12 E2 D5 00 00 20 D6
+3D 41 1A 42 C8 21 28 4E 8E 43 00 00 B2 92 C6 21
+86 2B BA 4F 00 00 A2 53 C8 21 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 1E D6 00 00 44 D6
+06 46 57 32 85 12 1E D6 00 00 50 D6 06 46 57 33
+85 12 1E D6 00 00 BE D5 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 56 CD 62 CC
+62 C9 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+8A D2 0A C4 2C 00 E6 C9 30 CB AC C4 66 CD 94 C7
+80 D2 62 D2 B6 D6 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E 14 D6 08 52 52 43 4D 00 85 12 A0 D6 50 00
+E4 D6 08 52 52 41 4D 00 85 12 A0 D6 50 01 F2 D6
+08 52 4C 41 4D 00 85 12 A0 D6 50 02 00 D7 08 52
+52 55 4D 00 85 12 A0 D6 50 03 12 D5 0A 50 55 53
+48 4D 85 12 A0 D6 00 15 1C D7 08 50 4F 50 4D 00
+85 12 A0 D6 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 82 C6 E2 C5 E2 C5
-E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 E2 C5 42 D1
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 BC C6 FA C5 FA C5
+FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 FA C5 0E C6
 q
diff --git a/binaries/MSP_EXP430FR4133_8MHz_UART.txt b/binaries/MSP_EXP430FR4133_8MHz_UART.txt
deleted file mode 100644 (file)
index 0123f28..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF 34 D8 3C D0 34 01
-10 00 41 B3 94 C5 AA C4 DA C5 9C C5 94 C6 34 D8
-3C D0 7A C6 92 C7 24 C7 FE C6 3C 21 60 C8 D4 C4
-E2 C4 EE C4 20 00 0A 00 00 00 00 00 00 00 00 00
-@C400
-B0 12 DA C5 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 21 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C4
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 21
-B2 4F C2 21 82 43 C4 21 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 21 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C4 39 40 22 18
-B2 49 78 C6 B2 49 90 C7 B2 49 22 C7 B2 49 FC C6
-B2 49 CA C4 34 49 35 49 36 49 37 49 B2 49 B4 21
-B2 49 DC 21 3D 41 30 40 08 D1 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C5 92 C3 1C 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-1C 05 F3 23 B0 12 F8 C4 0A C4 DE 21 E0 C7 32 C7
-14 C4 04 1B 5B 37 6D 00 5C C7 A8 C7 34 C4 86 C5
-14 C4 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C7 A0 C8 5C C7 14 C4 04 1B 5B 30 6D 00
-5C C7 62 CC 92 B3 0A 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 00 05 92 42 02 18 06 05 92 42 04 18
-08 05 F2 D0 03 00 0A 02 92 C3 00 05 92 D3 1A 05
-92 C3 30 01 30 41 09 3C A2 B3 1C 05 FD 27 B2 40
-13 00 0E 05 F2 D2 03 02 30 41 A2 B3 1C 05 FD 27
-B2 40 11 00 0E 05 F2 C2 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C5 E2 B2 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C5 04 57 41 52 4D 00 B0 12
-9C C5 84 12 14 C4 07 0D 0A 1B 5B 37 6D 23 5C C7
-D6 C8 14 C4 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 5C C7
-0A C4 40 FF 28 C4 D4 C7 A0 C8 14 C4 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C4 86 C5 00 00 06 41
-43 43 45 50 54 00 30 40 7A C6 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C6 3C 40 D2 C6
-5D 15 B6 3E 21 52 3A 17 58 42 0C 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 0E 05 30 4D C8 C6 2D 83 92 B3 1C 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 1C 05
-FD 27 58 42 0C 05 82 93 DE 21 02 24 92 53 DE 21
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C6 2F 83
-8F 4E 00 00 B0 12 DA C5 92 B3 1C 05 FD 27 1E 42
-0C 05 B0 12 C8 C5 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C7 08 4E 3E 4F C8 3F 1A C7 04 45 43 48
-4F 00 B2 40 C2 48 C0 C6 82 43 DE 21 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C6 92 43
-DE 21 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C7 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C7 7A C7 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C5 02 43 52 00 30 40
-92 C7 0D 12 84 12 14 C4 02 0D 0A 00 5C C7 60 C8
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 20 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C6 01 40
-2E 4E 30 4D DE C7 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 21 B2 21 30 4D 8A C7 01 23 1B 42 DC 21
-2C 4F 2F 83 B0 12 6E C4 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 1A C8 02 23 53 00 0D 12
-84 12 1C C8 56 C8 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C8 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C7 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C8 4E C8 EE C4 8E C8 6A C8 5C C7 4E CC 20 C7
-60 C8 40 C7 01 2E 0E 93 E3 37 38 43 E2 3F 88 C8
-82 53 22 00 82 43 B4 21 0D 12 84 12 0A C4 14 C4
-94 CB 0A C4 22 00 2C C9 FA C8 B2 40 20 00 B4 21
-6E 4E 1E 53 1E B3 82 6E C6 21 3E 4F 3D 41 30 4D
-D4 C8 82 2E 22 00 0D 12 84 12 E4 C8 0A C4 5C C7
-94 CB 60 C8 18 C6 04 57 4F 52 44 00 3C 40 C0 21
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 21 FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C4 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C4 35 40 D4 C4
-30 4D 9C C8 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 00 00 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 56 CA D2 3F 58 CA 81 49 02 00 1C 4F 04 00
-1E 41 04 00 3D 40 6A CA C8 3F 6C 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 32 C0 00 02 1B 42 DC 21
-0C 43 2D 15 3D 40 EA CA 0A 4B 3F 82 8F 4E 06 00
-8F 43 04 00 8F 43 02 00 0C 4E 7B 4C FC 90 27 00
-00 00 06 20 DF 4C 01 00 04 00 7E 90 03 00 47 3C
-68 4C 78 80 2D 00 04 28 B1 23 B1 43 02 00 0A 3C
-2A 43 78 52 07 24 3A 52 68 53 04 24 3A 40 10 00
-78 53 35 20 1C 53 1B 83 EB 3F EC CA 30 24 2D 83
-78 90 28 00 C2 27 32 B0 00 02 29 20 32 D0 00 02
-78 90 F7 00 BA 27 78 90 F5 00 21 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 66 C4 2A 17
-E6 3F 9F 4F 04 00 02 00 AF 4F 04 00 4B 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
-00 00 01 2C 1A 42 C6 21 8A 4E 00 00 A2 53 C6 21
-3E 4F 30 4D 92 CB 87 4C 49 54 45 52 41 4C 82 93
-BE 21 0D 24 09 4E 1A 42 C6 21 A2 52 C6 21 BA 40
-0A C4 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
-00 02 03 24 8A 4E 02 00 EE 3F 30 4D 66 C8 05 43
-4F 55 4E 54 2F 83 1E 53 8F 4E 00 00 5E 4E FF FF
-30 4D 7A C8 09 49 4E 54 45 52 50 52 45 54 0D 12
-84 12 AC C4 4E CC 2C C9 0A CC 7F 26 3D 40 12 CC
-C1 3E 14 CC 0A 4E 3E 4F 3D 40 2E CC 35 27 3D 40
-04 CC 1A E2 BE 21 B6 27 0E 12 3E 4F 30 41 30 CC
-3E 4F 3D 40 04 CC BB 23 DE 53 00 00 68 4E 08 5E
-F8 40 3F 00 00 00 3D 40 D0 CD CC 3F 38 CC 86 12
-20 00 E6 C7 05 41 4C 4C 4F 54 82 5E C6 21 3E 4F
-30 4D 3F 40 80 20 0E 43 31 40 E0 20 B2 40 00 20
-00 20 82 43 BE 21 84 12 8E C7 BC C4 FE CB C4 C7
-F6 C7 14 C4 0C 73 74 61 63 6B 20 65 6D 70 74 79
-21 00 2A C5 0A C4 40 FF 28 C4 FE C7 14 C4 0A 46
-52 41 4D 20 66 75 6C 6C 21 00 2A C5 3A C4 78 CC
-54 CC 86 41 42 4F 52 54 22 00 0D 12 84 12 E4 C8
-0A C4 2A C5 94 CB 60 C8 8E C9 01 27 0D 12 84 12
-4E CC 2C C9 94 C9 34 C4 4C CC 60 C8 00 00 83 5B
-27 5D 0D 12 84 12 CC CC 0A C4 0A C4 94 CB 94 CB
-60 C8 DE CC 81 5B 82 43 BE 21 30 4D 0C C8 01 5D
-B2 43 BE 21 30 4D FE CC 81 5C 92 42 C0 21 C4 21
-30 4D 00 00 88 50 4F 53 54 50 4F 4E 45 00 0D 12
-84 12 4E CC 2C C9 94 C9 A8 C7 34 C4 4C CC F6 C7
-34 C4 40 CD 0A C4 0A C4 94 CB 94 CB 0A C4 94 CB
-94 CB 60 C8 F4 CC 01 3A 30 12 90 CD 92 B3 C6 21
-A2 63 C6 21 0D 12 84 12 4E CC 2C C9 5E 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
-BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BE 21
-30 4D 82 9F BC 21 09 20 18 42 B6 21 19 42 B8 21
-A8 49 FE FF 89 48 00 00 30 4D 0D 12 84 12 14 C4
-0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
-36 C5 46 CD 81 3B 82 93 BE 21 97 27 0D 12 84 12
-0A C4 60 C8 94 CB A2 CD F6 CC 60 C8 F4 CB 09 49
-4D 4D 45 44 49 41 54 45 18 42 B6 21 F8 D0 80 00
-00 00 30 4D DE CB 06 43 52 45 41 54 45 00 B0 12
-4C CD BA 40 86 12 FC FF 8A 4A FE FF C9 3F 06 CE
-04 43 4F 44 45 00 B0 12 4C CD A2 82 C6 21 0D 12
-84 12 3E D0 18 D0 60 C8 EE CD 07 48 44 4E 43 4F
-44 45 B2 40 1C D0 DA 21 EE 3F 00 00 07 45 4E 44
-43 4F 44 45 0D 12 84 12 A2 CD 58 D0 76 D0 60 C8
-00 00 05 43 4F 4C 4F 4E 1A 42 C6 21 BA 40 0D 12
-00 00 BA 40 84 12 02 00 A2 52 C6 21 B2 43 BE 21
-0D 12 84 12 58 D0 76 D0 60 C8 00 00 05 4C 4F 32
-48 49 A2 83 C6 21 1A 42 C6 21 EB 3F 3A CE 85 48
-49 32 4C 4F 0D 12 84 12 28 C4 E6 CF 94 CB F6 CC
-2E CE 60 C8 D4 CD 86 5B 54 48 45 4E 5D 00 30 4D
-0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C 10 24 1B 83
-06 30 1C 83 04 30 19 53 F9 98 FF FF F5 27 2D 4D
-3E 4F 30 4D 2F 53 9F 83 00 00 F9 23 2F 53 2D 53
-F7 3F B6 CE 86 5B 45 4C 53 45 5D 00 0D 12 84 12
-0A C4 00 00 D8 C7 4E CC 2C C9 E4 CB A0 C7 34 C4
-4E CF AE C7 14 C4 06 5B 54 48 45 4E 5D 00 C0 CE
-28 CF E4 CE 06 CF 60 C8 AE C7 14 C4 06 5B 45 4C
-53 45 5D 00 C0 CE 3E CF E4 CE 04 CF 60 C8 14 C4
-04 5B 49 46 5D 00 C0 CE 06 CF 3A C4 04 CF 82 C7
-14 C4 05 0D 0A 6B 6F 20 5C C7 BC C4 AC C4 3A C4
-06 CF F4 CE 84 5B 49 46 5D 00 0E 93 3E 4F C6 27
-30 4D 2F 53 30 4D 64 CF 89 5B 44 45 46 49 4E 45
-44 5D 0D 12 84 12 4E CC 2C C9 94 C9 72 CF 60 C8
-78 CF 8B 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
-84 12 82 CF F0 C7 60 C8 AA CF B2 4E 0A 18 2E 53
-BE 12 3E 4F 3D 41 90 3C A6 CB 06 4D 41 52 4B 45
-52 00 B0 12 4C CD BA 40 85 12 FC FF BA 40 A8 CF
-FE FF 28 83 8A 48 00 00 BA 40 AA C4 04 00 B2 50
-06 00 C6 21 E1 3E 2E 53 30 4D 0A C4 CA 21 E8 C7
-60 C8 85 12 EA CF B2 CC 20 CE 2C C7 CA CC 9E CE
-F6 C6 BA CF 12 C9 E2 D0 F6 D0 F4 C9 26 C9 00 00
-92 CF 08 CD 1C CA 00 00 85 12 EA CF AA D6 10 D7
-52 D6 60 D7 18 D6 00 00 E4 D3 00 00 28 D8 0C D8
-7C D6 BA D6 F4 D4 00 00 00 00 7C D7 16 D0 3A 40
-0C 00 39 40 D6 21 08 49 28 53 19 83 18 83 E8 49
-00 00 1A 83 FA 23 30 4D 3A 40 0E 00 38 40 CA 21
-09 48 29 53 F8 49 00 00 18 53 1A 83 FB 23 30 4D
-82 43 CC 21 30 4D 92 42 CA 21 DA 21 30 4D F2 CF
-70 D0 76 D0 86 D0 1A 42 20 18 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 14 CD 09 50 57 52
-5F 53 54 41 54 45 85 12 7E D0 34 D8 E0 C8 09 52
-53 54 5F 53 54 41 54 45 92 42 0A 18 CA D0 F3 3F
-BC D0 08 50 57 52 5F 48 45 52 45 00 92 42 C6 21
-CA D0 30 4D CE D0 08 52 53 54 5F 48 45 52 45 00
-92 42 C6 21 0A 18 F2 3F 3E 90 0E 00 DC 27 2E 92
-E3 37 0E 93 D8 37 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B9 40 54 D1 FE FF 29 83 B9 40 02 C6 FE FF
-39 90 AE FF F9 23 39 40 14 18 B2 49 04 C6 B2 49
-FA C4 B2 49 02 C4 B2 49 20 C6 B2 49 EC FF B2 49
-0A 18 C2 3F B2 D0 03 00 04 01 B2 D0 10 00 00 01
-B2 40 80 5A CC 01 31 40 E0 20 3F 40 80 20 39 40
-00 08 29 83 89 43 00 20 FC 23 B2 D3 06 02 B2 D3
-02 02 F2 D2 05 02 B2 D0 FF FE 26 02 B2 43 22 02
-B2 D3 46 02 B2 43 42 02 B2 D3 66 02 B2 43 62 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 82 43 88 01 F2 D0 06 00
-2B 02 39 40 40 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 1E 42 08 18 82 43 08 18 1E D2 5E 01 B0 12
-F8 C4 1E C6 38 40 C0 21 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 21 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 21 30 4D 1C 15 0E 12 12 12 C4 21
-84 12 2C C9 94 C9 F0 C7 34 C4 24 D2 88 CA 34 C4
-3E D2 38 D2 26 D2 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 40 D2
-B2 41 C4 21 3E 41 84 12 0A C4 2B 00 2C C9 94 C9
-F0 C7 34 C4 5C D2 88 CA 34 C4 4C CC BA C7 2C C9
-88 CA 34 C4 4C CC 68 D2 3E 5F E7 3F 3E 40 28 00
-B0 12 08 D2 19 42 C6 21 A2 53 C6 21 89 4E 00 00
-3E 40 29 00 92 92 C0 21 C4 21 02 20 30 40 BA CD
-1C 15 12 12 C4 21 92 53 C4 21 84 12 2C C9 88 CA
-34 C4 B0 D2 A6 D2 21 53 3E 90 10 00 C6 2B 7F 2D
-B2 D2 B2 41 C4 21 C1 3F 0D 12 84 12 4E CC E4 D1
-C2 D2 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 08 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 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 08 D2 ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 21 B0 12 90 D2 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 90 D2 92 92 C0 21 C4 21 02 24
-92 53 C4 21 8E 10 0C 5E DA 3F B0 12 90 D2 FA 23
-3C 50 10 00 B0 12 6C D2 EF 3F 0C 43 1B 42 C6 21
-A2 53 C6 21 0D 12 84 12 4E CC E4 D1 8E D3 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 90 D2 E0 23 3C 50 80 00 B0 12 6C D2 DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A C4 00 13
-94 CB 60 C8 0A C4 2C 00 B8 D2 84 D3 CE D3 09 4B
-2E 4E 0E DC A2 3F 8C CE 03 4D 4F 56 85 12 C4 D3
-00 40 D8 D3 05 4D 4F 56 2E 42 85 12 C4 D3 40 40
-00 00 03 41 44 44 85 12 C4 D3 00 50 F2 D3 05 41
-44 44 2E 42 85 12 C4 D3 40 50 FE D3 04 41 44 44
-43 00 85 12 C4 D3 00 60 0C D4 06 41 44 44 43 2E
-42 00 85 12 C4 D3 40 60 B2 D3 04 53 55 42 43 00
-85 12 C4 D3 00 70 2A D4 06 53 55 42 43 2E 42 00
-85 12 C4 D3 40 70 38 D4 03 53 55 42 85 12 C4 D3
-00 80 48 D4 05 53 55 42 2E 42 85 12 C4 D3 40 80
-62 CE 03 43 4D 50 85 12 C4 D3 00 90 62 D4 05 43
-4D 50 2E 42 85 12 C4 D3 40 90 4C CE 04 44 41 44
-44 00 85 12 C4 D3 00 A0 7C D4 06 44 41 44 44 2E
-42 00 85 12 C4 D3 40 A0 6E D4 03 42 49 54 85 12
-C4 D3 00 B0 9A D4 05 42 49 54 2E 42 85 12 C4 D3
-40 B0 A6 D4 03 42 49 43 85 12 C4 D3 00 C0 B4 D4
-05 42 49 43 2E 42 85 12 C4 D3 40 C0 C0 D4 03 42
-49 53 85 12 C4 D3 00 D0 CE D4 05 42 49 53 2E 42
-85 12 C4 D3 40 D0 00 00 03 58 4F 52 85 12 C4 D3
-00 E0 E8 D4 05 58 4F 52 2E 42 85 12 C4 D3 40 E0
-1A D4 03 41 4E 44 85 12 C4 D3 00 F0 02 D5 05 41
-4E 44 2E 42 85 12 C4 D3 40 F0 4E CC B8 D2 20 D5
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-54 D4 03 52 52 43 85 12 1A D5 00 10 32 D5 05 52
-52 43 2E 42 85 12 1A D5 40 10 3E D5 04 53 57 50
-42 00 85 12 1A D5 80 10 4C D5 03 52 52 41 85 12
-1A D5 00 11 5A D5 05 52 52 41 2E 42 85 12 1A D5
-40 11 66 D5 03 53 58 54 85 12 1A D5 80 11 00 00
-04 50 55 53 48 00 85 12 1A D5 00 12 80 D5 06 50
-55 53 48 2E 42 00 85 12 1A D5 40 12 DA D4 04 43
-41 4C 4C 00 85 12 1A D5 80 12 1A 53 0E 4A 0D 12
-84 12 D6 C8 14 C4 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 C5 74 D5 03 53 3E 3D 86 12 00 38
-C8 D5 02 53 3C 00 86 12 00 34 8E D5 03 30 3E 3D
-86 12 00 30 DC D5 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C F0 D5 03 55 3E 3D 86 12
-00 28 E6 D5 03 30 3C 3E 86 12 00 24 04 D6 02 30
-3D 00 86 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 D5 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 B1 2F 88 DA 00 00 30 4D
-8A D4 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 9E D5
-05 42 45 47 49 4E 30 40 28 C4 2E D6 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 21 30 4D 0E D5 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 1C D6 BA C7 60 C8 D2 D5 06 52 45 50
-45 41 54 00 0D 12 84 12 B0 D6 34 D6 60 C8 E0 D6
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 21 CB 2F 98 42
-C6 21 00 00 30 4D 70 D6 03 42 57 31 85 12 DE D6
-00 00 F8 D6 03 42 57 32 85 12 DE D6 00 00 04 D7
-03 42 57 33 85 12 DE D6 00 00 1C D7 3D 41 1A 42
-C6 21 28 4E B2 92 C4 21 88 2B BA 4F 00 00 A2 53
-C6 21 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 1A D7 00 00 3C D7 03 46 57 32 85 12 1A D7
-00 00 48 D7 03 46 57 33 85 12 1A D7 00 00 54 D7
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 CC CC 28 CC 60 C8 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 4E CC E4 D1 9E D7 92 53
-C4 21 3E 40 2C 00 84 12 2C C9 88 CA 34 C4 4C CC
-7A D3 B4 D7 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-CC D6 04 52 52 43 4D 00 85 12 98 D7 50 00 E2 D7
-04 52 52 41 4D 00 85 12 98 D7 50 01 F0 D7 04 52
-4C 41 4D 00 85 12 98 D7 50 02 FE D7 04 52 52 55
-4D 00 85 12 98 D7 50 03 0E D6 05 50 55 53 48 4D
-85 12 98 D7 00 15 1A D8 04 50 4F 50 4D 00 85 12
-98 D7 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 94 C6 02 C6
-02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 02 C6 54 D1
-q
diff --git a/binaries/MSP_EXP430FR5739_16MHz_115200.txt b/binaries/MSP_EXP430FR5739_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..afdbc08
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A1 59
+D0 C4 7E C3 84 C3 54 C3 40 C5 2E D5 E6 CD A0 CD
+A0 CD B6 C4 74 C5 3C C5 3C 1D E0 1C 94 C7 B6 C2
+C4 C2 B0 C6 20 00 0A 00 00 1C 7E C3 84 C3 54 C3
+40 C5 2E D5 E6 CD A0 CD A0 CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C200
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 03 3D 0E 93 3E 4F
+98 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B4 C4 B2 49
+72 C5 B2 49 3A C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 5A CE 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 40 C5 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 C2 BA C6 AC C2 52 C3 82 C5 1E C2 04 1B
+5B 37 6D 00 A4 C5 A4 C5 1E C2 04 1B 5B 30 6D 00
+A4 C5 F0 CA B0 12 7E C3 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 82 C5 1E C2
+07 0D 0A 1B 5B 37 6D 23 A4 C5 08 C8 1E C2 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A4 C5 0A C2 40 FF 32 C2
+D0 C6 D4 C7 1E C2 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C2 46 C3 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C3 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+92 D3 30 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 B2 40 33 00 64 01 D2 43 61 01
+39 40 40 00 18 42 00 18 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
+19 42 9E 01 1E 42 08 18 82 43 08 18 3E F3 01 20
+0E 49 B0 12 D0 C2 86 C3 00 00 0C 41 43 43 45 50
+54 00 30 40 B6 C4 08 4E 2E 4F 08 5E 39 40 0D 00
+3A 40 20 00 3B 40 14 C5 3C 40 20 C5 5D 15 98 3E
+21 52 3A 17 58 42 CC 05 48 9B 09 20 A2 B3 DC 05
+FD 27 B2 40 13 00 CE 05 E2 D2 03 02 30 41 48 9C
+06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A
+03 2C CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 C2 48
+CE 05 30 4D 16 C5 2D 83 92 B3 DC 05 DB 23 FC 3F
+3E 8F 3D 41 92 B3 DC 05 FD 27 58 42 CC 05 08 4C
+EB 3F 00 00 06 4B 45 59 30 40 3C C5 30 12 52 C5
+A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C2 03 02
+30 41 2F 83 8F 4E 00 00 92 B3 DC 05 FD 27 B0 12
+DC C4 1E 42 CC 05 30 4D 00 00 08 45 4D 49 54 00
+30 40 74 C5 08 4E 3E 4F C7 3F 6A C5 08 45 43 48
+4F 00 B2 40 C2 48 0E C5 30 4D 00 00 0C 4E 4F 45
+43 48 4F 00 B2 40 30 4D 0E C5 30 4D 00 00 08 54
+59 50 45 00 0D 12 3D 40 B4 C5 29 4F 8F 4E 00 00
+7E 49 DE 3F B6 C5 2D 83 2F 83 5E 83 F7 23 3D 41
+2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F
+39 4F 3E 4F 6E 22 F9 98 00 00 6B 22 19 53 1C 83
+FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 62 22 9B 24
+34 C5 0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C2
+00 00 D4 C6 C6 C5 18 C8 D2 CA B0 C2 42 C6 14 C2
+06 5B 54 48 45 4E 5D 00 CA C5 20 C6 E6 C5 04 C6
+14 C2 06 5B 45 4C 53 45 5D 00 CA C5 32 C6 E6 C5
+02 C6 1E C2 04 5B 49 46 5D 00 CA C5 04 C6 B2 C2
+02 C6 1E C2 05 0D 6B 6F 20 0A A4 C5 9A C2 84 C2
+B2 C2 04 C6 F2 C5 0D 5B 54 48 45 4E 5D 00 30 4D
+56 C6 09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
+62 C6 13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12
+C6 C5 18 C8 80 C8 24 CA 94 C7 72 C6 17 5B 55 4E
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C6 C5 18 C8
+80 C8 A4 C6 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12
+2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83
+30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F
+3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D
+AA C4 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E
+3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C3 05 53
+22 00 82 43 C0 1D 0D 12 84 12 0A C2 1E C2 82 CA
+0A C2 22 00 18 C8 18 C7 B2 40 20 00 C0 1D 1A 53
+1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D 8C C5 05 2E
+22 00 0D 12 84 12 02 C7 0A C2 A4 C5 82 CA 94 C7
+00 00 04 3C 23 00 B2 40 B2 1D B2 1D 30 4D FE C6
+02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12 46 C2 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 50 C7
+04 23 53 00 0D 12 84 12 52 C7 8C C7 2D 83 09 DE
+09 93 E1 23 3D 41 30 4D 80 C7 04 23 3E 00 9F 42
+B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48
+4F 4C 44 00 4A 4E 3E 4F DB 3F 9A C7 08 53 49 47
+4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 7C C5
+04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15
+3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
+84 12 46 C7 C6 C5 B4 C7 84 C7 B0 C6 C2 C7 9E C7
+A4 C5 94 C7 2E C7 02 2E 0E 93 E4 37 3C 43 E3 3F
+00 00 08 57 4F 52 44 00 3C 40 C2 1D 39 4C 38 4C
+09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83
+1B 42 C0 1D F8 90 27 00 00 00 04 20 E8 98 02 00
+01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C
+09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F
+4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D
+0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00
+2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C
+01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF
+0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C
+FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
+0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D
+06 C8 0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F
+38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00
+03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3
+0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82
+8F 4E 06 00 08 43 09 43 1B 42 BE 1D 0C 4E 0E 43
+1E 15 3D 40 8A C9 7E 4C 6A 4C 7A 80 2D 00 16 24
+CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40
+10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20
+FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00
+1E 83 FC 9C 00 00 E0 23 AE 27 8C C9 2F 24 2D 83
+6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0
+00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43
+8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00
+03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C
+8F 49 00 00 0E 4B 2C 15 B0 12 3E C2 2A 17 E8 3F
+9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 42 C7 03 5C 92 42 C2 1D
+C6 1D 30 4D 0D 12 84 12 84 C2 C6 C5 18 C8 B0 C2
+5C CB 80 C8 46 CA 0A 4E 3E 4F 3D 40 60 CA 6D 27
+3D 40 3A CA 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41
+62 CA 3E 4F 3D 40 3A CA 19 20 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 38 CC 2A 3C 2A CA
+02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F
+30 4D 80 CA 0F 4C 49 54 45 52 41 4C 82 93 BC 1D
+0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A C2
+00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
+03 24 8A 4E 02 00 EE 3F 30 4D BC C7 0A 43 4F 55
+4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D
+E2 C6 0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D
+3F 40 80 1C 0E 43 84 12 1E C2 02 0D 0A 00 A4 C5
+94 C2 34 CA C2 C6 EC C6 1E C2 0B 73 74 61 63 6B
+20 65 6D 70 74 79 08 C3 32 C2 0A C2 40 FF F4 C6
+1E C2 09 46 52 41 4D 20 66 75 6C 6C 08 C3 B2 C2
+F8 CA E2 CA 0D 41 42 4F 52 54 22 00 0D 12 84 12
+02 C7 0A C2 08 C3 82 CA 94 C7 12 C8 02 27 0D 12
+84 12 C6 C5 18 C8 80 C8 B0 C2 5E CB 26 C7 6A CA
+8C C6 07 5B 27 5D 0D 12 84 12 4E CB 0A C2 0A C2
+82 CA 82 CA 94 C7 62 CB 03 5B 82 43 BC 1D 30 4D
+00 00 02 5D B2 43 BC 1D 30 4D DA C6 11 50 4F 53
+54 50 4F 4E 45 00 0D 12 84 12 C6 C5 18 C8 80 C8
+B0 C2 5E CB EC C6 AC C2 B6 CB 0A C2 0A C2 82 CA
+82 CA 0A C2 82 CA 82 CA 94 C7 00 00 02 3A 30 12
+0C CC 92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 C6 C5
+18 C8 D4 CB 3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D
+08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F
+E8 58 00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D
+82 4F BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12
+FC FF BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F
+BA 1D 66 25 84 12 1E C2 0F 73 74 61 63 6B 20 6D
+69 73 6D 61 74 63 68 21 12 C3 78 CB 03 3B 82 93
+BC 1D F4 26 0D 12 84 12 0A C2 94 C7 82 CA 1E CC
+7A CB 94 C7 00 00 12 49 4D 4D 45 44 49 41 54 45
+18 42 B4 1D D8 D3 00 00 30 4D CC CA 0C 43 52 45
+41 54 45 00 B0 12 C2 CB BA 40 86 12 FC FF 8A 4A
+FE FF 3A 3D 9E C5 0A 44 4F 45 53 3E 1A 42 B8 1D
+BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D BC CB
+0E 3A 4E 4F 4E 41 4D 45 30 12 0C CC 2F 83 8F 4E
+00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02
+08 49 98 3F 56 CC 05 49 53 00 0D 12 82 93 BC 1D
+08 20 84 12 4E CB D8 CC 3D 41 BE 4F 02 00 3E 4F
+30 4D 84 12 66 CB 0A C2 DA CC 82 CA 94 C7 6C CC
+08 43 4F 44 45 00 B0 12 C2 CB A2 82 C8 1D 61 3C
+AE C7 0E 48 44 4E 43 4F 44 45 B2 40 C6 CD CC 1D
+F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12
+1E CC 24 CD 3D 41 92 42 D0 1D CC 1D 5D 3C F0 CC
+0E 43 4F 44 45 4E 4E 4D 30 12 FA CC B7 3F 00 00
+0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12 00 00
+BA 40 84 12 02 00 A2 52 C8 1D B2 43 BC 1D E3 3F
+00 00 0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D
+EF 3F 02 CD 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42
+C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F 8E CD B2 40
+A0 CD D0 1D 82 4E CE 1D 30 40 26 C7 85 12 8C CD
+8C CB 34 CB 1E CE 30 CD 86 CC D0 C7 7A C8 4C CB
+74 CD C6 CC A0 CC 3C CC 94 CA A8 CE D2 C8 00 00
+00 00 85 12 8C CD 22 D5 A6 D3 06 D5 CE D2 2A D3
+78 D3 54 D4 60 D4 F0 D1 14 D3 00 00 00 00 62 CD
+E0 D0 00 00 7C D4 C0 CD B2 40 A0 CD CE 1D 82 43
+D0 1D 30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83
+FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54 39 40
+C8 1D 3A 40 42 18 B0 12 F4 CD 30 4D 06 CE 0E 52
+53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 1D
+B0 12 F4 CD 1A 42 CA 1D 3B 40 10 00 09 4A 08 49
+29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83
+F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40
+10 00 29 83 B9 43 80 FF FC 23 B9 40 06 C4 FE FF
+29 83 B9 40 F2 C3 FE FF 39 90 AE FF F9 23 39 40
+10 18 B2 49 F0 FF 3B 40 10 00 3A 40 3A 18 B0 12
+F8 CD 82 43 4A 18 C7 3F 9A CE B2 4E 42 18 BE 12
+3E 4F 3D 41 C0 3F 82 CB 0C 4D 41 52 4B 45 52 00
+12 12 C6 1D 0D 12 84 12 C6 C5 18 C8 80 C8 AC C2
+C6 CE BA C6 5A CA C8 CE 3E 4F 3D 41 B2 41 C6 1D
+B0 12 C2 CB BA 40 85 12 FC FF BA 40 98 CE FE FF
+28 83 8A 48 00 00 BA 40 82 C2 02 00 A2 52 C8 1D
+18 42 B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00
+30 4D 12 12 C6 1D 84 12 18 C8 80 C8 AC C2 32 CF
+12 CF 3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E
+06 3C BE 90 98 CE 00 00 01 20 3E 52 2E 83 21 53
+30 41 2A C9 AC C2 3A CF 2E CF 3C CF B2 41 C6 1D
+30 41 92 83 C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12
+02 CF 15 20 3E 40 2B 00 B0 12 02 CF 06 20 3E 40
+2D 00 B0 12 02 CF 92 83 C6 1D 0E 12 1E 41 02 00
+84 12 18 C8 2A C9 AC C2 5E CB 7C CF 3E 51 3A 17
+30 41 B0 12 42 CF 19 42 C8 1D 89 4E 00 00 A2 53
+C8 1D 3E 40 29 00 92 53 C6 1D 1A 42 C6 1D 3D 15
+84 12 18 C8 2A C9 AC C2 B4 CF AC CF 3E 90 10 00
+E6 2B 7C 2D B6 CF A2 41 C6 1D E1 3F 03 20 B0 12
+9A CF 43 3C 7A 90 23 00 24 20 B0 12 4A CF 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 C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F
+30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12 4A CF
+F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12 96 CF
+0C 20 3C D0 10 00 3E 40 2B 00 B0 12 9A CF 92 92
+C2 1D C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E DF 3F
+3C D0 10 00 B0 12 82 CF F2 3F 03 20 B0 12 9A CF
+F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0
+80 00 B0 12 82 CF EA 3F 0C 43 1B 42 C8 1D A2 53
+C8 1D 3A 40 20 00 19 42 C6 1D 19 52 C4 1D 7A 99
+FE 27 5A 49 FF FF 19 82 C4 1D 82 49 C6 1D 7A 90
+52 00 30 4D 00 00 08 52 45 54 49 00 0D 12 84 12
+0A C2 00 13 82 CA 94 C7 0A C2 2C 00 78 D0 BC CF
+C6 C5 82 D0 5A D0 C8 D0 3D 41 2C DE 8B 4C 00 00
+9E 3F 00 00 06 4D 4F 56 85 12 B8 D0 00 40 D4 D0
+0A 4D 4F 56 2E 42 85 12 B8 D0 40 40 00 00 06 41
+44 44 85 12 B8 D0 00 50 EE D0 0A 41 44 44 2E 42
+85 12 B8 D0 40 50 FA D0 08 41 44 44 43 00 85 12
+B8 D0 00 60 08 D1 0C 41 44 44 43 2E 42 00 85 12
+B8 D0 40 60 40 CD 08 53 55 42 43 00 85 12 B8 D0
+00 70 26 D1 0C 53 55 42 43 2E 42 00 85 12 B8 D0
+40 70 34 D1 06 53 55 42 85 12 B8 D0 00 80 44 D1
+0A 53 55 42 2E 42 85 12 B8 D0 40 80 50 D1 06 43
+4D 50 85 12 B8 D0 00 90 5E D1 0A 43 4D 50 2E 42
+85 12 B8 D0 40 90 00 00 08 44 41 44 44 00 85 12
+B8 D0 00 A0 78 D1 0C 44 41 44 44 2E 42 00 85 12
+B8 D0 40 A0 A6 D0 06 42 49 54 85 12 B8 D0 00 B0
+96 D1 0A 42 49 54 2E 42 85 12 B8 D0 40 B0 A2 D1
+06 42 49 43 85 12 B8 D0 00 C0 B0 D1 0A 42 49 43
+2E 42 85 12 B8 D0 40 C0 BC D1 06 42 49 53 85 12
+B8 D0 00 D0 CA D1 0A 42 49 53 2E 42 85 12 B8 D0
+40 D0 00 00 06 58 4F 52 85 12 B8 D0 00 E0 E4 D1
+0A 58 4F 52 2E 42 85 12 B8 D0 40 E0 16 D1 06 41
+4E 44 85 12 B8 D0 00 F0 FE D1 0A 41 4E 44 2E 42
+85 12 B8 D0 40 F0 C6 C5 78 D0 BC CF 1E D2 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F D6 D1
+06 52 52 43 85 12 16 D2 00 10 30 D2 0A 52 52 43
+2E 42 85 12 16 D2 40 10 6A D1 08 53 57 50 42 00
+85 12 16 D2 80 10 3C D2 06 52 52 41 85 12 16 D2
+00 11 58 D2 0A 52 52 41 2E 42 85 12 16 D2 40 11
+4A D2 06 53 58 54 85 12 16 D2 80 11 00 00 08 50
+55 53 48 00 85 12 16 D2 00 12 7E D2 0C 50 55 53
+48 2E 42 00 85 12 16 D2 40 12 72 D2 08 43 41 4C
+4C 00 85 12 16 D2 80 12 1A 53 0E 4A 84 12 08 C8
+1E C2 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+12 C3 9C D2 06 53 3E 3D 86 12 00 38 C4 D2 04 53
+3C 00 86 12 00 34 8C D2 06 30 3E 3D 86 12 00 30
+D8 D2 04 30 3C 00 86 12 00 30 14 CD 04 55 3C 00
+86 12 00 2C EC D2 06 55 3E 3D 86 12 00 28 E2 D2
+06 30 3C 3E 86 12 00 24 00 D3 04 30 3D 00 86 12
+00 20 00 00 04 49 46 00 1A 42 C8 1D 8A 4E 00 00
+A2 53 C8 1D 0E 4A 30 4D 86 D1 08 54 48 45 4E 00
+1A 42 C8 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
+3A 90 00 02 B2 2F 88 DA 00 00 30 4D F6 D2 08 45
+4C 53 45 00 1A 42 C8 1D BA 40 00 3C 00 00 A2 53
+C8 1D 2F 83 8F 4A 00 00 E3 3F 64 D2 0A 42 45 47
+49 4E 30 40 32 C2 4E D3 0A 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11 3A 90
+00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C8 1D 30 4D 0A D2 0A 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12
+18 D3 AE C6 94 C7 6C D3 0C 52 45 50 45 41 54 00
+0D 12 84 12 AC D3 30 D3 94 C7 DC D3 3D 41 08 4E
+3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D 00 00
+30 4D C8 D3 06 42 57 31 85 12 DA D3 00 00 F4 D3
+06 42 57 32 85 12 DA D3 00 00 00 D4 06 42 57 33
+85 12 DA D3 00 00 18 D4 3D 41 1A 42 C8 1D 28 4E
+8E 43 00 00 B2 92 C6 1D 86 2B BA 4F 00 00 A2 53
+C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31
+85 12 16 D4 00 00 3C D4 06 46 57 32 85 12 16 D4
+00 00 48 D4 06 46 57 33 85 12 16 D4 00 00 B6 D3
+08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
+0D 12 84 12 4E CB 5A CA 94 C7 00 00 0A 3F 47 4F
+54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
+EF 27 3E E0 00 08 EC 3F 82 D0 0A C2 2C 00 18 C8
+2A C9 AC C2 5E CB C6 C5 78 D0 5A D0 AE D4 0A 4E
+3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E
+2A 92 EA 2E 8A 10 5A 06 A8 3E 0C D4 08 52 52 43
+4D 00 85 12 98 D4 50 00 DC D4 08 52 52 41 4D 00
+85 12 98 D4 50 01 EA D4 08 52 4C 41 4D 00 85 12
+98 D4 50 02 F8 D4 08 52 52 55 4D 00 85 12 98 D4
+50 03 0A D3 0A 50 55 53 48 4D 85 12 98 D4 00 15
+14 D5 08 50 4F 50 4D 00 85 12 98 D4 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+D0 C4 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 06 C4
+q
diff --git a/binaries/MSP_EXP430FR5739_16MHz_4MBds.txt b/binaries/MSP_EXP430FR5739_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..e2973c2
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A1 59
+D0 C4 7E C3 84 C3 54 C3 40 C5 2E D5 E6 CD A0 CD
+A0 CD B6 C4 74 C5 3C C5 3C 1D E0 1C 94 C7 B6 C2
+C4 C2 B0 C6 20 00 0A 00 00 1C 7E C3 84 C3 54 C3
+40 C5 2E D5 E6 CD A0 CD A0 CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C200
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 03 3D 0E 93 3E 4F
+98 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B4 C4 B2 49
+72 C5 B2 49 3A C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 5A CE 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 40 C5 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 C2 BA C6 AC C2 52 C3 82 C5 1E C2 04 1B
+5B 37 6D 00 A4 C5 A4 C5 1E C2 04 1B 5B 30 6D 00
+A4 C5 F0 CA B0 12 7E C3 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 82 C5 1E C2
+07 0D 0A 1B 5B 37 6D 23 A4 C5 08 C8 1E C2 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A4 C5 0A C2 40 FF 32 C2
+D0 C6 D4 C7 1E C2 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C2 46 C3 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C3 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+92 D3 30 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 B2 40 33 00 64 01 D2 43 61 01
+39 40 40 00 18 42 00 18 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
+19 42 9E 01 1E 42 08 18 82 43 08 18 3E F3 01 20
+0E 49 B0 12 D0 C2 86 C3 00 00 0C 41 43 43 45 50
+54 00 30 40 B6 C4 08 4E 2E 4F 08 5E 39 40 0D 00
+3A 40 20 00 3B 40 14 C5 3C 40 20 C5 5D 15 98 3E
+21 52 3A 17 58 42 CC 05 48 9B 09 20 A2 B3 DC 05
+FD 27 B2 40 13 00 CE 05 E2 D2 03 02 30 41 48 9C
+06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A
+03 2C CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 C2 48
+CE 05 30 4D 16 C5 2D 83 92 B3 DC 05 DB 23 FC 3F
+3E 8F 3D 41 92 B3 DC 05 FD 27 58 42 CC 05 08 4C
+EB 3F 00 00 06 4B 45 59 30 40 3C C5 30 12 52 C5
+A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C2 03 02
+30 41 2F 83 8F 4E 00 00 92 B3 DC 05 FD 27 B0 12
+DC C4 1E 42 CC 05 30 4D 00 00 08 45 4D 49 54 00
+30 40 74 C5 08 4E 3E 4F C7 3F 6A C5 08 45 43 48
+4F 00 B2 40 C2 48 0E C5 30 4D 00 00 0C 4E 4F 45
+43 48 4F 00 B2 40 30 4D 0E C5 30 4D 00 00 08 54
+59 50 45 00 0D 12 3D 40 B4 C5 29 4F 8F 4E 00 00
+7E 49 DE 3F B6 C5 2D 83 2F 83 5E 83 F7 23 3D 41
+2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F
+39 4F 3E 4F 6E 22 F9 98 00 00 6B 22 19 53 1C 83
+FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 62 22 9B 24
+34 C5 0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C2
+00 00 D4 C6 C6 C5 18 C8 D2 CA B0 C2 42 C6 14 C2
+06 5B 54 48 45 4E 5D 00 CA C5 20 C6 E6 C5 04 C6
+14 C2 06 5B 45 4C 53 45 5D 00 CA C5 32 C6 E6 C5
+02 C6 1E C2 04 5B 49 46 5D 00 CA C5 04 C6 B2 C2
+02 C6 1E C2 05 0D 6B 6F 20 0A A4 C5 9A C2 84 C2
+B2 C2 04 C6 F2 C5 0D 5B 54 48 45 4E 5D 00 30 4D
+56 C6 09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
+62 C6 13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12
+C6 C5 18 C8 80 C8 24 CA 94 C7 72 C6 17 5B 55 4E
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C6 C5 18 C8
+80 C8 A4 C6 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12
+2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83
+30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F
+3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D
+AA C4 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E
+3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C3 05 53
+22 00 82 43 C0 1D 0D 12 84 12 0A C2 1E C2 82 CA
+0A C2 22 00 18 C8 18 C7 B2 40 20 00 C0 1D 1A 53
+1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D 8C C5 05 2E
+22 00 0D 12 84 12 02 C7 0A C2 A4 C5 82 CA 94 C7
+00 00 04 3C 23 00 B2 40 B2 1D B2 1D 30 4D FE C6
+02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12 46 C2 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 50 C7
+04 23 53 00 0D 12 84 12 52 C7 8C C7 2D 83 09 DE
+09 93 E1 23 3D 41 30 4D 80 C7 04 23 3E 00 9F 42
+B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48
+4F 4C 44 00 4A 4E 3E 4F DB 3F 9A C7 08 53 49 47
+4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 7C C5
+04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15
+3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
+84 12 46 C7 C6 C5 B4 C7 84 C7 B0 C6 C2 C7 9E C7
+A4 C5 94 C7 2E C7 02 2E 0E 93 E4 37 3C 43 E3 3F
+00 00 08 57 4F 52 44 00 3C 40 C2 1D 39 4C 38 4C
+09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83
+1B 42 C0 1D F8 90 27 00 00 00 04 20 E8 98 02 00
+01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C
+09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F
+4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D
+0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00
+2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C
+01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF
+0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C
+FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
+0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D
+06 C8 0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F
+38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00
+03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3
+0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82
+8F 4E 06 00 08 43 09 43 1B 42 BE 1D 0C 4E 0E 43
+1E 15 3D 40 8A C9 7E 4C 6A 4C 7A 80 2D 00 16 24
+CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40
+10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20
+FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00
+1E 83 FC 9C 00 00 E0 23 AE 27 8C C9 2F 24 2D 83
+6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0
+00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43
+8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00
+03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C
+8F 49 00 00 0E 4B 2C 15 B0 12 3E C2 2A 17 E8 3F
+9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 42 C7 03 5C 92 42 C2 1D
+C6 1D 30 4D 0D 12 84 12 84 C2 C6 C5 18 C8 B0 C2
+5C CB 80 C8 46 CA 0A 4E 3E 4F 3D 40 60 CA 6D 27
+3D 40 3A CA 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41
+62 CA 3E 4F 3D 40 3A CA 19 20 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 38 CC 2A 3C 2A CA
+02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F
+30 4D 80 CA 0F 4C 49 54 45 52 41 4C 82 93 BC 1D
+0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A C2
+00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
+03 24 8A 4E 02 00 EE 3F 30 4D BC C7 0A 43 4F 55
+4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D
+E2 C6 0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D
+3F 40 80 1C 0E 43 84 12 1E C2 02 0D 0A 00 A4 C5
+94 C2 34 CA C2 C6 EC C6 1E C2 0B 73 74 61 63 6B
+20 65 6D 70 74 79 08 C3 32 C2 0A C2 40 FF F4 C6
+1E C2 09 46 52 41 4D 20 66 75 6C 6C 08 C3 B2 C2
+F8 CA E2 CA 0D 41 42 4F 52 54 22 00 0D 12 84 12
+02 C7 0A C2 08 C3 82 CA 94 C7 12 C8 02 27 0D 12
+84 12 C6 C5 18 C8 80 C8 B0 C2 5E CB 26 C7 6A CA
+8C C6 07 5B 27 5D 0D 12 84 12 4E CB 0A C2 0A C2
+82 CA 82 CA 94 C7 62 CB 03 5B 82 43 BC 1D 30 4D
+00 00 02 5D B2 43 BC 1D 30 4D DA C6 11 50 4F 53
+54 50 4F 4E 45 00 0D 12 84 12 C6 C5 18 C8 80 C8
+B0 C2 5E CB EC C6 AC C2 B6 CB 0A C2 0A C2 82 CA
+82 CA 0A C2 82 CA 82 CA 94 C7 00 00 02 3A 30 12
+0C CC 92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 C6 C5
+18 C8 D4 CB 3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D
+08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F
+E8 58 00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D
+82 4F BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12
+FC FF BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F
+BA 1D 66 25 84 12 1E C2 0F 73 74 61 63 6B 20 6D
+69 73 6D 61 74 63 68 21 12 C3 78 CB 03 3B 82 93
+BC 1D F4 26 0D 12 84 12 0A C2 94 C7 82 CA 1E CC
+7A CB 94 C7 00 00 12 49 4D 4D 45 44 49 41 54 45
+18 42 B4 1D D8 D3 00 00 30 4D CC CA 0C 43 52 45
+41 54 45 00 B0 12 C2 CB BA 40 86 12 FC FF 8A 4A
+FE FF 3A 3D 9E C5 0A 44 4F 45 53 3E 1A 42 B8 1D
+BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D BC CB
+0E 3A 4E 4F 4E 41 4D 45 30 12 0C CC 2F 83 8F 4E
+00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02
+08 49 98 3F 56 CC 05 49 53 00 0D 12 82 93 BC 1D
+08 20 84 12 4E CB D8 CC 3D 41 BE 4F 02 00 3E 4F
+30 4D 84 12 66 CB 0A C2 DA CC 82 CA 94 C7 6C CC
+08 43 4F 44 45 00 B0 12 C2 CB A2 82 C8 1D 61 3C
+AE C7 0E 48 44 4E 43 4F 44 45 B2 40 C6 CD CC 1D
+F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12
+1E CC 24 CD 3D 41 92 42 D0 1D CC 1D 5D 3C F0 CC
+0E 43 4F 44 45 4E 4E 4D 30 12 FA CC B7 3F 00 00
+0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12 00 00
+BA 40 84 12 02 00 A2 52 C8 1D B2 43 BC 1D E3 3F
+00 00 0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D
+EF 3F 02 CD 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42
+C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F 8E CD B2 40
+A0 CD D0 1D 82 4E CE 1D 30 40 26 C7 85 12 8C CD
+8C CB 34 CB 1E CE 30 CD 86 CC D0 C7 7A C8 4C CB
+74 CD C6 CC A0 CC 3C CC 94 CA A8 CE D2 C8 00 00
+00 00 85 12 8C CD 22 D5 A6 D3 06 D5 CE D2 2A D3
+78 D3 54 D4 60 D4 F0 D1 14 D3 00 00 00 00 62 CD
+E0 D0 00 00 7C D4 C0 CD B2 40 A0 CD CE 1D 82 43
+D0 1D 30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83
+FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54 39 40
+C8 1D 3A 40 42 18 B0 12 F4 CD 30 4D 06 CE 0E 52
+53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 1D
+B0 12 F4 CD 1A 42 CA 1D 3B 40 10 00 09 4A 08 49
+29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83
+F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40
+10 00 29 83 B9 43 80 FF FC 23 B9 40 06 C4 FE FF
+29 83 B9 40 F2 C3 FE FF 39 90 AE FF F9 23 39 40
+10 18 B2 49 F0 FF 3B 40 10 00 3A 40 3A 18 B0 12
+F8 CD 82 43 4A 18 C7 3F 9A CE B2 4E 42 18 BE 12
+3E 4F 3D 41 C0 3F 82 CB 0C 4D 41 52 4B 45 52 00
+12 12 C6 1D 0D 12 84 12 C6 C5 18 C8 80 C8 AC C2
+C6 CE BA C6 5A CA C8 CE 3E 4F 3D 41 B2 41 C6 1D
+B0 12 C2 CB BA 40 85 12 FC FF BA 40 98 CE FE FF
+28 83 8A 48 00 00 BA 40 82 C2 02 00 A2 52 C8 1D
+18 42 B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00
+30 4D 12 12 C6 1D 84 12 18 C8 80 C8 AC C2 32 CF
+12 CF 3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E
+06 3C BE 90 98 CE 00 00 01 20 3E 52 2E 83 21 53
+30 41 2A C9 AC C2 3A CF 2E CF 3C CF B2 41 C6 1D
+30 41 92 83 C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12
+02 CF 15 20 3E 40 2B 00 B0 12 02 CF 06 20 3E 40
+2D 00 B0 12 02 CF 92 83 C6 1D 0E 12 1E 41 02 00
+84 12 18 C8 2A C9 AC C2 5E CB 7C CF 3E 51 3A 17
+30 41 B0 12 42 CF 19 42 C8 1D 89 4E 00 00 A2 53
+C8 1D 3E 40 29 00 92 53 C6 1D 1A 42 C6 1D 3D 15
+84 12 18 C8 2A C9 AC C2 B4 CF AC CF 3E 90 10 00
+E6 2B 7C 2D B6 CF A2 41 C6 1D E1 3F 03 20 B0 12
+9A CF 43 3C 7A 90 23 00 24 20 B0 12 4A CF 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 C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F
+30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12 4A CF
+F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12 96 CF
+0C 20 3C D0 10 00 3E 40 2B 00 B0 12 9A CF 92 92
+C2 1D C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E DF 3F
+3C D0 10 00 B0 12 82 CF F2 3F 03 20 B0 12 9A CF
+F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0
+80 00 B0 12 82 CF EA 3F 0C 43 1B 42 C8 1D A2 53
+C8 1D 3A 40 20 00 19 42 C6 1D 19 52 C4 1D 7A 99
+FE 27 5A 49 FF FF 19 82 C4 1D 82 49 C6 1D 7A 90
+52 00 30 4D 00 00 08 52 45 54 49 00 0D 12 84 12
+0A C2 00 13 82 CA 94 C7 0A C2 2C 00 78 D0 BC CF
+C6 C5 82 D0 5A D0 C8 D0 3D 41 2C DE 8B 4C 00 00
+9E 3F 00 00 06 4D 4F 56 85 12 B8 D0 00 40 D4 D0
+0A 4D 4F 56 2E 42 85 12 B8 D0 40 40 00 00 06 41
+44 44 85 12 B8 D0 00 50 EE D0 0A 41 44 44 2E 42
+85 12 B8 D0 40 50 FA D0 08 41 44 44 43 00 85 12
+B8 D0 00 60 08 D1 0C 41 44 44 43 2E 42 00 85 12
+B8 D0 40 60 40 CD 08 53 55 42 43 00 85 12 B8 D0
+00 70 26 D1 0C 53 55 42 43 2E 42 00 85 12 B8 D0
+40 70 34 D1 06 53 55 42 85 12 B8 D0 00 80 44 D1
+0A 53 55 42 2E 42 85 12 B8 D0 40 80 50 D1 06 43
+4D 50 85 12 B8 D0 00 90 5E D1 0A 43 4D 50 2E 42
+85 12 B8 D0 40 90 00 00 08 44 41 44 44 00 85 12
+B8 D0 00 A0 78 D1 0C 44 41 44 44 2E 42 00 85 12
+B8 D0 40 A0 A6 D0 06 42 49 54 85 12 B8 D0 00 B0
+96 D1 0A 42 49 54 2E 42 85 12 B8 D0 40 B0 A2 D1
+06 42 49 43 85 12 B8 D0 00 C0 B0 D1 0A 42 49 43
+2E 42 85 12 B8 D0 40 C0 BC D1 06 42 49 53 85 12
+B8 D0 00 D0 CA D1 0A 42 49 53 2E 42 85 12 B8 D0
+40 D0 00 00 06 58 4F 52 85 12 B8 D0 00 E0 E4 D1
+0A 58 4F 52 2E 42 85 12 B8 D0 40 E0 16 D1 06 41
+4E 44 85 12 B8 D0 00 F0 FE D1 0A 41 4E 44 2E 42
+85 12 B8 D0 40 F0 C6 C5 78 D0 BC CF 1E D2 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F D6 D1
+06 52 52 43 85 12 16 D2 00 10 30 D2 0A 52 52 43
+2E 42 85 12 16 D2 40 10 6A D1 08 53 57 50 42 00
+85 12 16 D2 80 10 3C D2 06 52 52 41 85 12 16 D2
+00 11 58 D2 0A 52 52 41 2E 42 85 12 16 D2 40 11
+4A D2 06 53 58 54 85 12 16 D2 80 11 00 00 08 50
+55 53 48 00 85 12 16 D2 00 12 7E D2 0C 50 55 53
+48 2E 42 00 85 12 16 D2 40 12 72 D2 08 43 41 4C
+4C 00 85 12 16 D2 80 12 1A 53 0E 4A 84 12 08 C8
+1E C2 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+12 C3 9C D2 06 53 3E 3D 86 12 00 38 C4 D2 04 53
+3C 00 86 12 00 34 8C D2 06 30 3E 3D 86 12 00 30
+D8 D2 04 30 3C 00 86 12 00 30 14 CD 04 55 3C 00
+86 12 00 2C EC D2 06 55 3E 3D 86 12 00 28 E2 D2
+06 30 3C 3E 86 12 00 24 00 D3 04 30 3D 00 86 12
+00 20 00 00 04 49 46 00 1A 42 C8 1D 8A 4E 00 00
+A2 53 C8 1D 0E 4A 30 4D 86 D1 08 54 48 45 4E 00
+1A 42 C8 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
+3A 90 00 02 B2 2F 88 DA 00 00 30 4D F6 D2 08 45
+4C 53 45 00 1A 42 C8 1D BA 40 00 3C 00 00 A2 53
+C8 1D 2F 83 8F 4A 00 00 E3 3F 64 D2 0A 42 45 47
+49 4E 30 40 32 C2 4E D3 0A 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11 3A 90
+00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C8 1D 30 4D 0A D2 0A 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12
+18 D3 AE C6 94 C7 6C D3 0C 52 45 50 45 41 54 00
+0D 12 84 12 AC D3 30 D3 94 C7 DC D3 3D 41 08 4E
+3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D 00 00
+30 4D C8 D3 06 42 57 31 85 12 DA D3 00 00 F4 D3
+06 42 57 32 85 12 DA D3 00 00 00 D4 06 42 57 33
+85 12 DA D3 00 00 18 D4 3D 41 1A 42 C8 1D 28 4E
+8E 43 00 00 B2 92 C6 1D 86 2B BA 4F 00 00 A2 53
+C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31
+85 12 16 D4 00 00 3C D4 06 46 57 32 85 12 16 D4
+00 00 48 D4 06 46 57 33 85 12 16 D4 00 00 B6 D3
+08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
+0D 12 84 12 4E CB 5A CA 94 C7 00 00 0A 3F 47 4F
+54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
+EF 27 3E E0 00 08 EC 3F 82 D0 0A C2 2C 00 18 C8
+2A C9 AC C2 5E CB C6 C5 78 D0 5A D0 AE D4 0A 4E
+3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E
+2A 92 EA 2E 8A 10 5A 06 A8 3E 0C D4 08 52 52 43
+4D 00 85 12 98 D4 50 00 DC D4 08 52 52 41 4D 00
+85 12 98 D4 50 01 EA D4 08 52 4C 41 4D 00 85 12
+98 D4 50 02 F8 D4 08 52 52 55 4D 00 85 12 98 D4
+50 03 0A D3 0A 50 55 53 48 4D 85 12 98 D4 00 15
+14 D5 08 50 4F 50 4D 00 85 12 98 D4 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+D0 C4 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 06 C4
+q
index 5aa599c..cd30cc7 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF F0 D5 F0 CD 34 01
-10 00 41 87 B6 C3 AA C2 B8 C3 8C C3 82 C4 F0 D5
-F0 CD 70 C4 80 C5 FE C4 DA C4 3C 1D 4E C6 D4 C2
-E2 C2 EE C2 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+CA C4 56 C3 56 C3 58 C3 44 C3 0A D5 C2 CD 7C CD
+7C CD B8 C4 3C C5 14 C5 3C 1D E0 1C 70 C7 B6 C2
+C4 C2 8C C6 20 00 0A 00 00 1C 56 C3 56 C3 58 C3
+44 C3 0A D5 C2 CD 7C CD 7C CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C200
-B0 12 B8 C3 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C2
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C2 39 40 22 18
-B2 49 6E C4 B2 49 7E C5 B2 49 FC C4 B2 49 D8 C4
-B2 49 CA C2 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BC CE 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C3 0E 12 B0 12
-F8 C2 0A C2 DE 1D CE C5 16 C5 EE C2 34 C2 8A C3
-14 C2 05 1B 5B 37 6D 40 4A C5 0A C2 02 18 CE C5
-C4 C6 96 C5 34 C2 7E C3 14 C2 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C5 8E C6 4A C5
-14 C2 04 1B 5B 30 6D 00 4A C5 16 CA 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C3 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C3 04 57 41 52 4D 00 B0 12
-8C C3 78 40 03 00 B0 12 BA C3 84 12 14 C2 07 0D
-0A 1B 5B 37 6D 40 4A C5 0A C2 02 18 CE C5 C4 C6
-0A C2 23 00 FA C4 C4 C6 14 C2 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 4A C5 0A C2 40 FF 28 C2 C2 C5 8E C6
-14 C2 0A 62 79 74 65 73 20 66 72 65 65 00 3A C2
-7E C3 00 00 06 41 43 43 45 50 54 00 30 40 70 C4
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 B8 22
-3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C3 82 93 DE 1D 02 24 92 53 DE 1D 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C4 2F 83 8F 4E 00 00
-58 43 B0 12 BA C3 92 B3 6C 06 FD 27 1E 42 4C 06
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C4 08 4E
-3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D F4 C4
-04 45 43 48 4F 00 B2 40 C2 48 08 C5 82 43 DE 1D
-38 40 05 00 B0 12 BA C3 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C5 92 43 DE 1D 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C5 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C4 68 C5 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C3 02 43 52 00 30 40 80 C5
-0D 12 84 12 14 C2 02 0D 0A 00 4A C5 4E C6 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C4 01 40 2E 4E
-30 4D CC C5 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D 78 C5 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E C2 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 08 C6 02 23 53 00 0D 12 84 12
-0A C6 44 C6 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C6 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C5 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C5
-3C C6 EE C2 7C C6 58 C6 4A C5 02 CA FA C4 4E C6
-2C C5 01 2E 0E 93 E3 37 38 43 E2 3F 76 C6 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A C2 14 C2 48 C9
-0A C2 22 00 1A C7 E8 C6 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D C2 C6
-82 2E 22 00 0D 12 84 12 D2 C6 0A C2 4A C5 48 C9
-4E C6 F8 C3 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C2 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C2 35 40 D4 C2 30 4D
-00 00 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 9C C8 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E C8 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 C2 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 93 2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 04 3D 0E 93 3E 4F
+86 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B6 C4 B2 49
+3A C5 B2 49 12 C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 36 CE 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C3 B0 12 D0 C2 96 C6 AC C2
+42 C3 54 C5 1E C2 05 1B 5B 37 6D 40 80 C5 0A C2
+02 18 B8 C6 E4 C7 80 C5 1E C2 04 1B 5B 30 6D 00
+80 C5 CC CA 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 54 C5 1E C2 07 0D 0A 1B 5B 37
+6D 40 80 C5 0A C2 02 18 B8 C6 E4 C7 0A C2 23 00
+38 C5 E4 C7 1E C2 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+80 C5 0A C2 40 FF 32 C2 AC C6 B0 C7 1E C2 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C2 36 C3 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C3 01 12 6D 3F 82 4E 08 18 92 12 3A 18 D2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01
+31 40 E0 1C 3F 40 80 1C 92 D3 30 01 B2 43 06 02
+B2 40 EF 7F 02 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 B2 40 33 00 64 01
+D2 43 61 01 39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18 3E F3 02 20
+1E 42 9E 01 B0 12 D0 C2 80 C3 00 00 0C 41 43 43
+45 50 54 00 30 40 B8 C4 0A 4E 2E 4F 0A 5E 3B 40
+0A 00 3C 40 20 00 3D 15 9B 3E 21 52 A2 C2 6C 06
+B2 B0 10 00 40 06 94 22 3A 17 92 B3 6C 06 FD 27
+58 42 4C 06 48 9B 0E 24 48 9C 06 2C 78 92 F5 23
+2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48 00 00
+1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00 06 4B 45 59
+30 40 14 C5 58 43 B0 12 46 C3 2F 83 8F 4E 00 00
+92 B3 6C 06 FD 27 1E 42 4C 06 B0 12 44 C3 30 4D
+00 00 08 45 4D 49 54 00 30 40 3C C5 08 4E 3E 4F
+A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D 32 C5 08 45
+43 48 4F 00 B2 40 C2 48 46 C5 38 40 05 00 B0 12
+46 C3 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D 46 C5 28 42 F3 3F 00 00 08 54 59 50 45 00
+0D 12 3D 40 90 C5 29 4F 8F 4E 00 00 7E 49 D4 3F
+92 C5 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+80 22 F9 98 00 00 7D 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 74 22 9B 24 0C C5 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A C2 00 00 B0 C6
+A2 C5 F4 C7 AE CA B0 C2 1E C6 14 C2 06 5B 54 48
+45 4E 5D 00 A6 C5 FC C5 C2 C5 E0 C5 14 C2 06 5B
+45 4C 53 45 5D 00 A6 C5 0E C6 C2 C5 DE C5 1E C2
+04 5B 49 46 5D 00 A6 C5 E0 C5 B2 C2 DE C5 1E C2
+05 0D 6B 6F 20 0A 80 C5 9A C2 84 C2 B2 C2 E0 C5
+CE C5 0D 5B 54 48 45 4E 5D 00 30 4D 32 C6 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 3E C6 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 A2 C5 F4 C7
+5C C8 00 CA 70 C7 4E C6 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 A2 C5 F4 C7 5C C8 80 C6
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D AC C4 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D E0 C3 05 53 22 00 82 43
+C0 1D 0D 12 84 12 0A C2 1E C2 5E CA 0A C2 22 00
+F4 C7 F4 C6 B2 40 20 00 C0 1D 1A 53 1A B3 82 6A
+C8 1D 3E 4F 3D 41 30 4D 66 C5 05 2E 22 00 0D 12
+84 12 DE C6 0A C2 80 C5 5E CA 70 C7 00 00 04 3C
+23 00 B2 40 B2 1D B2 1D 30 4D DA C6 02 23 1B 42
+BE 1D 2C 4F 2F 83 B0 12 46 C2 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 2C C7 04 23 53 00
+0D 12 84 12 2E C7 68 C7 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 5C C7 04 23 3E 00 9F 42 B2 1D 00 00
+3E 40 B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 76 C7 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 4E C5 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 22 C7
+A2 C5 90 C7 60 C7 8C C6 9E C7 7A C7 80 C5 70 C7
+0A C7 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 1D 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 1D
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D E2 C7 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40
+66 C9 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 68 C9 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E C2 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D 46 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 C6 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 C6 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC C2 02 CA 1A C7 BE C9 9C 26
-3D 40 C6 C9 DE 3E C8 C9 0A 4E 3E 4F 3D 40 E2 C9
-36 27 3D 40 B8 C9 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 E4 C9 3E 4F 3D 40 B8 C9 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 CB CC 3F
-EC C9 86 12 20 00 D4 C5 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7C C5 BC C2
-B2 C9 B2 C5 E4 C5 14 C2 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A C3 0A C2 40 FF 28 C2 EC C5
-14 C2 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A C3
-3A C2 2C CA 08 CA 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 C6 0A C2 2A C3 48 C9 4E C6 7C C7 01 27
-0D 12 84 12 02 CA 1A C7 82 C7 34 C2 00 CA 4E C6
-00 00 83 5B 27 5D 0D 12 84 12 80 CA 0A C2 0A C2
-48 C9 48 C9 4E C6 92 CA 81 5B 82 43 BE 1D 30 4D
-FA C5 01 5D B2 43 BE 1D 30 4D B2 CA 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 CA 1A C7 82 C7 96 C5 34 C2
-00 CA E4 C5 34 C2 F4 CA 0A C2 0A C2 48 C9 48 C9
-0A C2 48 C9 48 C9 4E C6 A8 CA 01 3A 30 12 44 CB
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 02 CA 1A C7
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 C2 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 C3 FA CA 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A C2 4E C6 48 C9 56 CB AA CA 4E C6
-A8 C9 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D 92 C9 06 43 52 45 41 54
-45 00 B0 12 00 CB BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA CB 04 43 4F 44 45 00 B0 12 00 CB A2 82
-C6 1D 0D 12 84 12 F2 CD CC CD 4E C6 A2 CB 07 48
-44 4E 43 4F 44 45 B2 40 D0 CD DA 1D EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 CB 0C CE
-2A CE 4E C6 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 0C CE 2A CE 4E C6 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-EE CB 85 48 49 32 4C 4F 0D 12 84 12 28 C2 9A CD
-48 C9 AA CA E2 CB 4E C6 88 CB 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A CC 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A C2 00 00 C6 C5 02 CA 1A C7 98 C9
-8E C5 34 C2 02 CD 9C C5 14 C2 06 5B 54 48 45 4E
-5D 00 74 CC DC CC 98 CC BA CC 4E C6 9C C5 14 C2
-06 5B 45 4C 53 45 5D 00 74 CC F2 CC 98 CC B8 CC
-4E C6 14 C2 04 5B 49 46 5D 00 74 CC BA CC 3A C2
-B8 CC 70 C5 14 C2 05 0D 0A 6B 6F 20 4A C5 BC C2
-AC C2 3A C2 BA CC A8 CC 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 CD 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 CA 1A C7 82 C7
-26 CD 4E C6 2C CD 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 CD DE C5 4E C6 5E CD B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A C9 06 4D
-41 52 4B 45 52 00 B0 12 00 CB BA 40 85 12 FC FF
-BA 40 5C CD FE FF 28 83 8A 48 00 00 BA 40 AA C2
-04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D 0A C2
-CA 1D D6 C5 4E C6 85 12 9E CD 66 CA D4 CB 10 C5
-7E CA 52 CC D2 C4 6E CD 00 C7 96 CE AA CE 8A C6
-14 C7 00 00 46 CD BC CA E2 C7 00 00 85 12 9E CD
-66 D4 CC D4 0E D4 1C D5 D4 D3 00 00 A0 D1 00 00
-E4 D5 C8 D5 38 D4 76 D4 B0 D2 00 00 00 00 38 D5
-CA CD 3A 40 0C 00 39 40 D6 1D 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D
-30 4D A6 CD 24 CE 2A CE 3A CE 1A 42 20 18 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 C8 CA
-09 50 57 52 5F 53 54 41 54 45 85 12 32 CE F0 D5
-CE C6 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E CE F3 3F 70 CE 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 7E CE 30 4D 82 CE 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 CF FE FF 29 83 B9 40
-E2 C3 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 C3 B2 49 FA C2 B2 49 02 C2 B2 49 00 C4 B2 49
-EE FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 04 29 83 89 43 00 1C FC 23 92 D3
-30 01 B2 43 06 02 B2 40 EF 7F 02 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
-B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
-00 18 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 1E 42
-08 18 82 43 08 18 1E D2 9E 01 B0 12 F8 C2 FE C3
-38 40 C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D
-09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A
-C4 1D 30 4D 1C 15 0E 12 12 12 C4 1D 84 12 1A C7
-82 C7 DE C5 34 C2 E0 CF 3E C8 34 C2 FA CF F4 CF
-E2 CF 3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E
-01 3C 2E 83 21 52 1B 17 30 41 FC CF B2 41 C4 1D
-3E 41 84 12 0A C2 2B 00 1A C7 82 C7 DE C5 34 C2
-18 D0 3E C8 34 C2 00 CA A8 C5 1A C7 3E C8 34 C2
-00 CA 24 D0 3E 5F E7 3F 3E 40 28 00 B0 12 C4 CF
-19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00
-92 92 C0 1D C4 1D 02 20 30 40 6E CB 1C 15 12 12
-C4 1D 92 53 C4 1D 84 12 1A C7 3E C8 34 C2 6C D0
-62 D0 21 53 3E 90 10 00 C6 2B 7F 2D 6E D0 B2 41
-C4 1D C1 3F 0D 12 84 12 02 CA A0 CF 7E D0 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 C4 CF 3C 40 00 03 0E 93
+2F 53 30 4D 1E C7 03 5C 92 42 C2 1D C6 1D 30 4D
+0D 12 84 12 84 C2 A2 C5 F4 C7 B0 C2 38 CB 5C C8
+22 CA 0A 4E 3E 4F 3D 40 3C CA 6D 27 3D 40 16 CA
+1A E2 BC 1D 14 24 0E 12 3E 4F 30 41 3E CA 3E 4F
+3D 40 16 CA 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 14 CC 2A 3C 06 CA 02 2C A2 53
+C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D 5C CA
+0F 4C 49 54 45 52 41 4C 82 93 BC 1D 0D 24 09 4E
+1A 42 C8 1D A2 52 C8 1D BA 40 0A C2 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D 98 C7 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D BE C6 0A 41
+4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C
+0E 43 84 12 1E C2 02 0D 0A 00 80 C5 94 C2 10 CA
+9E C6 C8 C6 1E C2 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 C3 32 C2 0A C2 40 FF D0 C6 1E C2 09 46
+52 41 4D 20 66 75 6C 6C 08 C3 B2 C2 D4 CA BE CA
+0D 41 42 4F 52 54 22 00 0D 12 84 12 DE C6 0A C2
+08 C3 5E CA 70 C7 EE C7 02 27 0D 12 84 12 A2 C5
+F4 C7 5C C8 B0 C2 3A CB 02 C7 46 CA 68 C6 07 5B
+27 5D 0D 12 84 12 2A CB 0A C2 0A C2 5E CA 5E CA
+70 C7 3E CB 03 5B 82 43 BC 1D 30 4D 00 00 02 5D
+B2 43 BC 1D 30 4D B6 C6 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 A2 C5 F4 C7 5C C8 B0 C2 3A CB
+C8 C6 AC C2 92 CB 0A C2 0A C2 5E CA 5E CA 0A C2
+5E CA 5E CA 70 C7 00 00 02 3A 30 12 E8 CB 92 B3
+C8 1D A2 63 C8 1D 0D 12 84 12 A2 C5 F4 C7 B0 CB
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F BA 1D
+2A 52 82 4A C8 1D 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 1D 30 4D 82 9F BA 1D 66 25
+84 12 1E C2 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 C3 54 CB 03 3B 82 93 BC 1D F4 26
+0D 12 84 12 0A C2 70 C7 5E CA FA CB 56 CB 70 C7
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 1D
+D8 D3 00 00 30 4D A8 CA 0C 43 52 45 41 54 45 00
+B0 12 9E CB BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+7A C5 0A 44 4F 45 53 3E 1A 42 B8 1D BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D 98 CB 0E 3A 4E 4F
+4E 41 4D 45 30 12 E8 CB 2F 83 8F 4E 00 00 1A 42
+C8 1D 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+32 CC 05 49 53 00 0D 12 82 93 BC 1D 08 20 84 12
+2A CB B4 CC 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+42 CB 0A C2 B6 CC 5E CA 70 C7 48 CC 08 43 4F 44
+45 00 B0 12 9E CB A2 82 C8 1D 61 3C 8A C7 0E 48
+44 4E 43 4F 44 45 B2 40 A2 CD CC 1D F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 FA CB 00 CD
+3D 41 92 42 D0 1D CC 1D 5D 3C CC CC 0E 43 4F 44
+45 4E 4E 4D 30 12 D6 CC B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F DE CC
+0B 48 49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A
+FE FF 82 43 BC 1D B9 3F 6A CD B2 40 7C CD D0 1D
+82 4E CE 1D 30 40 02 C7 85 12 68 CD 68 CB 10 CB
+FA CD 0C CD 62 CC AC C7 56 C8 28 CB 50 CD A2 CC
+7C CC 18 CC 70 CA 84 CE AE C8 00 00 00 00 85 12
+68 CD FE D4 82 D3 E2 D4 AA D2 06 D3 54 D3 30 D4
+3C D4 CC D1 F0 D2 00 00 00 00 3E CD BC D0 00 00
+58 D4 9C CD B2 40 7C CD CE 1D 82 43 D0 1D 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40
+42 18 B0 12 D0 CD 30 4D E2 CD 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 1D B0 12 D0 CD
+1A 42 CA 1D 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 0E C4 FE FF 29 83 B9 40
+FA C3 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+EE FF 3B 40 10 00 3A 40 3A 18 B0 12 D4 CD 82 43
+4A 18 C7 3F 76 CE B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 5E CB 0C 4D 41 52 4B 45 52 00 12 12 C6 1D
+0D 12 84 12 A2 C5 F4 C7 5C C8 AC C2 A2 CE 96 C6
+36 CA A4 CE 3E 4F 3D 41 B2 41 C6 1D B0 12 9E CB
+BA 40 85 12 FC FF BA 40 74 CE FE FF 28 83 8A 48
+00 00 BA 40 82 C2 02 00 A2 52 C8 1D 18 42 B4 1D
+19 42 B6 1D A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 1D 84 12 F4 C7 5C C8 AC C2 0E CF EE CE 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+74 CE 00 00 01 20 3E 52 2E 83 21 53 30 41 06 C9
+AC C2 16 CF 0A CF 18 CF B2 41 C6 1D 30 41 92 83
+C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12 DE CE 15 20
+3E 40 2B 00 B0 12 DE CE 06 20 3E 40 2D 00 B0 12
+DE CE 92 83 C6 1D 0E 12 1E 41 02 00 84 12 F4 C7
+06 C9 AC C2 3A CB 58 CF 3E 51 3A 17 30 41 B0 12
+1E CF 19 42 C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40
+29 00 92 53 C6 1D 1A 42 C6 1D 3D 15 84 12 F4 C7
+06 C9 AC C2 90 CF 88 CF 3E 90 10 00 E6 2B 7C 2D
+92 CF A2 41 C6 1D E1 3F 03 20 B0 12 76 CF 43 3C
+7A 90 23 00 24 20 B0 12 26 CF 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
-C4 CF ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53
-C4 1D B0 12 4C D0 0C 20 3C 50 10 00 3E 40 2B 00
-B0 12 4C D0 92 92 C0 1D C4 1D 02 24 92 53 C4 1D
-8E 10 0C 5E DA 3F B0 12 4C D0 FA 23 3C 50 10 00
-B0 12 28 D0 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D
-0D 12 84 12 02 CA A0 CF 4A D1 FE 90 26 00 00 00
-3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12 4C D0
-E0 23 3C 50 80 00 B0 12 28 D0 DB 3F 00 00 04 52
-45 54 49 00 0D 12 84 12 0A C2 00 13 48 C9 4E C6
-0A C2 2C 00 74 D0 40 D1 8A D1 09 4B 2E 4E 0E DC
-A2 3F 40 CC 03 4D 4F 56 85 12 80 D1 00 40 94 D1
-05 4D 4F 56 2E 42 85 12 80 D1 40 40 00 00 03 41
-44 44 85 12 80 D1 00 50 AE D1 05 41 44 44 2E 42
-85 12 80 D1 40 50 BA D1 04 41 44 44 43 00 85 12
-80 D1 00 60 C8 D1 06 41 44 44 43 2E 42 00 85 12
-80 D1 40 60 6E D1 04 53 55 42 43 00 85 12 80 D1
-00 70 E6 D1 06 53 55 42 43 2E 42 00 85 12 80 D1
-40 70 F4 D1 03 53 55 42 85 12 80 D1 00 80 04 D2
-05 53 55 42 2E 42 85 12 80 D1 40 80 16 CC 03 43
-4D 50 85 12 80 D1 00 90 1E D2 05 43 4D 50 2E 42
-85 12 80 D1 40 90 00 CC 04 44 41 44 44 00 85 12
-80 D1 00 A0 38 D2 06 44 41 44 44 2E 42 00 85 12
-80 D1 40 A0 2A D2 03 42 49 54 85 12 80 D1 00 B0
-56 D2 05 42 49 54 2E 42 85 12 80 D1 40 B0 62 D2
-03 42 49 43 85 12 80 D1 00 C0 70 D2 05 42 49 43
-2E 42 85 12 80 D1 40 C0 7C D2 03 42 49 53 85 12
-80 D1 00 D0 8A D2 05 42 49 53 2E 42 85 12 80 D1
-40 D0 00 00 03 58 4F 52 85 12 80 D1 00 E0 A4 D2
-05 58 4F 52 2E 42 85 12 80 D1 40 E0 D6 D1 03 41
-4E 44 85 12 80 D1 00 F0 BE D2 05 41 4E 44 2E 42
-85 12 80 D1 40 F0 02 CA 74 D0 DC D2 0A 4C 3C F0
-70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 10 D2 03 52
-52 43 85 12 D6 D2 00 10 EE D2 05 52 52 43 2E 42
-85 12 D6 D2 40 10 FA D2 04 53 57 50 42 00 85 12
-D6 D2 80 10 08 D3 03 52 52 41 85 12 D6 D2 00 11
-16 D3 05 52 52 41 2E 42 85 12 D6 D2 40 11 22 D3
-03 53 58 54 85 12 D6 D2 80 11 00 00 04 50 55 53
-48 00 85 12 D6 D2 00 12 3C D3 06 50 55 53 48 2E
-42 00 85 12 D6 D2 40 12 96 D2 04 43 41 4C 4C 00
-85 12 D6 D2 80 12 1A 53 0E 4A 0D 12 84 12 C4 C6
-14 C2 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-36 C3 30 D3 03 53 3E 3D 86 12 00 38 84 D3 02 53
-3C 00 86 12 00 34 4A D3 03 30 3E 3D 86 12 00 30
-98 D3 02 30 3C 00 86 12 00 30 00 00 02 55 3C 00
-86 12 00 2C AC D3 03 55 3E 3D 86 12 00 28 A2 D3
-03 30 3C 3E 86 12 00 24 C0 D3 02 30 3D 00 86 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 B6 D3 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 B1 2F 88 DA 00 00 30 4D 46 D2 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 D3 05 42 45 47
-49 4E 30 40 28 C2 EA D3 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
-C6 1D 30 4D CA D2 05 41 47 41 49 4E 0A 4E 38 40
-00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12
-D8 D3 A8 C5 4E C6 8E D3 06 52 45 50 45 41 54 00
-0D 12 84 12 6C D4 F0 D3 4E C6 9C D4 3D 41 08 4E
-3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D 00 00
-30 4D 2C D4 03 42 57 31 85 12 9A D4 00 00 B4 D4
-03 42 57 32 85 12 9A D4 00 00 C0 D4 03 42 57 33
-85 12 9A D4 00 00 D8 D4 3D 41 1A 42 C6 1D 28 4E
-B2 92 C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A
-00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12 D6 D4
-00 00 F8 D4 03 46 57 32 85 12 D6 D4 00 00 04 D5
-03 46 57 33 85 12 D6 D4 00 00 10 D5 04 47 4F 54
+C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 26 CF F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 72 CF 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 76 CF 92 92 C2 1D C6 1D
+02 24 92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 5E CF F2 3F 03 20 B0 12 76 CF F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+5E CF EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40
+20 00 19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49
+FF FF 19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A C2 00 13
+5E CA 70 C7 0A C2 2C 00 54 D0 98 CF A2 C5 5E D0
+36 D0 A4 D0 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 94 D0 00 40 B0 D0 0A 4D 4F 56
+2E 42 85 12 94 D0 40 40 00 00 06 41 44 44 85 12
+94 D0 00 50 CA D0 0A 41 44 44 2E 42 85 12 94 D0
+40 50 D6 D0 08 41 44 44 43 00 85 12 94 D0 00 60
+E4 D0 0C 41 44 44 43 2E 42 00 85 12 94 D0 40 60
+1C CD 08 53 55 42 43 00 85 12 94 D0 00 70 02 D1
+0C 53 55 42 43 2E 42 00 85 12 94 D0 40 70 10 D1
+06 53 55 42 85 12 94 D0 00 80 20 D1 0A 53 55 42
+2E 42 85 12 94 D0 40 80 2C D1 06 43 4D 50 85 12
+94 D0 00 90 3A D1 0A 43 4D 50 2E 42 85 12 94 D0
+40 90 00 00 08 44 41 44 44 00 85 12 94 D0 00 A0
+54 D1 0C 44 41 44 44 2E 42 00 85 12 94 D0 40 A0
+82 D0 06 42 49 54 85 12 94 D0 00 B0 72 D1 0A 42
+49 54 2E 42 85 12 94 D0 40 B0 7E D1 06 42 49 43
+85 12 94 D0 00 C0 8C D1 0A 42 49 43 2E 42 85 12
+94 D0 40 C0 98 D1 06 42 49 53 85 12 94 D0 00 D0
+A6 D1 0A 42 49 53 2E 42 85 12 94 D0 40 D0 00 00
+06 58 4F 52 85 12 94 D0 00 E0 C0 D1 0A 58 4F 52
+2E 42 85 12 94 D0 40 E0 F2 D0 06 41 4E 44 85 12
+94 D0 00 F0 DA D1 0A 41 4E 44 2E 42 85 12 94 D0
+40 F0 A2 C5 54 D0 98 CF FA D1 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F B2 D1 06 52 52 43
+85 12 F2 D1 00 10 0C D2 0A 52 52 43 2E 42 85 12
+F2 D1 40 10 46 D1 08 53 57 50 42 00 85 12 F2 D1
+80 10 18 D2 06 52 52 41 85 12 F2 D1 00 11 34 D2
+0A 52 52 41 2E 42 85 12 F2 D1 40 11 26 D2 06 53
+58 54 85 12 F2 D1 80 11 00 00 08 50 55 53 48 00
+85 12 F2 D1 00 12 5A D2 0C 50 55 53 48 2E 42 00
+85 12 F2 D1 40 12 4E D2 08 43 41 4C 4C 00 85 12
+F2 D1 80 12 1A 53 0E 4A 84 12 E4 C7 1E C2 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C3 78 D2
+06 53 3E 3D 86 12 00 38 A0 D2 04 53 3C 00 86 12
+00 34 68 D2 06 30 3E 3D 86 12 00 30 B4 D2 04 30
+3C 00 86 12 00 30 F0 CC 04 55 3C 00 86 12 00 2C
+C8 D2 06 55 3E 3D 86 12 00 28 BE D2 06 30 3C 3E
+86 12 00 24 DC D2 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D
+0E 4A 30 4D 62 D1 08 54 48 45 4E 00 1A 42 C8 1D
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D D2 D2 08 45 4C 53 45 00
+1A 42 C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83
+8F 4A 00 00 E3 3F 40 D2 0A 42 45 47 49 4E 30 40
+32 C2 2A D3 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D
+E6 D1 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 F4 D2 8A C6
+70 C7 48 D3 0C 52 45 50 45 41 54 00 0D 12 84 12
+88 D3 0C D3 70 C7 B8 D3 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 1D CB 2F 98 42 C8 1D 00 00 30 4D A4 D3
+06 42 57 31 85 12 B6 D3 00 00 D0 D3 06 42 57 32
+85 12 B6 D3 00 00 DC D3 06 42 57 33 85 12 B6 D3
+00 00 F4 D3 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00
+B2 92 C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 F2 D3
+00 00 18 D4 06 46 57 32 85 12 F2 D3 00 00 24 D4
+06 46 57 33 85 12 F2 D3 00 00 92 D3 08 47 4F 54
 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
-80 CA DC C9 4E C6 00 00 05 3F 47 4F 54 4F 3E 90
+2A CB 36 CA 70 C7 00 00 0A 3F 47 4F 54 4F 3E 90
 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
-00 08 EC 3F 02 CA A0 CF 5A D5 92 53 C4 1D 3E 40
-2C 00 84 12 1A C7 3E C8 34 C2 00 CA 36 D1 70 D5
-0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E
-AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 88 D4 04 52
-52 43 4D 00 85 12 54 D5 50 00 9E D5 04 52 52 41
-4D 00 85 12 54 D5 50 01 AC D5 04 52 4C 41 4D 00
-85 12 54 D5 50 02 BA D5 04 52 52 55 4D 00 85 12
-54 D5 50 03 CA D3 05 50 55 53 48 4D 85 12 54 D5
-00 15 D6 D5 04 50 4F 50 4D 00 85 12 54 D5 00 17
+00 08 EC 3F 5E D0 0A C2 2C 00 F4 C7 06 C9 AC C2
+3A CB A2 C5 54 D0 36 D0 8A D4 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E E8 D3 08 52 52 43 4D 00 85 12
+74 D4 50 00 B8 D4 08 52 52 41 4D 00 85 12 74 D4
+50 01 C6 D4 08 52 4C 41 4D 00 85 12 74 D4 50 02
+D4 D4 08 52 52 55 4D 00 85 12 74 D4 50 03 E6 D2
+0A 50 55 53 48 4D 85 12 74 D4 00 15 F0 D4 08 50
+4F 50 4D 00 85 12 74 D4 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 82 C4
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 08 CF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 CA C4
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 0E C4
 q
diff --git a/binaries/MSP_EXP430FR5739_16MHz_UART.txt b/binaries/MSP_EXP430FR5739_16MHz_UART.txt
deleted file mode 100644 (file)
index 720a181..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF 06 D6 02 CE 34 01
-10 00 41 B3 94 C3 AA C2 DA C3 9C C3 94 C4 06 D6
-02 CE 7A C4 92 C5 24 C5 FE C4 3C 1D 60 C6 D4 C2
-E2 C2 EE C2 20 00 0A 00 00 00 00 00 00 00 00 00
-@C200
-B0 12 DA C3 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C2
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C2 39 40 22 18
-B2 49 78 C4 B2 49 90 C5 B2 49 22 C5 B2 49 FC C4
-B2 49 CA C2 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 CE CE 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C3 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 C2 0A C2 DE 1D E0 C5 32 C5
-14 C2 04 1B 5B 37 6D 00 5C C5 A8 C5 34 C2 86 C3
-14 C2 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C5 A0 C6 5C C5 14 C2 04 1B 5B 30 6D 00
-5C C5 28 CA 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C3 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C3 04 57 41 52 4D 00 B0 12
-9C C3 84 12 14 C2 07 0D 0A 1B 5B 37 6D 23 5C C5
-D6 C6 14 C2 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 5C C5
-0A C2 40 FF 28 C2 D4 C5 A0 C6 14 C2 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C2 86 C3 00 00 06 41
-43 43 45 50 54 00 30 40 7A C4 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C4 3C 40 D2 C4
-5D 15 B6 3E 21 52 3A 17 58 42 CC 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 CE 05 30 4D C8 C4 2D 83 92 B3 DC 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 DC 05
-FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53 DE 1D
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C4 2F 83
-8F 4E 00 00 B0 12 DA C3 92 B3 DC 05 FD 27 1E 42
-CC 05 B0 12 C8 C3 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C5 08 4E 3E 4F C8 3F 1A C5 04 45 43 48
-4F 00 B2 40 C2 48 C0 C4 82 43 DE 1D 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C4 92 43
-DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C5 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C5 7A C5 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C3 02 43 52 00 30 40
-92 C5 0D 12 84 12 14 C2 02 0D 0A 00 5C C5 60 C6
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C4 01 40
-2E 4E 30 4D DE C5 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 8A C5 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E C2 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 1A C6 02 23 53 00 0D 12
-84 12 1C C6 56 C6 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C6 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C5 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C6 4E C6 EE C2 8E C6 6A C6 5C C5 14 CA 20 C5
-60 C6 40 C5 01 2E 0E 93 E3 37 38 43 E2 3F 88 C6
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A C2 14 C2
-5A C9 0A C2 22 00 2C C7 FA C6 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-D4 C6 82 2E 22 00 0D 12 84 12 E4 C6 0A C2 5C C5
-5A C9 60 C6 18 C4 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C2 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C2 35 40 D4 C2
-30 4D 00 00 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 AE C8
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 C8
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C2 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 58 C9 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 C6 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A C6 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C2 14 CA 2C C7 D0 C9
-9C 26 3D 40 D8 C9 DE 3E DA C9 0A 4E 3E 4F 3D 40
-F4 C9 36 27 3D 40 CA C9 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 F6 C9 3E 4F 3D 40 CA C9 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 CB
-CC 3F FE C9 86 12 20 00 E6 C5 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 8E C5
-BC C2 C4 C9 C4 C5 F6 C5 14 C2 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C3 0A C2 40 FF 28 C2
-FE C5 14 C2 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C3 3A C2 3E CA 1A CA 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 C6 0A C2 2A C3 5A C9 60 C6 8E C7
-01 27 0D 12 84 12 14 CA 2C C7 94 C7 34 C2 12 CA
-60 C6 00 00 83 5B 27 5D 0D 12 84 12 92 CA 0A C2
-0A C2 5A C9 5A C9 60 C6 A4 CA 81 5B 82 43 BE 1D
-30 4D 0C C6 01 5D B2 43 BE 1D 30 4D C4 CA 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 CA 2C C7 94 C7 A8 C5
-34 C2 12 CA F6 C5 34 C2 06 CB 0A C2 0A C2 5A C9
-5A C9 0A C2 5A C9 5A C9 60 C6 BA CA 01 3A 30 12
-56 CB 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 14 CA
-2C C7 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C2 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C3 0C CB 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A C2 60 C6 5A C9 68 CB BC CA
-60 C6 BA C9 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D A4 C9 06 43 52 45
-41 54 45 00 B0 12 12 CB BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC CB 04 43 4F 44 45 00 B0 12 12 CB
-A2 82 C6 1D 0D 12 84 12 04 CE DE CD 60 C6 B4 CB
-07 48 44 4E 43 4F 44 45 B2 40 E2 CD DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 CB
-1E CE 3C CE 60 C6 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 1E CE 3C CE 60 C6
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F 00 CC 85 48 49 32 4C 4F 0D 12 84 12 28 C2
-AC CD 5A C9 BC CA F4 CB 60 C6 9A CB 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C CC 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C2 00 00 D8 C5 14 CA 2C C7
-AA C9 A0 C5 34 C2 14 CD AE C5 14 C2 06 5B 54 48
-45 4E 5D 00 86 CC EE CC AA CC CC CC 60 C6 AE C5
-14 C2 06 5B 45 4C 53 45 5D 00 86 CC 04 CD AA CC
-CA CC 60 C6 14 C2 04 5B 49 46 5D 00 86 CC CC CC
-3A C2 CA CC 82 C5 14 C2 05 0D 0A 6B 6F 20 5C C5
-BC C2 AC C2 3A C2 CC CC BA CC 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A CD 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 CA 2C C7
-94 C7 38 CD 60 C6 3E CD 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 CD F0 C5 60 C6 70 CD
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C C9
-06 4D 41 52 4B 45 52 00 B0 12 12 CB BA 40 85 12
-FC FF BA 40 6E CD FE FF 28 83 8A 48 00 00 BA 40
-AA C2 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A C2 CA 1D E8 C5 60 C6 85 12 B0 CD 78 CA E6 CB
-2C C5 90 CA 64 CC F6 C4 80 CD 12 C7 A8 CE BC CE
-9C C6 26 C7 00 00 58 CD CE CA F4 C7 00 00 85 12
-B0 CD 7C D4 E2 D4 24 D4 32 D5 EA D3 00 00 B6 D1
-00 00 FA D5 DE D5 4E D4 8C D4 C6 D2 00 00 00 00
-4E D5 DC CD 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D B8 CD 36 CE 3C CE 4C CE 1A 42 20 18
-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
-DA CA 09 50 57 52 5F 53 54 41 54 45 85 12 44 CE
-06 D6 E0 C6 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 CE F3 3F 82 CE 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 90 CE 30 4D 94 CE 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A CF FE FF 29 83
-B9 40 02 C4 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 C4 B2 49 FA C2 B2 49 02 C2 B2 49 20 C4
-B2 49 F0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 04 29 83 89 43 00 1C FC 23
-92 D3 30 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 B2 40 33 00 64 01 D2 43 61 01
-39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18 1E D2 9E 01
-B0 12 F8 C2 1E C4 38 40 C0 1D 0A 4E 39 48 2E 48
-09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27 1E 83
-0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12 12 12
-C4 1D 84 12 2C C7 94 C7 F0 C5 34 C2 F6 CF 50 C8
-34 C2 10 D0 0A D0 F8 CF 3C 4E 3C 80 87 12 05 24
-1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41
-12 D0 B2 41 C4 1D 3E 41 84 12 0A C2 2B 00 2C C7
-94 C7 F0 C5 34 C2 2E D0 50 C8 34 C2 12 CA BA C5
-2C C7 50 C8 34 C2 12 CA 3A D0 3E 5F E7 3F 3E 40
-28 00 B0 12 DA CF 19 42 C6 1D A2 53 C6 1D 89 4E
-00 00 3E 40 29 00 92 92 C0 1D C4 1D 02 20 30 40
-80 CB 1C 15 12 12 C4 1D 92 53 C4 1D 84 12 2C C7
-50 C8 34 C2 82 D0 78 D0 21 53 3E 90 10 00 C6 2B
-7F 2D 84 D0 B2 41 C4 1D C1 3F 0D 12 84 12 14 CA
-B6 CF 94 D0 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 DA CF
-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 DA CF ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 1D B0 12 62 D0 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 62 D0 92 92 C0 1D C4 1D
-02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12 62 D0
-FA 23 3C 50 10 00 B0 12 3E D0 EF 3F 0C 43 1B 42
-C6 1D A2 53 C6 1D 0D 12 84 12 14 CA B6 CF 60 D1
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C7 3F B0 12 62 D0 E0 23 3C 50 80 00 B0 12 3E D0
-DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12 0A C2
-00 13 5A C9 60 C6 0A C2 2C 00 8A D0 56 D1 A0 D1
-09 4B 2E 4E 0E DC A2 3F 52 CC 03 4D 4F 56 85 12
-96 D1 00 40 AA D1 05 4D 4F 56 2E 42 85 12 96 D1
-40 40 00 00 03 41 44 44 85 12 96 D1 00 50 C4 D1
-05 41 44 44 2E 42 85 12 96 D1 40 50 D0 D1 04 41
-44 44 43 00 85 12 96 D1 00 60 DE D1 06 41 44 44
-43 2E 42 00 85 12 96 D1 40 60 84 D1 04 53 55 42
-43 00 85 12 96 D1 00 70 FC D1 06 53 55 42 43 2E
-42 00 85 12 96 D1 40 70 0A D2 03 53 55 42 85 12
-96 D1 00 80 1A D2 05 53 55 42 2E 42 85 12 96 D1
-40 80 28 CC 03 43 4D 50 85 12 96 D1 00 90 34 D2
-05 43 4D 50 2E 42 85 12 96 D1 40 90 12 CC 04 44
-41 44 44 00 85 12 96 D1 00 A0 4E D2 06 44 41 44
-44 2E 42 00 85 12 96 D1 40 A0 40 D2 03 42 49 54
-85 12 96 D1 00 B0 6C D2 05 42 49 54 2E 42 85 12
-96 D1 40 B0 78 D2 03 42 49 43 85 12 96 D1 00 C0
-86 D2 05 42 49 43 2E 42 85 12 96 D1 40 C0 92 D2
-03 42 49 53 85 12 96 D1 00 D0 A0 D2 05 42 49 53
-2E 42 85 12 96 D1 40 D0 00 00 03 58 4F 52 85 12
-96 D1 00 E0 BA D2 05 58 4F 52 2E 42 85 12 96 D1
-40 E0 EC D1 03 41 4E 44 85 12 96 D1 00 F0 D4 D2
-05 41 4E 44 2E 42 85 12 96 D1 40 F0 14 CA 8A D0
-F2 D2 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
-4F 3F 26 D2 03 52 52 43 85 12 EC D2 00 10 04 D3
-05 52 52 43 2E 42 85 12 EC D2 40 10 10 D3 04 53
-57 50 42 00 85 12 EC D2 80 10 1E D3 03 52 52 41
-85 12 EC D2 00 11 2C D3 05 52 52 41 2E 42 85 12
-EC D2 40 11 38 D3 03 53 58 54 85 12 EC D2 80 11
-00 00 04 50 55 53 48 00 85 12 EC D2 00 12 52 D3
-06 50 55 53 48 2E 42 00 85 12 EC D2 40 12 AC D2
-04 43 41 4C 4C 00 85 12 EC D2 80 12 1A 53 0E 4A
-0D 12 84 12 D6 C6 14 C2 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 36 C3 46 D3 03 53 3E 3D 86 12
-00 38 9A D3 02 53 3C 00 86 12 00 34 60 D3 03 30
-3E 3D 86 12 00 30 AE D3 02 30 3C 00 86 12 00 30
-00 00 02 55 3C 00 86 12 00 2C C2 D3 03 55 3E 3D
-86 12 00 28 B8 D3 03 30 3C 3E 86 12 00 24 D6 D3
-02 30 3D 00 86 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 CC D3
-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 B1 2F 88 DA 00 00
-30 4D 5C D2 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
-70 D3 05 42 45 47 49 4E 30 40 28 C2 00 D4 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 8A 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 1D 30 4D E0 D2 05 41 47 41
-49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
-4C 45 0D 12 84 12 EE D3 BA C5 60 C6 A4 D3 06 52
-45 50 45 41 54 00 0D 12 84 12 82 D4 06 D4 60 C6
-B2 D4 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F
-98 42 C6 1D 00 00 30 4D 42 D4 03 42 57 31 85 12
-B0 D4 00 00 CA D4 03 42 57 32 85 12 B0 D4 00 00
-D6 D4 03 42 57 33 85 12 B0 D4 00 00 EE D4 3D 41
-1A 42 C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F 00 00
-A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 85 12 EC D4 00 00 0E D5 03 46 57 32 85 12
-EC D4 00 00 1A D5 03 46 57 33 85 12 EC D4 00 00
-26 D5 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
-00 3C 0D 12 84 12 92 CA EE C9 60 C6 00 00 05 3F
-47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
-00 10 EF 27 3E E0 00 08 EC 3F 14 CA B6 CF 70 D5
-92 53 C4 1D 3E 40 2C 00 84 12 2C C7 50 C8 34 C2
-12 CA 4C D1 86 D5 0A 4E 3E 4F 1A 83 F7 32 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06
-A6 3E 9E D4 04 52 52 43 4D 00 85 12 6A D5 50 00
-B4 D5 04 52 52 41 4D 00 85 12 6A D5 50 01 C2 D5
-04 52 4C 41 4D 00 85 12 6A D5 50 02 D0 D5 04 52
-52 55 4D 00 85 12 6A D5 50 03 E0 D3 05 50 55 53
-48 4D 85 12 6A D5 00 15 EC D5 04 50 4F 50 4D 00
-85 12 6A D5 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-94 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 1A CF
-q
diff --git a/binaries/MSP_EXP430FR5739_1MHz_115200.txt b/binaries/MSP_EXP430FR5739_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..18c5883
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A1 59
+CC C4 7E C3 84 C3 54 C3 3C C5 2A D5 E2 CD 9C CD
+9C CD B2 C4 70 C5 38 C5 3C 1D E0 1C 90 C7 B6 C2
+C4 C2 AC C6 20 00 0A 00 00 1C 7E C3 84 C3 54 C3
+3C C5 2A D5 E2 CD 9C CD 9C CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C200
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 01 3D 0E 93 3E 4F
+96 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B0 C4 B2 49
+6E C5 B2 49 36 C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 56 CE 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3C C5 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 C2 B6 C6 AC C2 52 C3 7E C5 1E C2 04 1B
+5B 37 6D 00 A0 C5 A0 C5 1E C2 04 1B 5B 30 6D 00
+A0 C5 EC CA B0 12 7E C3 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 7E C5 1E C2
+07 0D 0A 1B 5B 37 6D 23 A0 C5 04 C8 1E C2 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A0 C5 0A C2 40 FF 32 C2
+CC C6 D0 C7 1E C2 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C2 46 C3 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C3 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+92 D3 30 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 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
+18 42 00 18 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 19 42 9E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 C2 86 C3 00 00 0C 41 43 43 45 50 54 00 30 40
+B2 C4 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 10 C5 3C 40 1C C5 5D 15 9A 3E 21 52 3A 17
+58 42 CC 05 48 9B 09 20 A2 B3 DC 05 FD 27 B2 40
+13 00 CE 05 E2 D2 03 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 DC 05 FD 27 C2 48 CE 05 30 4D
+12 C5 2D 83 92 B3 DC 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 DC 05 FD 27 58 42 CC 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 38 C5 30 12 4E C5 A2 B3 DC 05
+FD 27 B2 40 11 00 CE 05 E2 C2 03 02 30 41 2F 83
+8F 4E 00 00 92 B3 DC 05 FD 27 B0 12 D8 C4 1E 42
+CC 05 30 4D 00 00 08 45 4D 49 54 00 30 40 70 C5
+08 4E 3E 4F C7 3F 66 C5 08 45 43 48 4F 00 B2 40
+C2 48 0A C5 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 0A C5 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 B0 C5 29 4F 8F 4E 00 00 7E 49 DE 3F
+B2 C5 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+70 22 F9 98 00 00 6D 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 64 22 9B 24 30 C5 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A C2 00 00 D0 C6
+C2 C5 14 C8 CE CA B0 C2 3E C6 14 C2 06 5B 54 48
+45 4E 5D 00 C6 C5 1C C6 E2 C5 00 C6 14 C2 06 5B
+45 4C 53 45 5D 00 C6 C5 2E C6 E2 C5 FE C5 1E C2
+04 5B 49 46 5D 00 C6 C5 00 C6 B2 C2 FE C5 1E C2
+05 0D 6B 6F 20 0A A0 C5 9A C2 84 C2 B2 C2 00 C6
+EE C5 0D 5B 54 48 45 4E 5D 00 30 4D 52 C6 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 5E C6 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C2 C5 14 C8
+7C C8 20 CA 90 C7 6E C6 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 C2 C5 14 C8 7C C8 A0 C6
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D A6 C4 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 C3 05 53 22 00 82 43
+C0 1D 0D 12 84 12 0A C2 1E C2 7E CA 0A C2 22 00
+14 C8 14 C7 B2 40 20 00 C0 1D 1A 53 1A B3 82 6A
+C8 1D 3E 4F 3D 41 30 4D 88 C5 05 2E 22 00 0D 12
+84 12 FE C6 0A C2 A0 C5 7E CA 90 C7 00 00 04 3C
+23 00 B2 40 B2 1D B2 1D 30 4D FA C6 02 23 1B 42
+BE 1D 2C 4F 2F 83 B0 12 46 C2 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 4C C7 04 23 53 00
+0D 12 84 12 4E C7 88 C7 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 7C C7 04 23 3E 00 9F 42 B2 1D 00 00
+3E 40 B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 96 C7 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 78 C5 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 42 C7
+C2 C5 B0 C7 80 C7 AC C6 BE C7 9A C7 A0 C5 90 C7
+2A C7 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 1D 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 1D
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D 02 C8 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40
+86 C9 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 88 C9 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E C2 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 3E C7 03 5C 92 42 C2 1D C6 1D 30 4D
+0D 12 84 12 84 C2 C2 C5 14 C8 B0 C2 58 CB 7C C8
+42 CA 0A 4E 3E 4F 3D 40 5C CA 6D 27 3D 40 36 CA
+1A E2 BC 1D 14 24 0E 12 3E 4F 30 41 5E CA 3E 4F
+3D 40 36 CA 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 34 CC 2A 3C 26 CA 02 2C A2 53
+C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D 7C CA
+0F 4C 49 54 45 52 41 4C 82 93 BC 1D 0D 24 09 4E
+1A 42 C8 1D A2 52 C8 1D BA 40 0A C2 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D B8 C7 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D DE C6 0A 41
+4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C
+0E 43 84 12 1E C2 02 0D 0A 00 A0 C5 94 C2 30 CA
+BE C6 E8 C6 1E C2 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 C3 32 C2 0A C2 40 FF F0 C6 1E C2 09 46
+52 41 4D 20 66 75 6C 6C 08 C3 B2 C2 F4 CA DE CA
+0D 41 42 4F 52 54 22 00 0D 12 84 12 FE C6 0A C2
+08 C3 7E CA 90 C7 0E C8 02 27 0D 12 84 12 C2 C5
+14 C8 7C C8 B0 C2 5A CB 22 C7 66 CA 88 C6 07 5B
+27 5D 0D 12 84 12 4A CB 0A C2 0A C2 7E CA 7E CA
+90 C7 5E CB 03 5B 82 43 BC 1D 30 4D 00 00 02 5D
+B2 43 BC 1D 30 4D D6 C6 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 C2 C5 14 C8 7C C8 B0 C2 5A CB
+E8 C6 AC C2 B2 CB 0A C2 0A C2 7E CA 7E CA 0A C2
+7E CA 7E CA 90 C7 00 00 02 3A 30 12 08 CC 92 B3
+C8 1D A2 63 C8 1D 0D 12 84 12 C2 C5 14 C8 D0 CB
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F BA 1D
+2A 52 82 4A C8 1D 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 1D 30 4D 82 9F BA 1D 66 25
+84 12 1E C2 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 C3 74 CB 03 3B 82 93 BC 1D F4 26
+0D 12 84 12 0A C2 90 C7 7E CA 1A CC 76 CB 90 C7
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 1D
+D8 D3 00 00 30 4D C8 CA 0C 43 52 45 41 54 45 00
+B0 12 BE CB BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+9A C5 0A 44 4F 45 53 3E 1A 42 B8 1D BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D B8 CB 0E 3A 4E 4F
+4E 41 4D 45 30 12 08 CC 2F 83 8F 4E 00 00 1A 42
+C8 1D 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+52 CC 05 49 53 00 0D 12 82 93 BC 1D 08 20 84 12
+4A CB D4 CC 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+62 CB 0A C2 D6 CC 7E CA 90 C7 68 CC 08 43 4F 44
+45 00 B0 12 BE CB A2 82 C8 1D 61 3C AA C7 0E 48
+44 4E 43 4F 44 45 B2 40 C2 CD CC 1D F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 1A CC 20 CD
+3D 41 92 42 D0 1D CC 1D 5D 3C EC CC 0E 43 4F 44
+45 4E 4E 4D 30 12 F6 CC B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F FE CC
+0B 48 49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A
+FE FF 82 43 BC 1D B9 3F 8A CD B2 40 9C CD D0 1D
+82 4E CE 1D 30 40 22 C7 85 12 88 CD 88 CB 30 CB
+1A CE 2C CD 82 CC CC C7 76 C8 48 CB 70 CD C2 CC
+9C CC 38 CC 90 CA A4 CE CE C8 00 00 00 00 85 12
+88 CD 1E D5 A2 D3 02 D5 CA D2 26 D3 74 D3 50 D4
+5C D4 EC D1 10 D3 00 00 00 00 5E CD DC D0 00 00
+78 D4 BC CD B2 40 9C CD CE 1D 82 43 D0 1D 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40
+42 18 B0 12 F0 CD 30 4D 02 CE 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 1D B0 12 F0 CD
+1A 42 CA 1D 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 C4 FE FF 29 83 B9 40
+F2 C3 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+F0 FF 3B 40 10 00 3A 40 3A 18 B0 12 F4 CD 82 43
+4A 18 C7 3F 96 CE B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 7E CB 0C 4D 41 52 4B 45 52 00 12 12 C6 1D
+0D 12 84 12 C2 C5 14 C8 7C C8 AC C2 C2 CE B6 C6
+56 CA C4 CE 3E 4F 3D 41 B2 41 C6 1D B0 12 BE CB
+BA 40 85 12 FC FF BA 40 94 CE FE FF 28 83 8A 48
+00 00 BA 40 82 C2 02 00 A2 52 C8 1D 18 42 B4 1D
+19 42 B6 1D A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 1D 84 12 14 C8 7C C8 AC C2 2E CF 0E CF 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+94 CE 00 00 01 20 3E 52 2E 83 21 53 30 41 26 C9
+AC C2 36 CF 2A CF 38 CF B2 41 C6 1D 30 41 92 83
+C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12 FE CE 15 20
+3E 40 2B 00 B0 12 FE CE 06 20 3E 40 2D 00 B0 12
+FE CE 92 83 C6 1D 0E 12 1E 41 02 00 84 12 14 C8
+26 C9 AC C2 5A CB 78 CF 3E 51 3A 17 30 41 B0 12
+3E CF 19 42 C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40
+29 00 92 53 C6 1D 1A 42 C6 1D 3D 15 84 12 14 C8
+26 C9 AC C2 B0 CF A8 CF 3E 90 10 00 E6 2B 7C 2D
+B2 CF A2 41 C6 1D E1 3F 03 20 B0 12 96 CF 43 3C
+7A 90 23 00 24 20 B0 12 46 CF 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
+C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 46 CF F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 92 CF 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 96 CF 92 92 C2 1D C6 1D
+02 24 92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 7E CF F2 3F 03 20 B0 12 96 CF F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+7E CF EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40
+20 00 19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49
+FF FF 19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A C2 00 13
+7E CA 90 C7 0A C2 2C 00 74 D0 B8 CF C2 C5 7E D0
+56 D0 C4 D0 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 B4 D0 00 40 D0 D0 0A 4D 4F 56
+2E 42 85 12 B4 D0 40 40 00 00 06 41 44 44 85 12
+B4 D0 00 50 EA D0 0A 41 44 44 2E 42 85 12 B4 D0
+40 50 F6 D0 08 41 44 44 43 00 85 12 B4 D0 00 60
+04 D1 0C 41 44 44 43 2E 42 00 85 12 B4 D0 40 60
+3C CD 08 53 55 42 43 00 85 12 B4 D0 00 70 22 D1
+0C 53 55 42 43 2E 42 00 85 12 B4 D0 40 70 30 D1
+06 53 55 42 85 12 B4 D0 00 80 40 D1 0A 53 55 42
+2E 42 85 12 B4 D0 40 80 4C D1 06 43 4D 50 85 12
+B4 D0 00 90 5A D1 0A 43 4D 50 2E 42 85 12 B4 D0
+40 90 00 00 08 44 41 44 44 00 85 12 B4 D0 00 A0
+74 D1 0C 44 41 44 44 2E 42 00 85 12 B4 D0 40 A0
+A2 D0 06 42 49 54 85 12 B4 D0 00 B0 92 D1 0A 42
+49 54 2E 42 85 12 B4 D0 40 B0 9E D1 06 42 49 43
+85 12 B4 D0 00 C0 AC D1 0A 42 49 43 2E 42 85 12
+B4 D0 40 C0 B8 D1 06 42 49 53 85 12 B4 D0 00 D0
+C6 D1 0A 42 49 53 2E 42 85 12 B4 D0 40 D0 00 00
+06 58 4F 52 85 12 B4 D0 00 E0 E0 D1 0A 58 4F 52
+2E 42 85 12 B4 D0 40 E0 12 D1 06 41 4E 44 85 12
+B4 D0 00 F0 FA D1 0A 41 4E 44 2E 42 85 12 B4 D0
+40 F0 C2 C5 74 D0 B8 CF 1A D2 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F D2 D1 06 52 52 43
+85 12 12 D2 00 10 2C D2 0A 52 52 43 2E 42 85 12
+12 D2 40 10 66 D1 08 53 57 50 42 00 85 12 12 D2
+80 10 38 D2 06 52 52 41 85 12 12 D2 00 11 54 D2
+0A 52 52 41 2E 42 85 12 12 D2 40 11 46 D2 06 53
+58 54 85 12 12 D2 80 11 00 00 08 50 55 53 48 00
+85 12 12 D2 00 12 7A D2 0C 50 55 53 48 2E 42 00
+85 12 12 D2 40 12 6E D2 08 43 41 4C 4C 00 85 12
+12 D2 80 12 1A 53 0E 4A 84 12 04 C8 1E C2 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C3 98 D2
+06 53 3E 3D 86 12 00 38 C0 D2 04 53 3C 00 86 12
+00 34 88 D2 06 30 3E 3D 86 12 00 30 D4 D2 04 30
+3C 00 86 12 00 30 10 CD 04 55 3C 00 86 12 00 2C
+E8 D2 06 55 3E 3D 86 12 00 28 DE D2 06 30 3C 3E
+86 12 00 24 FC D2 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D
+0E 4A 30 4D 82 D1 08 54 48 45 4E 00 1A 42 C8 1D
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D F2 D2 08 45 4C 53 45 00
+1A 42 C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83
+8F 4A 00 00 E3 3F 60 D2 0A 42 45 47 49 4E 30 40
+32 C2 4A D3 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D
+06 D2 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 14 D3 AA C6
+90 C7 68 D3 0C 52 45 50 45 41 54 00 0D 12 84 12
+A8 D3 2C D3 90 C7 D8 D3 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 1D CB 2F 98 42 C8 1D 00 00 30 4D C4 D3
+06 42 57 31 85 12 D6 D3 00 00 F0 D3 06 42 57 32
+85 12 D6 D3 00 00 FC D3 06 42 57 33 85 12 D6 D3
+00 00 14 D4 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00
+B2 92 C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 12 D4
+00 00 38 D4 06 46 57 32 85 12 12 D4 00 00 44 D4
+06 46 57 33 85 12 12 D4 00 00 B2 D3 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+4A CB 56 CA 90 C7 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F 7E D0 0A C2 2C 00 14 C8 26 C9 AC C2
+5A CB C2 C5 74 D0 56 D0 AA D4 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 08 D4 08 52 52 43 4D 00 85 12
+94 D4 50 00 D8 D4 08 52 52 41 4D 00 85 12 94 D4
+50 01 E6 D4 08 52 4C 41 4D 00 85 12 94 D4 50 02
+F4 D4 08 52 52 55 4D 00 85 12 94 D4 50 03 06 D3
+0A 50 55 53 48 4D 85 12 94 D4 00 15 10 D5 08 50
+4F 50 4D 00 85 12 94 D4 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+CC C4 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 06 C4
+q
index 32ff7d0..5eb46e5 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF EC D5 F0 CD 34 01
-10 00 41 87 B6 C3 AA C2 B8 C3 8C C3 82 C4 EC D5
-F0 CD 70 C4 80 C5 FE C4 DA C4 3C 1D 4E C6 D4 C2
-E2 C2 EE C2 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+C6 C4 56 C3 56 C3 58 C3 44 C3 06 D5 BE CD 78 CD
+78 CD B4 C4 38 C5 10 C5 3C 1D E0 1C 6C C7 B6 C2
+C4 C2 88 C6 20 00 0A 00 00 1C 56 C3 56 C3 58 C3
+44 C3 06 D5 BE CD 78 CD 78 CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C200
-B0 12 B8 C3 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C2
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C2 39 40 22 18
-B2 49 6E C4 B2 49 7E C5 B2 49 FC C4 B2 49 D8 C4
-B2 49 CA C2 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BC CE 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C3 0E 12 B0 12
-F8 C2 0A C2 DE 1D CE C5 16 C5 EE C2 34 C2 8A C3
-14 C2 05 1B 5B 37 6D 40 4A C5 0A C2 02 18 CE C5
-C4 C6 96 C5 34 C2 7E C3 14 C2 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C5 8E C6 4A C5
-14 C2 04 1B 5B 30 6D 00 4A C5 16 CA 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C3 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C3 04 57 41 52 4D 00 B0 12
-8C C3 78 40 03 00 B0 12 BA C3 84 12 14 C2 07 0D
-0A 1B 5B 37 6D 40 4A C5 0A C2 02 18 CE C5 C4 C6
-0A C2 23 00 FA C4 C4 C6 14 C2 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 4A C5 0A C2 40 FF 28 C2 C2 C5 8E C6
-14 C2 0A 62 79 74 65 73 20 66 72 65 65 00 3A C2
-7E C3 00 00 06 41 43 43 45 50 54 00 30 40 70 C4
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 B8 22
-3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C3 82 93 DE 1D 02 24 92 53 DE 1D 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C4 2F 83 8F 4E 00 00
-58 43 B0 12 BA C3 92 B3 6C 06 FD 27 1E 42 4C 06
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C4 08 4E
-3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D F4 C4
-04 45 43 48 4F 00 B2 40 C2 48 08 C5 82 43 DE 1D
-38 40 05 00 B0 12 BA C3 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C5 92 43 DE 1D 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C5 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C4 68 C5 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C3 02 43 52 00 30 40 80 C5
-0D 12 84 12 14 C2 02 0D 0A 00 4A C5 4E C6 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C4 01 40 2E 4E
-30 4D CC C5 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D 78 C5 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E C2 BF 4F 00 00 7A 90 0A 00 02 28
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 02 3D 0E 93 3E 4F
+84 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B2 C4 B2 49
+36 C5 B2 49 0E C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 32 CE 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C3 B0 12 D0 C2 92 C6 AC C2
+42 C3 50 C5 1E C2 05 1B 5B 37 6D 40 7C C5 0A C2
+02 18 B4 C6 E0 C7 7C C5 1E C2 04 1B 5B 30 6D 00
+7C C5 C8 CA 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 50 C5 1E C2 07 0D 0A 1B 5B 37
+6D 40 7C C5 0A C2 02 18 B4 C6 E0 C7 0A C2 23 00
+34 C5 E0 C7 1E C2 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+7C C5 0A C2 40 FF 32 C2 A8 C6 AC C7 1E C2 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C2 36 C3 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C3 01 12 6D 3F 82 4E 08 18 92 12 3A 18 D2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01
+31 40 E0 1C 3F 40 80 1C 92 D3 30 01 B2 43 06 02
+B2 40 EF 7F 02 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 B2 40 33 00 64 01 D2 43 61 01
+39 40 40 00 18 42 00 18 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
+1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42 9E 01
+B0 12 D0 C2 80 C3 00 00 0C 41 43 43 45 50 54 00
+30 40 B4 C4 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40
+20 00 3D 15 9D 3E 21 52 A2 C2 6C 06 B2 B0 10 00
+40 06 96 22 3A 17 92 B3 6C 06 FD 27 58 42 4C 06
+48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27
+1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F
+3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40 10 C5
+58 43 B0 12 46 C3 2F 83 8F 4E 00 00 92 B3 6C 06
+FD 27 1E 42 4C 06 B0 12 44 C3 30 4D 00 00 08 45
+4D 49 54 00 30 40 38 C5 08 4E 3E 4F A2 B3 6C 06
+FD 27 C2 48 4E 06 30 4D 2E C5 08 45 43 48 4F 00
+B2 40 C2 48 42 C5 38 40 05 00 B0 12 46 C3 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 42 C5
+28 42 F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40
+8C C5 29 4F 8F 4E 00 00 7E 49 D4 3F 8E C5 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 82 22 F9 98
+00 00 7F 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 76 22 9B 24 08 C5 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A C2 00 00 AC C6 9E C5 F0 C7
+AA CA B0 C2 1A C6 14 C2 06 5B 54 48 45 4E 5D 00
+A2 C5 F8 C5 BE C5 DC C5 14 C2 06 5B 45 4C 53 45
+5D 00 A2 C5 0A C6 BE C5 DA C5 1E C2 04 5B 49 46
+5D 00 A2 C5 DC C5 B2 C2 DA C5 1E C2 05 0D 6B 6F
+20 0A 7C C5 9A C2 84 C2 B2 C2 DC C5 CA C5 0D 5B
+54 48 45 4E 5D 00 30 4D 2E C6 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 3A C6 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 9E C5 F0 C7 58 C8 FC C9
+6C C7 4A C6 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 9E C5 F0 C7 58 C8 7C C6 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D A8 C4 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D E0 C3 05 53 22 00 82 43 C0 1D 0D 12
+84 12 0A C2 1E C2 5A CA 0A C2 22 00 F0 C7 F0 C6
+B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F
+3D 41 30 4D 62 C5 05 2E 22 00 0D 12 84 12 DA C6
+0A C2 7C C5 5A CA 6C C7 00 00 04 3C 23 00 B2 40
+B2 1D B2 1D 30 4D D6 C6 02 23 1B 42 BE 1D 2C 4F
+2F 83 B0 12 46 C2 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 08 C6 02 23 53 00 0D 12 84 12
-0A C6 44 C6 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C6 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C5 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C5
-3C C6 EE C2 7C C6 58 C6 4A C5 02 CA FA C4 4E C6
-2C C5 01 2E 0E 93 E3 37 38 43 E2 3F 76 C6 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A C2 14 C2 48 C9
-0A C2 22 00 1A C7 E8 C6 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D C2 C6
-82 2E 22 00 0D 12 84 12 D2 C6 0A C2 4A C5 48 C9
-4E C6 F8 C3 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C2 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C2 35 40 D4 C2 30 4D
-00 00 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 9C C8 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E C8 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 C2 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D 46 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 C6 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 C6 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC C2 02 CA 1A C7 BE C9 9C 26
-3D 40 C6 C9 DE 3E C8 C9 0A 4E 3E 4F 3D 40 E2 C9
-36 27 3D 40 B8 C9 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 E4 C9 3E 4F 3D 40 B8 C9 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 CB CC 3F
-EC C9 86 12 20 00 D4 C5 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7C C5 BC C2
-B2 C9 B2 C5 E4 C5 14 C2 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A C3 0A C2 40 FF 28 C2 EC C5
-14 C2 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A C3
-3A C2 2C CA 08 CA 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 C6 0A C2 2A C3 48 C9 4E C6 7C C7 01 27
-0D 12 84 12 02 CA 1A C7 82 C7 34 C2 00 CA 4E C6
-00 00 83 5B 27 5D 0D 12 84 12 80 CA 0A C2 0A C2
-48 C9 48 C9 4E C6 92 CA 81 5B 82 43 BE 1D 30 4D
-FA C5 01 5D B2 43 BE 1D 30 4D B2 CA 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 CA 1A C7 82 C7 96 C5 34 C2
-00 CA E4 C5 34 C2 F4 CA 0A C2 0A C2 48 C9 48 C9
-0A C2 48 C9 48 C9 4E C6 A8 CA 01 3A 30 12 44 CB
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 02 CA 1A C7
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 C2 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 C3 FA CA 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A C2 4E C6 48 C9 56 CB AA CA 4E C6
-A8 C9 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D 92 C9 06 43 52 45 41 54
-45 00 B0 12 00 CB BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA CB 04 43 4F 44 45 00 B0 12 00 CB A2 82
-C6 1D 0D 12 84 12 F2 CD CC CD 4E C6 A2 CB 07 48
-44 4E 43 4F 44 45 B2 40 D0 CD DA 1D EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 CB 0C CE
-2A CE 4E C6 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 0C CE 2A CE 4E C6 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-EE CB 85 48 49 32 4C 4F 0D 12 84 12 28 C2 9A CD
-48 C9 AA CA E2 CB 4E C6 88 CB 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A CC 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A C2 00 00 C6 C5 02 CA 1A C7 98 C9
-8E C5 34 C2 02 CD 9C C5 14 C2 06 5B 54 48 45 4E
-5D 00 74 CC DC CC 98 CC BA CC 4E C6 9C C5 14 C2
-06 5B 45 4C 53 45 5D 00 74 CC F2 CC 98 CC B8 CC
-4E C6 14 C2 04 5B 49 46 5D 00 74 CC BA CC 3A C2
-B8 CC 70 C5 14 C2 05 0D 0A 6B 6F 20 4A C5 BC C2
-AC C2 3A C2 BA CC A8 CC 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 CD 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 CA 1A C7 82 C7
-26 CD 4E C6 2C CD 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 CD DE C5 4E C6 5E CD B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A C9 06 4D
-41 52 4B 45 52 00 B0 12 00 CB BA 40 85 12 FC FF
-BA 40 5C CD FE FF 28 83 8A 48 00 00 BA 40 AA C2
-04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D 0A C2
-CA 1D D6 C5 4E C6 85 12 9E CD 66 CA D4 CB 10 C5
-7E CA 52 CC D2 C4 6E CD 00 C7 96 CE AA CE 8A C6
-14 C7 00 00 46 CD BC CA E2 C7 00 00 85 12 9E CD
-62 D4 C8 D4 0A D4 18 D5 D0 D3 00 00 9C D1 00 00
-E0 D5 C4 D5 34 D4 72 D4 AC D2 00 00 00 00 34 D5
-CA CD 3A 40 0C 00 39 40 D6 1D 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D
-30 4D A6 CD 24 CE 2A CE 3A CE 1A 42 20 18 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 C8 CA
-09 50 57 52 5F 53 54 41 54 45 85 12 32 CE EC D5
-CE C6 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E CE F3 3F 70 CE 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 7E CE 30 4D 82 CE 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 CF FE FF 29 83 B9 40
-E2 C3 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 C3 B2 49 FA C2 B2 49 02 C2 B2 49 00 C4 B2 49
-EE FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 04 29 83 89 43 00 1C FC 23 92 D3
-30 01 B2 43 06 02 B2 40 EF 7F 02 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 B2 40 33 00
-64 01 D2 43 61 01 39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43
-08 18 1E D2 9E 01 B0 12 F8 C2 FE C3 38 40 C0 1D
-0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D 09 9E 03 24
-7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D
-1C 15 0E 12 12 12 C4 1D 84 12 1A C7 82 C7 DE C5
-34 C2 DC CF 3E C8 34 C2 F6 CF F0 CF DE CF 3C 4E
-3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83
-21 52 1B 17 30 41 F8 CF B2 41 C4 1D 3E 41 84 12
-0A C2 2B 00 1A C7 82 C7 DE C5 34 C2 14 D0 3E C8
-34 C2 00 CA A8 C5 1A C7 3E C8 34 C2 00 CA 20 D0
-3E 5F E7 3F 3E 40 28 00 B0 12 C0 CF 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 40 29 00 92 92 C0 1D
-C4 1D 02 20 30 40 6E CB 1C 15 12 12 C4 1D 92 53
-C4 1D 84 12 1A C7 3E C8 34 C2 68 D0 5E D0 21 53
-3E 90 10 00 C6 2B 7F 2D 6A D0 B2 41 C4 1D C1 3F
-0D 12 84 12 02 CA 9C CF 7A D0 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 C0 CF 3C 40 00 03 0E 93 1C 24 3C 40
+C8 4A 00 00 30 4D 28 C7 04 23 53 00 0D 12 84 12
+2A C7 64 C7 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+58 C7 04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F 72 C7 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 4A C5 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 1E C7 9E C5 8C C7
+5C C7 88 C6 9A C7 76 C7 7C C5 6C C7 06 C7 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D
+82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D DE C7 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 62 C9 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 64 C9 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E C2 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+1A C7 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12
+84 C2 9E C5 F0 C7 B0 C2 34 CB 58 C8 1E CA 0A 4E
+3E 4F 3D 40 38 CA 6D 27 3D 40 12 CA 1A E2 BC 1D
+14 24 0E 12 3E 4F 30 41 3A CA 3E 4F 3D 40 12 CA
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 10 CC 2A 3C 02 CA 02 2C A2 53 C8 1D 1A 42
+C8 1D 8A 4E FE FF 3E 4F 30 4D 58 CA 0F 4C 49 54
+45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D
+A2 52 C8 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D 94 C7 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D BA C6 0A 41 4C 4C 4F 54
+82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12
+1E C2 02 0D 0A 00 7C C5 94 C2 0C CA 9A C6 C4 C6
+1E C2 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 C3
+32 C2 0A C2 40 FF CC C6 1E C2 09 46 52 41 4D 20
+66 75 6C 6C 08 C3 B2 C2 D0 CA BA CA 0D 41 42 4F
+52 54 22 00 0D 12 84 12 DA C6 0A C2 08 C3 5A CA
+6C C7 EA C7 02 27 0D 12 84 12 9E C5 F0 C7 58 C8
+B0 C2 36 CB FE C6 42 CA 64 C6 07 5B 27 5D 0D 12
+84 12 26 CB 0A C2 0A C2 5A CA 5A CA 6C C7 3A CB
+03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D
+30 4D B2 C6 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 9E C5 F0 C7 58 C8 B0 C2 36 CB C4 C6 AC C2
+8E CB 0A C2 0A C2 5A CA 5A CA 0A C2 5A CA 5A CA
+6C C7 00 00 02 3A 30 12 E4 CB 92 B3 C8 1D A2 63
+C8 1D 0D 12 84 12 9E C5 F0 C7 AC CB 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D
+82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A
+C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E C2
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 C3 50 CB 03 3B 82 93 BC 1D F4 26 0D 12 84 12
+0A C2 6C C7 5A CA F6 CB 52 CB 6C C7 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00
+30 4D A4 CA 0C 43 52 45 41 54 45 00 B0 12 9A CB
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 76 C5 0A 44
+4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D 94 CB 0E 3A 4E 4F 4E 41 4D 45
+30 12 E4 CB 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 2E CC 05 49
+53 00 0D 12 82 93 BC 1D 08 20 84 12 26 CB B0 CC
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 3E CB 0A C2
+B2 CC 5A CA 6C C7 44 CC 08 43 4F 44 45 00 B0 12
+9A CB A2 82 C8 1D 61 3C 86 C7 0E 48 44 4E 43 4F
+44 45 B2 40 9E CD CC 1D F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 F6 CB FC CC 3D 41 92 42
+D0 1D CC 1D 5D 3C C8 CC 0E 43 4F 44 45 4E 4E 4D
+30 12 D2 CC B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 1D 1A 42 C8 1D EF 3F DA CC 0B 48 49 32
+4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43
+BC 1D B9 3F 66 CD B2 40 78 CD D0 1D 82 4E CE 1D
+30 40 FE C6 85 12 64 CD 64 CB 0C CB F6 CD 08 CD
+5E CC A8 C7 52 C8 24 CB 4C CD 9E CC 78 CC 14 CC
+6C CA 80 CE AA C8 00 00 00 00 85 12 64 CD FA D4
+7E D3 DE D4 A6 D2 02 D3 50 D3 2C D4 38 D4 C8 D1
+EC D2 00 00 00 00 3A CD B8 D0 00 00 54 D4 98 CD
+B2 40 78 CD CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12
+CC CD 30 4D DE CD 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 1D B0 12 CC CD 1A 42 CA 1D
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 0E C4 FE FF 29 83 B9 40 FA C3 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 EE FF 3B 40
+10 00 3A 40 3A 18 B0 12 D0 CD 82 43 4A 18 C7 3F
+72 CE B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 5A CB
+0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12
+9E C5 F0 C7 58 C8 AC C2 9E CE 92 C6 32 CA A0 CE
+3E 4F 3D 41 B2 41 C6 1D B0 12 9A CB BA 40 85 12
+FC FF BA 40 70 CE FE FF 28 83 8A 48 00 00 BA 40
+82 C2 02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12
+F0 C7 58 C8 AC C2 0A CF EA CE 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 70 CE 00 00
+01 20 3E 52 2E 83 21 53 30 41 02 C9 AC C2 12 CF
+06 CF 14 CF B2 41 C6 1D 30 41 92 83 C6 1D 3E 40
+28 00 0A 4E 3D 15 B0 12 DA CE 15 20 3E 40 2B 00
+B0 12 DA CE 06 20 3E 40 2D 00 B0 12 DA CE 92 83
+C6 1D 0E 12 1E 41 02 00 84 12 F0 C7 02 C9 AC C2
+36 CB 54 CF 3E 51 3A 17 30 41 B0 12 1A CF 19 42
+C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53
+C6 1D 1A 42 C6 1D 3D 15 84 12 F0 C7 02 C9 AC C2
+8C CF 84 CF 3E 90 10 00 E6 2B 7C 2D 8E CF A2 41
+C6 1D E1 3F 03 20 B0 12 72 CF 43 3C 7A 90 23 00
+24 20 B0 12 22 CF 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 C0 CF ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12
-48 D0 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 48 D0
-92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E
-DA 3F B0 12 48 D0 FA 23 3C 50 10 00 B0 12 24 D0
-EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12 84 12
-02 CA 9C CF 46 D1 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C7 3F B0 12 48 D0 E0 23 3C 50
-80 00 B0 12 24 D0 DB 3F 00 00 04 52 45 54 49 00
-0D 12 84 12 0A C2 00 13 48 C9 4E C6 0A C2 2C 00
-70 D0 3C D1 86 D1 09 4B 2E 4E 0E DC A2 3F 40 CC
-03 4D 4F 56 85 12 7C D1 00 40 90 D1 05 4D 4F 56
-2E 42 85 12 7C D1 40 40 00 00 03 41 44 44 85 12
-7C D1 00 50 AA D1 05 41 44 44 2E 42 85 12 7C D1
-40 50 B6 D1 04 41 44 44 43 00 85 12 7C D1 00 60
-C4 D1 06 41 44 44 43 2E 42 00 85 12 7C D1 40 60
-6A D1 04 53 55 42 43 00 85 12 7C D1 00 70 E2 D1
-06 53 55 42 43 2E 42 00 85 12 7C D1 40 70 F0 D1
-03 53 55 42 85 12 7C D1 00 80 00 D2 05 53 55 42
-2E 42 85 12 7C D1 40 80 16 CC 03 43 4D 50 85 12
-7C D1 00 90 1A D2 05 43 4D 50 2E 42 85 12 7C D1
-40 90 00 CC 04 44 41 44 44 00 85 12 7C D1 00 A0
-34 D2 06 44 41 44 44 2E 42 00 85 12 7C D1 40 A0
-26 D2 03 42 49 54 85 12 7C D1 00 B0 52 D2 05 42
-49 54 2E 42 85 12 7C D1 40 B0 5E D2 03 42 49 43
-85 12 7C D1 00 C0 6C D2 05 42 49 43 2E 42 85 12
-7C D1 40 C0 78 D2 03 42 49 53 85 12 7C D1 00 D0
-86 D2 05 42 49 53 2E 42 85 12 7C D1 40 D0 00 00
-03 58 4F 52 85 12 7C D1 00 E0 A0 D2 05 58 4F 52
-2E 42 85 12 7C D1 40 E0 D2 D1 03 41 4E 44 85 12
-7C D1 00 F0 BA D2 05 41 4E 44 2E 42 85 12 7C D1
-40 F0 02 CA 70 D0 D8 D2 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F 0C D2 03 52 52 43 85 12
-D2 D2 00 10 EA D2 05 52 52 43 2E 42 85 12 D2 D2
-40 10 F6 D2 04 53 57 50 42 00 85 12 D2 D2 80 10
-04 D3 03 52 52 41 85 12 D2 D2 00 11 12 D3 05 52
-52 41 2E 42 85 12 D2 D2 40 11 1E D3 03 53 58 54
-85 12 D2 D2 80 11 00 00 04 50 55 53 48 00 85 12
-D2 D2 00 12 38 D3 06 50 55 53 48 2E 42 00 85 12
-D2 D2 40 12 92 D2 04 43 41 4C 4C 00 85 12 D2 D2
-80 12 1A 53 0E 4A 0D 12 84 12 C4 C6 14 C2 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 36 C3 2C D3
-03 53 3E 3D 86 12 00 38 80 D3 02 53 3C 00 86 12
-00 34 46 D3 03 30 3E 3D 86 12 00 30 94 D3 02 30
-3C 00 86 12 00 30 00 00 02 55 3C 00 86 12 00 2C
-A8 D3 03 55 3E 3D 86 12 00 28 9E D3 03 30 3C 3E
-86 12 00 24 BC D3 02 30 3D 00 86 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 B2 D3 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
-B1 2F 88 DA 00 00 30 4D 42 D2 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 56 D3 05 42 45 47 49 4E 30 40
-28 C2 E6 D3 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 8A 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D
-C6 D2 05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
-00 00 05 57 48 49 4C 45 0D 12 84 12 D4 D3 A8 C5
-4E C6 8A D3 06 52 45 50 45 41 54 00 0D 12 84 12
-68 D4 EC D3 4E C6 98 D4 3D 41 08 4E 3E 4F 2A 48
-B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D 28 D4
-03 42 57 31 85 12 96 D4 00 00 B0 D4 03 42 57 32
-85 12 96 D4 00 00 BC D4 03 42 57 33 85 12 96 D4
-00 00 D4 D4 3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D
-88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 85 12 D2 D4 00 00 F4 D4
-03 46 57 32 85 12 D2 D4 00 00 00 D5 03 46 57 33
-85 12 D2 D4 00 00 0C D5 04 47 4F 54 4F 00 2F 83
-8F 4E 00 00 3E 40 00 3C 0D 12 84 12 80 CA DC C9
-4E C6 00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27
+30 03 3E 93 08 24 3C 40 30 00 19 42 C8 1D A2 53
+C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 22 CF F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 6E CF 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 72 CF 92 92 C2 1D C6 1D 02 24 92 53
+C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 5A CF
+F2 3F 03 20 B0 12 72 CF F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 5A CF EA 3F
+0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42
+C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82
+C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A C2 00 13 5A CA 6C C7
+0A C2 2C 00 50 D0 94 CF 9E C5 5A D0 32 D0 A0 D0
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 90 D0 00 40 AC D0 0A 4D 4F 56 2E 42 85 12
+90 D0 40 40 00 00 06 41 44 44 85 12 90 D0 00 50
+C6 D0 0A 41 44 44 2E 42 85 12 90 D0 40 50 D2 D0
+08 41 44 44 43 00 85 12 90 D0 00 60 E0 D0 0C 41
+44 44 43 2E 42 00 85 12 90 D0 40 60 18 CD 08 53
+55 42 43 00 85 12 90 D0 00 70 FE D0 0C 53 55 42
+43 2E 42 00 85 12 90 D0 40 70 0C D1 06 53 55 42
+85 12 90 D0 00 80 1C D1 0A 53 55 42 2E 42 85 12
+90 D0 40 80 28 D1 06 43 4D 50 85 12 90 D0 00 90
+36 D1 0A 43 4D 50 2E 42 85 12 90 D0 40 90 00 00
+08 44 41 44 44 00 85 12 90 D0 00 A0 50 D1 0C 44
+41 44 44 2E 42 00 85 12 90 D0 40 A0 7E D0 06 42
+49 54 85 12 90 D0 00 B0 6E D1 0A 42 49 54 2E 42
+85 12 90 D0 40 B0 7A D1 06 42 49 43 85 12 90 D0
+00 C0 88 D1 0A 42 49 43 2E 42 85 12 90 D0 40 C0
+94 D1 06 42 49 53 85 12 90 D0 00 D0 A2 D1 0A 42
+49 53 2E 42 85 12 90 D0 40 D0 00 00 06 58 4F 52
+85 12 90 D0 00 E0 BC D1 0A 58 4F 52 2E 42 85 12
+90 D0 40 E0 EE D0 06 41 4E 44 85 12 90 D0 00 F0
+D6 D1 0A 41 4E 44 2E 42 85 12 90 D0 40 F0 9E C5
+50 D0 94 CF F6 D1 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F AE D1 06 52 52 43 85 12 EE D1
+00 10 08 D2 0A 52 52 43 2E 42 85 12 EE D1 40 10
+42 D1 08 53 57 50 42 00 85 12 EE D1 80 10 14 D2
+06 52 52 41 85 12 EE D1 00 11 30 D2 0A 52 52 41
+2E 42 85 12 EE D1 40 11 22 D2 06 53 58 54 85 12
+EE D1 80 11 00 00 08 50 55 53 48 00 85 12 EE D1
+00 12 56 D2 0C 50 55 53 48 2E 42 00 85 12 EE D1
+40 12 4A D2 08 43 41 4C 4C 00 85 12 EE D1 80 12
+1A 53 0E 4A 84 12 E0 C7 1E C2 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 C3 74 D2 06 53 3E 3D
+86 12 00 38 9C D2 04 53 3C 00 86 12 00 34 64 D2
+06 30 3E 3D 86 12 00 30 B0 D2 04 30 3C 00 86 12
+00 30 EC CC 04 55 3C 00 86 12 00 2C C4 D2 06 55
+3E 3D 86 12 00 28 BA D2 06 30 3C 3E 86 12 00 24
+D8 D2 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D
+5E D1 08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D CE D2 08 45 4C 53 45 00 1A 42 C8 1D
+BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00
+E3 3F 3C D2 0A 42 45 47 49 4E 30 40 32 C2 26 D3
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 1D 30 4D E2 D1 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 F0 D2 86 C6 6C C7 44 D3
+0C 52 45 50 45 41 54 00 0D 12 84 12 84 D3 08 D3
+6C C7 B4 D3 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D
+CB 2F 98 42 C8 1D 00 00 30 4D A0 D3 06 42 57 31
+85 12 B2 D3 00 00 CC D3 06 42 57 32 85 12 B2 D3
+00 00 D8 D3 06 42 57 33 85 12 B2 D3 00 00 F0 D3
+3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D
+86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 EE D3 00 00 14 D4
+06 46 57 32 85 12 EE D3 00 00 20 D4 06 46 57 33
+85 12 EE D3 00 00 8E D3 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 26 CB 32 CA
+6C C7 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
-02 CA 9C CF 56 D5 92 53 C4 1D 3E 40 2C 00 84 12
-1A C7 3E C8 34 C2 00 CA 32 D1 6C D5 0A 4E 3E 4F
-1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92
-E8 2E 8A 10 5A 06 A6 3E 84 D4 04 52 52 43 4D 00
-85 12 50 D5 50 00 9A D5 04 52 52 41 4D 00 85 12
-50 D5 50 01 A8 D5 04 52 4C 41 4D 00 85 12 50 D5
-50 02 B6 D5 04 52 52 55 4D 00 85 12 50 D5 50 03
-C6 D3 05 50 55 53 48 4D 85 12 50 D5 00 15 D2 D5
-04 50 4F 50 4D 00 85 12 50 D5 00 17
+5A D0 0A C2 2C 00 F0 C7 02 C9 AC C2 36 CB 9E C5
+50 D0 32 D0 86 D4 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E E4 D3 08 52 52 43 4D 00 85 12 70 D4 50 00
+B4 D4 08 52 52 41 4D 00 85 12 70 D4 50 01 C2 D4
+08 52 4C 41 4D 00 85 12 70 D4 50 02 D0 D4 08 52
+52 55 4D 00 85 12 70 D4 50 03 E2 D2 0A 50 55 53
+48 4D 85 12 70 D4 00 15 EC D4 08 50 4F 50 4D 00
+85 12 70 D4 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 82 C4
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 08 CF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 C6 C4
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 0E C4
 q
diff --git a/binaries/MSP_EXP430FR5739_1MHz_UART.txt b/binaries/MSP_EXP430FR5739_1MHz_UART.txt
deleted file mode 100644 (file)
index 24d8651..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF 02 D6 02 CE 34 01
-10 00 41 B3 94 C3 AA C2 DA C3 9C C3 94 C4 02 D6
-02 CE 7A C4 92 C5 24 C5 FE C4 3C 1D 60 C6 D4 C2
-E2 C2 EE C2 20 00 0A 00 00 00 00 00 00 00 00 00
-@C200
-B0 12 DA C3 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C2
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C2 39 40 22 18
-B2 49 78 C4 B2 49 90 C5 B2 49 22 C5 B2 49 FC C4
-B2 49 CA C2 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 CE CE 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C3 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 C2 0A C2 DE 1D E0 C5 32 C5
-14 C2 04 1B 5B 37 6D 00 5C C5 A8 C5 34 C2 86 C3
-14 C2 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C5 A0 C6 5C C5 14 C2 04 1B 5B 30 6D 00
-5C C5 28 CA 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C3 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C3 04 57 41 52 4D 00 B0 12
-9C C3 84 12 14 C2 07 0D 0A 1B 5B 37 6D 23 5C C5
-D6 C6 14 C2 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 5C C5
-0A C2 40 FF 28 C2 D4 C5 A0 C6 14 C2 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C2 86 C3 00 00 06 41
-43 43 45 50 54 00 30 40 7A C4 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C4 3C 40 D2 C4
-5D 15 B6 3E 21 52 3A 17 58 42 CC 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 CE 05 30 4D C8 C4 2D 83 92 B3 DC 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 DC 05
-FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53 DE 1D
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C4 2F 83
-8F 4E 00 00 B0 12 DA C3 92 B3 DC 05 FD 27 1E 42
-CC 05 B0 12 C8 C3 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C5 08 4E 3E 4F C8 3F 1A C5 04 45 43 48
-4F 00 B2 40 C2 48 C0 C4 82 43 DE 1D 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C4 92 43
-DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C5 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C5 7A C5 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C3 02 43 52 00 30 40
-92 C5 0D 12 84 12 14 C2 02 0D 0A 00 5C C5 60 C6
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C4 01 40
-2E 4E 30 4D DE C5 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 8A C5 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E C2 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 1A C6 02 23 53 00 0D 12
-84 12 1C C6 56 C6 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C6 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C5 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C6 4E C6 EE C2 8E C6 6A C6 5C C5 14 CA 20 C5
-60 C6 40 C5 01 2E 0E 93 E3 37 38 43 E2 3F 88 C6
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A C2 14 C2
-5A C9 0A C2 22 00 2C C7 FA C6 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-D4 C6 82 2E 22 00 0D 12 84 12 E4 C6 0A C2 5C C5
-5A C9 60 C6 18 C4 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C2 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C2 35 40 D4 C2
-30 4D 00 00 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 AE C8
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 C8
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C2 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 58 C9 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 C6 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A C6 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C2 14 CA 2C C7 D0 C9
-9C 26 3D 40 D8 C9 DE 3E DA C9 0A 4E 3E 4F 3D 40
-F4 C9 36 27 3D 40 CA C9 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 F6 C9 3E 4F 3D 40 CA C9 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 CB
-CC 3F FE C9 86 12 20 00 E6 C5 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 8E C5
-BC C2 C4 C9 C4 C5 F6 C5 14 C2 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C3 0A C2 40 FF 28 C2
-FE C5 14 C2 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C3 3A C2 3E CA 1A CA 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 C6 0A C2 2A C3 5A C9 60 C6 8E C7
-01 27 0D 12 84 12 14 CA 2C C7 94 C7 34 C2 12 CA
-60 C6 00 00 83 5B 27 5D 0D 12 84 12 92 CA 0A C2
-0A C2 5A C9 5A C9 60 C6 A4 CA 81 5B 82 43 BE 1D
-30 4D 0C C6 01 5D B2 43 BE 1D 30 4D C4 CA 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 CA 2C C7 94 C7 A8 C5
-34 C2 12 CA F6 C5 34 C2 06 CB 0A C2 0A C2 5A C9
-5A C9 0A C2 5A C9 5A C9 60 C6 BA CA 01 3A 30 12
-56 CB 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 14 CA
-2C C7 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C2 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C3 0C CB 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A C2 60 C6 5A C9 68 CB BC CA
-60 C6 BA C9 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D A4 C9 06 43 52 45
-41 54 45 00 B0 12 12 CB BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC CB 04 43 4F 44 45 00 B0 12 12 CB
-A2 82 C6 1D 0D 12 84 12 04 CE DE CD 60 C6 B4 CB
-07 48 44 4E 43 4F 44 45 B2 40 E2 CD DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 CB
-1E CE 3C CE 60 C6 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 1E CE 3C CE 60 C6
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F 00 CC 85 48 49 32 4C 4F 0D 12 84 12 28 C2
-AC CD 5A C9 BC CA F4 CB 60 C6 9A CB 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C CC 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C2 00 00 D8 C5 14 CA 2C C7
-AA C9 A0 C5 34 C2 14 CD AE C5 14 C2 06 5B 54 48
-45 4E 5D 00 86 CC EE CC AA CC CC CC 60 C6 AE C5
-14 C2 06 5B 45 4C 53 45 5D 00 86 CC 04 CD AA CC
-CA CC 60 C6 14 C2 04 5B 49 46 5D 00 86 CC CC CC
-3A C2 CA CC 82 C5 14 C2 05 0D 0A 6B 6F 20 5C C5
-BC C2 AC C2 3A C2 CC CC BA CC 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A CD 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 CA 2C C7
-94 C7 38 CD 60 C6 3E CD 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 CD F0 C5 60 C6 70 CD
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C C9
-06 4D 41 52 4B 45 52 00 B0 12 12 CB BA 40 85 12
-FC FF BA 40 6E CD FE FF 28 83 8A 48 00 00 BA 40
-AA C2 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A C2 CA 1D E8 C5 60 C6 85 12 B0 CD 78 CA E6 CB
-2C C5 90 CA 64 CC F6 C4 80 CD 12 C7 A8 CE BC CE
-9C C6 26 C7 00 00 58 CD CE CA F4 C7 00 00 85 12
-B0 CD 78 D4 DE D4 20 D4 2E D5 E6 D3 00 00 B2 D1
-00 00 F6 D5 DA D5 4A D4 88 D4 C2 D2 00 00 00 00
-4A D5 DC CD 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D B8 CD 36 CE 3C CE 4C CE 1A 42 20 18
-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
-DA CA 09 50 57 52 5F 53 54 41 54 45 85 12 44 CE
-02 D6 E0 C6 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 CE F3 3F 82 CE 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 90 CE 30 4D 94 CE 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A CF FE FF 29 83
-B9 40 02 C4 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 C4 B2 49 FA C2 B2 49 02 C2 B2 49 20 C4
-B2 49 F0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 04 29 83 89 43 00 1C FC 23
-92 D3 30 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 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
-18 42 00 18 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
-1E 42 08 18 82 43 08 18 1E D2 9E 01 B0 12 F8 C2
-1E C4 38 40 C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52
-C4 1D 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88
-82 4A C4 1D 30 4D 1C 15 0E 12 12 12 C4 1D 84 12
-2C C7 94 C7 F0 C5 34 C2 F2 CF 50 C8 34 C2 0C D0
-06 D0 F4 CF 3C 4E 3C 80 87 12 05 24 1C 53 02 20
-2E 4E 01 3C 2E 83 21 52 1B 17 30 41 0E D0 B2 41
-C4 1D 3E 41 84 12 0A C2 2B 00 2C C7 94 C7 F0 C5
-34 C2 2A D0 50 C8 34 C2 12 CA BA C5 2C C7 50 C8
-34 C2 12 CA 36 D0 3E 5F E7 3F 3E 40 28 00 B0 12
-D6 CF 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
-29 00 92 92 C0 1D C4 1D 02 20 30 40 80 CB 1C 15
-12 12 C4 1D 92 53 C4 1D 84 12 2C C7 50 C8 34 C2
-7E D0 74 D0 21 53 3E 90 10 00 C6 2B 7F 2D 80 D0
-B2 41 C4 1D C1 3F 0D 12 84 12 14 CA B2 CF 90 D0
-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 D6 CF 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 D6 CF ED 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 5E D0 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 5E D0 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E DA 3F B0 12 5E D0 FA 23 3C 50
-10 00 B0 12 3A D0 EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 0D 12 84 12 14 CA B2 CF 5C D1 FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12
-5E D0 E0 23 3C 50 80 00 B0 12 3A D0 DB 3F 00 00
-04 52 45 54 49 00 0D 12 84 12 0A C2 00 13 5A C9
-60 C6 0A C2 2C 00 86 D0 52 D1 9C D1 09 4B 2E 4E
-0E DC A2 3F 52 CC 03 4D 4F 56 85 12 92 D1 00 40
-A6 D1 05 4D 4F 56 2E 42 85 12 92 D1 40 40 00 00
-03 41 44 44 85 12 92 D1 00 50 C0 D1 05 41 44 44
-2E 42 85 12 92 D1 40 50 CC D1 04 41 44 44 43 00
-85 12 92 D1 00 60 DA D1 06 41 44 44 43 2E 42 00
-85 12 92 D1 40 60 80 D1 04 53 55 42 43 00 85 12
-92 D1 00 70 F8 D1 06 53 55 42 43 2E 42 00 85 12
-92 D1 40 70 06 D2 03 53 55 42 85 12 92 D1 00 80
-16 D2 05 53 55 42 2E 42 85 12 92 D1 40 80 28 CC
-03 43 4D 50 85 12 92 D1 00 90 30 D2 05 43 4D 50
-2E 42 85 12 92 D1 40 90 12 CC 04 44 41 44 44 00
-85 12 92 D1 00 A0 4A D2 06 44 41 44 44 2E 42 00
-85 12 92 D1 40 A0 3C D2 03 42 49 54 85 12 92 D1
-00 B0 68 D2 05 42 49 54 2E 42 85 12 92 D1 40 B0
-74 D2 03 42 49 43 85 12 92 D1 00 C0 82 D2 05 42
-49 43 2E 42 85 12 92 D1 40 C0 8E D2 03 42 49 53
-85 12 92 D1 00 D0 9C D2 05 42 49 53 2E 42 85 12
-92 D1 40 D0 00 00 03 58 4F 52 85 12 92 D1 00 E0
-B6 D2 05 58 4F 52 2E 42 85 12 92 D1 40 E0 E8 D1
-03 41 4E 44 85 12 92 D1 00 F0 D0 D2 05 41 4E 44
-2E 42 85 12 92 D1 40 F0 14 CA 86 D0 EE D2 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 22 D2
-03 52 52 43 85 12 E8 D2 00 10 00 D3 05 52 52 43
-2E 42 85 12 E8 D2 40 10 0C D3 04 53 57 50 42 00
-85 12 E8 D2 80 10 1A D3 03 52 52 41 85 12 E8 D2
-00 11 28 D3 05 52 52 41 2E 42 85 12 E8 D2 40 11
-34 D3 03 53 58 54 85 12 E8 D2 80 11 00 00 04 50
-55 53 48 00 85 12 E8 D2 00 12 4E D3 06 50 55 53
-48 2E 42 00 85 12 E8 D2 40 12 A8 D2 04 43 41 4C
-4C 00 85 12 E8 D2 80 12 1A 53 0E 4A 0D 12 84 12
-D6 C6 14 C2 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 36 C3 42 D3 03 53 3E 3D 86 12 00 38 96 D3
-02 53 3C 00 86 12 00 34 5C D3 03 30 3E 3D 86 12
-00 30 AA D3 02 30 3C 00 86 12 00 30 00 00 02 55
-3C 00 86 12 00 2C BE D3 03 55 3E 3D 86 12 00 28
-B4 D3 03 30 3C 3E 86 12 00 24 D2 D3 02 30 3D 00
-86 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 C8 D3 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 B1 2F 88 DA 00 00 30 4D 58 D2
-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 6C D3 05 42
-45 47 49 4E 30 40 28 C2 FC D3 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D DC D2 05 41 47 41 49 4E 0A 4E
-38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12
-84 12 EA D3 BA C5 60 C6 A0 D3 06 52 45 50 45 41
-54 00 0D 12 84 12 7E D4 02 D4 60 C6 AE D4 3D 41
-08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D
-00 00 30 4D 3E D4 03 42 57 31 85 12 AC D4 00 00
-C6 D4 03 42 57 32 85 12 AC D4 00 00 D2 D4 03 42
-57 33 85 12 AC D4 00 00 EA D4 3D 41 1A 42 C6 1D
-28 4E B2 92 C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12
-E8 D4 00 00 0A D5 03 46 57 32 85 12 E8 D4 00 00
-16 D5 03 46 57 33 85 12 E8 D4 00 00 22 D5 04 47
-4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
-84 12 92 CA EE C9 60 C6 00 00 05 3F 47 4F 54 4F
-3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
-3E E0 00 08 EC 3F 14 CA B2 CF 6C D5 92 53 C4 1D
-3E 40 2C 00 84 12 2C C7 50 C8 34 C2 12 CA 48 D1
-82 D5 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E
-5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 9A D4
-04 52 52 43 4D 00 85 12 66 D5 50 00 B0 D5 04 52
-52 41 4D 00 85 12 66 D5 50 01 BE D5 04 52 4C 41
-4D 00 85 12 66 D5 50 02 CC D5 04 52 52 55 4D 00
-85 12 66 D5 50 03 DC D3 05 50 55 53 48 4D 85 12
-66 D5 00 15 E8 D5 04 50 4F 50 4D 00 85 12 66 D5
-00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-94 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 1A CF
-q
diff --git a/binaries/MSP_EXP430FR5739_24MHz_115200.txt b/binaries/MSP_EXP430FR5739_24MHz_115200.txt
new file mode 100644 (file)
index 0000000..6d30d43
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+C0 5D 0D 00 01 49 18 00 FD FF 35 01 10 00 A1 59
+D0 C4 7E C3 84 C3 54 C3 40 C5 2E D5 E6 CD A0 CD
+A0 CD B6 C4 74 C5 3C C5 3C 1D E0 1C 94 C7 B6 C2
+C4 C2 B0 C6 20 00 0A 00 00 1C 7E C3 84 C3 54 C3
+40 C5 2E D5 E6 CD A0 CD A0 CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C200
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 03 3D 0E 93 3E 4F
+98 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B4 C4 B2 49
+72 C5 B2 49 3A C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 5A CE 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 40 C5 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 C2 BA C6 AC C2 52 C3 82 C5 1E C2 04 1B
+5B 37 6D 00 A4 C5 A4 C5 1E C2 04 1B 5B 30 6D 00
+A4 C5 F0 CA B0 12 7E C3 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 82 C5 1E C2
+07 0D 0A 1B 5B 37 6D 23 A4 C5 08 C8 1E C2 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A4 C5 0A C2 40 FF 32 C2
+D0 C6 D4 C7 1E C2 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C2 46 C3 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C3 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+92 D3 30 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 B2 40 33 00 64 01 D2 43 61 01
+39 40 40 00 18 42 00 18 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
+19 42 9E 01 1E 42 08 18 82 43 08 18 3E F3 01 20
+0E 49 B0 12 D0 C2 86 C3 00 00 0C 41 43 43 45 50
+54 00 30 40 B6 C4 08 4E 2E 4F 08 5E 39 40 0D 00
+3A 40 20 00 3B 40 14 C5 3C 40 20 C5 5D 15 98 3E
+21 52 3A 17 58 42 CC 05 48 9B 09 20 A2 B3 DC 05
+FD 27 B2 40 13 00 CE 05 E2 D2 03 02 30 41 48 9C
+06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A
+03 2C CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 C2 48
+CE 05 30 4D 16 C5 2D 83 92 B3 DC 05 DB 23 FC 3F
+3E 8F 3D 41 92 B3 DC 05 FD 27 58 42 CC 05 08 4C
+EB 3F 00 00 06 4B 45 59 30 40 3C C5 30 12 52 C5
+A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C2 03 02
+30 41 2F 83 8F 4E 00 00 92 B3 DC 05 FD 27 B0 12
+DC C4 1E 42 CC 05 30 4D 00 00 08 45 4D 49 54 00
+30 40 74 C5 08 4E 3E 4F C7 3F 6A C5 08 45 43 48
+4F 00 B2 40 C2 48 0E C5 30 4D 00 00 0C 4E 4F 45
+43 48 4F 00 B2 40 30 4D 0E C5 30 4D 00 00 08 54
+59 50 45 00 0D 12 3D 40 B4 C5 29 4F 8F 4E 00 00
+7E 49 DE 3F B6 C5 2D 83 2F 83 5E 83 F7 23 3D 41
+2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F
+39 4F 3E 4F 6E 22 F9 98 00 00 6B 22 19 53 1C 83
+FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 62 22 9B 24
+34 C5 0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C2
+00 00 D4 C6 C6 C5 18 C8 D2 CA B0 C2 42 C6 14 C2
+06 5B 54 48 45 4E 5D 00 CA C5 20 C6 E6 C5 04 C6
+14 C2 06 5B 45 4C 53 45 5D 00 CA C5 32 C6 E6 C5
+02 C6 1E C2 04 5B 49 46 5D 00 CA C5 04 C6 B2 C2
+02 C6 1E C2 05 0D 6B 6F 20 0A A4 C5 9A C2 84 C2
+B2 C2 04 C6 F2 C5 0D 5B 54 48 45 4E 5D 00 30 4D
+56 C6 09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
+62 C6 13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12
+C6 C5 18 C8 80 C8 24 CA 94 C7 72 C6 17 5B 55 4E
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C6 C5 18 C8
+80 C8 A4 C6 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12
+2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83
+30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F
+3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D
+AA C4 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E
+3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C3 05 53
+22 00 82 43 C0 1D 0D 12 84 12 0A C2 1E C2 82 CA
+0A C2 22 00 18 C8 18 C7 B2 40 20 00 C0 1D 1A 53
+1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D 8C C5 05 2E
+22 00 0D 12 84 12 02 C7 0A C2 A4 C5 82 CA 94 C7
+00 00 04 3C 23 00 B2 40 B2 1D B2 1D 30 4D FE C6
+02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12 46 C2 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 50 C7
+04 23 53 00 0D 12 84 12 52 C7 8C C7 2D 83 09 DE
+09 93 E1 23 3D 41 30 4D 80 C7 04 23 3E 00 9F 42
+B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48
+4F 4C 44 00 4A 4E 3E 4F DB 3F 9A C7 08 53 49 47
+4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 7C C5
+04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15
+3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
+84 12 46 C7 C6 C5 B4 C7 84 C7 B0 C6 C2 C7 9E C7
+A4 C5 94 C7 2E C7 02 2E 0E 93 E4 37 3C 43 E3 3F
+00 00 08 57 4F 52 44 00 3C 40 C2 1D 39 4C 38 4C
+09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83
+1B 42 C0 1D F8 90 27 00 00 00 04 20 E8 98 02 00
+01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C
+09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F
+4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D
+0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00
+2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C
+01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF
+0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C
+FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
+0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D
+06 C8 0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F
+38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00
+03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3
+0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82
+8F 4E 06 00 08 43 09 43 1B 42 BE 1D 0C 4E 0E 43
+1E 15 3D 40 8A C9 7E 4C 6A 4C 7A 80 2D 00 16 24
+CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40
+10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20
+FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00
+1E 83 FC 9C 00 00 E0 23 AE 27 8C C9 2F 24 2D 83
+6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0
+00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43
+8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00
+03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C
+8F 49 00 00 0E 4B 2C 15 B0 12 3E C2 2A 17 E8 3F
+9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 42 C7 03 5C 92 42 C2 1D
+C6 1D 30 4D 0D 12 84 12 84 C2 C6 C5 18 C8 B0 C2
+5C CB 80 C8 46 CA 0A 4E 3E 4F 3D 40 60 CA 6D 27
+3D 40 3A CA 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41
+62 CA 3E 4F 3D 40 3A CA 19 20 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 38 CC 2A 3C 2A CA
+02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F
+30 4D 80 CA 0F 4C 49 54 45 52 41 4C 82 93 BC 1D
+0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A C2
+00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
+03 24 8A 4E 02 00 EE 3F 30 4D BC C7 0A 43 4F 55
+4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D
+E2 C6 0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D
+3F 40 80 1C 0E 43 84 12 1E C2 02 0D 0A 00 A4 C5
+94 C2 34 CA C2 C6 EC C6 1E C2 0B 73 74 61 63 6B
+20 65 6D 70 74 79 08 C3 32 C2 0A C2 40 FF F4 C6
+1E C2 09 46 52 41 4D 20 66 75 6C 6C 08 C3 B2 C2
+F8 CA E2 CA 0D 41 42 4F 52 54 22 00 0D 12 84 12
+02 C7 0A C2 08 C3 82 CA 94 C7 12 C8 02 27 0D 12
+84 12 C6 C5 18 C8 80 C8 B0 C2 5E CB 26 C7 6A CA
+8C C6 07 5B 27 5D 0D 12 84 12 4E CB 0A C2 0A C2
+82 CA 82 CA 94 C7 62 CB 03 5B 82 43 BC 1D 30 4D
+00 00 02 5D B2 43 BC 1D 30 4D DA C6 11 50 4F 53
+54 50 4F 4E 45 00 0D 12 84 12 C6 C5 18 C8 80 C8
+B0 C2 5E CB EC C6 AC C2 B6 CB 0A C2 0A C2 82 CA
+82 CA 0A C2 82 CA 82 CA 94 C7 00 00 02 3A 30 12
+0C CC 92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 C6 C5
+18 C8 D4 CB 3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D
+08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F
+E8 58 00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D
+82 4F BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12
+FC FF BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F
+BA 1D 66 25 84 12 1E C2 0F 73 74 61 63 6B 20 6D
+69 73 6D 61 74 63 68 21 12 C3 78 CB 03 3B 82 93
+BC 1D F4 26 0D 12 84 12 0A C2 94 C7 82 CA 1E CC
+7A CB 94 C7 00 00 12 49 4D 4D 45 44 49 41 54 45
+18 42 B4 1D D8 D3 00 00 30 4D CC CA 0C 43 52 45
+41 54 45 00 B0 12 C2 CB BA 40 86 12 FC FF 8A 4A
+FE FF 3A 3D 9E C5 0A 44 4F 45 53 3E 1A 42 B8 1D
+BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D BC CB
+0E 3A 4E 4F 4E 41 4D 45 30 12 0C CC 2F 83 8F 4E
+00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02
+08 49 98 3F 56 CC 05 49 53 00 0D 12 82 93 BC 1D
+08 20 84 12 4E CB D8 CC 3D 41 BE 4F 02 00 3E 4F
+30 4D 84 12 66 CB 0A C2 DA CC 82 CA 94 C7 6C CC
+08 43 4F 44 45 00 B0 12 C2 CB A2 82 C8 1D 61 3C
+AE C7 0E 48 44 4E 43 4F 44 45 B2 40 C6 CD CC 1D
+F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12
+1E CC 24 CD 3D 41 92 42 D0 1D CC 1D 5D 3C F0 CC
+0E 43 4F 44 45 4E 4E 4D 30 12 FA CC B7 3F 00 00
+0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12 00 00
+BA 40 84 12 02 00 A2 52 C8 1D B2 43 BC 1D E3 3F
+00 00 0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D
+EF 3F 02 CD 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42
+C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F 8E CD B2 40
+A0 CD D0 1D 82 4E CE 1D 30 40 26 C7 85 12 8C CD
+8C CB 34 CB 1E CE 30 CD 86 CC D0 C7 7A C8 4C CB
+74 CD C6 CC A0 CC 3C CC 94 CA A8 CE D2 C8 00 00
+00 00 85 12 8C CD 22 D5 A6 D3 06 D5 CE D2 2A D3
+78 D3 54 D4 60 D4 F0 D1 14 D3 00 00 00 00 62 CD
+E0 D0 00 00 7C D4 C0 CD B2 40 A0 CD CE 1D 82 43
+D0 1D 30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83
+FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54 39 40
+C8 1D 3A 40 42 18 B0 12 F4 CD 30 4D 06 CE 0E 52
+53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 1D
+B0 12 F4 CD 1A 42 CA 1D 3B 40 10 00 09 4A 08 49
+29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83
+F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40
+10 00 29 83 B9 43 80 FF FC 23 B9 40 06 C4 FE FF
+29 83 B9 40 F2 C3 FE FF 39 90 AE FF F9 23 39 40
+10 18 B2 49 F0 FF 3B 40 10 00 3A 40 3A 18 B0 12
+F8 CD 82 43 4A 18 C7 3F 9A CE B2 4E 42 18 BE 12
+3E 4F 3D 41 C0 3F 82 CB 0C 4D 41 52 4B 45 52 00
+12 12 C6 1D 0D 12 84 12 C6 C5 18 C8 80 C8 AC C2
+C6 CE BA C6 5A CA C8 CE 3E 4F 3D 41 B2 41 C6 1D
+B0 12 C2 CB BA 40 85 12 FC FF BA 40 98 CE FE FF
+28 83 8A 48 00 00 BA 40 82 C2 02 00 A2 52 C8 1D
+18 42 B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00
+30 4D 12 12 C6 1D 84 12 18 C8 80 C8 AC C2 32 CF
+12 CF 3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E
+06 3C BE 90 98 CE 00 00 01 20 3E 52 2E 83 21 53
+30 41 2A C9 AC C2 3A CF 2E CF 3C CF B2 41 C6 1D
+30 41 92 83 C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12
+02 CF 15 20 3E 40 2B 00 B0 12 02 CF 06 20 3E 40
+2D 00 B0 12 02 CF 92 83 C6 1D 0E 12 1E 41 02 00
+84 12 18 C8 2A C9 AC C2 5E CB 7C CF 3E 51 3A 17
+30 41 B0 12 42 CF 19 42 C8 1D 89 4E 00 00 A2 53
+C8 1D 3E 40 29 00 92 53 C6 1D 1A 42 C6 1D 3D 15
+84 12 18 C8 2A C9 AC C2 B4 CF AC CF 3E 90 10 00
+E6 2B 7C 2D B6 CF A2 41 C6 1D E1 3F 03 20 B0 12
+9A CF 43 3C 7A 90 23 00 24 20 B0 12 4A CF 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 C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F
+30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12 4A CF
+F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12 96 CF
+0C 20 3C D0 10 00 3E 40 2B 00 B0 12 9A CF 92 92
+C2 1D C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E DF 3F
+3C D0 10 00 B0 12 82 CF F2 3F 03 20 B0 12 9A CF
+F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0
+80 00 B0 12 82 CF EA 3F 0C 43 1B 42 C8 1D A2 53
+C8 1D 3A 40 20 00 19 42 C6 1D 19 52 C4 1D 7A 99
+FE 27 5A 49 FF FF 19 82 C4 1D 82 49 C6 1D 7A 90
+52 00 30 4D 00 00 08 52 45 54 49 00 0D 12 84 12
+0A C2 00 13 82 CA 94 C7 0A C2 2C 00 78 D0 BC CF
+C6 C5 82 D0 5A D0 C8 D0 3D 41 2C DE 8B 4C 00 00
+9E 3F 00 00 06 4D 4F 56 85 12 B8 D0 00 40 D4 D0
+0A 4D 4F 56 2E 42 85 12 B8 D0 40 40 00 00 06 41
+44 44 85 12 B8 D0 00 50 EE D0 0A 41 44 44 2E 42
+85 12 B8 D0 40 50 FA D0 08 41 44 44 43 00 85 12
+B8 D0 00 60 08 D1 0C 41 44 44 43 2E 42 00 85 12
+B8 D0 40 60 40 CD 08 53 55 42 43 00 85 12 B8 D0
+00 70 26 D1 0C 53 55 42 43 2E 42 00 85 12 B8 D0
+40 70 34 D1 06 53 55 42 85 12 B8 D0 00 80 44 D1
+0A 53 55 42 2E 42 85 12 B8 D0 40 80 50 D1 06 43
+4D 50 85 12 B8 D0 00 90 5E D1 0A 43 4D 50 2E 42
+85 12 B8 D0 40 90 00 00 08 44 41 44 44 00 85 12
+B8 D0 00 A0 78 D1 0C 44 41 44 44 2E 42 00 85 12
+B8 D0 40 A0 A6 D0 06 42 49 54 85 12 B8 D0 00 B0
+96 D1 0A 42 49 54 2E 42 85 12 B8 D0 40 B0 A2 D1
+06 42 49 43 85 12 B8 D0 00 C0 B0 D1 0A 42 49 43
+2E 42 85 12 B8 D0 40 C0 BC D1 06 42 49 53 85 12
+B8 D0 00 D0 CA D1 0A 42 49 53 2E 42 85 12 B8 D0
+40 D0 00 00 06 58 4F 52 85 12 B8 D0 00 E0 E4 D1
+0A 58 4F 52 2E 42 85 12 B8 D0 40 E0 16 D1 06 41
+4E 44 85 12 B8 D0 00 F0 FE D1 0A 41 4E 44 2E 42
+85 12 B8 D0 40 F0 C6 C5 78 D0 BC CF 1E D2 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F D6 D1
+06 52 52 43 85 12 16 D2 00 10 30 D2 0A 52 52 43
+2E 42 85 12 16 D2 40 10 6A D1 08 53 57 50 42 00
+85 12 16 D2 80 10 3C D2 06 52 52 41 85 12 16 D2
+00 11 58 D2 0A 52 52 41 2E 42 85 12 16 D2 40 11
+4A D2 06 53 58 54 85 12 16 D2 80 11 00 00 08 50
+55 53 48 00 85 12 16 D2 00 12 7E D2 0C 50 55 53
+48 2E 42 00 85 12 16 D2 40 12 72 D2 08 43 41 4C
+4C 00 85 12 16 D2 80 12 1A 53 0E 4A 84 12 08 C8
+1E C2 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+12 C3 9C D2 06 53 3E 3D 86 12 00 38 C4 D2 04 53
+3C 00 86 12 00 34 8C D2 06 30 3E 3D 86 12 00 30
+D8 D2 04 30 3C 00 86 12 00 30 14 CD 04 55 3C 00
+86 12 00 2C EC D2 06 55 3E 3D 86 12 00 28 E2 D2
+06 30 3C 3E 86 12 00 24 00 D3 04 30 3D 00 86 12
+00 20 00 00 04 49 46 00 1A 42 C8 1D 8A 4E 00 00
+A2 53 C8 1D 0E 4A 30 4D 86 D1 08 54 48 45 4E 00
+1A 42 C8 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
+3A 90 00 02 B2 2F 88 DA 00 00 30 4D F6 D2 08 45
+4C 53 45 00 1A 42 C8 1D BA 40 00 3C 00 00 A2 53
+C8 1D 2F 83 8F 4A 00 00 E3 3F 64 D2 0A 42 45 47
+49 4E 30 40 32 C2 4E D3 0A 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11 3A 90
+00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C8 1D 30 4D 0A D2 0A 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12
+18 D3 AE C6 94 C7 6C D3 0C 52 45 50 45 41 54 00
+0D 12 84 12 AC D3 30 D3 94 C7 DC D3 3D 41 08 4E
+3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D 00 00
+30 4D C8 D3 06 42 57 31 85 12 DA D3 00 00 F4 D3
+06 42 57 32 85 12 DA D3 00 00 00 D4 06 42 57 33
+85 12 DA D3 00 00 18 D4 3D 41 1A 42 C8 1D 28 4E
+8E 43 00 00 B2 92 C6 1D 86 2B BA 4F 00 00 A2 53
+C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31
+85 12 16 D4 00 00 3C D4 06 46 57 32 85 12 16 D4
+00 00 48 D4 06 46 57 33 85 12 16 D4 00 00 B6 D3
+08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
+0D 12 84 12 4E CB 5A CA 94 C7 00 00 0A 3F 47 4F
+54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
+EF 27 3E E0 00 08 EC 3F 82 D0 0A C2 2C 00 18 C8
+2A C9 AC C2 5E CB C6 C5 78 D0 5A D0 AE D4 0A 4E
+3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E
+2A 92 EA 2E 8A 10 5A 06 A8 3E 0C D4 08 52 52 43
+4D 00 85 12 98 D4 50 00 DC D4 08 52 52 41 4D 00
+85 12 98 D4 50 01 EA D4 08 52 4C 41 4D 00 85 12
+98 D4 50 02 F8 D4 08 52 52 55 4D 00 85 12 98 D4
+50 03 0A D3 0A 50 55 53 48 4D 85 12 98 D4 00 15
+14 D5 08 50 4F 50 4D 00 85 12 98 D4 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+D0 C4 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 06 C4
+q
diff --git a/binaries/MSP_EXP430FR5739_24MHz_6MBds.txt b/binaries/MSP_EXP430FR5739_24MHz_6MBds.txt
new file mode 100644 (file)
index 0000000..f32dbcd
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+C0 5D 04 00 00 00 18 00 FD FF 35 01 10 00 A1 59
+D0 C4 7E C3 84 C3 54 C3 40 C5 2E D5 E6 CD A0 CD
+A0 CD B6 C4 74 C5 3C C5 3C 1D E0 1C 94 C7 B6 C2
+C4 C2 B0 C6 20 00 0A 00 00 1C 7E C3 84 C3 54 C3
+40 C5 2E D5 E6 CD A0 CD A0 CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C200
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 03 3D 0E 93 3E 4F
+98 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B4 C4 B2 49
+72 C5 B2 49 3A C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 5A CE 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 40 C5 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 C2 BA C6 AC C2 52 C3 82 C5 1E C2 04 1B
+5B 37 6D 00 A4 C5 A4 C5 1E C2 04 1B 5B 30 6D 00
+A4 C5 F0 CA B0 12 7E C3 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 82 C5 1E C2
+07 0D 0A 1B 5B 37 6D 23 A4 C5 08 C8 1E C2 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 A4 C5 0A C2 40 FF 32 C2
+D0 C6 D4 C7 1E C2 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C2 46 C3 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C3 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+92 D3 30 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 B2 40 33 00 64 01 D2 43 61 01
+39 40 40 00 18 42 00 18 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
+19 42 9E 01 1E 42 08 18 82 43 08 18 3E F3 01 20
+0E 49 B0 12 D0 C2 86 C3 00 00 0C 41 43 43 45 50
+54 00 30 40 B6 C4 08 4E 2E 4F 08 5E 39 40 0D 00
+3A 40 20 00 3B 40 14 C5 3C 40 20 C5 5D 15 98 3E
+21 52 3A 17 58 42 CC 05 48 9B 09 20 A2 B3 DC 05
+FD 27 B2 40 13 00 CE 05 E2 D2 03 02 30 41 48 9C
+06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A
+03 2C CE 48 00 00 1E 53 A2 B3 DC 05 FD 27 C2 48
+CE 05 30 4D 16 C5 2D 83 92 B3 DC 05 DB 23 FC 3F
+3E 8F 3D 41 92 B3 DC 05 FD 27 58 42 CC 05 08 4C
+EB 3F 00 00 06 4B 45 59 30 40 3C C5 30 12 52 C5
+A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C2 03 02
+30 41 2F 83 8F 4E 00 00 92 B3 DC 05 FD 27 B0 12
+DC C4 1E 42 CC 05 30 4D 00 00 08 45 4D 49 54 00
+30 40 74 C5 08 4E 3E 4F C7 3F 6A C5 08 45 43 48
+4F 00 B2 40 C2 48 0E C5 30 4D 00 00 0C 4E 4F 45
+43 48 4F 00 B2 40 30 4D 0E C5 30 4D 00 00 08 54
+59 50 45 00 0D 12 3D 40 B4 C5 29 4F 8F 4E 00 00
+7E 49 DE 3F B6 C5 2D 83 2F 83 5E 83 F7 23 3D 41
+2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F
+39 4F 3E 4F 6E 22 F9 98 00 00 6B 22 19 53 1C 83
+FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 62 22 9B 24
+34 C5 0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A C2
+00 00 D4 C6 C6 C5 18 C8 D2 CA B0 C2 42 C6 14 C2
+06 5B 54 48 45 4E 5D 00 CA C5 20 C6 E6 C5 04 C6
+14 C2 06 5B 45 4C 53 45 5D 00 CA C5 32 C6 E6 C5
+02 C6 1E C2 04 5B 49 46 5D 00 CA C5 04 C6 B2 C2
+02 C6 1E C2 05 0D 6B 6F 20 0A A4 C5 9A C2 84 C2
+B2 C2 04 C6 F2 C5 0D 5B 54 48 45 4E 5D 00 30 4D
+56 C6 09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
+62 C6 13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12
+C6 C5 18 C8 80 C8 24 CA 94 C7 72 C6 17 5B 55 4E
+44 45 46 49 4E 45 44 5D 0D 12 84 12 C6 C5 18 C8
+80 C8 A4 C6 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12
+2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83
+30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F
+3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D
+AA C4 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E
+3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 C3 05 53
+22 00 82 43 C0 1D 0D 12 84 12 0A C2 1E C2 82 CA
+0A C2 22 00 18 C8 18 C7 B2 40 20 00 C0 1D 1A 53
+1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D 8C C5 05 2E
+22 00 0D 12 84 12 02 C7 0A C2 A4 C5 82 CA 94 C7
+00 00 04 3C 23 00 B2 40 B2 1D B2 1D 30 4D FE C6
+02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12 46 C2 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 50 C7
+04 23 53 00 0D 12 84 12 52 C7 8C C7 2D 83 09 DE
+09 93 E1 23 3D 41 30 4D 80 C7 04 23 3E 00 9F 42
+B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48
+4F 4C 44 00 4A 4E 3E 4F DB 3F 9A C7 08 53 49 47
+4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 7C C5
+04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15
+3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
+84 12 46 C7 C6 C5 B4 C7 84 C7 B0 C6 C2 C7 9E C7
+A4 C5 94 C7 2E C7 02 2E 0E 93 E4 37 3C 43 E3 3F
+00 00 08 57 4F 52 44 00 3C 40 C2 1D 39 4C 38 4C
+09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83
+1B 42 C0 1D F8 90 27 00 00 00 04 20 E8 98 02 00
+01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C
+09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F
+4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D
+0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00
+2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C
+01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF
+0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C
+FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
+0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D
+06 C8 0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F
+38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00
+03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3
+0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82
+8F 4E 06 00 08 43 09 43 1B 42 BE 1D 0C 4E 0E 43
+1E 15 3D 40 8A C9 7E 4C 6A 4C 7A 80 2D 00 16 24
+CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40
+10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20
+FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00
+1E 83 FC 9C 00 00 E0 23 AE 27 8C C9 2F 24 2D 83
+6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0
+00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43
+8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00
+03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C
+8F 49 00 00 0E 4B 2C 15 B0 12 3E C2 2A 17 E8 3F
+9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 42 C7 03 5C 92 42 C2 1D
+C6 1D 30 4D 0D 12 84 12 84 C2 C6 C5 18 C8 B0 C2
+5C CB 80 C8 46 CA 0A 4E 3E 4F 3D 40 60 CA 6D 27
+3D 40 3A CA 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41
+62 CA 3E 4F 3D 40 3A CA 19 20 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 38 CC 2A 3C 2A CA
+02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F
+30 4D 80 CA 0F 4C 49 54 45 52 41 4C 82 93 BC 1D
+0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A C2
+00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
+03 24 8A 4E 02 00 EE 3F 30 4D BC C7 0A 43 4F 55
+4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D
+E2 C6 0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D
+3F 40 80 1C 0E 43 84 12 1E C2 02 0D 0A 00 A4 C5
+94 C2 34 CA C2 C6 EC C6 1E C2 0B 73 74 61 63 6B
+20 65 6D 70 74 79 08 C3 32 C2 0A C2 40 FF F4 C6
+1E C2 09 46 52 41 4D 20 66 75 6C 6C 08 C3 B2 C2
+F8 CA E2 CA 0D 41 42 4F 52 54 22 00 0D 12 84 12
+02 C7 0A C2 08 C3 82 CA 94 C7 12 C8 02 27 0D 12
+84 12 C6 C5 18 C8 80 C8 B0 C2 5E CB 26 C7 6A CA
+8C C6 07 5B 27 5D 0D 12 84 12 4E CB 0A C2 0A C2
+82 CA 82 CA 94 C7 62 CB 03 5B 82 43 BC 1D 30 4D
+00 00 02 5D B2 43 BC 1D 30 4D DA C6 11 50 4F 53
+54 50 4F 4E 45 00 0D 12 84 12 C6 C5 18 C8 80 C8
+B0 C2 5E CB EC C6 AC C2 B6 CB 0A C2 0A C2 82 CA
+82 CA 0A C2 82 CA 82 CA 94 C7 00 00 02 3A 30 12
+0C CC 92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 C6 C5
+18 C8 D4 CB 3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D
+08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F
+E8 58 00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D
+82 4F BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12
+FC FF BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F
+BA 1D 66 25 84 12 1E C2 0F 73 74 61 63 6B 20 6D
+69 73 6D 61 74 63 68 21 12 C3 78 CB 03 3B 82 93
+BC 1D F4 26 0D 12 84 12 0A C2 94 C7 82 CA 1E CC
+7A CB 94 C7 00 00 12 49 4D 4D 45 44 49 41 54 45
+18 42 B4 1D D8 D3 00 00 30 4D CC CA 0C 43 52 45
+41 54 45 00 B0 12 C2 CB BA 40 86 12 FC FF 8A 4A
+FE FF 3A 3D 9E C5 0A 44 4F 45 53 3E 1A 42 B8 1D
+BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D BC CB
+0E 3A 4E 4F 4E 41 4D 45 30 12 0C CC 2F 83 8F 4E
+00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02
+08 49 98 3F 56 CC 05 49 53 00 0D 12 82 93 BC 1D
+08 20 84 12 4E CB D8 CC 3D 41 BE 4F 02 00 3E 4F
+30 4D 84 12 66 CB 0A C2 DA CC 82 CA 94 C7 6C CC
+08 43 4F 44 45 00 B0 12 C2 CB A2 82 C8 1D 61 3C
+AE C7 0E 48 44 4E 43 4F 44 45 B2 40 C6 CD CC 1D
+F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12
+1E CC 24 CD 3D 41 92 42 D0 1D CC 1D 5D 3C F0 CC
+0E 43 4F 44 45 4E 4E 4D 30 12 FA CC B7 3F 00 00
+0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12 00 00
+BA 40 84 12 02 00 A2 52 C8 1D B2 43 BC 1D E3 3F
+00 00 0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D
+EF 3F 02 CD 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42
+C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F 8E CD B2 40
+A0 CD D0 1D 82 4E CE 1D 30 40 26 C7 85 12 8C CD
+8C CB 34 CB 1E CE 30 CD 86 CC D0 C7 7A C8 4C CB
+74 CD C6 CC A0 CC 3C CC 94 CA A8 CE D2 C8 00 00
+00 00 85 12 8C CD 22 D5 A6 D3 06 D5 CE D2 2A D3
+78 D3 54 D4 60 D4 F0 D1 14 D3 00 00 00 00 62 CD
+E0 D0 00 00 7C D4 C0 CD B2 40 A0 CD CE 1D 82 43
+D0 1D 30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83
+FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54 39 40
+C8 1D 3A 40 42 18 B0 12 F4 CD 30 4D 06 CE 0E 52
+53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 1D
+B0 12 F4 CD 1A 42 CA 1D 3B 40 10 00 09 4A 08 49
+29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83
+F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40
+10 00 29 83 B9 43 80 FF FC 23 B9 40 06 C4 FE FF
+29 83 B9 40 F2 C3 FE FF 39 90 AE FF F9 23 39 40
+10 18 B2 49 F0 FF 3B 40 10 00 3A 40 3A 18 B0 12
+F8 CD 82 43 4A 18 C7 3F 9A CE B2 4E 42 18 BE 12
+3E 4F 3D 41 C0 3F 82 CB 0C 4D 41 52 4B 45 52 00
+12 12 C6 1D 0D 12 84 12 C6 C5 18 C8 80 C8 AC C2
+C6 CE BA C6 5A CA C8 CE 3E 4F 3D 41 B2 41 C6 1D
+B0 12 C2 CB BA 40 85 12 FC FF BA 40 98 CE FE FF
+28 83 8A 48 00 00 BA 40 82 C2 02 00 A2 52 C8 1D
+18 42 B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00
+30 4D 12 12 C6 1D 84 12 18 C8 80 C8 AC C2 32 CF
+12 CF 3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E
+06 3C BE 90 98 CE 00 00 01 20 3E 52 2E 83 21 53
+30 41 2A C9 AC C2 3A CF 2E CF 3C CF B2 41 C6 1D
+30 41 92 83 C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12
+02 CF 15 20 3E 40 2B 00 B0 12 02 CF 06 20 3E 40
+2D 00 B0 12 02 CF 92 83 C6 1D 0E 12 1E 41 02 00
+84 12 18 C8 2A C9 AC C2 5E CB 7C CF 3E 51 3A 17
+30 41 B0 12 42 CF 19 42 C8 1D 89 4E 00 00 A2 53
+C8 1D 3E 40 29 00 92 53 C6 1D 1A 42 C6 1D 3D 15
+84 12 18 C8 2A C9 AC C2 B4 CF AC CF 3E 90 10 00
+E6 2B 7C 2D B6 CF A2 41 C6 1D E1 3F 03 20 B0 12
+9A CF 43 3C 7A 90 23 00 24 20 B0 12 4A CF 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 C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F
+30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12 4A CF
+F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12 96 CF
+0C 20 3C D0 10 00 3E 40 2B 00 B0 12 9A CF 92 92
+C2 1D C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E DF 3F
+3C D0 10 00 B0 12 82 CF F2 3F 03 20 B0 12 9A CF
+F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0
+80 00 B0 12 82 CF EA 3F 0C 43 1B 42 C8 1D A2 53
+C8 1D 3A 40 20 00 19 42 C6 1D 19 52 C4 1D 7A 99
+FE 27 5A 49 FF FF 19 82 C4 1D 82 49 C6 1D 7A 90
+52 00 30 4D 00 00 08 52 45 54 49 00 0D 12 84 12
+0A C2 00 13 82 CA 94 C7 0A C2 2C 00 78 D0 BC CF
+C6 C5 82 D0 5A D0 C8 D0 3D 41 2C DE 8B 4C 00 00
+9E 3F 00 00 06 4D 4F 56 85 12 B8 D0 00 40 D4 D0
+0A 4D 4F 56 2E 42 85 12 B8 D0 40 40 00 00 06 41
+44 44 85 12 B8 D0 00 50 EE D0 0A 41 44 44 2E 42
+85 12 B8 D0 40 50 FA D0 08 41 44 44 43 00 85 12
+B8 D0 00 60 08 D1 0C 41 44 44 43 2E 42 00 85 12
+B8 D0 40 60 40 CD 08 53 55 42 43 00 85 12 B8 D0
+00 70 26 D1 0C 53 55 42 43 2E 42 00 85 12 B8 D0
+40 70 34 D1 06 53 55 42 85 12 B8 D0 00 80 44 D1
+0A 53 55 42 2E 42 85 12 B8 D0 40 80 50 D1 06 43
+4D 50 85 12 B8 D0 00 90 5E D1 0A 43 4D 50 2E 42
+85 12 B8 D0 40 90 00 00 08 44 41 44 44 00 85 12
+B8 D0 00 A0 78 D1 0C 44 41 44 44 2E 42 00 85 12
+B8 D0 40 A0 A6 D0 06 42 49 54 85 12 B8 D0 00 B0
+96 D1 0A 42 49 54 2E 42 85 12 B8 D0 40 B0 A2 D1
+06 42 49 43 85 12 B8 D0 00 C0 B0 D1 0A 42 49 43
+2E 42 85 12 B8 D0 40 C0 BC D1 06 42 49 53 85 12
+B8 D0 00 D0 CA D1 0A 42 49 53 2E 42 85 12 B8 D0
+40 D0 00 00 06 58 4F 52 85 12 B8 D0 00 E0 E4 D1
+0A 58 4F 52 2E 42 85 12 B8 D0 40 E0 16 D1 06 41
+4E 44 85 12 B8 D0 00 F0 FE D1 0A 41 4E 44 2E 42
+85 12 B8 D0 40 F0 C6 C5 78 D0 BC CF 1E D2 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F D6 D1
+06 52 52 43 85 12 16 D2 00 10 30 D2 0A 52 52 43
+2E 42 85 12 16 D2 40 10 6A D1 08 53 57 50 42 00
+85 12 16 D2 80 10 3C D2 06 52 52 41 85 12 16 D2
+00 11 58 D2 0A 52 52 41 2E 42 85 12 16 D2 40 11
+4A D2 06 53 58 54 85 12 16 D2 80 11 00 00 08 50
+55 53 48 00 85 12 16 D2 00 12 7E D2 0C 50 55 53
+48 2E 42 00 85 12 16 D2 40 12 72 D2 08 43 41 4C
+4C 00 85 12 16 D2 80 12 1A 53 0E 4A 84 12 08 C8
+1E C2 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+12 C3 9C D2 06 53 3E 3D 86 12 00 38 C4 D2 04 53
+3C 00 86 12 00 34 8C D2 06 30 3E 3D 86 12 00 30
+D8 D2 04 30 3C 00 86 12 00 30 14 CD 04 55 3C 00
+86 12 00 2C EC D2 06 55 3E 3D 86 12 00 28 E2 D2
+06 30 3C 3E 86 12 00 24 00 D3 04 30 3D 00 86 12
+00 20 00 00 04 49 46 00 1A 42 C8 1D 8A 4E 00 00
+A2 53 C8 1D 0E 4A 30 4D 86 D1 08 54 48 45 4E 00
+1A 42 C8 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
+3A 90 00 02 B2 2F 88 DA 00 00 30 4D F6 D2 08 45
+4C 53 45 00 1A 42 C8 1D BA 40 00 3C 00 00 A2 53
+C8 1D 2F 83 8F 4A 00 00 E3 3F 64 D2 0A 42 45 47
+49 4E 30 40 32 C2 4E D3 0A 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11 3A 90
+00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C8 1D 30 4D 0A D2 0A 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12
+18 D3 AE C6 94 C7 6C D3 0C 52 45 50 45 41 54 00
+0D 12 84 12 AC D3 30 D3 94 C7 DC D3 3D 41 08 4E
+3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D 00 00
+30 4D C8 D3 06 42 57 31 85 12 DA D3 00 00 F4 D3
+06 42 57 32 85 12 DA D3 00 00 00 D4 06 42 57 33
+85 12 DA D3 00 00 18 D4 3D 41 1A 42 C8 1D 28 4E
+8E 43 00 00 B2 92 C6 1D 86 2B BA 4F 00 00 A2 53
+C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31
+85 12 16 D4 00 00 3C D4 06 46 57 32 85 12 16 D4
+00 00 48 D4 06 46 57 33 85 12 16 D4 00 00 B6 D3
+08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
+0D 12 84 12 4E CB 5A CA 94 C7 00 00 0A 3F 47 4F
+54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
+EF 27 3E E0 00 08 EC 3F 82 D0 0A C2 2C 00 18 C8
+2A C9 AC C2 5E CB C6 C5 78 D0 5A D0 AE D4 0A 4E
+3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E
+2A 92 EA 2E 8A 10 5A 06 A8 3E 0C D4 08 52 52 43
+4D 00 85 12 98 D4 50 00 DC D4 08 52 52 41 4D 00
+85 12 98 D4 50 01 EA D4 08 52 4C 41 4D 00 85 12
+98 D4 50 02 F8 D4 08 52 52 55 4D 00 85 12 98 D4
+50 03 0A D3 0A 50 55 53 48 4D 85 12 98 D4 00 15
+14 D5 08 50 4F 50 4D 00 85 12 98 D4 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+D0 C4 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 06 C4
+q
index 7c67a8a..a3ea903 100644 (file)
 @1800
-C0 5D 12 00 00 00 F8 00 F9 FF F0 D5 F0 CD 34 01
-10 00 41 87 B6 C3 AA C2 B8 C3 8C C3 82 C4 F0 D5
-F0 CD 70 C4 80 C5 FE C4 DA C4 3C 1D 4E C6 D4 C2
-E2 C2 EE C2 20 00 0A 00 00 00 00 00 00 00 00 00
+C0 5D 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+CA C4 56 C3 56 C3 58 C3 44 C3 0A D5 C2 CD 7C CD
+7C CD B8 C4 3C C5 14 C5 3C 1D E0 1C 70 C7 B6 C2
+C4 C2 8C C6 20 00 0A 00 00 1C 56 C3 56 C3 58 C3
+44 C3 0A D5 C2 CD 7C CD 7C CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C200
-B0 12 B8 C3 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C2
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C2 39 40 22 18
-B2 49 6E C4 B2 49 7E C5 B2 49 FC C4 B2 49 D8 C4
-B2 49 CA C2 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BC CE 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C3 0E 12 B0 12
-F8 C2 0A C2 DE 1D CE C5 16 C5 EE C2 34 C2 8A C3
-14 C2 05 1B 5B 37 6D 40 4A C5 0A C2 02 18 CE C5
-C4 C6 96 C5 34 C2 7E C3 14 C2 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C5 8E C6 4A C5
-14 C2 04 1B 5B 30 6D 00 4A C5 16 CA 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C3 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C3 04 57 41 52 4D 00 B0 12
-8C C3 78 40 03 00 B0 12 BA C3 84 12 14 C2 07 0D
-0A 1B 5B 37 6D 40 4A C5 0A C2 02 18 CE C5 C4 C6
-0A C2 23 00 FA C4 C4 C6 14 C2 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 4A C5 0A C2 40 FF 28 C2 C2 C5 8E C6
-14 C2 0A 62 79 74 65 73 20 66 72 65 65 00 3A C2
-7E C3 00 00 06 41 43 43 45 50 54 00 30 40 70 C4
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 B8 22
-3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C3 82 93 DE 1D 02 24 92 53 DE 1D 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C4 2F 83 8F 4E 00 00
-58 43 B0 12 BA C3 92 B3 6C 06 FD 27 1E 42 4C 06
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C4 08 4E
-3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D F4 C4
-04 45 43 48 4F 00 B2 40 C2 48 08 C5 82 43 DE 1D
-38 40 05 00 B0 12 BA C3 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C5 92 43 DE 1D 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C5 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C4 68 C5 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C3 02 43 52 00 30 40 80 C5
-0D 12 84 12 14 C2 02 0D 0A 00 4A C5 4E C6 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C4 01 40 2E 4E
-30 4D CC C5 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D 78 C5 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E C2 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 08 C6 02 23 53 00 0D 12 84 12
-0A C6 44 C6 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C6 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C5 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C5
-3C C6 EE C2 7C C6 58 C6 4A C5 02 CA FA C4 4E C6
-2C C5 01 2E 0E 93 E3 37 38 43 E2 3F 76 C6 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A C2 14 C2 48 C9
-0A C2 22 00 1A C7 E8 C6 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D C2 C6
-82 2E 22 00 0D 12 84 12 D2 C6 0A C2 4A C5 48 C9
-4E C6 F8 C3 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C2 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C2 35 40 D4 C2 30 4D
-00 00 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 9C C8 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E C8 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 C2 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 93 2B 17 0E 4C 82 4B DC 1D 06 24 32 C0 00 02
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 04 3D 0E 93 3E 4F
+86 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B6 C4 B2 49
+3A C5 B2 49 12 C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 36 CE 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C3 B0 12 D0 C2 96 C6 AC C2
+42 C3 54 C5 1E C2 05 1B 5B 37 6D 40 80 C5 0A C2
+02 18 B8 C6 E4 C7 80 C5 1E C2 04 1B 5B 30 6D 00
+80 C5 CC CA 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 54 C5 1E C2 07 0D 0A 1B 5B 37
+6D 40 80 C5 0A C2 02 18 B8 C6 E4 C7 0A C2 23 00
+38 C5 E4 C7 1E C2 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+80 C5 0A C2 40 FF 32 C2 AC C6 B0 C7 1E C2 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C2 36 C3 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C3 01 12 6D 3F 82 4E 08 18 92 12 3A 18 D2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01
+31 40 E0 1C 3F 40 80 1C 92 D3 30 01 B2 43 06 02
+B2 40 EF 7F 02 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 B2 40 33 00 64 01
+D2 43 61 01 39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18 3E F3 02 20
+1E 42 9E 01 B0 12 D0 C2 80 C3 00 00 0C 41 43 43
+45 50 54 00 30 40 B8 C4 0A 4E 2E 4F 0A 5E 3B 40
+0A 00 3C 40 20 00 3D 15 9B 3E 21 52 A2 C2 6C 06
+B2 B0 10 00 40 06 94 22 3A 17 92 B3 6C 06 FD 27
+58 42 4C 06 48 9B 0E 24 48 9C 06 2C 78 92 F5 23
+2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48 00 00
+1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00 06 4B 45 59
+30 40 14 C5 58 43 B0 12 46 C3 2F 83 8F 4E 00 00
+92 B3 6C 06 FD 27 1E 42 4C 06 B0 12 44 C3 30 4D
+00 00 08 45 4D 49 54 00 30 40 3C C5 08 4E 3E 4F
+A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D 32 C5 08 45
+43 48 4F 00 B2 40 C2 48 46 C5 38 40 05 00 B0 12
+46 C3 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D 46 C5 28 42 F3 3F 00 00 08 54 59 50 45 00
+0D 12 3D 40 90 C5 29 4F 8F 4E 00 00 7E 49 D4 3F
+92 C5 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+80 22 F9 98 00 00 7D 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 74 22 9B 24 0C C5 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A C2 00 00 B0 C6
+A2 C5 F4 C7 AE CA B0 C2 1E C6 14 C2 06 5B 54 48
+45 4E 5D 00 A6 C5 FC C5 C2 C5 E0 C5 14 C2 06 5B
+45 4C 53 45 5D 00 A6 C5 0E C6 C2 C5 DE C5 1E C2
+04 5B 49 46 5D 00 A6 C5 E0 C5 B2 C2 DE C5 1E C2
+05 0D 6B 6F 20 0A 80 C5 9A C2 84 C2 B2 C2 E0 C5
+CE C5 0D 5B 54 48 45 4E 5D 00 30 4D 32 C6 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 3E C6 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 A2 C5 F4 C7
+5C C8 00 CA 70 C7 4E C6 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 A2 C5 F4 C7 5C C8 80 C6
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D AC C4 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D E0 C3 05 53 22 00 82 43
+C0 1D 0D 12 84 12 0A C2 1E C2 5E CA 0A C2 22 00
+F4 C7 F4 C6 B2 40 20 00 C0 1D 1A 53 1A B3 82 6A
+C8 1D 3E 4F 3D 41 30 4D 66 C5 05 2E 22 00 0D 12
+84 12 DE C6 0A C2 80 C5 5E CA 70 C7 00 00 04 3C
+23 00 B2 40 B2 1D B2 1D 30 4D DA C6 02 23 1B 42
+BE 1D 2C 4F 2F 83 B0 12 46 C2 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 2C C7 04 23 53 00
+0D 12 84 12 2E C7 68 C7 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 5C C7 04 23 3E 00 9F 42 B2 1D 00 00
+3E 40 B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F 76 C7 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 4E C5 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 22 C7
+A2 C5 90 C7 60 C7 8C C6 9E C7 7A C7 80 C5 70 C7
+0A C7 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 1D 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 1D
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D E2 C7 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40
+66 C9 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 68 C9 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E C2 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D 46 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 C6 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 C6 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC C2 02 CA 1A C7 BE C9 9C 26
-3D 40 C6 C9 DE 3E C8 C9 0A 4E 3E 4F 3D 40 E2 C9
-36 27 3D 40 B8 C9 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 E4 C9 3E 4F 3D 40 B8 C9 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 CB CC 3F
-EC C9 86 12 20 00 D4 C5 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7C C5 BC C2
-B2 C9 B2 C5 E4 C5 14 C2 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A C3 0A C2 40 FF 28 C2 EC C5
-14 C2 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A C3
-3A C2 2C CA 08 CA 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 C6 0A C2 2A C3 48 C9 4E C6 7C C7 01 27
-0D 12 84 12 02 CA 1A C7 82 C7 34 C2 00 CA 4E C6
-00 00 83 5B 27 5D 0D 12 84 12 80 CA 0A C2 0A C2
-48 C9 48 C9 4E C6 92 CA 81 5B 82 43 BE 1D 30 4D
-FA C5 01 5D B2 43 BE 1D 30 4D B2 CA 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 CA 1A C7 82 C7 96 C5 34 C2
-00 CA E4 C5 34 C2 F4 CA 0A C2 0A C2 48 C9 48 C9
-0A C2 48 C9 48 C9 4E C6 A8 CA 01 3A 30 12 44 CB
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 02 CA 1A C7
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 C2 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 C3 FA CA 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A C2 4E C6 48 C9 56 CB AA CA 4E C6
-A8 C9 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D 92 C9 06 43 52 45 41 54
-45 00 B0 12 00 CB BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA CB 04 43 4F 44 45 00 B0 12 00 CB A2 82
-C6 1D 0D 12 84 12 F2 CD CC CD 4E C6 A2 CB 07 48
-44 4E 43 4F 44 45 B2 40 D0 CD DA 1D EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 CB 0C CE
-2A CE 4E C6 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 0C CE 2A CE 4E C6 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-EE CB 85 48 49 32 4C 4F 0D 12 84 12 28 C2 9A CD
-48 C9 AA CA E2 CB 4E C6 88 CB 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A CC 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A C2 00 00 C6 C5 02 CA 1A C7 98 C9
-8E C5 34 C2 02 CD 9C C5 14 C2 06 5B 54 48 45 4E
-5D 00 74 CC DC CC 98 CC BA CC 4E C6 9C C5 14 C2
-06 5B 45 4C 53 45 5D 00 74 CC F2 CC 98 CC B8 CC
-4E C6 14 C2 04 5B 49 46 5D 00 74 CC BA CC 3A C2
-B8 CC 70 C5 14 C2 05 0D 0A 6B 6F 20 4A C5 BC C2
-AC C2 3A C2 BA CC A8 CC 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 CD 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 CA 1A C7 82 C7
-26 CD 4E C6 2C CD 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 CD DE C5 4E C6 5E CD B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A C9 06 4D
-41 52 4B 45 52 00 B0 12 00 CB BA 40 85 12 FC FF
-BA 40 5C CD FE FF 28 83 8A 48 00 00 BA 40 AA C2
-04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D 0A C2
-CA 1D D6 C5 4E C6 85 12 9E CD 66 CA D4 CB 10 C5
-7E CA 52 CC D2 C4 6E CD 00 C7 96 CE AA CE 8A C6
-14 C7 00 00 46 CD BC CA E2 C7 00 00 85 12 9E CD
-66 D4 CC D4 0E D4 1C D5 D4 D3 00 00 A0 D1 00 00
-E4 D5 C8 D5 38 D4 76 D4 B0 D2 00 00 00 00 38 D5
-CA CD 3A 40 0C 00 39 40 D6 1D 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D
-30 4D A6 CD 24 CE 2A CE 3A CE 1A 42 20 18 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 C8 CA
-09 50 57 52 5F 53 54 41 54 45 85 12 32 CE F0 D5
-CE C6 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E CE F3 3F 70 CE 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 7E CE 30 4D 82 CE 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 CF FE FF 29 83 B9 40
-E2 C3 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 C3 B2 49 FA C2 B2 49 02 C2 B2 49 00 C4 B2 49
-EE FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 04 29 83 89 43 00 1C FC 23 92 D3
-30 01 B2 43 06 02 B2 40 EF 7F 02 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
-B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
-00 18 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 1E 42
-08 18 82 43 08 18 1E D2 9E 01 B0 12 F8 C2 FE C3
-38 40 C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D
-09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A
-C4 1D 30 4D 1C 15 0E 12 12 12 C4 1D 84 12 1A C7
-82 C7 DE C5 34 C2 E0 CF 3E C8 34 C2 FA CF F4 CF
-E2 CF 3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E
-01 3C 2E 83 21 52 1B 17 30 41 FC CF B2 41 C4 1D
-3E 41 84 12 0A C2 2B 00 1A C7 82 C7 DE C5 34 C2
-18 D0 3E C8 34 C2 00 CA A8 C5 1A C7 3E C8 34 C2
-00 CA 24 D0 3E 5F E7 3F 3E 40 28 00 B0 12 C4 CF
-19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00
-92 92 C0 1D C4 1D 02 20 30 40 6E CB 1C 15 12 12
-C4 1D 92 53 C4 1D 84 12 1A C7 3E C8 34 C2 6C D0
-62 D0 21 53 3E 90 10 00 C6 2B 7F 2D 6E D0 B2 41
-C4 1D C1 3F 0D 12 84 12 02 CA A0 CF 7E D0 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 C4 CF 3C 40 00 03 0E 93
+2F 53 30 4D 1E C7 03 5C 92 42 C2 1D C6 1D 30 4D
+0D 12 84 12 84 C2 A2 C5 F4 C7 B0 C2 38 CB 5C C8
+22 CA 0A 4E 3E 4F 3D 40 3C CA 6D 27 3D 40 16 CA
+1A E2 BC 1D 14 24 0E 12 3E 4F 30 41 3E CA 3E 4F
+3D 40 16 CA 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 14 CC 2A 3C 06 CA 02 2C A2 53
+C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D 5C CA
+0F 4C 49 54 45 52 41 4C 82 93 BC 1D 0D 24 09 4E
+1A 42 C8 1D A2 52 C8 1D BA 40 0A C2 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D 98 C7 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D BE C6 0A 41
+4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C
+0E 43 84 12 1E C2 02 0D 0A 00 80 C5 94 C2 10 CA
+9E C6 C8 C6 1E C2 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 C3 32 C2 0A C2 40 FF D0 C6 1E C2 09 46
+52 41 4D 20 66 75 6C 6C 08 C3 B2 C2 D4 CA BE CA
+0D 41 42 4F 52 54 22 00 0D 12 84 12 DE C6 0A C2
+08 C3 5E CA 70 C7 EE C7 02 27 0D 12 84 12 A2 C5
+F4 C7 5C C8 B0 C2 3A CB 02 C7 46 CA 68 C6 07 5B
+27 5D 0D 12 84 12 2A CB 0A C2 0A C2 5E CA 5E CA
+70 C7 3E CB 03 5B 82 43 BC 1D 30 4D 00 00 02 5D
+B2 43 BC 1D 30 4D B6 C6 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 A2 C5 F4 C7 5C C8 B0 C2 3A CB
+C8 C6 AC C2 92 CB 0A C2 0A C2 5E CA 5E CA 0A C2
+5E CA 5E CA 70 C7 00 00 02 3A 30 12 E8 CB 92 B3
+C8 1D A2 63 C8 1D 0D 12 84 12 A2 C5 F4 C7 B0 CB
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F BA 1D
+2A 52 82 4A C8 1D 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 1D 30 4D 82 9F BA 1D 66 25
+84 12 1E C2 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 C3 54 CB 03 3B 82 93 BC 1D F4 26
+0D 12 84 12 0A C2 70 C7 5E CA FA CB 56 CB 70 C7
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 1D
+D8 D3 00 00 30 4D A8 CA 0C 43 52 45 41 54 45 00
+B0 12 9E CB BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+7A C5 0A 44 4F 45 53 3E 1A 42 B8 1D BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D 98 CB 0E 3A 4E 4F
+4E 41 4D 45 30 12 E8 CB 2F 83 8F 4E 00 00 1A 42
+C8 1D 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+32 CC 05 49 53 00 0D 12 82 93 BC 1D 08 20 84 12
+2A CB B4 CC 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+42 CB 0A C2 B6 CC 5E CA 70 C7 48 CC 08 43 4F 44
+45 00 B0 12 9E CB A2 82 C8 1D 61 3C 8A C7 0E 48
+44 4E 43 4F 44 45 B2 40 A2 CD CC 1D F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 FA CB 00 CD
+3D 41 92 42 D0 1D CC 1D 5D 3C CC CC 0E 43 4F 44
+45 4E 4E 4D 30 12 D6 CC B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F DE CC
+0B 48 49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A
+FE FF 82 43 BC 1D B9 3F 6A CD B2 40 7C CD D0 1D
+82 4E CE 1D 30 40 02 C7 85 12 68 CD 68 CB 10 CB
+FA CD 0C CD 62 CC AC C7 56 C8 28 CB 50 CD A2 CC
+7C CC 18 CC 70 CA 84 CE AE C8 00 00 00 00 85 12
+68 CD FE D4 82 D3 E2 D4 AA D2 06 D3 54 D3 30 D4
+3C D4 CC D1 F0 D2 00 00 00 00 3E CD BC D0 00 00
+58 D4 9C CD B2 40 7C CD CE 1D 82 43 D0 1D 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40
+42 18 B0 12 D0 CD 30 4D E2 CD 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 1D B0 12 D0 CD
+1A 42 CA 1D 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 0E C4 FE FF 29 83 B9 40
+FA C3 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+EE FF 3B 40 10 00 3A 40 3A 18 B0 12 D4 CD 82 43
+4A 18 C7 3F 76 CE B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 5E CB 0C 4D 41 52 4B 45 52 00 12 12 C6 1D
+0D 12 84 12 A2 C5 F4 C7 5C C8 AC C2 A2 CE 96 C6
+36 CA A4 CE 3E 4F 3D 41 B2 41 C6 1D B0 12 9E CB
+BA 40 85 12 FC FF BA 40 74 CE FE FF 28 83 8A 48
+00 00 BA 40 82 C2 02 00 A2 52 C8 1D 18 42 B4 1D
+19 42 B6 1D A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 1D 84 12 F4 C7 5C C8 AC C2 0E CF EE CE 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+74 CE 00 00 01 20 3E 52 2E 83 21 53 30 41 06 C9
+AC C2 16 CF 0A CF 18 CF B2 41 C6 1D 30 41 92 83
+C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12 DE CE 15 20
+3E 40 2B 00 B0 12 DE CE 06 20 3E 40 2D 00 B0 12
+DE CE 92 83 C6 1D 0E 12 1E 41 02 00 84 12 F4 C7
+06 C9 AC C2 3A CB 58 CF 3E 51 3A 17 30 41 B0 12
+1E CF 19 42 C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40
+29 00 92 53 C6 1D 1A 42 C6 1D 3D 15 84 12 F4 C7
+06 C9 AC C2 90 CF 88 CF 3E 90 10 00 E6 2B 7C 2D
+92 CF A2 41 C6 1D E1 3F 03 20 B0 12 76 CF 43 3C
+7A 90 23 00 24 20 B0 12 26 CF 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
-C4 CF ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53
-C4 1D B0 12 4C D0 0C 20 3C 50 10 00 3E 40 2B 00
-B0 12 4C D0 92 92 C0 1D C4 1D 02 24 92 53 C4 1D
-8E 10 0C 5E DA 3F B0 12 4C D0 FA 23 3C 50 10 00
-B0 12 28 D0 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D
-0D 12 84 12 02 CA A0 CF 4A D1 FE 90 26 00 00 00
-3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12 4C D0
-E0 23 3C 50 80 00 B0 12 28 D0 DB 3F 00 00 04 52
-45 54 49 00 0D 12 84 12 0A C2 00 13 48 C9 4E C6
-0A C2 2C 00 74 D0 40 D1 8A D1 09 4B 2E 4E 0E DC
-A2 3F 40 CC 03 4D 4F 56 85 12 80 D1 00 40 94 D1
-05 4D 4F 56 2E 42 85 12 80 D1 40 40 00 00 03 41
-44 44 85 12 80 D1 00 50 AE D1 05 41 44 44 2E 42
-85 12 80 D1 40 50 BA D1 04 41 44 44 43 00 85 12
-80 D1 00 60 C8 D1 06 41 44 44 43 2E 42 00 85 12
-80 D1 40 60 6E D1 04 53 55 42 43 00 85 12 80 D1
-00 70 E6 D1 06 53 55 42 43 2E 42 00 85 12 80 D1
-40 70 F4 D1 03 53 55 42 85 12 80 D1 00 80 04 D2
-05 53 55 42 2E 42 85 12 80 D1 40 80 16 CC 03 43
-4D 50 85 12 80 D1 00 90 1E D2 05 43 4D 50 2E 42
-85 12 80 D1 40 90 00 CC 04 44 41 44 44 00 85 12
-80 D1 00 A0 38 D2 06 44 41 44 44 2E 42 00 85 12
-80 D1 40 A0 2A D2 03 42 49 54 85 12 80 D1 00 B0
-56 D2 05 42 49 54 2E 42 85 12 80 D1 40 B0 62 D2
-03 42 49 43 85 12 80 D1 00 C0 70 D2 05 42 49 43
-2E 42 85 12 80 D1 40 C0 7C D2 03 42 49 53 85 12
-80 D1 00 D0 8A D2 05 42 49 53 2E 42 85 12 80 D1
-40 D0 00 00 03 58 4F 52 85 12 80 D1 00 E0 A4 D2
-05 58 4F 52 2E 42 85 12 80 D1 40 E0 D6 D1 03 41
-4E 44 85 12 80 D1 00 F0 BE D2 05 41 4E 44 2E 42
-85 12 80 D1 40 F0 02 CA 74 D0 DC D2 0A 4C 3C F0
-70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 10 D2 03 52
-52 43 85 12 D6 D2 00 10 EE D2 05 52 52 43 2E 42
-85 12 D6 D2 40 10 FA D2 04 53 57 50 42 00 85 12
-D6 D2 80 10 08 D3 03 52 52 41 85 12 D6 D2 00 11
-16 D3 05 52 52 41 2E 42 85 12 D6 D2 40 11 22 D3
-03 53 58 54 85 12 D6 D2 80 11 00 00 04 50 55 53
-48 00 85 12 D6 D2 00 12 3C D3 06 50 55 53 48 2E
-42 00 85 12 D6 D2 40 12 96 D2 04 43 41 4C 4C 00
-85 12 D6 D2 80 12 1A 53 0E 4A 0D 12 84 12 C4 C6
-14 C2 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-36 C3 30 D3 03 53 3E 3D 86 12 00 38 84 D3 02 53
-3C 00 86 12 00 34 4A D3 03 30 3E 3D 86 12 00 30
-98 D3 02 30 3C 00 86 12 00 30 00 00 02 55 3C 00
-86 12 00 2C AC D3 03 55 3E 3D 86 12 00 28 A2 D3
-03 30 3C 3E 86 12 00 24 C0 D3 02 30 3D 00 86 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 B6 D3 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 B1 2F 88 DA 00 00 30 4D 46 D2 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 D3 05 42 45 47
-49 4E 30 40 28 C2 EA D3 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
-C6 1D 30 4D CA D2 05 41 47 41 49 4E 0A 4E 38 40
-00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12
-D8 D3 A8 C5 4E C6 8E D3 06 52 45 50 45 41 54 00
-0D 12 84 12 6C D4 F0 D3 4E C6 9C D4 3D 41 08 4E
-3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D 00 00
-30 4D 2C D4 03 42 57 31 85 12 9A D4 00 00 B4 D4
-03 42 57 32 85 12 9A D4 00 00 C0 D4 03 42 57 33
-85 12 9A D4 00 00 D8 D4 3D 41 1A 42 C6 1D 28 4E
-B2 92 C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A
-00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12 D6 D4
-00 00 F8 D4 03 46 57 32 85 12 D6 D4 00 00 04 D5
-03 46 57 33 85 12 D6 D4 00 00 10 D5 04 47 4F 54
+C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 26 CF F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 72 CF 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 76 CF 92 92 C2 1D C6 1D
+02 24 92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 5E CF F2 3F 03 20 B0 12 76 CF F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+5E CF EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40
+20 00 19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49
+FF FF 19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A C2 00 13
+5E CA 70 C7 0A C2 2C 00 54 D0 98 CF A2 C5 5E D0
+36 D0 A4 D0 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 94 D0 00 40 B0 D0 0A 4D 4F 56
+2E 42 85 12 94 D0 40 40 00 00 06 41 44 44 85 12
+94 D0 00 50 CA D0 0A 41 44 44 2E 42 85 12 94 D0
+40 50 D6 D0 08 41 44 44 43 00 85 12 94 D0 00 60
+E4 D0 0C 41 44 44 43 2E 42 00 85 12 94 D0 40 60
+1C CD 08 53 55 42 43 00 85 12 94 D0 00 70 02 D1
+0C 53 55 42 43 2E 42 00 85 12 94 D0 40 70 10 D1
+06 53 55 42 85 12 94 D0 00 80 20 D1 0A 53 55 42
+2E 42 85 12 94 D0 40 80 2C D1 06 43 4D 50 85 12
+94 D0 00 90 3A D1 0A 43 4D 50 2E 42 85 12 94 D0
+40 90 00 00 08 44 41 44 44 00 85 12 94 D0 00 A0
+54 D1 0C 44 41 44 44 2E 42 00 85 12 94 D0 40 A0
+82 D0 06 42 49 54 85 12 94 D0 00 B0 72 D1 0A 42
+49 54 2E 42 85 12 94 D0 40 B0 7E D1 06 42 49 43
+85 12 94 D0 00 C0 8C D1 0A 42 49 43 2E 42 85 12
+94 D0 40 C0 98 D1 06 42 49 53 85 12 94 D0 00 D0
+A6 D1 0A 42 49 53 2E 42 85 12 94 D0 40 D0 00 00
+06 58 4F 52 85 12 94 D0 00 E0 C0 D1 0A 58 4F 52
+2E 42 85 12 94 D0 40 E0 F2 D0 06 41 4E 44 85 12
+94 D0 00 F0 DA D1 0A 41 4E 44 2E 42 85 12 94 D0
+40 F0 A2 C5 54 D0 98 CF FA D1 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F B2 D1 06 52 52 43
+85 12 F2 D1 00 10 0C D2 0A 52 52 43 2E 42 85 12
+F2 D1 40 10 46 D1 08 53 57 50 42 00 85 12 F2 D1
+80 10 18 D2 06 52 52 41 85 12 F2 D1 00 11 34 D2
+0A 52 52 41 2E 42 85 12 F2 D1 40 11 26 D2 06 53
+58 54 85 12 F2 D1 80 11 00 00 08 50 55 53 48 00
+85 12 F2 D1 00 12 5A D2 0C 50 55 53 48 2E 42 00
+85 12 F2 D1 40 12 4E D2 08 43 41 4C 4C 00 85 12
+F2 D1 80 12 1A 53 0E 4A 84 12 E4 C7 1E C2 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 C3 78 D2
+06 53 3E 3D 86 12 00 38 A0 D2 04 53 3C 00 86 12
+00 34 68 D2 06 30 3E 3D 86 12 00 30 B4 D2 04 30
+3C 00 86 12 00 30 F0 CC 04 55 3C 00 86 12 00 2C
+C8 D2 06 55 3E 3D 86 12 00 28 BE D2 06 30 3C 3E
+86 12 00 24 DC D2 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D
+0E 4A 30 4D 62 D1 08 54 48 45 4E 00 1A 42 C8 1D
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D D2 D2 08 45 4C 53 45 00
+1A 42 C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83
+8F 4A 00 00 E3 3F 40 D2 0A 42 45 47 49 4E 30 40
+32 C2 2A D3 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D
+E6 D1 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 F4 D2 8A C6
+70 C7 48 D3 0C 52 45 50 45 41 54 00 0D 12 84 12
+88 D3 0C D3 70 C7 B8 D3 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 1D CB 2F 98 42 C8 1D 00 00 30 4D A4 D3
+06 42 57 31 85 12 B6 D3 00 00 D0 D3 06 42 57 32
+85 12 B6 D3 00 00 DC D3 06 42 57 33 85 12 B6 D3
+00 00 F4 D3 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00
+B2 92 C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 F2 D3
+00 00 18 D4 06 46 57 32 85 12 F2 D3 00 00 24 D4
+06 46 57 33 85 12 F2 D3 00 00 92 D3 08 47 4F 54
 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
-80 CA DC C9 4E C6 00 00 05 3F 47 4F 54 4F 3E 90
+2A CB 36 CA 70 C7 00 00 0A 3F 47 4F 54 4F 3E 90
 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
-00 08 EC 3F 02 CA A0 CF 5A D5 92 53 C4 1D 3E 40
-2C 00 84 12 1A C7 3E C8 34 C2 00 CA 36 D1 70 D5
-0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E
-AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 88 D4 04 52
-52 43 4D 00 85 12 54 D5 50 00 9E D5 04 52 52 41
-4D 00 85 12 54 D5 50 01 AC D5 04 52 4C 41 4D 00
-85 12 54 D5 50 02 BA D5 04 52 52 55 4D 00 85 12
-54 D5 50 03 CA D3 05 50 55 53 48 4D 85 12 54 D5
-00 15 D6 D5 04 50 4F 50 4D 00 85 12 54 D5 00 17
+00 08 EC 3F 5E D0 0A C2 2C 00 F4 C7 06 C9 AC C2
+3A CB A2 C5 54 D0 36 D0 8A D4 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E E8 D3 08 52 52 43 4D 00 85 12
+74 D4 50 00 B8 D4 08 52 52 41 4D 00 85 12 74 D4
+50 01 C6 D4 08 52 4C 41 4D 00 85 12 74 D4 50 02
+D4 D4 08 52 52 55 4D 00 85 12 74 D4 50 03 E6 D2
+0A 50 55 53 48 4D 85 12 74 D4 00 15 F0 D4 08 50
+4F 50 4D 00 85 12 74 D4 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 82 C4
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 08 CF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 CA C4
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 0E C4
 q
diff --git a/binaries/MSP_EXP430FR5739_24MHz_UART.txt b/binaries/MSP_EXP430FR5739_24MHz_UART.txt
deleted file mode 100644 (file)
index 59902a7..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-@1800
-C0 5D 0D 00 01 49 18 00 F9 FF 06 D6 02 CE 34 01
-10 00 41 B3 94 C3 AA C2 DA C3 9C C3 94 C4 06 D6
-02 CE 7A C4 92 C5 24 C5 FE C4 3C 1D 60 C6 D4 C2
-E2 C2 EE C2 20 00 0A 00 00 00 00 00 00 00 00 00
-@C200
-B0 12 DA C3 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C2
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C2 39 40 22 18
-B2 49 78 C4 B2 49 90 C5 B2 49 22 C5 B2 49 FC C4
-B2 49 CA C2 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 CE CE 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C3 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 C2 0A C2 DE 1D E0 C5 32 C5
-14 C2 04 1B 5B 37 6D 00 5C C5 A8 C5 34 C2 86 C3
-14 C2 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C5 A0 C6 5C C5 14 C2 04 1B 5B 30 6D 00
-5C C5 28 CA 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C3 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C3 04 57 41 52 4D 00 B0 12
-9C C3 84 12 14 C2 07 0D 0A 1B 5B 37 6D 23 5C C5
-D6 C6 14 C2 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 5C C5
-0A C2 40 FF 28 C2 D4 C5 A0 C6 14 C2 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C2 86 C3 00 00 06 41
-43 43 45 50 54 00 30 40 7A C4 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C4 3C 40 D2 C4
-5D 15 B6 3E 21 52 3A 17 58 42 CC 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 CE 05 30 4D C8 C4 2D 83 92 B3 DC 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 DC 05
-FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53 DE 1D
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C4 2F 83
-8F 4E 00 00 B0 12 DA C3 92 B3 DC 05 FD 27 1E 42
-CC 05 B0 12 C8 C3 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C5 08 4E 3E 4F C8 3F 1A C5 04 45 43 48
-4F 00 B2 40 C2 48 C0 C4 82 43 DE 1D 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C4 92 43
-DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C5 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C5 7A C5 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C3 02 43 52 00 30 40
-92 C5 0D 12 84 12 14 C2 02 0D 0A 00 5C C5 60 C6
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C4 01 40
-2E 4E 30 4D DE C5 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 8A C5 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E C2 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 1A C6 02 23 53 00 0D 12
-84 12 1C C6 56 C6 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C6 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C5 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C6 4E C6 EE C2 8E C6 6A C6 5C C5 14 CA 20 C5
-60 C6 40 C5 01 2E 0E 93 E3 37 38 43 E2 3F 88 C6
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A C2 14 C2
-5A C9 0A C2 22 00 2C C7 FA C6 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-D4 C6 82 2E 22 00 0D 12 84 12 E4 C6 0A C2 5C C5
-5A C9 60 C6 18 C4 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C2 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C2 35 40 D4 C2
-30 4D 00 00 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 AE C8
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 C8
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C2 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 58 C9 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 C6 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A C6 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C2 14 CA 2C C7 D0 C9
-9C 26 3D 40 D8 C9 DE 3E DA C9 0A 4E 3E 4F 3D 40
-F4 C9 36 27 3D 40 CA C9 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 F6 C9 3E 4F 3D 40 CA C9 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 CB
-CC 3F FE C9 86 12 20 00 E6 C5 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 8E C5
-BC C2 C4 C9 C4 C5 F6 C5 14 C2 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C3 0A C2 40 FF 28 C2
-FE C5 14 C2 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C3 3A C2 3E CA 1A CA 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 C6 0A C2 2A C3 5A C9 60 C6 8E C7
-01 27 0D 12 84 12 14 CA 2C C7 94 C7 34 C2 12 CA
-60 C6 00 00 83 5B 27 5D 0D 12 84 12 92 CA 0A C2
-0A C2 5A C9 5A C9 60 C6 A4 CA 81 5B 82 43 BE 1D
-30 4D 0C C6 01 5D B2 43 BE 1D 30 4D C4 CA 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 CA 2C C7 94 C7 A8 C5
-34 C2 12 CA F6 C5 34 C2 06 CB 0A C2 0A C2 5A C9
-5A C9 0A C2 5A C9 5A C9 60 C6 BA CA 01 3A 30 12
-56 CB 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 14 CA
-2C C7 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C2 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C3 0C CB 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A C2 60 C6 5A C9 68 CB BC CA
-60 C6 BA C9 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D A4 C9 06 43 52 45
-41 54 45 00 B0 12 12 CB BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC CB 04 43 4F 44 45 00 B0 12 12 CB
-A2 82 C6 1D 0D 12 84 12 04 CE DE CD 60 C6 B4 CB
-07 48 44 4E 43 4F 44 45 B2 40 E2 CD DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 CB
-1E CE 3C CE 60 C6 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 1E CE 3C CE 60 C6
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F 00 CC 85 48 49 32 4C 4F 0D 12 84 12 28 C2
-AC CD 5A C9 BC CA F4 CB 60 C6 9A CB 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C CC 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C2 00 00 D8 C5 14 CA 2C C7
-AA C9 A0 C5 34 C2 14 CD AE C5 14 C2 06 5B 54 48
-45 4E 5D 00 86 CC EE CC AA CC CC CC 60 C6 AE C5
-14 C2 06 5B 45 4C 53 45 5D 00 86 CC 04 CD AA CC
-CA CC 60 C6 14 C2 04 5B 49 46 5D 00 86 CC CC CC
-3A C2 CA CC 82 C5 14 C2 05 0D 0A 6B 6F 20 5C C5
-BC C2 AC C2 3A C2 CC CC BA CC 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A CD 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 CA 2C C7
-94 C7 38 CD 60 C6 3E CD 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 CD F0 C5 60 C6 70 CD
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C C9
-06 4D 41 52 4B 45 52 00 B0 12 12 CB BA 40 85 12
-FC FF BA 40 6E CD FE FF 28 83 8A 48 00 00 BA 40
-AA C2 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A C2 CA 1D E8 C5 60 C6 85 12 B0 CD 78 CA E6 CB
-2C C5 90 CA 64 CC F6 C4 80 CD 12 C7 A8 CE BC CE
-9C C6 26 C7 00 00 58 CD CE CA F4 C7 00 00 85 12
-B0 CD 7C D4 E2 D4 24 D4 32 D5 EA D3 00 00 B6 D1
-00 00 FA D5 DE D5 4E D4 8C D4 C6 D2 00 00 00 00
-4E D5 DC CD 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D B8 CD 36 CE 3C CE 4C CE 1A 42 20 18
-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
-DA CA 09 50 57 52 5F 53 54 41 54 45 85 12 44 CE
-06 D6 E0 C6 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 CE F3 3F 82 CE 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 90 CE 30 4D 94 CE 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A CF FE FF 29 83
-B9 40 02 C4 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 C4 B2 49 FA C2 B2 49 02 C2 B2 49 20 C4
-B2 49 F0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 04 29 83 89 43 00 1C FC 23
-92 D3 30 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 B2 40 33 00 64 01 D2 43 61 01
-39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18 1E D2 9E 01
-B0 12 F8 C2 1E C4 38 40 C0 1D 0A 4E 39 48 2E 48
-09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27 1E 83
-0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12 12 12
-C4 1D 84 12 2C C7 94 C7 F0 C5 34 C2 F6 CF 50 C8
-34 C2 10 D0 0A D0 F8 CF 3C 4E 3C 80 87 12 05 24
-1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41
-12 D0 B2 41 C4 1D 3E 41 84 12 0A C2 2B 00 2C C7
-94 C7 F0 C5 34 C2 2E D0 50 C8 34 C2 12 CA BA C5
-2C C7 50 C8 34 C2 12 CA 3A D0 3E 5F E7 3F 3E 40
-28 00 B0 12 DA CF 19 42 C6 1D A2 53 C6 1D 89 4E
-00 00 3E 40 29 00 92 92 C0 1D C4 1D 02 20 30 40
-80 CB 1C 15 12 12 C4 1D 92 53 C4 1D 84 12 2C C7
-50 C8 34 C2 82 D0 78 D0 21 53 3E 90 10 00 C6 2B
-7F 2D 84 D0 B2 41 C4 1D C1 3F 0D 12 84 12 14 CA
-B6 CF 94 D0 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 DA CF
-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 DA CF ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 1D B0 12 62 D0 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 62 D0 92 92 C0 1D C4 1D
-02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12 62 D0
-FA 23 3C 50 10 00 B0 12 3E D0 EF 3F 0C 43 1B 42
-C6 1D A2 53 C6 1D 0D 12 84 12 14 CA B6 CF 60 D1
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C7 3F B0 12 62 D0 E0 23 3C 50 80 00 B0 12 3E D0
-DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12 0A C2
-00 13 5A C9 60 C6 0A C2 2C 00 8A D0 56 D1 A0 D1
-09 4B 2E 4E 0E DC A2 3F 52 CC 03 4D 4F 56 85 12
-96 D1 00 40 AA D1 05 4D 4F 56 2E 42 85 12 96 D1
-40 40 00 00 03 41 44 44 85 12 96 D1 00 50 C4 D1
-05 41 44 44 2E 42 85 12 96 D1 40 50 D0 D1 04 41
-44 44 43 00 85 12 96 D1 00 60 DE D1 06 41 44 44
-43 2E 42 00 85 12 96 D1 40 60 84 D1 04 53 55 42
-43 00 85 12 96 D1 00 70 FC D1 06 53 55 42 43 2E
-42 00 85 12 96 D1 40 70 0A D2 03 53 55 42 85 12
-96 D1 00 80 1A D2 05 53 55 42 2E 42 85 12 96 D1
-40 80 28 CC 03 43 4D 50 85 12 96 D1 00 90 34 D2
-05 43 4D 50 2E 42 85 12 96 D1 40 90 12 CC 04 44
-41 44 44 00 85 12 96 D1 00 A0 4E D2 06 44 41 44
-44 2E 42 00 85 12 96 D1 40 A0 40 D2 03 42 49 54
-85 12 96 D1 00 B0 6C D2 05 42 49 54 2E 42 85 12
-96 D1 40 B0 78 D2 03 42 49 43 85 12 96 D1 00 C0
-86 D2 05 42 49 43 2E 42 85 12 96 D1 40 C0 92 D2
-03 42 49 53 85 12 96 D1 00 D0 A0 D2 05 42 49 53
-2E 42 85 12 96 D1 40 D0 00 00 03 58 4F 52 85 12
-96 D1 00 E0 BA D2 05 58 4F 52 2E 42 85 12 96 D1
-40 E0 EC D1 03 41 4E 44 85 12 96 D1 00 F0 D4 D2
-05 41 4E 44 2E 42 85 12 96 D1 40 F0 14 CA 8A D0
-F2 D2 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
-4F 3F 26 D2 03 52 52 43 85 12 EC D2 00 10 04 D3
-05 52 52 43 2E 42 85 12 EC D2 40 10 10 D3 04 53
-57 50 42 00 85 12 EC D2 80 10 1E D3 03 52 52 41
-85 12 EC D2 00 11 2C D3 05 52 52 41 2E 42 85 12
-EC D2 40 11 38 D3 03 53 58 54 85 12 EC D2 80 11
-00 00 04 50 55 53 48 00 85 12 EC D2 00 12 52 D3
-06 50 55 53 48 2E 42 00 85 12 EC D2 40 12 AC D2
-04 43 41 4C 4C 00 85 12 EC D2 80 12 1A 53 0E 4A
-0D 12 84 12 D6 C6 14 C2 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 36 C3 46 D3 03 53 3E 3D 86 12
-00 38 9A D3 02 53 3C 00 86 12 00 34 60 D3 03 30
-3E 3D 86 12 00 30 AE D3 02 30 3C 00 86 12 00 30
-00 00 02 55 3C 00 86 12 00 2C C2 D3 03 55 3E 3D
-86 12 00 28 B8 D3 03 30 3C 3E 86 12 00 24 D6 D3
-02 30 3D 00 86 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 CC D3
-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 B1 2F 88 DA 00 00
-30 4D 5C D2 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
-70 D3 05 42 45 47 49 4E 30 40 28 C2 00 D4 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 8A 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 1D 30 4D E0 D2 05 41 47 41
-49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
-4C 45 0D 12 84 12 EE D3 BA C5 60 C6 A4 D3 06 52
-45 50 45 41 54 00 0D 12 84 12 82 D4 06 D4 60 C6
-B2 D4 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F
-98 42 C6 1D 00 00 30 4D 42 D4 03 42 57 31 85 12
-B0 D4 00 00 CA D4 03 42 57 32 85 12 B0 D4 00 00
-D6 D4 03 42 57 33 85 12 B0 D4 00 00 EE D4 3D 41
-1A 42 C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F 00 00
-A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 85 12 EC D4 00 00 0E D5 03 46 57 32 85 12
-EC D4 00 00 1A D5 03 46 57 33 85 12 EC D4 00 00
-26 D5 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
-00 3C 0D 12 84 12 92 CA EE C9 60 C6 00 00 05 3F
-47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
-00 10 EF 27 3E E0 00 08 EC 3F 14 CA B6 CF 70 D5
-92 53 C4 1D 3E 40 2C 00 84 12 2C C7 50 C8 34 C2
-12 CA 4C D1 86 D5 0A 4E 3E 4F 1A 83 F7 32 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06
-A6 3E 9E D4 04 52 52 43 4D 00 85 12 6A D5 50 00
-B4 D5 04 52 52 41 4D 00 85 12 6A D5 50 01 C2 D5
-04 52 4C 41 4D 00 85 12 6A D5 50 02 D0 D5 04 52
-52 55 4D 00 85 12 6A D5 50 03 E0 D3 05 50 55 53
-48 4D 85 12 6A D5 00 15 EC D5 04 50 4F 50 4D 00
-85 12 6A D5 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-94 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 1A CF
-q
diff --git a/binaries/MSP_EXP430FR5739_8MHz_115200.txt b/binaries/MSP_EXP430FR5739_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..df51f29
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A1 59
+CA C4 7E C3 84 C3 54 C3 3A C5 28 D5 E0 CD 9A CD
+9A CD B0 C4 6E C5 36 C5 3C 1D E0 1C 8E C7 B6 C2
+C4 C2 AA C6 20 00 0A 00 00 1C 7E C3 84 C3 54 C3
+3A C5 28 D5 E0 CD 9A CD 9A CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@C200
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 00 3D 0E 93 3E 4F
+95 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 AE C4 B2 49
+6C C5 B2 49 34 C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 54 CE 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 3A C5 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 C2 B4 C6 AC C2 52 C3 7C C5 1E C2 04 1B
+5B 37 6D 00 9E C5 9E C5 1E C2 04 1B 5B 30 6D 00
+9E C5 EA CA B0 12 7E C3 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 7C C5 1E C2
+07 0D 0A 1B 5B 37 6D 23 9E C5 02 C8 1E C2 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 9E C5 0A C2 40 FF 32 C2
+CA C6 CE C7 1E C2 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 C2 46 C3 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 C3 01 12 71 3F 82 4E
+08 18 92 12 3A 18 D2 B3 21 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+92 D3 30 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
+B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
+00 18 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 19 42 9E 01 1E 42
+08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 C2
+86 C3 00 00 0C 41 43 43 45 50 54 00 30 40 B0 C4
+08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40
+0E C5 3C 40 1A C5 5D 15 9B 3E 21 52 3A 17 58 42
+CC 05 48 9B 09 20 A2 B3 DC 05 FD 27 B2 40 13 00
+CE 05 E2 D2 03 02 30 41 48 9C 06 2C 78 92 11 20
+2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00
+1E 53 A2 B3 DC 05 FD 27 C2 48 CE 05 30 4D 10 C5
+2D 83 92 B3 DC 05 DB 23 FC 3F 3E 8F 3D 41 92 B3
+DC 05 FD 27 58 42 CC 05 08 4C EB 3F 00 00 06 4B
+45 59 30 40 36 C5 30 12 4C C5 A2 B3 DC 05 FD 27
+B2 40 11 00 CE 05 E2 C2 03 02 30 41 2F 83 8F 4E
+00 00 92 B3 DC 05 FD 27 B0 12 D6 C4 1E 42 CC 05
+30 4D 00 00 08 45 4D 49 54 00 30 40 6E C5 08 4E
+3E 4F C7 3F 64 C5 08 45 43 48 4F 00 B2 40 C2 48
+08 C5 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D 08 C5 30 4D 00 00 08 54 59 50 45 00 0D 12
+3D 40 AE C5 29 4F 8F 4E 00 00 7E 49 DE 3F B0 C5
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 71 22
+F9 98 00 00 6E 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 65 22 9B 24 2E C5 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A C2 00 00 CE C6 C0 C5
+12 C8 CC CA B0 C2 3C C6 14 C2 06 5B 54 48 45 4E
+5D 00 C4 C5 1A C6 E0 C5 FE C5 14 C2 06 5B 45 4C
+53 45 5D 00 C4 C5 2C C6 E0 C5 FC C5 1E C2 04 5B
+49 46 5D 00 C4 C5 FE C5 B2 C2 FC C5 1E C2 05 0D
+6B 6F 20 0A 9E C5 9A C2 84 C2 B2 C2 FE C5 EC C5
+0D 5B 54 48 45 4E 5D 00 30 4D 50 C6 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D 5C C6 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 C0 C5 12 C8 7A C8
+1E CA 8E C7 6C C6 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 C0 C5 12 C8 7A C8 9E C6 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D A4 C4 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 C3 05 53 22 00 82 43 C0 1D
+0D 12 84 12 0A C2 1E C2 7C CA 0A C2 22 00 12 C8
+12 C7 B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D
+3E 4F 3D 41 30 4D 86 C5 05 2E 22 00 0D 12 84 12
+FC C6 0A C2 9E C5 7C CA 8E C7 00 00 04 3C 23 00
+B2 40 B2 1D B2 1D 30 4D F8 C6 02 23 1B 42 BE 1D
+2C 4F 2F 83 B0 12 46 C2 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 4A C7 04 23 53 00 0D 12
+84 12 4C C7 86 C7 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D 7A C7 04 23 3E 00 9F 42 B2 1D 00 00 3E 40
+B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 94 C7 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 76 C5 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 40 C7 C0 C5
+AE C7 7E C7 AA C6 BC C7 98 C7 9E C5 8E C7 28 C7
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D 00 C8 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 84 C9
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 86 C9 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E C2 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 3C C7 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12
+84 12 84 C2 C0 C5 12 C8 B0 C2 56 CB 7A C8 40 CA
+0A 4E 3E 4F 3D 40 5A CA 6D 27 3D 40 34 CA 1A E2
+BC 1D 14 24 0E 12 3E 4F 30 41 5C CA 3E 4F 3D 40
+34 CA 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 32 CC 2A 3C 24 CA 02 2C A2 53 C8 1D
+1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D 7A CA 0F 4C
+49 54 45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42
+C8 1D A2 52 C8 1D BA 40 0A C2 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D B6 C7 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D DC C6 0A 41 4C 4C
+4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43
+84 12 1E C2 02 0D 0A 00 9E C5 94 C2 2E CA BC C6
+E6 C6 1E C2 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 C3 32 C2 0A C2 40 FF EE C6 1E C2 09 46 52 41
+4D 20 66 75 6C 6C 08 C3 B2 C2 F2 CA DC CA 0D 41
+42 4F 52 54 22 00 0D 12 84 12 FC C6 0A C2 08 C3
+7C CA 8E C7 0C C8 02 27 0D 12 84 12 C0 C5 12 C8
+7A C8 B0 C2 58 CB 20 C7 64 CA 86 C6 07 5B 27 5D
+0D 12 84 12 48 CB 0A C2 0A C2 7C CA 7C CA 8E C7
+5C CB 03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43
+BC 1D 30 4D D4 C6 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 C0 C5 12 C8 7A C8 B0 C2 58 CB E6 C6
+AC C2 B0 CB 0A C2 0A C2 7C CA 7C CA 0A C2 7C CA
+7C CA 8E C7 00 00 02 3A 30 12 06 CC 92 B3 C8 1D
+A2 63 C8 1D 0D 12 84 12 C0 C5 12 C8 CE CB 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52
+82 4A C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12
+1E C2 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 C3 72 CB 03 3B 82 93 BC 1D F4 26 0D 12
+84 12 0A C2 8E C7 7C CA 18 CC 74 CB 8E C7 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3
+00 00 30 4D C6 CA 0C 43 52 45 41 54 45 00 B0 12
+BC CB BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 98 C5
+0A 44 4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D B6 CB 0E 3A 4E 4F 4E 41
+4D 45 30 12 06 CC 2F 83 8F 4E 00 00 1A 42 C8 1D
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F 50 CC
+05 49 53 00 0D 12 82 93 BC 1D 08 20 84 12 48 CB
+D2 CC 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 60 CB
+0A C2 D4 CC 7C CA 8E C7 66 CC 08 43 4F 44 45 00
+B0 12 BC CB A2 82 C8 1D 61 3C A8 C7 0E 48 44 4E
+43 4F 44 45 B2 40 C0 CD CC 1D F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 18 CC 1E CD 3D 41
+92 42 D0 1D CC 1D 5D 3C EA CC 0E 43 4F 44 45 4E
+4E 4D 30 12 F4 CC B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F FC CC 0B 48
+49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF
+82 43 BC 1D B9 3F 88 CD B2 40 9A CD D0 1D 82 4E
+CE 1D 30 40 20 C7 85 12 86 CD 86 CB 2E CB 18 CE
+2A CD 80 CC CA C7 74 C8 46 CB 6E CD C0 CC 9A CC
+36 CC 8E CA A2 CE CC C8 00 00 00 00 85 12 86 CD
+1C D5 A0 D3 00 D5 C8 D2 24 D3 72 D3 4E D4 5A D4
+EA D1 0E D3 00 00 00 00 5C CD DA D0 00 00 76 D4
+BA CD B2 40 9A CD CE 1D 82 43 D0 1D 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18
+B0 12 EE CD 30 4D 00 CE 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 1D B0 12 EE CD 1A 42
+CA 1D 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 06 C4 FE FF 29 83 B9 40 F2 C3
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 F0 FF
+3B 40 10 00 3A 40 3A 18 B0 12 F2 CD 82 43 4A 18
+C7 3F 94 CE B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+7C CB 0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12
+84 12 C0 C5 12 C8 7A C8 AC C2 C0 CE B4 C6 54 CA
+C2 CE 3E 4F 3D 41 B2 41 C6 1D B0 12 BC CB BA 40
+85 12 FC FF BA 40 92 CE FE FF 28 83 8A 48 00 00
+BA 40 82 C2 02 00 A2 52 C8 1D 18 42 B4 1D 19 42
+B6 1D A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D
+84 12 12 C8 7A C8 AC C2 2C CF 0C CF 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 92 CE
+00 00 01 20 3E 52 2E 83 21 53 30 41 24 C9 AC C2
+34 CF 28 CF 36 CF B2 41 C6 1D 30 41 92 83 C6 1D
+3E 40 28 00 0A 4E 3D 15 B0 12 FC CE 15 20 3E 40
+2B 00 B0 12 FC CE 06 20 3E 40 2D 00 B0 12 FC CE
+92 83 C6 1D 0E 12 1E 41 02 00 84 12 12 C8 24 C9
+AC C2 58 CB 76 CF 3E 51 3A 17 30 41 B0 12 3C CF
+19 42 C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00
+92 53 C6 1D 1A 42 C6 1D 3D 15 84 12 12 C8 24 C9
+AC C2 AE CF A6 CF 3E 90 10 00 E6 2B 7C 2D B0 CF
+A2 41 C6 1D E1 3F 03 20 B0 12 94 CF 43 3C 7A 90
+23 00 24 20 B0 12 44 CF 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 C8 1D
+A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 44 CF F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 90 CF 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 94 CF 92 92 C2 1D C6 1D 02 24
+92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+7C CF F2 3F 03 20 B0 12 94 CF F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 7C CF
+EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00
+19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF
+19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A C2 00 13 7C CA
+8E C7 0A C2 2C 00 72 D0 B6 CF C0 C5 7C D0 54 D0
+C2 D0 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 B2 D0 00 40 CE D0 0A 4D 4F 56 2E 42
+85 12 B2 D0 40 40 00 00 06 41 44 44 85 12 B2 D0
+00 50 E8 D0 0A 41 44 44 2E 42 85 12 B2 D0 40 50
+F4 D0 08 41 44 44 43 00 85 12 B2 D0 00 60 02 D1
+0C 41 44 44 43 2E 42 00 85 12 B2 D0 40 60 3A CD
+08 53 55 42 43 00 85 12 B2 D0 00 70 20 D1 0C 53
+55 42 43 2E 42 00 85 12 B2 D0 40 70 2E D1 06 53
+55 42 85 12 B2 D0 00 80 3E D1 0A 53 55 42 2E 42
+85 12 B2 D0 40 80 4A D1 06 43 4D 50 85 12 B2 D0
+00 90 58 D1 0A 43 4D 50 2E 42 85 12 B2 D0 40 90
+00 00 08 44 41 44 44 00 85 12 B2 D0 00 A0 72 D1
+0C 44 41 44 44 2E 42 00 85 12 B2 D0 40 A0 A0 D0
+06 42 49 54 85 12 B2 D0 00 B0 90 D1 0A 42 49 54
+2E 42 85 12 B2 D0 40 B0 9C D1 06 42 49 43 85 12
+B2 D0 00 C0 AA D1 0A 42 49 43 2E 42 85 12 B2 D0
+40 C0 B6 D1 06 42 49 53 85 12 B2 D0 00 D0 C4 D1
+0A 42 49 53 2E 42 85 12 B2 D0 40 D0 00 00 06 58
+4F 52 85 12 B2 D0 00 E0 DE D1 0A 58 4F 52 2E 42
+85 12 B2 D0 40 E0 10 D1 06 41 4E 44 85 12 B2 D0
+00 F0 F8 D1 0A 41 4E 44 2E 42 85 12 B2 D0 40 F0
+C0 C5 72 D0 B6 CF 18 D2 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F D0 D1 06 52 52 43 85 12
+10 D2 00 10 2A D2 0A 52 52 43 2E 42 85 12 10 D2
+40 10 64 D1 08 53 57 50 42 00 85 12 10 D2 80 10
+36 D2 06 52 52 41 85 12 10 D2 00 11 52 D2 0A 52
+52 41 2E 42 85 12 10 D2 40 11 44 D2 06 53 58 54
+85 12 10 D2 80 11 00 00 08 50 55 53 48 00 85 12
+10 D2 00 12 78 D2 0C 50 55 53 48 2E 42 00 85 12
+10 D2 40 12 6C D2 08 43 41 4C 4C 00 85 12 10 D2
+80 12 1A 53 0E 4A 84 12 02 C8 1E C2 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 C3 96 D2 06 53
+3E 3D 86 12 00 38 BE D2 04 53 3C 00 86 12 00 34
+86 D2 06 30 3E 3D 86 12 00 30 D2 D2 04 30 3C 00
+86 12 00 30 0E CD 04 55 3C 00 86 12 00 2C E6 D2
+06 55 3E 3D 86 12 00 28 DC D2 06 30 3C 3E 86 12
+00 24 FA D2 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A
+30 4D 80 D1 08 54 48 45 4E 00 1A 42 C8 1D 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D F0 D2 08 45 4C 53 45 00 1A 42
+C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A
+00 00 E3 3F 5E D2 0A 42 45 47 49 4E 30 40 32 C2
+48 D3 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D 04 D2
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 12 D3 A8 C6 8E C7
+66 D3 0C 52 45 50 45 41 54 00 0D 12 84 12 A6 D3
+2A D3 8E C7 D6 D3 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 1D CB 2F 98 42 C8 1D 00 00 30 4D C2 D3 06 42
+57 31 85 12 D4 D3 00 00 EE D3 06 42 57 32 85 12
+D4 D3 00 00 FA D3 06 42 57 33 85 12 D4 D3 00 00
+12 D4 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92
+C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 10 D4 00 00
+36 D4 06 46 57 32 85 12 10 D4 00 00 42 D4 06 46
+57 33 85 12 10 D4 00 00 B0 D3 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 48 CB
+54 CA 8E C7 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F 7C D0 0A C2 2C 00 12 C8 24 C9 AC C2 58 CB
+C0 C5 72 D0 54 D0 A8 D4 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E 06 D4 08 52 52 43 4D 00 85 12 92 D4
+50 00 D6 D4 08 52 52 41 4D 00 85 12 92 D4 50 01
+E4 D4 08 52 4C 41 4D 00 85 12 92 D4 50 02 F2 D4
+08 52 52 55 4D 00 85 12 92 D4 50 03 04 D3 0A 50
+55 53 48 4D 85 12 92 D4 00 15 0E D5 08 50 4F 50
+4D 00 85 12 92 D4 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3
+CA C4 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 F2 C3 06 C4
+q
index 1504ea3..e7d2275 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF EA D5 F0 CD 34 01
-10 00 41 87 B6 C3 AA C2 B8 C3 8C C3 82 C4 EA D5
-F0 CD 70 C4 80 C5 FE C4 DA C4 3C 1D 4E C6 D4 C2
-E2 C2 EE C2 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+C4 C4 56 C3 56 C3 58 C3 44 C3 04 D5 BC CD 76 CD
+76 CD B2 C4 36 C5 0E C5 3C 1D E0 1C 6A C7 B6 C2
+C4 C2 86 C6 20 00 0A 00 00 1C 56 C3 56 C3 58 C3
+44 C3 04 D5 BC CD 76 CD 76 CD 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @C200
-B0 12 B8 C3 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C2
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C2 39 40 22 18
-B2 49 6E C4 B2 49 7E C5 B2 49 FC C4 B2 49 D8 C4
-B2 49 CA C2 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BC CE 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA C3 0E 12 B0 12
-F8 C2 0A C2 DE 1D CE C5 16 C5 EE C2 34 C2 8A C3
-14 C2 05 1B 5B 37 6D 40 4A C5 0A C2 02 18 CE C5
-C4 C6 96 C5 34 C2 7E C3 14 C2 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A C5 8E C6 4A C5
-14 C2 04 1B 5B 30 6D 00 4A C5 16 CA 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 C3 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE C3 04 57 41 52 4D 00 B0 12
-8C C3 78 40 03 00 B0 12 BA C3 84 12 14 C2 07 0D
-0A 1B 5B 37 6D 40 4A C5 0A C2 02 18 CE C5 C4 C6
-0A C2 23 00 FA C4 C4 C6 14 C2 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 4A C5 0A C2 40 FF 28 C2 C2 C5 8E C6
-14 C2 0A 62 79 74 65 73 20 66 72 65 65 00 3A C2
-7E C3 00 00 06 41 43 43 45 50 54 00 30 40 70 C4
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 B8 22
-3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 C3 82 93 DE 1D 02 24 92 53 DE 1D 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA C4 2F 83 8F 4E 00 00
-58 43 B0 12 BA C3 92 B3 6C 06 FD 27 1E 42 4C 06
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE C4 08 4E
-3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D F4 C4
-04 45 43 48 4F 00 B2 40 C2 48 08 C5 82 43 DE 1D
-38 40 05 00 B0 12 BA C3 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 C5 92 43 DE 1D 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 C5 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC C4 68 C5 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC C3 02 43 52 00 30 40 80 C5
-0D 12 84 12 14 C2 02 0D 0A 00 4A C5 4E C6 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 C4 01 40 2E 4E
-30 4D CC C5 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D 78 C5 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E C2 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 08 C6 02 23 53 00 0D 12 84 12
-0A C6 44 C6 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 C6 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 C5 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE C5
-3C C6 EE C2 7C C6 58 C6 4A C5 02 CA FA C4 4E C6
-2C C5 01 2E 0E 93 E3 37 38 43 E2 3F 76 C6 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A C2 14 C2 48 C9
-0A C2 22 00 1A C7 E8 C6 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D C2 C6
-82 2E 22 00 0D 12 84 12 D2 C6 0A C2 4A C5 48 C9
-4E C6 F8 C3 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 C2 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 C2 35 40 D4 C2 30 4D
-00 00 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 9C C8 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E C8 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 C2 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D 46 C9 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F 32 B0
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 C2 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 01 3D 0E 93 3E 4F
+83 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 B0 C4 B2 49
+34 C5 B2 49 0C C5 B2 49 A0 C2 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 30 CE 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 C3 B0 12 D0 C2 90 C6 AC C2
+42 C3 4E C5 1E C2 05 1B 5B 37 6D 40 7A C5 0A C2
+02 18 B2 C6 DE C7 7A C5 1E C2 04 1B 5B 30 6D 00
+7A C5 C6 CA 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 4E C5 1E C2 07 0D 0A 1B 5B 37
+6D 40 7A C5 0A C2 02 18 B2 C6 DE C7 0A C2 23 00
+32 C5 DE C7 1E C2 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+7A C5 0A C2 40 FF 32 C2 A6 C6 AA C7 1E C2 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 C2 36 C3 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 C3 01 12 6D 3F 82 4E 08 18 92 12 3A 18 D2 B3
+21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01
+31 40 E0 1C 3F 40 80 1C 92 D3 30 01 B2 43 06 02
+B2 40 EF 7F 02 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 B2 40 33 00 64 01 D2 43 61 01 39 40
+40 00 18 42 00 18 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 1E 42
+08 18 82 43 08 18 3E F3 02 20 1E 42 9E 01 B0 12
+D0 C2 80 C3 00 00 0C 41 43 43 45 50 54 00 30 40
+B2 C4 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
+3D 15 9E 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06
+97 22 3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B
+0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
+F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F
+08 4C 1B 3C 00 00 06 4B 45 59 30 40 0E C5 58 43
+B0 12 46 C3 2F 83 8F 4E 00 00 92 B3 6C 06 FD 27
+1E 42 4C 06 B0 12 44 C3 30 4D 00 00 08 45 4D 49
+54 00 30 40 36 C5 08 4E 3E 4F A2 B3 6C 06 FD 27
+C2 48 4E 06 30 4D 2C C5 08 45 43 48 4F 00 B2 40
+C2 48 40 C5 38 40 05 00 B0 12 46 C3 30 4D 00 00
+0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 40 C5 28 42
+F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40 8A C5
+29 4F 8F 4E 00 00 7E 49 D4 3F 8C C5 2D 83 2F 83
+5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00
+0C 4E 38 4F 3C 9F 39 4F 3E 4F 83 22 F9 98 00 00
+80 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F
+1E 83 77 22 9B 24 06 C5 0D 5B 45 4C 53 45 5D 00
+0D 12 84 12 0A C2 00 00 AA C6 9C C5 EE C7 A8 CA
+B0 C2 18 C6 14 C2 06 5B 54 48 45 4E 5D 00 A0 C5
+F6 C5 BC C5 DA C5 14 C2 06 5B 45 4C 53 45 5D 00
+A0 C5 08 C6 BC C5 D8 C5 1E C2 04 5B 49 46 5D 00
+A0 C5 DA C5 B2 C2 D8 C5 1E C2 05 0D 6B 6F 20 0A
+7A C5 9A C2 84 C2 B2 C2 DA C5 C8 C5 0D 5B 54 48
+45 4E 5D 00 30 4D 2C C6 09 5B 49 46 5D 00 0E 93
+3E 4F C6 27 30 4D 38 C6 13 5B 44 45 46 49 4E 45
+44 5D 0D 12 84 12 9C C5 EE C7 56 C8 FA C9 6A C7
+48 C6 17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
+84 12 9C C5 EE C7 56 C8 7A C6 3D 41 2F 53 1E 83
+0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D
+8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 1C
+0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00
+02 40 2E 4E 30 4D A6 C4 02 21 BE 4F 00 00 3E 4F
+30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3
+30 4D E0 C3 05 53 22 00 82 43 C0 1D 0D 12 84 12
+0A C2 1E C2 58 CA 0A C2 22 00 EE C7 EE C6 B2 40
+20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41
+30 4D 60 C5 05 2E 22 00 0D 12 84 12 D8 C6 0A C2
+7A C5 58 CA 6A C7 00 00 04 3C 23 00 B2 40 B2 1D
+B2 1D 30 4D D4 C6 02 23 1B 42 BE 1D 2C 4F 2F 83
+B0 12 46 C2 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 26 C7 04 23 53 00 0D 12 84 12 28 C7
+62 C7 2D 83 09 DE 09 93 E1 23 3D 41 30 4D 56 C7
+04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F
+70 C7 08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00
+D2 33 30 4D 48 C5 04 55 2E 00 0C 43 2F 83 8F 4E
+00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3
+9F 53 00 00 0E 63 84 12 1C C7 9C C5 8A C7 5A C7
+86 C6 98 C7 74 C7 7A C5 6A C7 04 C7 02 2E 0E 93
+E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40
+C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24
+7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00 00 00
+04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98
+0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B
+7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48
+C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D 00 00
+08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58
+2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11
+68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
+FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83
+8F 4C 00 00 30 4D DC C7 0E 3E 4E 55 4D 42 45 52
+1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04
+6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50
+0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04
+19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83
+E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42
+BE 1D 0C 4E 0E 43 1E 15 3D 40 60 C9 7E 4C 6A 4C
+7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52
+6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20
+3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00
+38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27
+62 C9 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0
+00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53
+20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12
+3E C2 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4A 93 1D 17 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 18 C7
+03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12 84 C2
+9C C5 EE C7 B0 C2 32 CB 56 C8 1C CA 0A 4E 3E 4F
+3D 40 36 CA 6D 27 3D 40 10 CA 1A E2 BC 1D 14 24
+0E 12 3E 4F 30 41 38 CA 3E 4F 3D 40 10 CA 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+0E CC 2A 3C 00 CA 02 2C A2 53 C8 1D 1A 42 C8 1D
+8A 4E FE FF 3E 4F 30 4D 56 CA 0F 4C 49 54 45 52
+41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52
+C8 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F 32 B0
 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 C6 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 C6 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC C2 02 CA 1A C7 BE C9 9C 26
-3D 40 C6 C9 DE 3E C8 C9 0A 4E 3E 4F 3D 40 E2 C9
-36 27 3D 40 B8 C9 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 E4 C9 3E 4F 3D 40 B8 C9 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 CB CC 3F
-EC C9 86 12 20 00 D4 C5 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7C C5 BC C2
-B2 C9 B2 C5 E4 C5 14 C2 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A C3 0A C2 40 FF 28 C2 EC C5
-14 C2 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A C3
-3A C2 2C CA 08 CA 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 C6 0A C2 2A C3 48 C9 4E C6 7C C7 01 27
-0D 12 84 12 02 CA 1A C7 82 C7 34 C2 00 CA 4E C6
-00 00 83 5B 27 5D 0D 12 84 12 80 CA 0A C2 0A C2
-48 C9 48 C9 4E C6 92 CA 81 5B 82 43 BE 1D 30 4D
-FA C5 01 5D B2 43 BE 1D 30 4D B2 CA 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 CA 1A C7 82 C7 96 C5 34 C2
-00 CA E4 C5 34 C2 F4 CA 0A C2 0A C2 48 C9 48 C9
-0A C2 48 C9 48 C9 4E C6 A8 CA 01 3A 30 12 44 CB
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 02 CA 1A C7
-12 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 C2 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 C3 FA CA 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A C2 4E C6 48 C9 56 CB AA CA 4E C6
-A8 C9 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D 92 C9 06 43 52 45 41 54
-45 00 B0 12 00 CB BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA CB 04 43 4F 44 45 00 B0 12 00 CB A2 82
-C6 1D 0D 12 84 12 F2 CD CC CD 4E C6 A2 CB 07 48
-44 4E 43 4F 44 45 B2 40 D0 CD DA 1D EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 CB 0C CE
-2A CE 4E C6 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 0C CE 2A CE 4E C6 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-EE CB 85 48 49 32 4C 4F 0D 12 84 12 28 C2 9A CD
-48 C9 AA CA E2 CB 4E C6 88 CB 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A CC 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A C2 00 00 C6 C5 02 CA 1A C7 98 C9
-8E C5 34 C2 02 CD 9C C5 14 C2 06 5B 54 48 45 4E
-5D 00 74 CC DC CC 98 CC BA CC 4E C6 9C C5 14 C2
-06 5B 45 4C 53 45 5D 00 74 CC F2 CC 98 CC B8 CC
-4E C6 14 C2 04 5B 49 46 5D 00 74 CC BA CC 3A C2
-B8 CC 70 C5 14 C2 05 0D 0A 6B 6F 20 4A C5 BC C2
-AC C2 3A C2 BA CC A8 CC 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 CD 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 CA 1A C7 82 C7
-26 CD 4E C6 2C CD 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 CD DE C5 4E C6 5E CD B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A C9 06 4D
-41 52 4B 45 52 00 B0 12 00 CB BA 40 85 12 FC FF
-BA 40 5C CD FE FF 28 83 8A 48 00 00 BA 40 AA C2
-04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D 0A C2
-CA 1D D6 C5 4E C6 85 12 9E CD 66 CA D4 CB 10 C5
-7E CA 52 CC D2 C4 6E CD 00 C7 96 CE AA CE 8A C6
-14 C7 00 00 46 CD BC CA E2 C7 00 00 85 12 9E CD
-60 D4 C6 D4 08 D4 16 D5 CE D3 00 00 9A D1 00 00
-DE D5 C2 D5 32 D4 70 D4 AA D2 00 00 00 00 32 D5
-CA CD 3A 40 0C 00 39 40 D6 1D 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D
-30 4D A6 CD 24 CE 2A CE 3A CE 1A 42 20 18 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 C8 CA
-09 50 57 52 5F 53 54 41 54 45 85 12 32 CE EA D5
-CE C6 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E CE F3 3F 70 CE 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 7E CE 30 4D 82 CE 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 CF FE FF 29 83 B9 40
-E2 C3 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 C3 B2 49 FA C2 B2 49 02 C2 B2 49 00 C4 B2 49
-EE FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 04 29 83 89 43 00 1C FC 23 92 D3
-30 01 B2 43 06 02 B2 40 EF 7F 02 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 B2 40 33 00 64 01
-D2 43 61 01 39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18
-1E D2 9E 01 B0 12 F8 C2 FE C3 38 40 C0 1D 0A 4E
-39 48 2E 48 09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E
-FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15
-0E 12 12 12 C4 1D 84 12 1A C7 82 C7 DE C5 34 C2
-DA CF 3E C8 34 C2 F4 CF EE CF DC CF 3C 4E 3C 80
-87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52
-1B 17 30 41 F6 CF B2 41 C4 1D 3E 41 84 12 0A C2
-2B 00 1A C7 82 C7 DE C5 34 C2 12 D0 3E C8 34 C2
-00 CA A8 C5 1A C7 3E C8 34 C2 00 CA 1E D0 3E 5F
-E7 3F 3E 40 28 00 B0 12 BE CF 19 42 C6 1D A2 53
-C6 1D 89 4E 00 00 3E 40 29 00 92 92 C0 1D C4 1D
-02 20 30 40 6E CB 1C 15 12 12 C4 1D 92 53 C4 1D
-84 12 1A C7 3E C8 34 C2 66 D0 5C D0 21 53 3E 90
-10 00 C6 2B 7F 2D 68 D0 B2 41 C4 1D C1 3F 0D 12
-84 12 02 CA 9A CF 78 D0 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 BE CF 3C 40 00 03 0E 93 1C 24 3C 40 10 03
+92 C7 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D B8 C6 0A 41 4C 4C 4F 54 82 5E
+C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12 1E C2
+02 0D 0A 00 7A C5 94 C2 0A CA 98 C6 C2 C6 1E C2
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 C3 32 C2
+0A C2 40 FF CA C6 1E C2 09 46 52 41 4D 20 66 75
+6C 6C 08 C3 B2 C2 CE CA B8 CA 0D 41 42 4F 52 54
+22 00 0D 12 84 12 D8 C6 0A C2 08 C3 58 CA 6A C7
+E8 C7 02 27 0D 12 84 12 9C C5 EE C7 56 C8 B0 C2
+34 CB FC C6 40 CA 62 C6 07 5B 27 5D 0D 12 84 12
+24 CB 0A C2 0A C2 58 CA 58 CA 6A C7 38 CB 03 5B
+82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D 30 4D
+B0 C6 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+9C C5 EE C7 56 C8 B0 C2 34 CB C2 C6 AC C2 8C CB
+0A C2 0A C2 58 CA 58 CA 0A C2 58 CA 58 CA 6A C7
+00 00 02 3A 30 12 E2 CB 92 B3 C8 1D A2 63 C8 1D
+0D 12 84 12 9C C5 EE C7 AA CB 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D 82 49
+B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E C2 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 C3
+4E CB 03 3B 82 93 BC 1D F4 26 0D 12 84 12 0A C2
+6A C7 58 CA F4 CB 50 CB 6A C7 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00 30 4D
+A2 CA 0C 43 52 45 41 54 45 00 B0 12 98 CB BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D 74 C5 0A 44 4F 45
+53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D 92 CB 0E 3A 4E 4F 4E 41 4D 45 30 12
+E2 CB 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F 2C CC 05 49 53 00
+0D 12 82 93 BC 1D 08 20 84 12 24 CB AE CC 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 3C CB 0A C2 B0 CC
+58 CA 6A C7 42 CC 08 43 4F 44 45 00 B0 12 98 CB
+A2 82 C8 1D 61 3C 84 C7 0E 48 44 4E 43 4F 44 45
+B2 40 9C CD CC 1D F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 F4 CB FA CC 3D 41 92 42 D0 1D
+CC 1D 5D 3C C6 CC 0E 43 4F 44 45 4E 4E 4D 30 12
+D0 CC B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 1D
+B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 1D 1A 42 C8 1D EF 3F D8 CC 0B 48 49 32 4C 4F
+A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D
+B9 3F 64 CD B2 40 76 CD D0 1D 82 4E CE 1D 30 40
+FC C6 85 12 62 CD 62 CB 0A CB F4 CD 06 CD 5C CC
+A6 C7 50 C8 22 CB 4A CD 9C CC 76 CC 12 CC 6A CA
+7E CE A8 C8 00 00 00 00 85 12 62 CD F8 D4 7C D3
+DC D4 A4 D2 00 D3 4E D3 2A D4 36 D4 C6 D1 EA D2
+00 00 00 00 38 CD B6 D0 00 00 52 D4 96 CD B2 40
+76 CD CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12 CA CD
+30 4D DC CD 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 1D B0 12 CA CD 1A 42 CA 1D 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 0E C4 FE FF 29 83 B9 40 FA C3 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 EE FF 3B 40 10 00
+3A 40 3A 18 B0 12 CE CD 82 43 4A 18 C7 3F 70 CE
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 58 CB 0C 4D
+41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12 9C C5
+EE C7 56 C8 AC C2 9C CE 90 C6 30 CA 9E CE 3E 4F
+3D 41 B2 41 C6 1D B0 12 98 CB BA 40 85 12 FC FF
+BA 40 6E CE FE FF 28 83 8A 48 00 00 BA 40 82 C2
+02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12 EE C7
+56 C8 AC C2 08 CF E8 CE 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 6E CE 00 00 01 20
+3E 52 2E 83 21 53 30 41 00 C9 AC C2 10 CF 04 CF
+12 CF B2 41 C6 1D 30 41 92 83 C6 1D 3E 40 28 00
+0A 4E 3D 15 B0 12 D8 CE 15 20 3E 40 2B 00 B0 12
+D8 CE 06 20 3E 40 2D 00 B0 12 D8 CE 92 83 C6 1D
+0E 12 1E 41 02 00 84 12 EE C7 00 C9 AC C2 34 CB
+52 CF 3E 51 3A 17 30 41 B0 12 18 CF 19 42 C8 1D
+89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53 C6 1D
+1A 42 C6 1D 3D 15 84 12 EE C7 00 C9 AC C2 8A CF
+82 CF 3E 90 10 00 E6 2B 7C 2D 8C CF A2 41 C6 1D
+E1 3F 03 20 B0 12 70 CF 43 3C 7A 90 23 00 24 20
+B0 12 20 CF 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 BE CF ED 3F 7A 90
-40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12 46 D0
-0C 20 3C 50 10 00 3E 40 2B 00 B0 12 46 D0 92 92
-C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E DA 3F
-B0 12 46 D0 FA 23 3C 50 10 00 B0 12 22 D0 EF 3F
-0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12 84 12 02 CA
-9A CF 44 D1 FE 90 26 00 00 00 3E 40 20 00 03 20
-3C 50 82 00 C7 3F B0 12 46 D0 E0 23 3C 50 80 00
-B0 12 22 D0 DB 3F 00 00 04 52 45 54 49 00 0D 12
-84 12 0A C2 00 13 48 C9 4E C6 0A C2 2C 00 6E D0
-3A D1 84 D1 09 4B 2E 4E 0E DC A2 3F 40 CC 03 4D
-4F 56 85 12 7A D1 00 40 8E D1 05 4D 4F 56 2E 42
-85 12 7A D1 40 40 00 00 03 41 44 44 85 12 7A D1
-00 50 A8 D1 05 41 44 44 2E 42 85 12 7A D1 40 50
-B4 D1 04 41 44 44 43 00 85 12 7A D1 00 60 C2 D1
-06 41 44 44 43 2E 42 00 85 12 7A D1 40 60 68 D1
-04 53 55 42 43 00 85 12 7A D1 00 70 E0 D1 06 53
-55 42 43 2E 42 00 85 12 7A D1 40 70 EE D1 03 53
-55 42 85 12 7A D1 00 80 FE D1 05 53 55 42 2E 42
-85 12 7A D1 40 80 16 CC 03 43 4D 50 85 12 7A D1
-00 90 18 D2 05 43 4D 50 2E 42 85 12 7A D1 40 90
-00 CC 04 44 41 44 44 00 85 12 7A D1 00 A0 32 D2
-06 44 41 44 44 2E 42 00 85 12 7A D1 40 A0 24 D2
-03 42 49 54 85 12 7A D1 00 B0 50 D2 05 42 49 54
-2E 42 85 12 7A D1 40 B0 5C D2 03 42 49 43 85 12
-7A D1 00 C0 6A D2 05 42 49 43 2E 42 85 12 7A D1
-40 C0 76 D2 03 42 49 53 85 12 7A D1 00 D0 84 D2
-05 42 49 53 2E 42 85 12 7A D1 40 D0 00 00 03 58
-4F 52 85 12 7A D1 00 E0 9E D2 05 58 4F 52 2E 42
-85 12 7A D1 40 E0 D0 D1 03 41 4E 44 85 12 7A D1
-00 F0 B8 D2 05 41 4E 44 2E 42 85 12 7A D1 40 F0
-02 CA 6E D0 D6 D2 0A 4C 3C F0 70 00 8A 10 3A F0
-0F 00 0C DA 4F 3F 0A D2 03 52 52 43 85 12 D0 D2
-00 10 E8 D2 05 52 52 43 2E 42 85 12 D0 D2 40 10
-F4 D2 04 53 57 50 42 00 85 12 D0 D2 80 10 02 D3
-03 52 52 41 85 12 D0 D2 00 11 10 D3 05 52 52 41
-2E 42 85 12 D0 D2 40 11 1C D3 03 53 58 54 85 12
-D0 D2 80 11 00 00 04 50 55 53 48 00 85 12 D0 D2
-00 12 36 D3 06 50 55 53 48 2E 42 00 85 12 D0 D2
-40 12 90 D2 04 43 41 4C 4C 00 85 12 D0 D2 80 12
-1A 53 0E 4A 0D 12 84 12 C4 C6 14 C2 0D 6F 75 74
-20 6F 66 20 62 6F 75 6E 64 73 36 C3 2A D3 03 53
-3E 3D 86 12 00 38 7E D3 02 53 3C 00 86 12 00 34
-44 D3 03 30 3E 3D 86 12 00 30 92 D3 02 30 3C 00
-86 12 00 30 00 00 02 55 3C 00 86 12 00 2C A6 D3
-03 55 3E 3D 86 12 00 28 9C D3 03 30 3C 3E 86 12
-00 24 BA D3 02 30 3D 00 86 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 B0 D3 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 B1 2F
-88 DA 00 00 30 4D 40 D2 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 D3 05 42 45 47 49 4E 30 40 28 C2
-E4 D3 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 8A 3B 3A F0
-FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D C4 D2
-05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
-05 57 48 49 4C 45 0D 12 84 12 D2 D3 A8 C5 4E C6
-88 D3 06 52 45 50 45 41 54 00 0D 12 84 12 66 D4
-EA D3 4E C6 96 D4 3D 41 08 4E 3E 4F 2A 48 B2 92
-C4 1D CB 2F 98 42 C6 1D 00 00 30 4D 26 D4 03 42
-57 31 85 12 94 D4 00 00 AE D4 03 42 57 32 85 12
-94 D4 00 00 BA D4 03 42 57 33 85 12 94 D4 00 00
-D2 D4 3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D 88 2B
-BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D
-00 00 03 46 57 31 85 12 D0 D4 00 00 F2 D4 03 46
-57 32 85 12 D0 D4 00 00 FE D4 03 46 57 33 85 12
-D0 D4 00 00 0A D5 04 47 4F 54 4F 00 2F 83 8F 4E
-00 00 3E 40 00 3C 0D 12 84 12 80 CA DC C9 4E C6
-00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
-00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 02 CA
-9A CF 54 D5 92 53 C4 1D 3E 40 2C 00 84 12 1A C7
-3E C8 34 C2 00 CA 30 D1 6A D5 0A 4E 3E 4F 1A 83
-F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
-08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E
-8A 10 5A 06 A6 3E 82 D4 04 52 52 43 4D 00 85 12
-4E D5 50 00 98 D5 04 52 52 41 4D 00 85 12 4E D5
-50 01 A6 D5 04 52 4C 41 4D 00 85 12 4E D5 50 02
-B4 D5 04 52 52 55 4D 00 85 12 4E D5 50 03 C4 D3
-05 50 55 53 48 4D 85 12 4E D5 00 15 D0 D5 04 50
-4F 50 4D 00 85 12 4E D5 00 17
+3E 93 08 24 3C 40 30 00 19 42 C8 1D A2 53 C8 1D
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 20 CF F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 6C CF 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 70 CF 92 92 C2 1D C6 1D 02 24 92 53 C6 1D
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 58 CF F2 3F
+03 20 B0 12 70 CF F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 58 CF EA 3F 0C 43
+1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42 C6 1D
+19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82 C4 1D
+82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A C2 00 13 58 CA 6A C7 0A C2
+2C 00 4E D0 92 CF 9C C5 58 D0 30 D0 9E D0 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+8E D0 00 40 AA D0 0A 4D 4F 56 2E 42 85 12 8E D0
+40 40 00 00 06 41 44 44 85 12 8E D0 00 50 C4 D0
+0A 41 44 44 2E 42 85 12 8E D0 40 50 D0 D0 08 41
+44 44 43 00 85 12 8E D0 00 60 DE D0 0C 41 44 44
+43 2E 42 00 85 12 8E D0 40 60 16 CD 08 53 55 42
+43 00 85 12 8E D0 00 70 FC D0 0C 53 55 42 43 2E
+42 00 85 12 8E D0 40 70 0A D1 06 53 55 42 85 12
+8E D0 00 80 1A D1 0A 53 55 42 2E 42 85 12 8E D0
+40 80 26 D1 06 43 4D 50 85 12 8E D0 00 90 34 D1
+0A 43 4D 50 2E 42 85 12 8E D0 40 90 00 00 08 44
+41 44 44 00 85 12 8E D0 00 A0 4E D1 0C 44 41 44
+44 2E 42 00 85 12 8E D0 40 A0 7C D0 06 42 49 54
+85 12 8E D0 00 B0 6C D1 0A 42 49 54 2E 42 85 12
+8E D0 40 B0 78 D1 06 42 49 43 85 12 8E D0 00 C0
+86 D1 0A 42 49 43 2E 42 85 12 8E D0 40 C0 92 D1
+06 42 49 53 85 12 8E D0 00 D0 A0 D1 0A 42 49 53
+2E 42 85 12 8E D0 40 D0 00 00 06 58 4F 52 85 12
+8E D0 00 E0 BA D1 0A 58 4F 52 2E 42 85 12 8E D0
+40 E0 EC D0 06 41 4E 44 85 12 8E D0 00 F0 D4 D1
+0A 41 4E 44 2E 42 85 12 8E D0 40 F0 9C C5 4E D0
+92 CF F4 D1 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F AC D1 06 52 52 43 85 12 EC D1 00 10
+06 D2 0A 52 52 43 2E 42 85 12 EC D1 40 10 40 D1
+08 53 57 50 42 00 85 12 EC D1 80 10 12 D2 06 52
+52 41 85 12 EC D1 00 11 2E D2 0A 52 52 41 2E 42
+85 12 EC D1 40 11 20 D2 06 53 58 54 85 12 EC D1
+80 11 00 00 08 50 55 53 48 00 85 12 EC D1 00 12
+54 D2 0C 50 55 53 48 2E 42 00 85 12 EC D1 40 12
+48 D2 08 43 41 4C 4C 00 85 12 EC D1 80 12 1A 53
+0E 4A 84 12 DE C7 1E C2 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 C3 72 D2 06 53 3E 3D 86 12
+00 38 9A D2 04 53 3C 00 86 12 00 34 62 D2 06 30
+3E 3D 86 12 00 30 AE D2 04 30 3C 00 86 12 00 30
+EA CC 04 55 3C 00 86 12 00 2C C2 D2 06 55 3E 3D
+86 12 00 28 B8 D2 06 30 3C 3E 86 12 00 24 D6 D2
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D 5C D1
+08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D CC D2 08 45 4C 53 45 00 1A 42 C8 1D BA 40
+00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F
+3A D2 0A 42 45 47 49 4E 30 40 32 C2 24 D3 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 1D 30 4D E0 D1 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 EE D2 84 C6 6A C7 42 D3 0C 52
+45 50 45 41 54 00 0D 12 84 12 82 D3 06 D3 6A C7
+B2 D3 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F
+98 42 C8 1D 00 00 30 4D 9E D3 06 42 57 31 85 12
+B0 D3 00 00 CA D3 06 42 57 32 85 12 B0 D3 00 00
+D6 D3 06 42 57 33 85 12 B0 D3 00 00 EE D3 3D 41
+1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D 86 2B
+BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 EC D3 00 00 12 D4 06 46
+57 32 85 12 EC D3 00 00 1E D4 06 46 57 33 85 12
+EC D3 00 00 8C D3 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 24 CB 30 CA 6A C7
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 58 D0
+0A C2 2C 00 EE C7 00 C9 AC C2 34 CB 9C C5 4E D0
+30 D0 84 D4 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+E2 D3 08 52 52 43 4D 00 85 12 6E D4 50 00 B2 D4
+08 52 52 41 4D 00 85 12 6E D4 50 01 C0 D4 08 52
+4C 41 4D 00 85 12 6E D4 50 02 CE D4 08 52 52 55
+4D 00 85 12 6E D4 50 03 E0 D2 0A 50 55 53 48 4D
+85 12 6E D4 00 15 EA D4 08 50 4F 50 4D 00 85 12
+6E D4 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 82 C4
-E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 E2 C3 08 CF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 C4 C4
+FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 FA C3 0E C4
 q
diff --git a/binaries/MSP_EXP430FR5739_8MHz_UART.txt b/binaries/MSP_EXP430FR5739_8MHz_UART.txt
deleted file mode 100644 (file)
index d16a623..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF 00 D6 02 CE 34 01
-10 00 41 B3 94 C3 AA C2 DA C3 9C C3 94 C4 00 D6
-02 CE 7A C4 92 C5 24 C5 FE C4 3C 1D 60 C6 D4 C2
-E2 C2 EE C2 20 00 0A 00 00 00 00 00 00 00 00 00
-@C200
-B0 12 DA C3 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 C2
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA C2 39 40 22 18
-B2 49 78 C4 B2 49 90 C5 B2 49 22 C5 B2 49 FC C4
-B2 49 CA C2 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 CE CE 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA C3 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 C2 0A C2 DE 1D E0 C5 32 C5
-14 C2 04 1B 5B 37 6D 00 5C C5 A8 C5 34 C2 86 C3
-14 C2 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C C5 A0 C6 5C C5 14 C2 04 1B 5B 30 6D 00
-5C C5 28 CA 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D2 03 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 03 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 C3 D2 B3 21 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE C3 04 57 41 52 4D 00 B0 12
-9C C3 84 12 14 C2 07 0D 0A 1B 5B 37 6D 23 5C C5
-D6 C6 14 C2 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 5C C5
-0A C2 40 FF 28 C2 D4 C5 A0 C6 14 C2 0A 62 79 74
-65 73 20 66 72 65 65 00 3A C2 86 C3 00 00 06 41
-43 43 45 50 54 00 30 40 7A C4 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 C4 3C 40 D2 C4
-5D 15 B6 3E 21 52 3A 17 58 42 CC 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 CE 05 30 4D C8 C4 2D 83 92 B3 DC 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 DC 05
-FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53 DE 1D
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE C4 2F 83
-8F 4E 00 00 B0 12 DA C3 92 B3 DC 05 FD 27 1E 42
-CC 05 B0 12 C8 C3 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 C5 08 4E 3E 4F C8 3F 1A C5 04 45 43 48
-4F 00 B2 40 C2 48 C0 C4 82 43 DE 1D 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 C4 92 43
-DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 C5 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 C5 7A C5 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC C3 02 43 52 00 30 40
-92 C5 0D 12 84 12 14 C2 02 0D 0A 00 5C C5 60 C6
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E C4 01 40
-2E 4E 30 4D DE C5 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 8A C5 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E C2 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 1A C6 02 23 53 00 0D 12
-84 12 1C C6 56 C6 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A C6 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 C5 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 C6 4E C6 EE C2 8E C6 6A C6 5C C5 14 CA 20 C5
-60 C6 40 C5 01 2E 0E 93 E3 37 38 43 E2 3F 88 C6
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A C2 14 C2
-5A C9 0A C2 22 00 2C C7 FA C6 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-D4 C6 82 2E 22 00 0D 12 84 12 E4 C6 0A C2 5C C5
-5A C9 60 C6 18 C4 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 C2 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 C2 35 40 D4 C2
-30 4D 00 00 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 AE C8
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 C8
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 C2 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 58 C9 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A C2 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 C6 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A C6 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC C2 14 CA 2C C7 D0 C9
-9C 26 3D 40 D8 C9 DE 3E DA C9 0A 4E 3E 4F 3D 40
-F4 C9 36 27 3D 40 CA C9 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 F6 C9 3E 4F 3D 40 CA C9 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 CB
-CC 3F FE C9 86 12 20 00 E6 C5 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 8E C5
-BC C2 C4 C9 C4 C5 F6 C5 14 C2 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A C3 0A C2 40 FF 28 C2
-FE C5 14 C2 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A C3 3A C2 3E CA 1A CA 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 C6 0A C2 2A C3 5A C9 60 C6 8E C7
-01 27 0D 12 84 12 14 CA 2C C7 94 C7 34 C2 12 CA
-60 C6 00 00 83 5B 27 5D 0D 12 84 12 92 CA 0A C2
-0A C2 5A C9 5A C9 60 C6 A4 CA 81 5B 82 43 BE 1D
-30 4D 0C C6 01 5D B2 43 BE 1D 30 4D C4 CA 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 CA 2C C7 94 C7 A8 C5
-34 C2 12 CA F6 C5 34 C2 06 CB 0A C2 0A C2 5A C9
-5A C9 0A C2 5A C9 5A C9 60 C6 BA CA 01 3A 30 12
-56 CB 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 14 CA
-2C C7 24 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 C2 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 C3 0C CB 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A C2 60 C6 5A C9 68 CB BC CA
-60 C6 BA C9 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D A4 C9 06 43 52 45
-41 54 45 00 B0 12 12 CB BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC CB 04 43 4F 44 45 00 B0 12 12 CB
-A2 82 C6 1D 0D 12 84 12 04 CE DE CD 60 C6 B4 CB
-07 48 44 4E 43 4F 44 45 B2 40 E2 CD DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 CB
-1E CE 3C CE 60 C6 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 1E CE 3C CE 60 C6
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F 00 CC 85 48 49 32 4C 4F 0D 12 84 12 28 C2
-AC CD 5A C9 BC CA F4 CB 60 C6 9A CB 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C CC 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A C2 00 00 D8 C5 14 CA 2C C7
-AA C9 A0 C5 34 C2 14 CD AE C5 14 C2 06 5B 54 48
-45 4E 5D 00 86 CC EE CC AA CC CC CC 60 C6 AE C5
-14 C2 06 5B 45 4C 53 45 5D 00 86 CC 04 CD AA CC
-CA CC 60 C6 14 C2 04 5B 49 46 5D 00 86 CC CC CC
-3A C2 CA CC 82 C5 14 C2 05 0D 0A 6B 6F 20 5C C5
-BC C2 AC C2 3A C2 CC CC BA CC 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A CD 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 CA 2C C7
-94 C7 38 CD 60 C6 3E CD 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 CD F0 C5 60 C6 70 CD
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C C9
-06 4D 41 52 4B 45 52 00 B0 12 12 CB BA 40 85 12
-FC FF BA 40 6E CD FE FF 28 83 8A 48 00 00 BA 40
-AA C2 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A C2 CA 1D E8 C5 60 C6 85 12 B0 CD 78 CA E6 CB
-2C C5 90 CA 64 CC F6 C4 80 CD 12 C7 A8 CE BC CE
-9C C6 26 C7 00 00 58 CD CE CA F4 C7 00 00 85 12
-B0 CD 76 D4 DC D4 1E D4 2C D5 E4 D3 00 00 B0 D1
-00 00 F4 D5 D8 D5 48 D4 86 D4 C0 D2 00 00 00 00
-48 D5 DC CD 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D B8 CD 36 CE 3C CE 4C CE 1A 42 20 18
-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
-DA CA 09 50 57 52 5F 53 54 41 54 45 85 12 44 CE
-00 D6 E0 C6 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 CE F3 3F 82 CE 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 90 CE 30 4D 94 CE 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A CF FE FF 29 83
-B9 40 02 C4 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 C4 B2 49 FA C2 B2 49 02 C2 B2 49 20 C4
-B2 49 F0 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 04 29 83 89 43 00 1C FC 23
-92 D3 30 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
-B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
-00 18 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 1E 42
-08 18 82 43 08 18 1E D2 9E 01 B0 12 F8 C2 1E C4
-38 40 C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D
-09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A
-C4 1D 30 4D 1C 15 0E 12 12 12 C4 1D 84 12 2C C7
-94 C7 F0 C5 34 C2 F0 CF 50 C8 34 C2 0A D0 04 D0
-F2 CF 3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E
-01 3C 2E 83 21 52 1B 17 30 41 0C D0 B2 41 C4 1D
-3E 41 84 12 0A C2 2B 00 2C C7 94 C7 F0 C5 34 C2
-28 D0 50 C8 34 C2 12 CA BA C5 2C C7 50 C8 34 C2
-12 CA 34 D0 3E 5F E7 3F 3E 40 28 00 B0 12 D4 CF
-19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00
-92 92 C0 1D C4 1D 02 20 30 40 80 CB 1C 15 12 12
-C4 1D 92 53 C4 1D 84 12 2C C7 50 C8 34 C2 7C D0
-72 D0 21 53 3E 90 10 00 C6 2B 7F 2D 7E D0 B2 41
-C4 1D C1 3F 0D 12 84 12 14 CA B0 CF 8E D0 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 D4 CF 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
-D4 CF ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53
-C4 1D B0 12 5C D0 0C 20 3C 50 10 00 3E 40 2B 00
-B0 12 5C D0 92 92 C0 1D C4 1D 02 24 92 53 C4 1D
-8E 10 0C 5E DA 3F B0 12 5C D0 FA 23 3C 50 10 00
-B0 12 38 D0 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D
-0D 12 84 12 14 CA B0 CF 5A D1 FE 90 26 00 00 00
-3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12 5C D0
-E0 23 3C 50 80 00 B0 12 38 D0 DB 3F 00 00 04 52
-45 54 49 00 0D 12 84 12 0A C2 00 13 5A C9 60 C6
-0A C2 2C 00 84 D0 50 D1 9A D1 09 4B 2E 4E 0E DC
-A2 3F 52 CC 03 4D 4F 56 85 12 90 D1 00 40 A4 D1
-05 4D 4F 56 2E 42 85 12 90 D1 40 40 00 00 03 41
-44 44 85 12 90 D1 00 50 BE D1 05 41 44 44 2E 42
-85 12 90 D1 40 50 CA D1 04 41 44 44 43 00 85 12
-90 D1 00 60 D8 D1 06 41 44 44 43 2E 42 00 85 12
-90 D1 40 60 7E D1 04 53 55 42 43 00 85 12 90 D1
-00 70 F6 D1 06 53 55 42 43 2E 42 00 85 12 90 D1
-40 70 04 D2 03 53 55 42 85 12 90 D1 00 80 14 D2
-05 53 55 42 2E 42 85 12 90 D1 40 80 28 CC 03 43
-4D 50 85 12 90 D1 00 90 2E D2 05 43 4D 50 2E 42
-85 12 90 D1 40 90 12 CC 04 44 41 44 44 00 85 12
-90 D1 00 A0 48 D2 06 44 41 44 44 2E 42 00 85 12
-90 D1 40 A0 3A D2 03 42 49 54 85 12 90 D1 00 B0
-66 D2 05 42 49 54 2E 42 85 12 90 D1 40 B0 72 D2
-03 42 49 43 85 12 90 D1 00 C0 80 D2 05 42 49 43
-2E 42 85 12 90 D1 40 C0 8C D2 03 42 49 53 85 12
-90 D1 00 D0 9A D2 05 42 49 53 2E 42 85 12 90 D1
-40 D0 00 00 03 58 4F 52 85 12 90 D1 00 E0 B4 D2
-05 58 4F 52 2E 42 85 12 90 D1 40 E0 E6 D1 03 41
-4E 44 85 12 90 D1 00 F0 CE D2 05 41 4E 44 2E 42
-85 12 90 D1 40 F0 14 CA 84 D0 EC D2 0A 4C 3C F0
-70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 20 D2 03 52
-52 43 85 12 E6 D2 00 10 FE D2 05 52 52 43 2E 42
-85 12 E6 D2 40 10 0A D3 04 53 57 50 42 00 85 12
-E6 D2 80 10 18 D3 03 52 52 41 85 12 E6 D2 00 11
-26 D3 05 52 52 41 2E 42 85 12 E6 D2 40 11 32 D3
-03 53 58 54 85 12 E6 D2 80 11 00 00 04 50 55 53
-48 00 85 12 E6 D2 00 12 4C D3 06 50 55 53 48 2E
-42 00 85 12 E6 D2 40 12 A6 D2 04 43 41 4C 4C 00
-85 12 E6 D2 80 12 1A 53 0E 4A 0D 12 84 12 D6 C6
-14 C2 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
-36 C3 40 D3 03 53 3E 3D 86 12 00 38 94 D3 02 53
-3C 00 86 12 00 34 5A D3 03 30 3E 3D 86 12 00 30
-A8 D3 02 30 3C 00 86 12 00 30 00 00 02 55 3C 00
-86 12 00 2C BC D3 03 55 3E 3D 86 12 00 28 B2 D3
-03 30 3C 3E 86 12 00 24 D0 D3 02 30 3D 00 86 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 C6 D3 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 B1 2F 88 DA 00 00 30 4D 56 D2 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 6A D3 05 42 45 47
-49 4E 30 40 28 C2 FA D3 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
-C6 1D 30 4D DA D2 05 41 47 41 49 4E 0A 4E 38 40
-00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12
-E8 D3 BA C5 60 C6 9E D3 06 52 45 50 45 41 54 00
-0D 12 84 12 7C D4 00 D4 60 C6 AC D4 3D 41 08 4E
-3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D 00 00
-30 4D 3C D4 03 42 57 31 85 12 AA D4 00 00 C4 D4
-03 42 57 32 85 12 AA D4 00 00 D0 D4 03 42 57 33
-85 12 AA D4 00 00 E8 D4 3D 41 1A 42 C6 1D 28 4E
-B2 92 C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A
-00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12 E6 D4
-00 00 08 D5 03 46 57 32 85 12 E6 D4 00 00 14 D5
-03 46 57 33 85 12 E6 D4 00 00 20 D5 04 47 4F 54
-4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
-92 CA EE C9 60 C6 00 00 05 3F 47 4F 54 4F 3E 90
-00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
-00 08 EC 3F 14 CA B0 CF 6A D5 92 53 C4 1D 3E 40
-2C 00 84 12 2C C7 50 C8 34 C2 12 CA 46 D1 80 D5
-0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C
-59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E
-AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 98 D4 04 52
-52 43 4D 00 85 12 64 D5 50 00 AE D5 04 52 52 41
-4D 00 85 12 64 D5 50 01 BC D5 04 52 4C 41 4D 00
-85 12 64 D5 50 02 CA D5 04 52 52 55 4D 00 85 12
-64 D5 50 03 DA D3 05 50 55 53 48 4D 85 12 64 D5
-00 15 E6 D5 04 50 4F 50 4D 00 85 12 64 D5 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4
-94 C4 02 C4 02 C4 02 C4 02 C4 02 C4 02 C4 1A CF
-q
diff --git a/binaries/MSP_EXP430FR5969_16MHz_115200.txt b/binaries/MSP_EXP430FR5969_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..28d6b63
--- /dev/null
@@ -0,0 +1,326 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A1 59
+D8 46 7E 45 84 45 54 45 48 47 36 57 EE 4F A8 4F
+A8 4F BE 46 7C 47 44 47 3C 1D E0 1C 9C 49 B6 44
+C4 44 B8 48 20 00 0A 00 00 1C 7E 45 84 45 54 45
+48 47 36 57 EE 4F A8 4F A8 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 07 3D 0E 93 3E 4F
+9C 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 BC 46 B2 49
+7A 47 B2 49 42 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 62 50 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 48 47 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 44 C2 48 AC 44 52 45 8A 47 1E 44 04 1B
+5B 37 6D 00 AC 47 AC 47 1E 44 04 1B 5B 30 6D 00
+AC 47 F8 4C B0 12 7E 45 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 8A 47 1E 44
+07 0D 0A 1B 5B 37 6D 23 AC 47 10 4A 1E 44 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 AC 47 0A 44 40 FF 32 44
+D8 48 DC 49 1E 44 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 44 46 45 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 45 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 20 00 21 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40
+E0 1C 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 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
+18 42 00 18 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 19 42 9E 01 1E 42 08 18
+82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 44 86 45
+00 00 0C 41 43 43 45 50 54 00 30 40 BE 46 08 4E
+2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40 1C 47
+3C 40 28 47 5D 15 94 3E 21 52 3A 17 58 42 CC 05
+48 9B 09 20 A2 B3 DC 05 FD 27 B2 40 13 00 CE 05
+E2 D3 23 02 30 41 48 9C 06 2C 78 92 11 20 2E 9F
+0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00 1E 53
+A2 B3 DC 05 FD 27 C2 48 CE 05 30 4D 1E 47 2D 83
+92 B3 DC 05 DB 23 FC 3F 3E 8F 3D 41 92 B3 DC 05
+FD 27 58 42 CC 05 08 4C EB 3F 00 00 06 4B 45 59
+30 40 44 47 30 12 5A 47 A2 B3 DC 05 FD 27 B2 40
+11 00 CE 05 E2 C3 23 02 30 41 2F 83 8F 4E 00 00
+92 B3 DC 05 FD 27 B0 12 E4 46 1E 42 CC 05 30 4D
+00 00 08 45 4D 49 54 00 30 40 7C 47 08 4E 3E 4F
+C7 3F 72 47 08 45 43 48 4F 00 B2 40 C2 48 16 47
+30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D
+16 47 30 4D 00 00 08 54 59 50 45 00 0D 12 3D 40
+BC 47 29 4F 8F 4E 00 00 7E 49 DE 3F BE 47 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 6A 22 F9 98
+00 00 67 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 5E 22 9B 24 3C 47 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A 44 00 00 DC 48 CE 47 20 4A
+DA 4C B0 44 4A 48 14 44 06 5B 54 48 45 4E 5D 00
+D2 47 28 48 EE 47 0C 48 14 44 06 5B 45 4C 53 45
+5D 00 D2 47 3A 48 EE 47 0A 48 1E 44 04 5B 49 46
+5D 00 D2 47 0C 48 B2 44 0A 48 1E 44 05 0D 6B 6F
+20 0A AC 47 9A 44 84 44 B2 44 0C 48 FA 47 0D 5B
+54 48 45 4E 5D 00 30 4D 5E 48 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 6A 48 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 CE 47 20 4A 88 4A 2C 4C
+9C 49 7A 48 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 CE 47 20 4A 88 4A AC 48 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D B2 46 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D D8 45 05 53 22 00 82 43 C0 1D 0D 12
+84 12 0A 44 1E 44 8A 4C 0A 44 22 00 20 4A 20 49
+B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F
+3D 41 30 4D 94 47 05 2E 22 00 0D 12 84 12 0A 49
+0A 44 AC 47 8A 4C 9C 49 00 00 04 3C 23 00 B2 40
+B2 1D B2 1D 30 4D 06 49 02 23 1B 42 BE 1D 2C 4F
+2F 83 B0 12 46 44 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 58 49 04 23 53 00 0D 12 84 12
+5A 49 94 49 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+88 49 04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F A2 49 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 84 47 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 4E 49 CE 47 BC 49
+8C 49 B8 48 CA 49 A6 49 AC 47 9C 49 36 49 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D
+82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D 0E 4A 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 92 4B 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 94 4B 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 44 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+4A 49 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12
+84 44 CE 47 20 4A B0 44 64 4D 88 4A 4E 4C 0A 4E
+3E 4F 3D 40 68 4C 6D 27 3D 40 42 4C 1A E2 BC 1D
+14 24 0E 12 3E 4F 30 41 6A 4C 3E 4F 3D 40 42 4C
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 40 4E 2A 3C 32 4C 02 2C A2 53 C8 1D 1A 42
+C8 1D 8A 4E FE FF 3E 4F 30 4D 88 4C 0F 4C 49 54
+45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D
+A2 52 C8 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D C4 49 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D EA 48 0A 41 4C 4C 4F 54
+82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12
+1E 44 02 0D 0A 00 AC 47 94 44 3C 4C CA 48 F4 48
+1E 44 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 45
+32 44 0A 44 40 FF FC 48 1E 44 09 46 52 41 4D 20
+66 75 6C 6C 08 45 B2 44 00 4D EA 4C 0D 41 42 4F
+52 54 22 00 0D 12 84 12 0A 49 0A 44 08 45 8A 4C
+9C 49 1A 4A 02 27 0D 12 84 12 CE 47 20 4A 88 4A
+B0 44 66 4D 2E 49 72 4C 94 48 07 5B 27 5D 0D 12
+84 12 56 4D 0A 44 0A 44 8A 4C 8A 4C 9C 49 6A 4D
+03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D
+30 4D E2 48 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 CE 47 20 4A 88 4A B0 44 66 4D F4 48 AC 44
+BE 4D 0A 44 0A 44 8A 4C 8A 4C 0A 44 8A 4C 8A 4C
+9C 49 00 00 02 3A 30 12 14 4E 92 B3 C8 1D A2 63
+C8 1D 0D 12 84 12 CE 47 20 4A DC 4D 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D
+82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A
+C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E 44
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 45 80 4D 03 3B 82 93 BC 1D F4 26 0D 12 84 12
+0A 44 9C 49 8A 4C 26 4E 82 4D 9C 49 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00
+30 4D D4 4C 0C 43 52 45 41 54 45 00 B0 12 CA 4D
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D A6 47 0A 44
+4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D C4 4D 0E 3A 4E 4F 4E 41 4D 45
+30 12 14 4E 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 5E 4E 05 49
+53 00 0D 12 82 93 BC 1D 08 20 84 12 56 4D E0 4E
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 6E 4D 0A 44
+E2 4E 8A 4C 9C 49 74 4E 08 43 4F 44 45 00 B0 12
+CA 4D A2 82 C8 1D 61 3C B6 49 0E 48 44 4E 43 4F
+44 45 B2 40 CE 4F CC 1D F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 26 4E 2C 4F 3D 41 92 42
+D0 1D CC 1D 5D 3C F8 4E 0E 43 4F 44 45 4E 4E 4D
+30 12 02 4F B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 1D 1A 42 C8 1D EF 3F 0A 4F 0B 48 49 32
+4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43
+BC 1D B9 3F 96 4F B2 40 A8 4F D0 1D 82 4E CE 1D
+30 40 2E 49 85 12 94 4F 94 4D 3C 4D 26 50 38 4F
+8E 4E D8 49 82 4A 54 4D 7C 4F CE 4E A8 4E 44 4E
+9C 4C B0 50 DA 4A 00 00 00 00 85 12 94 4F 2A 57
+AE 55 0E 57 D6 54 32 55 80 55 5C 56 68 56 F8 53
+1C 55 00 00 00 00 6A 4F E8 52 00 00 84 56 C8 4F
+B2 40 A8 4F CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12
+FC 4F 30 4D 0E 50 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 1D B0 12 FC 4F 1A 42 CA 1D
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 08 46 FE FF 29 83 B9 40 F2 45 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 F0 FF 3B 40
+10 00 3A 40 3A 18 B0 12 00 50 82 43 4A 18 C7 3F
+A2 50 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 8A 4D
+0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12
+CE 47 20 4A 88 4A AC 44 CE 50 C2 48 62 4C D0 50
+3E 4F 3D 41 B2 41 C6 1D B0 12 CA 4D BA 40 85 12
+FC FF BA 40 A0 50 FE FF 28 83 8A 48 00 00 BA 40
+82 44 02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12
+20 4A 88 4A AC 44 3A 51 1A 51 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 A0 50 00 00
+01 20 3E 52 2E 83 21 53 30 41 32 4B AC 44 42 51
+36 51 44 51 B2 41 C6 1D 30 41 92 83 C6 1D 3E 40
+28 00 0A 4E 3D 15 B0 12 0A 51 15 20 3E 40 2B 00
+B0 12 0A 51 06 20 3E 40 2D 00 B0 12 0A 51 92 83
+C6 1D 0E 12 1E 41 02 00 84 12 20 4A 32 4B AC 44
+66 4D 84 51 3E 51 3A 17 30 41 B0 12 4A 51 19 42
+C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53
+C6 1D 1A 42 C6 1D 3D 15 84 12 20 4A 32 4B AC 44
+BC 51 B4 51 3E 90 10 00 E6 2B 7C 2D BE 51 A2 41
+C6 1D E1 3F 03 20 B0 12 A2 51 43 3C 7A 90 23 00
+24 20 B0 12 52 51 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 C8 1D A2 53
+C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 52 51 F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 9E 51 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 A2 51 92 92 C2 1D C6 1D 02 24 92 53
+C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 8A 51
+F2 3F 03 20 B0 12 A2 51 F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 8A 51 EA 3F
+0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42
+C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82
+C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A 44 00 13 8A 4C 9C 49
+0A 44 2C 00 80 52 C4 51 CE 47 8A 52 62 52 D0 52
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 C0 52 00 40 DC 52 0A 4D 4F 56 2E 42 85 12
+C0 52 40 40 00 00 06 41 44 44 85 12 C0 52 00 50
+F6 52 0A 41 44 44 2E 42 85 12 C0 52 40 50 02 53
+08 41 44 44 43 00 85 12 C0 52 00 60 10 53 0C 41
+44 44 43 2E 42 00 85 12 C0 52 40 60 48 4F 08 53
+55 42 43 00 85 12 C0 52 00 70 2E 53 0C 53 55 42
+43 2E 42 00 85 12 C0 52 40 70 3C 53 06 53 55 42
+85 12 C0 52 00 80 4C 53 0A 53 55 42 2E 42 85 12
+C0 52 40 80 58 53 06 43 4D 50 85 12 C0 52 00 90
+66 53 0A 43 4D 50 2E 42 85 12 C0 52 40 90 00 00
+08 44 41 44 44 00 85 12 C0 52 00 A0 80 53 0C 44
+41 44 44 2E 42 00 85 12 C0 52 40 A0 AE 52 06 42
+49 54 85 12 C0 52 00 B0 9E 53 0A 42 49 54 2E 42
+85 12 C0 52 40 B0 AA 53 06 42 49 43 85 12 C0 52
+00 C0 B8 53 0A 42 49 43 2E 42 85 12 C0 52 40 C0
+C4 53 06 42 49 53 85 12 C0 52 00 D0 D2 53 0A 42
+49 53 2E 42 85 12 C0 52 40 D0 00 00 06 58 4F 52
+85 12 C0 52 00 E0 EC 53 0A 58 4F 52 2E 42 85 12
+C0 52 40 E0 1E 53 06 41 4E 44 85 12 C0 52 00 F0
+06 54 0A 41 4E 44 2E 42 85 12 C0 52 40 F0 CE 47
+80 52 C4 51 26 54 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F DE 53 06 52 52 43 85 12 1E 54
+00 10 38 54 0A 52 52 43 2E 42 85 12 1E 54 40 10
+72 53 08 53 57 50 42 00 85 12 1E 54 80 10 44 54
+06 52 52 41 85 12 1E 54 00 11 60 54 0A 52 52 41
+2E 42 85 12 1E 54 40 11 52 54 06 53 58 54 85 12
+1E 54 80 11 00 00 08 50 55 53 48 00 85 12 1E 54
+00 12 86 54 0C 50 55 53 48 2E 42 00 85 12 1E 54
+40 12 7A 54 08 43 41 4C 4C 00 85 12 1E 54 80 12
+1A 53 0E 4A 84 12 10 4A 1E 44 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 45 A4 54 06 53 3E 3D
+86 12 00 38 CC 54 04 53 3C 00 86 12 00 34 94 54
+06 30 3E 3D 86 12 00 30 E0 54 04 30 3C 00 86 12
+00 30 1C 4F 04 55 3C 00 86 12 00 2C F4 54 06 55
+3E 3D 86 12 00 28 EA 54 06 30 3C 3E 86 12 00 24
+08 55 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D
+8E 53 08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D FE 54 08 45 4C 53 45 00 1A 42 C8 1D
+BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00
+E3 3F 6C 54 0A 42 45 47 49 4E 30 40 32 44 56 55
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 1D 30 4D 12 54 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 20 55 B6 48 9C 49 74 55
+0C 52 45 50 45 41 54 00 0D 12 84 12 B4 55 38 55
+9C 49 E4 55 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D
+CB 2F 98 42 C8 1D 00 00 30 4D D0 55 06 42 57 31
+85 12 E2 55 00 00 FC 55 06 42 57 32 85 12 E2 55
+00 00 08 56 06 42 57 33 85 12 E2 55 00 00 20 56
+3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D
+86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 1E 56 00 00 44 56
+06 46 57 32 85 12 1E 56 00 00 50 56 06 46 57 33
+85 12 1E 56 00 00 BE 55 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 56 4D 62 4C
+9C 49 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+8A 52 0A 44 2C 00 20 4A 32 4B AC 44 66 4D CE 47
+80 52 62 52 B6 56 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E 14 56 08 52 52 43 4D 00 85 12 A0 56 50 00
+E4 56 08 52 52 41 4D 00 85 12 A0 56 50 01 F2 56
+08 52 4C 41 4D 00 85 12 A0 56 50 02 00 57 08 52
+52 55 4D 00 85 12 A0 56 50 03 12 55 0A 50 55 53
+48 4D 85 12 A0 56 00 15 1C 57 08 50 4F 50 4D 00
+85 12 A0 56 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+D8 46 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 08 46
+q
diff --git a/binaries/MSP_EXP430FR5969_16MHz_4MBds.txt b/binaries/MSP_EXP430FR5969_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..80d6900
--- /dev/null
@@ -0,0 +1,326 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A1 59
+D8 46 7E 45 84 45 54 45 48 47 36 57 EE 4F A8 4F
+A8 4F BE 46 7C 47 44 47 3C 1D E0 1C 9C 49 B6 44
+C4 44 B8 48 20 00 0A 00 00 1C 7E 45 84 45 54 45
+48 47 36 57 EE 4F A8 4F A8 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 07 3D 0E 93 3E 4F
+9C 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 BC 46 B2 49
+7A 47 B2 49 42 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 62 50 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 48 47 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 44 C2 48 AC 44 52 45 8A 47 1E 44 04 1B
+5B 37 6D 00 AC 47 AC 47 1E 44 04 1B 5B 30 6D 00
+AC 47 F8 4C B0 12 7E 45 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 8A 47 1E 44
+07 0D 0A 1B 5B 37 6D 23 AC 47 10 4A 1E 44 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 AC 47 0A 44 40 FF 32 44
+D8 48 DC 49 1E 44 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 44 46 45 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 45 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 20 00 21 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40
+E0 1C 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 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
+18 42 00 18 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 19 42 9E 01 1E 42 08 18
+82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 44 86 45
+00 00 0C 41 43 43 45 50 54 00 30 40 BE 46 08 4E
+2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40 1C 47
+3C 40 28 47 5D 15 94 3E 21 52 3A 17 58 42 CC 05
+48 9B 09 20 A2 B3 DC 05 FD 27 B2 40 13 00 CE 05
+E2 D3 23 02 30 41 48 9C 06 2C 78 92 11 20 2E 9F
+0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00 1E 53
+A2 B3 DC 05 FD 27 C2 48 CE 05 30 4D 1E 47 2D 83
+92 B3 DC 05 DB 23 FC 3F 3E 8F 3D 41 92 B3 DC 05
+FD 27 58 42 CC 05 08 4C EB 3F 00 00 06 4B 45 59
+30 40 44 47 30 12 5A 47 A2 B3 DC 05 FD 27 B2 40
+11 00 CE 05 E2 C3 23 02 30 41 2F 83 8F 4E 00 00
+92 B3 DC 05 FD 27 B0 12 E4 46 1E 42 CC 05 30 4D
+00 00 08 45 4D 49 54 00 30 40 7C 47 08 4E 3E 4F
+C7 3F 72 47 08 45 43 48 4F 00 B2 40 C2 48 16 47
+30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D
+16 47 30 4D 00 00 08 54 59 50 45 00 0D 12 3D 40
+BC 47 29 4F 8F 4E 00 00 7E 49 DE 3F BE 47 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 6A 22 F9 98
+00 00 67 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 5E 22 9B 24 3C 47 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A 44 00 00 DC 48 CE 47 20 4A
+DA 4C B0 44 4A 48 14 44 06 5B 54 48 45 4E 5D 00
+D2 47 28 48 EE 47 0C 48 14 44 06 5B 45 4C 53 45
+5D 00 D2 47 3A 48 EE 47 0A 48 1E 44 04 5B 49 46
+5D 00 D2 47 0C 48 B2 44 0A 48 1E 44 05 0D 6B 6F
+20 0A AC 47 9A 44 84 44 B2 44 0C 48 FA 47 0D 5B
+54 48 45 4E 5D 00 30 4D 5E 48 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 6A 48 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 CE 47 20 4A 88 4A 2C 4C
+9C 49 7A 48 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 CE 47 20 4A 88 4A AC 48 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D B2 46 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D D8 45 05 53 22 00 82 43 C0 1D 0D 12
+84 12 0A 44 1E 44 8A 4C 0A 44 22 00 20 4A 20 49
+B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F
+3D 41 30 4D 94 47 05 2E 22 00 0D 12 84 12 0A 49
+0A 44 AC 47 8A 4C 9C 49 00 00 04 3C 23 00 B2 40
+B2 1D B2 1D 30 4D 06 49 02 23 1B 42 BE 1D 2C 4F
+2F 83 B0 12 46 44 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 58 49 04 23 53 00 0D 12 84 12
+5A 49 94 49 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+88 49 04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F A2 49 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 84 47 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 4E 49 CE 47 BC 49
+8C 49 B8 48 CA 49 A6 49 AC 47 9C 49 36 49 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D
+82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D 0E 4A 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 92 4B 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 94 4B 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 44 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+4A 49 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12
+84 44 CE 47 20 4A B0 44 64 4D 88 4A 4E 4C 0A 4E
+3E 4F 3D 40 68 4C 6D 27 3D 40 42 4C 1A E2 BC 1D
+14 24 0E 12 3E 4F 30 41 6A 4C 3E 4F 3D 40 42 4C
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 40 4E 2A 3C 32 4C 02 2C A2 53 C8 1D 1A 42
+C8 1D 8A 4E FE FF 3E 4F 30 4D 88 4C 0F 4C 49 54
+45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D
+A2 52 C8 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D C4 49 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D EA 48 0A 41 4C 4C 4F 54
+82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12
+1E 44 02 0D 0A 00 AC 47 94 44 3C 4C CA 48 F4 48
+1E 44 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 45
+32 44 0A 44 40 FF FC 48 1E 44 09 46 52 41 4D 20
+66 75 6C 6C 08 45 B2 44 00 4D EA 4C 0D 41 42 4F
+52 54 22 00 0D 12 84 12 0A 49 0A 44 08 45 8A 4C
+9C 49 1A 4A 02 27 0D 12 84 12 CE 47 20 4A 88 4A
+B0 44 66 4D 2E 49 72 4C 94 48 07 5B 27 5D 0D 12
+84 12 56 4D 0A 44 0A 44 8A 4C 8A 4C 9C 49 6A 4D
+03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D
+30 4D E2 48 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 CE 47 20 4A 88 4A B0 44 66 4D F4 48 AC 44
+BE 4D 0A 44 0A 44 8A 4C 8A 4C 0A 44 8A 4C 8A 4C
+9C 49 00 00 02 3A 30 12 14 4E 92 B3 C8 1D A2 63
+C8 1D 0D 12 84 12 CE 47 20 4A DC 4D 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D
+82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A
+C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E 44
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 45 80 4D 03 3B 82 93 BC 1D F4 26 0D 12 84 12
+0A 44 9C 49 8A 4C 26 4E 82 4D 9C 49 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00
+30 4D D4 4C 0C 43 52 45 41 54 45 00 B0 12 CA 4D
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D A6 47 0A 44
+4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D C4 4D 0E 3A 4E 4F 4E 41 4D 45
+30 12 14 4E 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 5E 4E 05 49
+53 00 0D 12 82 93 BC 1D 08 20 84 12 56 4D E0 4E
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 6E 4D 0A 44
+E2 4E 8A 4C 9C 49 74 4E 08 43 4F 44 45 00 B0 12
+CA 4D A2 82 C8 1D 61 3C B6 49 0E 48 44 4E 43 4F
+44 45 B2 40 CE 4F CC 1D F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 26 4E 2C 4F 3D 41 92 42
+D0 1D CC 1D 5D 3C F8 4E 0E 43 4F 44 45 4E 4E 4D
+30 12 02 4F B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 1D 1A 42 C8 1D EF 3F 0A 4F 0B 48 49 32
+4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43
+BC 1D B9 3F 96 4F B2 40 A8 4F D0 1D 82 4E CE 1D
+30 40 2E 49 85 12 94 4F 94 4D 3C 4D 26 50 38 4F
+8E 4E D8 49 82 4A 54 4D 7C 4F CE 4E A8 4E 44 4E
+9C 4C B0 50 DA 4A 00 00 00 00 85 12 94 4F 2A 57
+AE 55 0E 57 D6 54 32 55 80 55 5C 56 68 56 F8 53
+1C 55 00 00 00 00 6A 4F E8 52 00 00 84 56 C8 4F
+B2 40 A8 4F CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12
+FC 4F 30 4D 0E 50 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 1D B0 12 FC 4F 1A 42 CA 1D
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 08 46 FE FF 29 83 B9 40 F2 45 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 F0 FF 3B 40
+10 00 3A 40 3A 18 B0 12 00 50 82 43 4A 18 C7 3F
+A2 50 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 8A 4D
+0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12
+CE 47 20 4A 88 4A AC 44 CE 50 C2 48 62 4C D0 50
+3E 4F 3D 41 B2 41 C6 1D B0 12 CA 4D BA 40 85 12
+FC FF BA 40 A0 50 FE FF 28 83 8A 48 00 00 BA 40
+82 44 02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12
+20 4A 88 4A AC 44 3A 51 1A 51 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 A0 50 00 00
+01 20 3E 52 2E 83 21 53 30 41 32 4B AC 44 42 51
+36 51 44 51 B2 41 C6 1D 30 41 92 83 C6 1D 3E 40
+28 00 0A 4E 3D 15 B0 12 0A 51 15 20 3E 40 2B 00
+B0 12 0A 51 06 20 3E 40 2D 00 B0 12 0A 51 92 83
+C6 1D 0E 12 1E 41 02 00 84 12 20 4A 32 4B AC 44
+66 4D 84 51 3E 51 3A 17 30 41 B0 12 4A 51 19 42
+C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53
+C6 1D 1A 42 C6 1D 3D 15 84 12 20 4A 32 4B AC 44
+BC 51 B4 51 3E 90 10 00 E6 2B 7C 2D BE 51 A2 41
+C6 1D E1 3F 03 20 B0 12 A2 51 43 3C 7A 90 23 00
+24 20 B0 12 52 51 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 C8 1D A2 53
+C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 52 51 F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 9E 51 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 A2 51 92 92 C2 1D C6 1D 02 24 92 53
+C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 8A 51
+F2 3F 03 20 B0 12 A2 51 F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 8A 51 EA 3F
+0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42
+C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82
+C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A 44 00 13 8A 4C 9C 49
+0A 44 2C 00 80 52 C4 51 CE 47 8A 52 62 52 D0 52
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 C0 52 00 40 DC 52 0A 4D 4F 56 2E 42 85 12
+C0 52 40 40 00 00 06 41 44 44 85 12 C0 52 00 50
+F6 52 0A 41 44 44 2E 42 85 12 C0 52 40 50 02 53
+08 41 44 44 43 00 85 12 C0 52 00 60 10 53 0C 41
+44 44 43 2E 42 00 85 12 C0 52 40 60 48 4F 08 53
+55 42 43 00 85 12 C0 52 00 70 2E 53 0C 53 55 42
+43 2E 42 00 85 12 C0 52 40 70 3C 53 06 53 55 42
+85 12 C0 52 00 80 4C 53 0A 53 55 42 2E 42 85 12
+C0 52 40 80 58 53 06 43 4D 50 85 12 C0 52 00 90
+66 53 0A 43 4D 50 2E 42 85 12 C0 52 40 90 00 00
+08 44 41 44 44 00 85 12 C0 52 00 A0 80 53 0C 44
+41 44 44 2E 42 00 85 12 C0 52 40 A0 AE 52 06 42
+49 54 85 12 C0 52 00 B0 9E 53 0A 42 49 54 2E 42
+85 12 C0 52 40 B0 AA 53 06 42 49 43 85 12 C0 52
+00 C0 B8 53 0A 42 49 43 2E 42 85 12 C0 52 40 C0
+C4 53 06 42 49 53 85 12 C0 52 00 D0 D2 53 0A 42
+49 53 2E 42 85 12 C0 52 40 D0 00 00 06 58 4F 52
+85 12 C0 52 00 E0 EC 53 0A 58 4F 52 2E 42 85 12
+C0 52 40 E0 1E 53 06 41 4E 44 85 12 C0 52 00 F0
+06 54 0A 41 4E 44 2E 42 85 12 C0 52 40 F0 CE 47
+80 52 C4 51 26 54 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F DE 53 06 52 52 43 85 12 1E 54
+00 10 38 54 0A 52 52 43 2E 42 85 12 1E 54 40 10
+72 53 08 53 57 50 42 00 85 12 1E 54 80 10 44 54
+06 52 52 41 85 12 1E 54 00 11 60 54 0A 52 52 41
+2E 42 85 12 1E 54 40 11 52 54 06 53 58 54 85 12
+1E 54 80 11 00 00 08 50 55 53 48 00 85 12 1E 54
+00 12 86 54 0C 50 55 53 48 2E 42 00 85 12 1E 54
+40 12 7A 54 08 43 41 4C 4C 00 85 12 1E 54 80 12
+1A 53 0E 4A 84 12 10 4A 1E 44 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 45 A4 54 06 53 3E 3D
+86 12 00 38 CC 54 04 53 3C 00 86 12 00 34 94 54
+06 30 3E 3D 86 12 00 30 E0 54 04 30 3C 00 86 12
+00 30 1C 4F 04 55 3C 00 86 12 00 2C F4 54 06 55
+3E 3D 86 12 00 28 EA 54 06 30 3C 3E 86 12 00 24
+08 55 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D
+8E 53 08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D FE 54 08 45 4C 53 45 00 1A 42 C8 1D
+BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00
+E3 3F 6C 54 0A 42 45 47 49 4E 30 40 32 44 56 55
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 1D 30 4D 12 54 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 20 55 B6 48 9C 49 74 55
+0C 52 45 50 45 41 54 00 0D 12 84 12 B4 55 38 55
+9C 49 E4 55 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D
+CB 2F 98 42 C8 1D 00 00 30 4D D0 55 06 42 57 31
+85 12 E2 55 00 00 FC 55 06 42 57 32 85 12 E2 55
+00 00 08 56 06 42 57 33 85 12 E2 55 00 00 20 56
+3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D
+86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 1E 56 00 00 44 56
+06 46 57 32 85 12 1E 56 00 00 50 56 06 46 57 33
+85 12 1E 56 00 00 BE 55 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 56 4D 62 4C
+9C 49 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+8A 52 0A 44 2C 00 20 4A 32 4B AC 44 66 4D CE 47
+80 52 62 52 B6 56 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E 14 56 08 52 52 43 4D 00 85 12 A0 56 50 00
+E4 56 08 52 52 41 4D 00 85 12 A0 56 50 01 F2 56
+08 52 4C 41 4D 00 85 12 A0 56 50 02 00 57 08 52
+52 55 4D 00 85 12 A0 56 50 03 12 55 0A 50 55 53
+48 4D 85 12 A0 56 00 15 1C 57 08 50 4F 50 4D 00
+85 12 A0 56 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+D8 46 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 08 46
+q
index c0003bf..f1177bf 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF F8 57 F2 4F 34 01
-10 00 41 87 B6 45 AA 44 B8 45 8C 45 84 46 F8 57
-F2 4F 72 46 82 47 00 47 DC 46 3C 1D 50 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+D2 46 56 45 56 45 58 45 44 45 12 57 CA 4F 84 4F
+84 4F C0 46 44 47 1C 47 3C 1D E0 1C 78 49 B6 44
+C4 44 94 48 20 00 0A 00 00 1C 56 45 56 45 58 45
+44 45 12 57 CA 4F 84 4F 84 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4400
-B0 12 B8 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 70 46 B2 49 80 47 B2 49 FE 46 B2 49 DA 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BE 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 45 0E 12 B0 12
-F8 44 0A 44 DE 1D D0 47 18 47 EE 44 34 44 8A 45
-14 44 05 1B 5B 37 6D 40 4C 47 0A 44 02 18 D0 47
-C6 48 98 47 34 44 7E 45 14 44 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4C 47 90 48 4C 47
-14 44 04 1B 5B 30 6D 00 4C 47 18 4C 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 45 F2 B0 20 00 21 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE 45 04 57 41 52 4D 00
-B0 12 8C 45 78 40 03 00 B0 12 BA 45 84 12 14 44
-07 0D 0A 1B 5B 37 6D 40 4C 47 0A 44 02 18 D0 47
-C6 48 0A 44 23 00 FC 46 C6 48 14 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 4C 47 0A 44 40 FF 28 44 C4 47
-90 48 14 44 0A 62 79 74 65 73 20 66 72 65 65 00
-3A 44 7E 45 00 00 06 41 43 43 45 50 54 00 30 40
-72 46 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06
-B7 22 3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B
-0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 45 82 93 DE 1D 02 24 92 53 DE 1D 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC 46 2F 83 8F 4E
-00 00 58 43 B0 12 BA 45 92 B3 6C 06 FD 27 1E 42
-4C 06 30 4D 00 00 04 45 4D 49 54 00 30 40 00 47
-08 4E 3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D
-F6 46 04 45 43 48 4F 00 B2 40 C2 48 0A 47 82 43
-DE 1D 38 40 05 00 B0 12 BA 45 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A 47 92 43 DE 1D
-28 42 F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 68 47 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 FE 46 6A 47 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D DC 45 02 43 52 00 30 40
-82 47 0D 12 84 12 14 44 02 0D 0A 00 4C 47 50 48
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 66 46 01 40
-2E 4E 30 4D CE 47 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 7A 47 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 44 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 0A 48 02 23 53 00 0D 12
-84 12 0C 48 46 48 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 3A 48 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 46 47 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-00 48 3E 48 EE 44 7E 48 5A 48 4C 47 04 4C FC 46
-50 48 2E 47 01 2E 0E 93 E3 37 38 43 E2 3F 78 48
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44
-4A 4B 0A 44 22 00 1C 49 EA 48 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-C4 48 82 2E 22 00 0D 12 84 12 D4 48 0A 44 4C 47
-4A 4B 50 48 FA 45 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44
-30 4D 00 00 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 9E 4A
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F A0 4A
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 20
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 08 3D 0E 93 3E 4F
+8A 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 BE 46 B2 49
+42 47 B2 49 1A 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 3E 50 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 45 B0 12 D0 44 9E 48 AC 44
+42 45 5C 47 1E 44 05 1B 5B 37 6D 40 88 47 0A 44
+02 18 C0 48 EC 49 88 47 1E 44 04 1B 5B 30 6D 00
+88 47 D4 4C 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 5C 47 1E 44 07 0D 0A 1B 5B 37
+6D 40 88 47 0A 44 02 18 C0 48 EC 49 0A 44 23 00
+40 47 EC 49 1E 44 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+88 47 0A 44 40 FF 32 44 B4 48 B8 49 1E 44 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 44 36 45 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 45 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+20 00 21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+5C 01 31 40 E0 1C 3F 40 80 1C B2 40 FE FF 02 02
+B2 D3 06 02 B2 D3 26 02 B2 40 FF BF 22 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 B2 40 33 00 64 01 D2 43 61 01
+39 40 40 00 18 42 00 18 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 1E 42 08 18
+82 43 08 18 3E F3 02 20 1E 42 9E 01 B0 12 D0 44
+80 45 00 00 0C 41 43 43 45 50 54 00 30 40 C0 46
+0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
+97 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 90 22
+3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24
+48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
+0E 9A EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F 08 4C
+1B 3C 00 00 06 4B 45 59 30 40 1C 47 58 43 B0 12
+46 45 2F 83 8F 4E 00 00 92 B3 6C 06 FD 27 1E 42
+4C 06 B0 12 44 45 30 4D 00 00 08 45 4D 49 54 00
+30 40 44 47 08 4E 3E 4F A2 B3 6C 06 FD 27 C2 48
+4E 06 30 4D 3A 47 08 45 43 48 4F 00 B2 40 C2 48
+4E 47 38 40 05 00 B0 12 46 45 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D 4E 47 28 42 F3 3F
+00 00 08 54 59 50 45 00 0D 12 3D 40 98 47 29 4F
+8F 4E 00 00 7E 49 D4 3F 9A 47 2D 83 2F 83 5E 83
+F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E
+38 4F 3C 9F 39 4F 3E 4F 7C 22 F9 98 00 00 79 22
+19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83
+70 22 9B 24 14 47 0D 5B 45 4C 53 45 5D 00 0D 12
+84 12 0A 44 00 00 B8 48 AA 47 FC 49 B6 4C B0 44
+26 48 14 44 06 5B 54 48 45 4E 5D 00 AE 47 04 48
+CA 47 E8 47 14 44 06 5B 45 4C 53 45 5D 00 AE 47
+16 48 CA 47 E6 47 1E 44 04 5B 49 46 5D 00 AE 47
+E8 47 B2 44 E6 47 1E 44 05 0D 6B 6F 20 0A 88 47
+9A 44 84 44 B2 44 E8 47 D6 47 0D 5B 54 48 45 4E
+5D 00 30 4D 3A 48 09 5B 49 46 5D 00 0E 93 3E 4F
+C6 27 30 4D 46 48 13 5B 44 45 46 49 4E 45 44 5D
+0D 12 84 12 AA 47 FC 49 64 4A 08 4C 78 49 56 48
+17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
+AA 47 FC 49 64 4A 88 48 3D 41 2F 53 1E 83 0E 7E
+30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E
+FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F
+0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40
+2E 4E 30 4D B4 46 02 21 BE 4F 00 00 3E 4F 30 4D
+0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D
+E0 45 05 53 22 00 82 43 C0 1D 0D 12 84 12 0A 44
+1E 44 66 4C 0A 44 22 00 FC 49 FC 48 B2 40 20 00
+C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D
+6E 47 05 2E 22 00 0D 12 84 12 E6 48 0A 44 88 47
+66 4C 78 49 00 00 04 3C 23 00 B2 40 B2 1D B2 1D
+30 4D E2 48 02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12
+46 44 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 34 49 04 23 53 00 0D 12 84 12 36 49 70 49
+2D 83 09 DE 09 93 E1 23 3D 41 30 4D 64 49 04 23
+3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D
+00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 7E 49
+08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33
+30 4D 56 47 04 55 2E 00 0C 43 2F 83 8F 4E 00 00
+0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 84 12 2A 49 AA 47 98 49 68 49 94 48
+A6 49 82 49 88 47 78 49 12 49 02 2E 0E 93 E4 37
+3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 1D
+39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98
+FC 27 18 83 1B 42 C0 1D F8 90 27 00 00 00 04 20
+E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24
+7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90
+7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D
+1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D 00 00 08 46
+49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53
+1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C
+00 00 30 4D EA 49 0E 3E 4E 55 4D 42 45 52 1B 42
+BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C
+7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00
+0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42
+E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23
+8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0
+00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 1D
+0C 4E 0E 43 1E 15 3D 40 6E 4B 7E 4C 6A 4C 7A 80
+2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53
+11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90
+03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C
+B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27 70 4B
+2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02
+27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 48 4B 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 56 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 6A 48 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 44 04 4C 1C 49 C0 4B
-9C 26 3D 40 C8 4B DE 3E CA 4B 0A 4E 3E 4F 3D 40
-E4 4B 36 27 3D 40 BA 4B 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 E6 4B 3E 4F 3D 40 BA 4B BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 86 4D
-CC 3F EE 4B 86 12 20 00 D6 47 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7E 47
-BC 44 B4 4B B4 47 E6 47 14 44 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44
-EE 47 14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 45 3A 44 2E 4C 0A 4C 86 41 42 4F 52 54 22 00
-0D 12 84 12 D4 48 0A 44 2A 45 4A 4B 50 48 7E 49
-01 27 0D 12 84 12 04 4C 1C 49 84 49 34 44 02 4C
-50 48 00 00 83 5B 27 5D 0D 12 84 12 82 4C 0A 44
-0A 44 4A 4B 4A 4B 50 48 94 4C 81 5B 82 43 BE 1D
-30 4D FC 47 01 5D B2 43 BE 1D 30 4D B4 4C 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 04 4C 1C 49 84 49 98 47
-34 44 02 4C E6 47 34 44 F6 4C 0A 44 0A 44 4A 4B
-4A 4B 0A 44 4A 4B 4A 4B 50 48 AA 4C 01 3A 30 12
-46 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 04 4C
-1C 49 14 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 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52
-82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 45 FC 4C 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 44 50 48 4A 4B 58 4D AC 4C
-50 48 AA 4B 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D 94 4B 06 43 52 45
-41 54 45 00 B0 12 02 4D BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F BC 4D 04 43 4F 44 45 00 B0 12 02 4D
-A2 82 C6 1D 0D 12 84 12 F4 4F CE 4F 50 48 A4 4D
-07 48 44 4E 43 4F 44 45 B2 40 D2 4F DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 58 4D
-0E 50 2C 50 50 48 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 0E 50 2C 50 50 48
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F F0 4D 85 48 49 32 4C 4F 0D 12 84 12 28 44
-9C 4F 4A 4B AC 4C E4 4D 50 48 8A 4D 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 6C 4E 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 44 00 00 C8 47 04 4C 1C 49
-9A 4B 90 47 34 44 04 4F 9E 47 14 44 06 5B 54 48
-45 4E 5D 00 76 4E DE 4E 9A 4E BC 4E 50 48 9E 47
-14 44 06 5B 45 4C 53 45 5D 00 76 4E F4 4E 9A 4E
-BA 4E 50 48 14 44 04 5B 49 46 5D 00 76 4E BC 4E
-3A 44 BA 4E 72 47 14 44 05 0D 0A 6B 6F 20 4C 47
-BC 44 AC 44 3A 44 BC 4E AA 4E 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 1A 4F 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 04 4C 1C 49
-84 49 28 4F 50 48 2E 4F 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 38 4F E0 47 50 48 60 4F
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5C 4B
-06 4D 41 52 4B 45 52 00 B0 12 02 4D BA 40 85 12
-FC FF BA 40 5E 4F FE FF 28 83 8A 48 00 00 BA 40
-AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A 44 CA 1D D8 47 50 48 85 12 A0 4F 68 4C D6 4D
-12 47 80 4C 54 4E D4 46 70 4F 02 49 98 50 AC 50
-8C 48 16 49 00 00 48 4F BE 4C E4 49 00 00 85 12
-A0 4F 6E 56 D4 56 16 56 24 57 DC 55 00 00 A8 53
-00 00 EC 57 D0 57 40 56 7E 56 B8 54 00 00 00 00
-40 57 CC 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D A8 4F 26 50 2C 50 3C 50 1A 42 20 18
-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
-CA 4C 09 50 57 52 5F 53 54 41 54 45 85 12 34 50
-F8 57 D0 48 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 80 50 F3 3F 72 50 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 80 50 30 4D 84 50 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 0A 51 FE FF 29 83
-B9 40 E2 45 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 E4 45 B2 49 FA 44 B2 49 02 44 B2 49 02 46
-B2 49 EE FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C FC 23
-B2 40 FE FF 02 02 B2 D3 06 02 B2 D3 26 02 B2 40
-FF BF 22 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 B2 40 33 00
-64 01 D2 43 61 01 39 40 40 00 18 42 00 18 18 83
-FE 23 19 83 FA 23 B2 D2 B0 01 F2 D0 10 00 2A 03
-F2 C0 40 00 A1 04 1E 42 08 18 82 43 08 18 1E D2
-9E 01 B0 12 F8 44 00 46 38 40 C0 1D 0A 4E 39 48
-2E 48 09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27
-1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12
-12 12 C4 1D 84 12 1C 49 84 49 E0 47 34 44 E8 51
-40 4A 34 44 02 52 FC 51 EA 51 3C 4E 3C 80 87 12
-05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17
-30 41 04 52 B2 41 C4 1D 3E 41 84 12 0A 44 2B 00
-1C 49 84 49 E0 47 34 44 20 52 40 4A 34 44 02 4C
-AA 47 1C 49 40 4A 34 44 02 4C 2C 52 3E 5F E7 3F
-3E 40 28 00 B0 12 CC 51 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 40 29 00 92 92 C0 1D C4 1D 02 20
-30 40 70 4D 1C 15 12 12 C4 1D 92 53 C4 1D 84 12
-1C 49 40 4A 34 44 74 52 6A 52 21 53 3E 90 10 00
-C6 2B 7F 2D 76 52 B2 41 C4 1D C1 3F 0D 12 84 12
-04 4C A8 51 86 52 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
-CC 51 3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93
+79 80 3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00
+09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E 44
+2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93
+1D 17 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 26 49 03 5C
+92 42 C2 1D C6 1D 30 4D 0D 12 84 12 84 44 AA 47
+FC 49 B0 44 40 4D 64 4A 2A 4C 0A 4E 3E 4F 3D 40
+44 4C 6D 27 3D 40 1E 4C 1A E2 BC 1D 14 24 0E 12
+3E 4F 30 41 46 4C 3E 4F 3D 40 1E 4C 19 20 DE 53
+00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 1C 4E
+2A 3C 0E 4C 02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E
+FE FF 3E 4F 30 4D 64 4C 0F 4C 49 54 45 52 41 4C
+82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D
+BA 40 0A 44 00 00 8A 49 02 00 3E 4F 32 B0 00 02
+32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D A0 49
+0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A
+3E F3 30 4D C6 48 0A 41 4C 4C 4F 54 82 5E C8 1D
+3E 4F 30 4D 3F 40 80 1C 0E 43 84 12 1E 44 02 0D
+0A 00 88 47 94 44 18 4C A6 48 D0 48 1E 44 0B 73
+74 61 63 6B 20 65 6D 70 74 79 08 45 32 44 0A 44
+40 FF D8 48 1E 44 09 46 52 41 4D 20 66 75 6C 6C
+08 45 B2 44 DC 4C C6 4C 0D 41 42 4F 52 54 22 00
+0D 12 84 12 E6 48 0A 44 08 45 66 4C 78 49 F6 49
+02 27 0D 12 84 12 AA 47 FC 49 64 4A B0 44 42 4D
+0A 49 4E 4C 70 48 07 5B 27 5D 0D 12 84 12 32 4D
+0A 44 0A 44 66 4C 66 4C 78 49 46 4D 03 5B 82 43
+BC 1D 30 4D 00 00 02 5D B2 43 BC 1D 30 4D BE 48
+11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12 AA 47
+FC 49 64 4A B0 44 42 4D D0 48 AC 44 9A 4D 0A 44
+0A 44 66 4C 66 4C 0A 44 66 4C 66 4C 78 49 00 00
+02 3A 30 12 F0 4D 92 B3 C8 1D A2 63 C8 1D 0D 12
+84 12 AA 47 FC 49 B8 4D 3D 41 5A D3 5A 53 0A 5E
+19 42 CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E
+09 5E 3E 4F E8 58 00 00 82 48 B4 1D 82 49 B6 1D
+82 4A B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D 30 41
+BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 1D
+30 4D 82 9F BA 1D 66 25 84 12 1E 44 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 12 45 5C 4D
+03 3B 82 93 BC 1D F4 26 0D 12 84 12 0A 44 78 49
+66 4C 02 4E 5E 4D 78 49 00 00 12 49 4D 4D 45 44
+49 41 54 45 18 42 B4 1D D8 D3 00 00 30 4D B0 4C
+0C 43 52 45 41 54 45 00 B0 12 A6 4D BA 40 86 12
+FC FF 8A 4A FE FF 3A 3D 82 47 0A 44 4F 45 53 3E
+1A 42 B8 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41
+30 4D A0 4D 0E 3A 4E 4F 4E 41 4D 45 30 12 F0 4D
+2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A
+39 40 12 02 08 49 98 3F 3A 4E 05 49 53 00 0D 12
+82 93 BC 1D 08 20 84 12 32 4D BC 4E 3D 41 BE 4F
+02 00 3E 4F 30 4D 84 12 4A 4D 0A 44 BE 4E 66 4C
+78 49 50 4E 08 43 4F 44 45 00 B0 12 A6 4D A2 82
+C8 1D 61 3C 92 49 0E 48 44 4E 43 4F 44 45 B2 40
+AA 4F CC 1D F2 3F 00 00 0E 45 4E 44 43 4F 44 45
+0D 12 84 12 02 4E 08 4F 3D 41 92 42 D0 1D CC 1D
+5D 3C D4 4E 0E 43 4F 44 45 4E 4E 4D 30 12 DE 4E
+B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40
+0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 1D B2 43
+BC 1D E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 1D
+1A 42 C8 1D EF 3F E6 4E 0B 48 49 32 4C 4F A2 53
+C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F
+72 4F B2 40 84 4F D0 1D 82 4E CE 1D 30 40 0A 49
+85 12 70 4F 70 4D 18 4D 02 50 14 4F 6A 4E B4 49
+5E 4A 30 4D 58 4F AA 4E 84 4E 20 4E 78 4C 8C 50
+B6 4A 00 00 00 00 85 12 70 4F 06 57 8A 55 EA 56
+B2 54 0E 55 5C 55 38 56 44 56 D4 53 F8 54 00 00
+00 00 46 4F C4 52 00 00 60 56 A4 4F B2 40 84 4F
+CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00 BA 49 00 00
+2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53
+45 54 39 40 C8 1D 3A 40 42 18 B0 12 D8 4F 30 4D
+EA 4F 0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49
+3A 40 C8 1D B0 12 D8 4F 1A 42 CA 1D 3B 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48
+00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93
+E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40
+10 46 FE FF 29 83 B9 40 FA 45 FE FF 39 90 AE FF
+F9 23 39 40 10 18 B2 49 EE FF 3B 40 10 00 3A 40
+3A 18 B0 12 DC 4F 82 43 4A 18 C7 3F 7E 50 B2 4E
+42 18 BE 12 3E 4F 3D 41 C0 3F 66 4D 0C 4D 41 52
+4B 45 52 00 12 12 C6 1D 0D 12 84 12 AA 47 FC 49
+64 4A AC 44 AA 50 9E 48 3E 4C AC 50 3E 4F 3D 41
+B2 41 C6 1D B0 12 A6 4D BA 40 85 12 FC FF BA 40
+7C 50 FE FF 28 83 8A 48 00 00 BA 40 82 44 02 00
+A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D A8 49 FE FF
+89 48 00 00 30 4D 12 12 C6 1D 84 12 FC 49 64 4A
+AC 44 16 51 F6 50 3C 4E 3C 80 87 12 0A 24 1C 53
+02 20 2E 4E 06 3C BE 90 7C 50 00 00 01 20 3E 52
+2E 83 21 53 30 41 0E 4B AC 44 1E 51 12 51 20 51
+B2 41 C6 1D 30 41 92 83 C6 1D 3E 40 28 00 0A 4E
+3D 15 B0 12 E6 50 15 20 3E 40 2B 00 B0 12 E6 50
+06 20 3E 40 2D 00 B0 12 E6 50 92 83 C6 1D 0E 12
+1E 41 02 00 84 12 FC 49 0E 4B AC 44 42 4D 60 51
+3E 51 3A 17 30 41 B0 12 26 51 19 42 C8 1D 89 4E
+00 00 A2 53 C8 1D 3E 40 29 00 92 53 C6 1D 1A 42
+C6 1D 3D 15 84 12 FC 49 0E 4B AC 44 98 51 90 51
+3E 90 10 00 E6 2B 7C 2D 9A 51 A2 41 C6 1D E1 3F
+03 20 B0 12 7E 51 43 3C 7A 90 23 00 24 20 B0 12
+2E 51 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 CC 51 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 1D B0 12 54 52 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 54 52 92 92 C0 1D
-C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12
-54 52 FA 23 3C 50 10 00 B0 12 30 52 EF 3F 0C 43
-1B 42 C6 1D A2 53 C6 1D 0D 12 84 12 04 4C A8 51
-52 53 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
-82 00 C7 3F B0 12 54 52 E0 23 3C 50 80 00 B0 12
-30 52 DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12
-0A 44 00 13 4A 4B 50 48 0A 44 2C 00 7C 52 48 53
-92 53 09 4B 2E 4E 0E DC A2 3F 42 4E 03 4D 4F 56
-85 12 88 53 00 40 9C 53 05 4D 4F 56 2E 42 85 12
-88 53 40 40 00 00 03 41 44 44 85 12 88 53 00 50
-B6 53 05 41 44 44 2E 42 85 12 88 53 40 50 C2 53
-04 41 44 44 43 00 85 12 88 53 00 60 D0 53 06 41
-44 44 43 2E 42 00 85 12 88 53 40 60 76 53 04 53
-55 42 43 00 85 12 88 53 00 70 EE 53 06 53 55 42
-43 2E 42 00 85 12 88 53 40 70 FC 53 03 53 55 42
-85 12 88 53 00 80 0C 54 05 53 55 42 2E 42 85 12
-88 53 40 80 18 4E 03 43 4D 50 85 12 88 53 00 90
-26 54 05 43 4D 50 2E 42 85 12 88 53 40 90 02 4E
-04 44 41 44 44 00 85 12 88 53 00 A0 40 54 06 44
-41 44 44 2E 42 00 85 12 88 53 40 A0 32 54 03 42
-49 54 85 12 88 53 00 B0 5E 54 05 42 49 54 2E 42
-85 12 88 53 40 B0 6A 54 03 42 49 43 85 12 88 53
-00 C0 78 54 05 42 49 43 2E 42 85 12 88 53 40 C0
-84 54 03 42 49 53 85 12 88 53 00 D0 92 54 05 42
-49 53 2E 42 85 12 88 53 40 D0 00 00 03 58 4F 52
-85 12 88 53 00 E0 AC 54 05 58 4F 52 2E 42 85 12
-88 53 40 E0 DE 53 03 41 4E 44 85 12 88 53 00 F0
-C6 54 05 41 4E 44 2E 42 85 12 88 53 40 F0 04 4C
-7C 52 E4 54 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 18 54 03 52 52 43 85 12 DE 54 00 10
-F6 54 05 52 52 43 2E 42 85 12 DE 54 40 10 02 55
-04 53 57 50 42 00 85 12 DE 54 80 10 10 55 03 52
-52 41 85 12 DE 54 00 11 1E 55 05 52 52 41 2E 42
-85 12 DE 54 40 11 2A 55 03 53 58 54 85 12 DE 54
-80 11 00 00 04 50 55 53 48 00 85 12 DE 54 00 12
-44 55 06 50 55 53 48 2E 42 00 85 12 DE 54 40 12
-9E 54 04 43 41 4C 4C 00 85 12 DE 54 80 12 1A 53
-0E 4A 0D 12 84 12 C6 48 14 44 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 36 45 38 55 03 53 3E 3D
-86 12 00 38 8C 55 02 53 3C 00 86 12 00 34 52 55
-03 30 3E 3D 86 12 00 30 A0 55 02 30 3C 00 86 12
-00 30 00 00 02 55 3C 00 86 12 00 2C B4 55 03 55
-3E 3D 86 12 00 28 AA 55 03 30 3C 3E 86 12 00 24
-C8 55 02 30 3D 00 86 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
-BE 55 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 B1 2F 88 DA
-00 00 30 4D 4E 54 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 62 55 05 42 45 47 49 4E 30 40 28 44 F2 55
-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 8A 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 1D 30 4D D2 54 05 41
-47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
-48 49 4C 45 0D 12 84 12 E0 55 AA 47 50 48 96 55
-06 52 45 50 45 41 54 00 0D 12 84 12 74 56 F8 55
-50 48 A4 56 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D
-CB 2F 98 42 C6 1D 00 00 30 4D 34 56 03 42 57 31
-85 12 A2 56 00 00 BC 56 03 42 57 32 85 12 A2 56
-00 00 C8 56 03 42 57 33 85 12 A2 56 00 00 E0 56
-3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 85 12 DE 56 00 00 00 57 03 46 57 32
-85 12 DE 56 00 00 0C 57 03 46 57 33 85 12 DE 56
-00 00 18 57 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
-3E 40 00 3C 0D 12 84 12 82 4C DE 4B 50 48 00 00
-05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
-3E B0 00 10 EF 27 3E E0 00 08 EC 3F 04 4C A8 51
-62 57 92 53 C4 1D 3E 40 2C 00 84 12 1C 49 40 4A
-34 44 02 4C 3E 53 78 57 0A 4E 3E 4F 1A 83 F7 32
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10
-5A 06 A6 3E 90 56 04 52 52 43 4D 00 85 12 5C 57
-50 00 A6 57 04 52 52 41 4D 00 85 12 5C 57 50 01
-B4 57 04 52 4C 41 4D 00 85 12 5C 57 50 02 C2 57
-04 52 52 55 4D 00 85 12 5C 57 50 03 D2 55 05 50
-55 53 48 4D 85 12 5C 57 00 15 DE 57 04 50 4F 50
-4D 00 85 12 5C 57 00 17
+08 24 3C 40 30 00 19 42 C8 1D A2 53 C8 1D 89 4E
+00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02
+B0 12 2E 51 F0 3F 7A 90 40 00 14 20 3C 40 20 00
+B0 12 7A 51 0C 20 3C D0 10 00 3E 40 2B 00 B0 12
+7E 51 92 92 C2 1D C6 1D 02 24 92 53 C6 1D 8E 10
+0C 5E DF 3F 3C D0 10 00 B0 12 66 51 F2 3F 03 20
+B0 12 7E 51 F5 3F 7A 90 26 00 03 20 3C D0 82 00
+D7 3F 3C D0 80 00 B0 12 66 51 EA 3F 0C 43 1B 42
+C8 1D A2 53 C8 1D 3A 40 20 00 19 42 C6 1D 19 52
+C4 1D 7A 99 FE 27 5A 49 FF FF 19 82 C4 1D 82 49
+C6 1D 7A 90 52 00 30 4D 00 00 08 52 45 54 49 00
+0D 12 84 12 0A 44 00 13 66 4C 78 49 0A 44 2C 00
+5C 52 A0 51 AA 47 66 52 3E 52 AC 52 3D 41 2C DE
+8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12 9C 52
+00 40 B8 52 0A 4D 4F 56 2E 42 85 12 9C 52 40 40
+00 00 06 41 44 44 85 12 9C 52 00 50 D2 52 0A 41
+44 44 2E 42 85 12 9C 52 40 50 DE 52 08 41 44 44
+43 00 85 12 9C 52 00 60 EC 52 0C 41 44 44 43 2E
+42 00 85 12 9C 52 40 60 24 4F 08 53 55 42 43 00
+85 12 9C 52 00 70 0A 53 0C 53 55 42 43 2E 42 00
+85 12 9C 52 40 70 18 53 06 53 55 42 85 12 9C 52
+00 80 28 53 0A 53 55 42 2E 42 85 12 9C 52 40 80
+34 53 06 43 4D 50 85 12 9C 52 00 90 42 53 0A 43
+4D 50 2E 42 85 12 9C 52 40 90 00 00 08 44 41 44
+44 00 85 12 9C 52 00 A0 5C 53 0C 44 41 44 44 2E
+42 00 85 12 9C 52 40 A0 8A 52 06 42 49 54 85 12
+9C 52 00 B0 7A 53 0A 42 49 54 2E 42 85 12 9C 52
+40 B0 86 53 06 42 49 43 85 12 9C 52 00 C0 94 53
+0A 42 49 43 2E 42 85 12 9C 52 40 C0 A0 53 06 42
+49 53 85 12 9C 52 00 D0 AE 53 0A 42 49 53 2E 42
+85 12 9C 52 40 D0 00 00 06 58 4F 52 85 12 9C 52
+00 E0 C8 53 0A 58 4F 52 2E 42 85 12 9C 52 40 E0
+FA 52 06 41 4E 44 85 12 9C 52 00 F0 E2 53 0A 41
+4E 44 2E 42 85 12 9C 52 40 F0 AA 47 5C 52 A0 51
+02 54 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4D 3F BA 53 06 52 52 43 85 12 FA 53 00 10 14 54
+0A 52 52 43 2E 42 85 12 FA 53 40 10 4E 53 08 53
+57 50 42 00 85 12 FA 53 80 10 20 54 06 52 52 41
+85 12 FA 53 00 11 3C 54 0A 52 52 41 2E 42 85 12
+FA 53 40 11 2E 54 06 53 58 54 85 12 FA 53 80 11
+00 00 08 50 55 53 48 00 85 12 FA 53 00 12 62 54
+0C 50 55 53 48 2E 42 00 85 12 FA 53 40 12 56 54
+08 43 41 4C 4C 00 85 12 FA 53 80 12 1A 53 0E 4A
+84 12 EC 49 1E 44 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 12 45 80 54 06 53 3E 3D 86 12 00 38
+A8 54 04 53 3C 00 86 12 00 34 70 54 06 30 3E 3D
+86 12 00 30 BC 54 04 30 3C 00 86 12 00 30 F8 4E
+04 55 3C 00 86 12 00 2C D0 54 06 55 3E 3D 86 12
+00 28 C6 54 06 30 3C 3E 86 12 00 24 E4 54 04 30
+3D 00 86 12 00 20 00 00 04 49 46 00 1A 42 C8 1D
+8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D 6A 53 08 54
+48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48 29 53
+0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D
+DA 54 08 45 4C 53 45 00 1A 42 C8 1D BA 40 00 3C
+00 00 A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F 48 54
+0A 42 45 47 49 4E 30 40 32 44 32 55 0A 55 4E 54
+49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89
+0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48
+00 00 A2 53 C8 1D 30 4D EE 53 0A 41 47 41 49 4E
+0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45
+0D 12 84 12 FC 54 92 48 78 49 50 55 0C 52 45 50
+45 41 54 00 0D 12 84 12 90 55 14 55 78 49 C0 55
+3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42
+C8 1D 00 00 30 4D AC 55 06 42 57 31 85 12 BE 55
+00 00 D8 55 06 42 57 32 85 12 BE 55 00 00 E4 55
+06 42 57 33 85 12 BE 55 00 00 FC 55 3D 41 1A 42
+C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D 86 2B BA 4F
+00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00
+06 46 57 31 85 12 FA 55 00 00 20 56 06 46 57 32
+85 12 FA 55 00 00 2C 56 06 46 57 33 85 12 FA 55
+00 00 9A 55 08 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C 0D 12 84 12 32 4D 3E 4C 78 49 00 00
+0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
+3E B0 00 10 EF 27 3E E0 00 08 EC 3F 66 52 0A 44
+2C 00 FC 49 0E 4B AC 44 42 4D AA 47 5C 52 3E 52
+92 56 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28
+08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E
+5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E F0 55
+08 52 52 43 4D 00 85 12 7C 56 50 00 C0 56 08 52
+52 41 4D 00 85 12 7C 56 50 01 CE 56 08 52 4C 41
+4D 00 85 12 7C 56 50 02 DC 56 08 52 52 55 4D 00
+85 12 7C 56 50 03 EE 54 0A 50 55 53 48 4D 85 12
+7C 56 00 15 F8 56 08 50 4F 50 4D 00 85 12 7C 56
+00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 84 46
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 0A 51
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 D2 46
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 10 46
 q
diff --git a/binaries/MSP_EXP430FR5969_16MHz_UART.txt b/binaries/MSP_EXP430FR5969_16MHz_UART.txt
deleted file mode 100644 (file)
index 9d0e833..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF 0E 58 04 50 34 01
-10 00 41 B3 94 45 AA 44 DA 45 9C 45 96 46 0E 58
-04 50 7C 46 94 47 26 47 00 47 3C 1D 62 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
-@4400
-B0 12 DA 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 7A 46 B2 49 92 47 B2 49 24 47 B2 49 FE 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 D0 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 45 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 44 0A 44 DE 1D E2 47 34 47
-14 44 04 1B 5B 37 6D 00 5E 47 AA 47 34 44 86 45
-14 44 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5E 47 A2 48 5E 47 14 44 04 1B 5B 30 6D 00
-5E 47 2A 4C 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D3 23 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C3 23 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 45 F2 B0 20 00 21 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE 45 04 57 41 52 4D 00
-B0 12 9C 45 84 12 14 44 07 0D 0A 1B 5B 37 6D 23
-5E 47 D8 48 14 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
-5E 47 0A 44 40 FF 28 44 D6 47 A2 48 14 44 0A 62
-79 74 65 73 20 66 72 65 65 00 3A 44 86 45 00 00
-06 41 43 43 45 50 54 00 30 40 7C 46 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 46 3C 40
-D4 46 5D 15 B5 3E 21 52 3A 17 58 42 CC 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 CE 05 30 4D CA 46 2D 83 92 B3 DC 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-DC 05 FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53
-DE 1D 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 47
-2F 83 8F 4E 00 00 B0 12 DA 45 92 B3 DC 05 FD 27
-1E 42 CC 05 B0 12 C8 45 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 47 08 4E 3E 4F C8 3F 1C 47 04 45
-43 48 4F 00 B2 40 C2 48 C2 46 82 43 DE 1D 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 46
-92 43 DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93
-11 24 0D 12 3D 40 7A 47 28 4F 2F 83 8F 4E 00 00
-7E 48 8F 48 02 00 10 42 24 47 7C 47 2D 83 1E 83
-F3 23 3D 41 2F 53 3E 4F 30 4D FC 45 02 43 52 00
-30 40 94 47 0D 12 84 12 14 44 02 0D 0A 00 5E 47
-62 48 2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D
-8F 4E FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E
-00 00 0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F
-0E 11 2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 46
-01 40 2E 4E 30 4D E0 47 01 21 BE 4F 00 00 3E 4F
-30 4D 1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D
-3E 8F 03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 8C 47 01 23 1B 42
-DC 1D 2C 4F 2F 83 B0 12 6E 44 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 1C 48 02 23 53 00
-0D 12 84 12 1E 48 58 48 2D 83 09 93 E2 23 0E 93
-E0 23 3D 41 30 4D 4C 48 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 4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00
-0E 93 3E 4F 7A 40 2D 00 D1 33 30 4D 58 47 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12
-3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
-84 12 12 48 50 48 EE 44 90 48 6C 48 5E 47 16 4C
-22 47 62 48 42 47 01 2E 0E 93 E3 37 38 43 E2 3F
-8A 48 82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44
-14 44 5C 4B 0A 44 22 00 2E 49 FC 48 B2 40 20 00
-B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41
-30 4D D6 48 82 2E 22 00 0D 12 84 12 E6 48 0A 44
-5E 47 5C 4B 62 48 1A 46 04 57 4F 52 44 00 3C 40
-C0 1D 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24
-7E 9A FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90
-27 00 00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24
-7C 4A 4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00
-F3 2F 4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00
-1E 43 01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40
-D4 44 30 4D 00 00 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
-B0 4A 09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C
-FC 90 27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00
-7E 90 03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23
-B1 43 02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53
-04 24 3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F
-B2 4A 31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02
-2A 20 32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00
-22 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00
-AF 4F 04 00 4A 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 00 00 01 2C 1A 42 C6 1D
-8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D 5A 4B 87 4C
-49 54 45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42
-C6 1D A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00
-3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
-EE 3F 30 4D 68 48 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 7C 48 09 49 4E 54
-45 52 50 52 45 54 0D 12 84 12 AC 44 16 4C 2E 49
-D2 4B 9C 26 3D 40 DA 4B DE 3E DC 4B 0A 4E 3E 4F
-3D 40 F6 4B 36 27 3D 40 CC 4B 1A E2 BE 1D B6 27
-0E 12 3E 4F 30 41 F8 4B 3E 4F 3D 40 CC 4B BB 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-98 4D CC 3F 00 4C 86 12 20 00 E8 47 05 41 4C 4C
-4F 54 82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43
-31 40 E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12
-90 47 BC 44 C6 4B C6 47 F8 47 14 44 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF
-28 44 00 48 14 44 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 2A 45 3A 44 40 4C 1C 4C 86 41 42 4F 52 54
-22 00 0D 12 84 12 E6 48 0A 44 2A 45 5C 4B 62 48
-90 49 01 27 0D 12 84 12 16 4C 2E 49 96 49 34 44
-14 4C 62 48 00 00 83 5B 27 5D 0D 12 84 12 94 4C
-0A 44 0A 44 5C 4B 5C 4B 62 48 A6 4C 81 5B 82 43
-BE 1D 30 4D 0E 48 01 5D B2 43 BE 1D 30 4D C6 4C
-81 5C 92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53
-54 50 4F 4E 45 00 0D 12 84 12 16 4C 2E 49 96 49
-AA 47 34 44 14 4C F8 47 34 44 08 4D 0A 44 0A 44
-5C 4B 5C 4B 0A 44 5C 4B 5C 4B 62 48 BC 4C 01 3A
-30 12 58 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12
-16 4C 2E 49 26 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
-82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D
-2A 52 82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40
-84 12 FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20
-18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
-30 4D 0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D
-69 73 6D 61 74 63 68 21 36 45 0E 4D 81 3B 82 93
-BE 1D 97 27 0D 12 84 12 0A 44 62 48 5C 4B 6A 4D
-BE 4C 62 48 BC 4B 09 49 4D 4D 45 44 49 41 54 45
-18 42 B6 1D F8 D0 80 00 00 00 30 4D A6 4B 06 43
-52 45 41 54 45 00 B0 12 14 4D BA 40 86 12 FC FF
-8A 4A FE FF C9 3F CE 4D 04 43 4F 44 45 00 B0 12
-14 4D A2 82 C6 1D 0D 12 84 12 06 50 E0 4F 62 48
-B6 4D 07 48 44 4E 43 4F 44 45 B2 40 E4 4F DA 1D
-EE 3F 00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12
-6A 4D 20 50 3E 50 62 48 00 00 05 43 4F 4C 4F 4E
-1A 42 C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00
-A2 52 C6 1D B2 43 BE 1D 0D 12 84 12 20 50 3E 50
-62 48 00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42
-C6 1D EB 3F 02 4E 85 48 49 32 4C 4F 0D 12 84 12
-28 44 AE 4F 5C 4B BE 4C F6 4D 62 48 9C 4D 86 5B
-54 48 45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53
-F9 98 FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83
-00 00 F9 23 2F 53 2D 53 F7 3F 7E 4E 86 5B 45 4C
-53 45 5D 00 0D 12 84 12 0A 44 00 00 DA 47 16 4C
-2E 49 AC 4B A2 47 34 44 16 4F B0 47 14 44 06 5B
-54 48 45 4E 5D 00 88 4E F0 4E AC 4E CE 4E 62 48
-B0 47 14 44 06 5B 45 4C 53 45 5D 00 88 4E 06 4F
-AC 4E CC 4E 62 48 14 44 04 5B 49 46 5D 00 88 4E
-CE 4E 3A 44 CC 4E 84 47 14 44 05 0D 0A 6B 6F 20
-5E 47 BC 44 AC 44 3A 44 CE 4E BC 4E 84 5B 49 46
-5D 00 0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2C 4F
-89 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 16 4C
-2E 49 96 49 3A 4F 62 48 40 4F 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 0D 12 84 12 4A 4F F2 47 62 48
-72 4F B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C
-6E 4B 06 4D 41 52 4B 45 52 00 B0 12 14 4D BA 40
-85 12 FC FF BA 40 70 4F FE FF 28 83 8A 48 00 00
-BA 40 AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53
-30 4D 0A 44 CA 1D EA 47 62 48 85 12 B2 4F 7A 4C
-E8 4D 2E 47 92 4C 66 4E F8 46 82 4F 14 49 AA 50
-BE 50 9E 48 28 49 00 00 5A 4F D0 4C F6 49 00 00
-85 12 B2 4F 84 56 EA 56 2C 56 3A 57 F2 55 00 00
-BE 53 00 00 02 58 E6 57 56 56 94 56 CE 54 00 00
-00 00 56 57 DE 4F 3A 40 0C 00 39 40 D6 1D 08 49
-28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-3A 40 0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42
-CA 1D DA 1D 30 4D BA 4F 38 50 3E 50 4E 50 1A 42
-20 18 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 DC 4C 09 50 57 52 5F 53 54 41 54 45 85 12
-46 50 0E 58 E2 48 09 52 53 54 5F 53 54 41 54 45
-92 42 0A 18 92 50 F3 3F 84 50 08 50 57 52 5F 48
-45 52 45 00 92 42 C6 1D 92 50 30 4D 96 50 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F
-3E 90 0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40
-10 00 29 83 B9 43 80 FF FC 23 B9 40 1C 51 FE FF
-29 83 B9 40 02 46 FE FF 39 90 AE FF F9 23 39 40
-14 18 B2 49 04 46 B2 49 FA 44 B2 49 02 44 B2 49
-22 46 B2 49 F0 FF B2 49 0A 18 C2 3F B2 D0 03 00
-04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40
-E0 1C 3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C
-FC 23 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 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 B2 D2 B0 01
-F2 D0 10 00 2A 03 F2 C0 40 00 A1 04 1E 42 08 18
-82 43 08 18 1E D2 9E 01 B0 12 F8 44 20 46 38 40
-C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D
-30 4D 1C 15 0E 12 12 12 C4 1D 84 12 2E 49 96 49
-F2 47 34 44 FE 51 52 4A 34 44 18 52 12 52 00 52
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 1A 52 B2 41 C4 1D 3E 41
-84 12 0A 44 2B 00 2E 49 96 49 F2 47 34 44 36 52
-52 4A 34 44 14 4C BC 47 2E 49 52 4A 34 44 14 4C
-42 52 3E 5F E7 3F 3E 40 28 00 B0 12 E2 51 19 42
-C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00 92 92
-C0 1D C4 1D 02 20 30 40 82 4D 1C 15 12 12 C4 1D
-92 53 C4 1D 84 12 2E 49 52 4A 34 44 8A 52 80 52
-21 53 3E 90 10 00 C6 2B 7F 2D 8C 52 B2 41 C4 1D
-C1 3F 0D 12 84 12 16 4C BE 51 9C 52 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 E2 51 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 E2 51
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 6A 52 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-6A 52 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E DA 3F B0 12 6A 52 FA 23 3C 50 10 00 B0 12
-46 52 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12
-84 12 16 4C BE 51 68 53 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 6A 52 E0 23
-3C 50 80 00 B0 12 46 52 DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 44 00 13 5C 4B 62 48 0A 44
-2C 00 92 52 5E 53 A8 53 09 4B 2E 4E 0E DC A2 3F
-54 4E 03 4D 4F 56 85 12 9E 53 00 40 B2 53 05 4D
-4F 56 2E 42 85 12 9E 53 40 40 00 00 03 41 44 44
-85 12 9E 53 00 50 CC 53 05 41 44 44 2E 42 85 12
-9E 53 40 50 D8 53 04 41 44 44 43 00 85 12 9E 53
-00 60 E6 53 06 41 44 44 43 2E 42 00 85 12 9E 53
-40 60 8C 53 04 53 55 42 43 00 85 12 9E 53 00 70
-04 54 06 53 55 42 43 2E 42 00 85 12 9E 53 40 70
-12 54 03 53 55 42 85 12 9E 53 00 80 22 54 05 53
-55 42 2E 42 85 12 9E 53 40 80 2A 4E 03 43 4D 50
-85 12 9E 53 00 90 3C 54 05 43 4D 50 2E 42 85 12
-9E 53 40 90 14 4E 04 44 41 44 44 00 85 12 9E 53
-00 A0 56 54 06 44 41 44 44 2E 42 00 85 12 9E 53
-40 A0 48 54 03 42 49 54 85 12 9E 53 00 B0 74 54
-05 42 49 54 2E 42 85 12 9E 53 40 B0 80 54 03 42
-49 43 85 12 9E 53 00 C0 8E 54 05 42 49 43 2E 42
-85 12 9E 53 40 C0 9A 54 03 42 49 53 85 12 9E 53
-00 D0 A8 54 05 42 49 53 2E 42 85 12 9E 53 40 D0
-00 00 03 58 4F 52 85 12 9E 53 00 E0 C2 54 05 58
-4F 52 2E 42 85 12 9E 53 40 E0 F4 53 03 41 4E 44
-85 12 9E 53 00 F0 DC 54 05 41 4E 44 2E 42 85 12
-9E 53 40 F0 16 4C 92 52 FA 54 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 2E 54 03 52 52 43
-85 12 F4 54 00 10 0C 55 05 52 52 43 2E 42 85 12
-F4 54 40 10 18 55 04 53 57 50 42 00 85 12 F4 54
-80 10 26 55 03 52 52 41 85 12 F4 54 00 11 34 55
-05 52 52 41 2E 42 85 12 F4 54 40 11 40 55 03 53
-58 54 85 12 F4 54 80 11 00 00 04 50 55 53 48 00
-85 12 F4 54 00 12 5A 55 06 50 55 53 48 2E 42 00
-85 12 F4 54 40 12 B4 54 04 43 41 4C 4C 00 85 12
-F4 54 80 12 1A 53 0E 4A 0D 12 84 12 D8 48 14 44
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 45
-4E 55 03 53 3E 3D 86 12 00 38 A2 55 02 53 3C 00
-86 12 00 34 68 55 03 30 3E 3D 86 12 00 30 B6 55
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C CA 55 03 55 3E 3D 86 12 00 28 C0 55 03 30
-3C 3E 86 12 00 24 DE 55 02 30 3D 00 86 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 55 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 B1 2F 88 DA 00 00 30 4D 64 54 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 78 55 05 42 45 47 49 4E
-30 40 28 44 08 56 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D E8 54 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 F6 55
-BC 47 62 48 AC 55 06 52 45 50 45 41 54 00 0D 12
-84 12 8A 56 0E 56 62 48 BA 56 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D
-4A 56 03 42 57 31 85 12 B8 56 00 00 D2 56 03 42
-57 32 85 12 B8 56 00 00 DE 56 03 42 57 33 85 12
-B8 56 00 00 F6 56 3D 41 1A 42 C6 1D 28 4E B2 92
-C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 F4 56 00 00
-16 57 03 46 57 32 85 12 F4 56 00 00 22 57 03 46
-57 33 85 12 F4 56 00 00 2E 57 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 94 4C
-F0 4B 62 48 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 16 4C BE 51 78 57 92 53 C4 1D 3E 40 2C 00
-84 12 2E 49 52 4A 34 44 14 4C 54 53 8E 57 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E A6 56 04 52 52 43
-4D 00 85 12 72 57 50 00 BC 57 04 52 52 41 4D 00
-85 12 72 57 50 01 CA 57 04 52 4C 41 4D 00 85 12
-72 57 50 02 D8 57 04 52 52 55 4D 00 85 12 72 57
-50 03 E8 55 05 50 55 53 48 4D 85 12 72 57 00 15
-F4 57 04 50 4F 50 4D 00 85 12 72 57 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-96 46 02 46 02 46 02 46 02 46 02 46 02 46 1C 51
-q
diff --git a/binaries/MSP_EXP430FR5969_1MHz_115200.txt b/binaries/MSP_EXP430FR5969_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..cad4430
--- /dev/null
@@ -0,0 +1,325 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A1 59
+C6 46 7E 45 84 45 54 45 36 47 24 57 DC 4F 96 4F
+96 4F AC 46 6A 47 32 47 3C 1D E0 1C 8A 49 B6 44
+C4 44 A6 48 20 00 0A 00 00 1C 7E 45 84 45 54 45
+36 47 24 57 DC 4F 96 4F 96 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 FE 3C 0E 93 3E 4F
+93 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 AA 46 B2 49
+68 47 B2 49 30 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 50 50 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 36 47 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 44 B0 48 AC 44 52 45 78 47 1E 44 04 1B
+5B 37 6D 00 9A 47 9A 47 1E 44 04 1B 5B 30 6D 00
+9A 47 E6 4C B0 12 7E 45 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 78 47 1E 44
+07 0D 0A 1B 5B 37 6D 23 9A 47 FE 49 1E 44 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 9A 47 0A 44 40 FF 32 44
+C6 48 CA 49 1E 44 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 44 46 45 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 45 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 20 00 21 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40
+E0 1C 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
+B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
+00 18 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 19 42 9E 01 1E 42 08 18 82 43
+08 18 3E F3 01 20 0E 49 B0 12 D0 44 86 45 00 00
+0C 41 43 43 45 50 54 00 30 40 AC 46 08 4E 2E 4F
+08 5E 39 40 0D 00 3A 40 20 00 3B 40 0A 47 3C 40
+16 47 5D 15 9D 3E 21 52 3A 17 58 42 CC 05 48 9B
+09 20 A2 B3 DC 05 FD 27 B2 40 13 00 CE 05 E2 D3
+23 02 30 41 48 9C 06 2C 78 92 11 20 2E 9F 0F 24
+1E 83 05 3C 0E 9A 03 2C CE 48 00 00 1E 53 A2 B3
+DC 05 FD 27 C2 48 CE 05 30 4D 0C 47 2D 83 92 B3
+DC 05 DB 23 FC 3F 3E 8F 3D 41 92 B3 DC 05 FD 27
+58 42 CC 05 08 4C EB 3F 00 00 06 4B 45 59 30 40
+32 47 30 12 48 47 A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C3 23 02 30 41 2F 83 8F 4E 00 00 92 B3
+DC 05 FD 27 B0 12 D2 46 1E 42 CC 05 30 4D 00 00
+08 45 4D 49 54 00 30 40 6A 47 08 4E 3E 4F C7 3F
+60 47 08 45 43 48 4F 00 B2 40 C2 48 04 47 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 04 47
+30 4D 00 00 08 54 59 50 45 00 0D 12 3D 40 AA 47
+29 4F 8F 4E 00 00 7E 49 DE 3F AC 47 2D 83 2F 83
+5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00
+0C 4E 38 4F 3C 9F 39 4F 3E 4F 73 22 F9 98 00 00
+70 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F
+1E 83 67 22 9B 24 2A 47 0D 5B 45 4C 53 45 5D 00
+0D 12 84 12 0A 44 00 00 CA 48 BC 47 0E 4A C8 4C
+B0 44 38 48 14 44 06 5B 54 48 45 4E 5D 00 C0 47
+16 48 DC 47 FA 47 14 44 06 5B 45 4C 53 45 5D 00
+C0 47 28 48 DC 47 F8 47 1E 44 04 5B 49 46 5D 00
+C0 47 FA 47 B2 44 F8 47 1E 44 05 0D 6B 6F 20 0A
+9A 47 9A 44 84 44 B2 44 FA 47 E8 47 0D 5B 54 48
+45 4E 5D 00 30 4D 4C 48 09 5B 49 46 5D 00 0E 93
+3E 4F C6 27 30 4D 58 48 13 5B 44 45 46 49 4E 45
+44 5D 0D 12 84 12 BC 47 0E 4A 76 4A 1A 4C 8A 49
+68 48 17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
+84 12 BC 47 0E 4A 76 4A 9A 48 3D 41 2F 53 1E 83
+0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D
+8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 1C
+0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00
+02 40 2E 4E 30 4D A0 46 02 21 BE 4F 00 00 3E 4F
+30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3
+30 4D D8 45 05 53 22 00 82 43 C0 1D 0D 12 84 12
+0A 44 1E 44 78 4C 0A 44 22 00 0E 4A 0E 49 B2 40
+20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41
+30 4D 82 47 05 2E 22 00 0D 12 84 12 F8 48 0A 44
+9A 47 78 4C 8A 49 00 00 04 3C 23 00 B2 40 B2 1D
+B2 1D 30 4D F4 48 02 23 1B 42 BE 1D 2C 4F 2F 83
+B0 12 46 44 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 46 49 04 23 53 00 0D 12 84 12 48 49
+82 49 2D 83 09 DE 09 93 E1 23 3D 41 30 4D 76 49
+04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F
+90 49 08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00
+D2 33 30 4D 72 47 04 55 2E 00 0C 43 2F 83 8F 4E
+00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3
+9F 53 00 00 0E 63 84 12 3C 49 BC 47 AA 49 7A 49
+A6 48 B8 49 94 49 9A 47 8A 49 24 49 02 2E 0E 93
+E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40
+C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24
+7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00 00 00
+04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98
+0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B
+7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48
+C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D 00 00
+08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58
+2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11
+68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
+FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83
+8F 4C 00 00 30 4D FC 49 0E 3E 4E 55 4D 42 45 52
+1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04
+6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50
+0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04
+19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83
+E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42
+BE 1D 0C 4E 0E 43 1E 15 3D 40 80 4B 7E 4C 6A 4C
+7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52
+6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20
+3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00
+38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27
+82 4B 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0
+00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53
+20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12
+3E 44 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4A 93 1D 17 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 38 49
+03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12 84 44
+BC 47 0E 4A B0 44 52 4D 76 4A 3C 4C 0A 4E 3E 4F
+3D 40 56 4C 6D 27 3D 40 30 4C 1A E2 BC 1D 14 24
+0E 12 3E 4F 30 41 58 4C 3E 4F 3D 40 30 4C 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+2E 4E 2A 3C 20 4C 02 2C A2 53 C8 1D 1A 42 C8 1D
+8A 4E FE FF 3E 4F 30 4D 76 4C 0F 4C 49 54 45 52
+41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52
+C8 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F 32 B0
+00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
+B2 49 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D D8 48 0A 41 4C 4C 4F 54 82 5E
+C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12 1E 44
+02 0D 0A 00 9A 47 94 44 2A 4C B8 48 E2 48 1E 44
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 45 32 44
+0A 44 40 FF EA 48 1E 44 09 46 52 41 4D 20 66 75
+6C 6C 08 45 B2 44 EE 4C D8 4C 0D 41 42 4F 52 54
+22 00 0D 12 84 12 F8 48 0A 44 08 45 78 4C 8A 49
+08 4A 02 27 0D 12 84 12 BC 47 0E 4A 76 4A B0 44
+54 4D 1C 49 60 4C 82 48 07 5B 27 5D 0D 12 84 12
+44 4D 0A 44 0A 44 78 4C 78 4C 8A 49 58 4D 03 5B
+82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D 30 4D
+D0 48 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+BC 47 0E 4A 76 4A B0 44 54 4D E2 48 AC 44 AC 4D
+0A 44 0A 44 78 4C 78 4C 0A 44 78 4C 78 4C 8A 49
+00 00 02 3A 30 12 02 4E 92 B3 C8 1D A2 63 C8 1D
+0D 12 84 12 BC 47 0E 4A CA 4D 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D 82 49
+B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E 44 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 45
+6E 4D 03 3B 82 93 BC 1D F4 26 0D 12 84 12 0A 44
+8A 49 78 4C 14 4E 70 4D 8A 49 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00 30 4D
+C2 4C 0C 43 52 45 41 54 45 00 B0 12 B8 4D BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D 94 47 0A 44 4F 45
+53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D B2 4D 0E 3A 4E 4F 4E 41 4D 45 30 12
+02 4E 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F 4C 4E 05 49 53 00
+0D 12 82 93 BC 1D 08 20 84 12 44 4D CE 4E 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 5C 4D 0A 44 D0 4E
+78 4C 8A 49 62 4E 08 43 4F 44 45 00 B0 12 B8 4D
+A2 82 C8 1D 61 3C A4 49 0E 48 44 4E 43 4F 44 45
+B2 40 BC 4F CC 1D F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 14 4E 1A 4F 3D 41 92 42 D0 1D
+CC 1D 5D 3C E6 4E 0E 43 4F 44 45 4E 4E 4D 30 12
+F0 4E B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 1D
+B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 1D 1A 42 C8 1D EF 3F F8 4E 0B 48 49 32 4C 4F
+A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D
+B9 3F 84 4F B2 40 96 4F D0 1D 82 4E CE 1D 30 40
+1C 49 85 12 82 4F 82 4D 2A 4D 14 50 26 4F 7C 4E
+C6 49 70 4A 42 4D 6A 4F BC 4E 96 4E 32 4E 8A 4C
+9E 50 C8 4A 00 00 00 00 85 12 82 4F 18 57 9C 55
+FC 56 C4 54 20 55 6E 55 4A 56 56 56 E6 53 0A 55
+00 00 00 00 58 4F D6 52 00 00 72 56 B6 4F B2 40
+96 4F CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12 EA 4F
+30 4D FC 4F 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 1D B0 12 EA 4F 1A 42 CA 1D 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 08 46 FE FF 29 83 B9 40 F2 45 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 F0 FF 3B 40 10 00
+3A 40 3A 18 B0 12 EE 4F 82 43 4A 18 C7 3F 90 50
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 78 4D 0C 4D
+41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12 BC 47
+0E 4A 76 4A AC 44 BC 50 B0 48 50 4C BE 50 3E 4F
+3D 41 B2 41 C6 1D B0 12 B8 4D BA 40 85 12 FC FF
+BA 40 8E 50 FE FF 28 83 8A 48 00 00 BA 40 82 44
+02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12 0E 4A
+76 4A AC 44 28 51 08 51 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 8E 50 00 00 01 20
+3E 52 2E 83 21 53 30 41 20 4B AC 44 30 51 24 51
+32 51 B2 41 C6 1D 30 41 92 83 C6 1D 3E 40 28 00
+0A 4E 3D 15 B0 12 F8 50 15 20 3E 40 2B 00 B0 12
+F8 50 06 20 3E 40 2D 00 B0 12 F8 50 92 83 C6 1D
+0E 12 1E 41 02 00 84 12 0E 4A 20 4B AC 44 54 4D
+72 51 3E 51 3A 17 30 41 B0 12 38 51 19 42 C8 1D
+89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53 C6 1D
+1A 42 C6 1D 3D 15 84 12 0E 4A 20 4B AC 44 AA 51
+A2 51 3E 90 10 00 E6 2B 7C 2D AC 51 A2 41 C6 1D
+E1 3F 03 20 B0 12 90 51 43 3C 7A 90 23 00 24 20
+B0 12 40 51 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 C8 1D A2 53 C8 1D
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 40 51 F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 8C 51 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 90 51 92 92 C2 1D C6 1D 02 24 92 53 C6 1D
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 78 51 F2 3F
+03 20 B0 12 90 51 F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 78 51 EA 3F 0C 43
+1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42 C6 1D
+19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82 C4 1D
+82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A 44 00 13 78 4C 8A 49 0A 44
+2C 00 6E 52 B2 51 BC 47 78 52 50 52 BE 52 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+AE 52 00 40 CA 52 0A 4D 4F 56 2E 42 85 12 AE 52
+40 40 00 00 06 41 44 44 85 12 AE 52 00 50 E4 52
+0A 41 44 44 2E 42 85 12 AE 52 40 50 F0 52 08 41
+44 44 43 00 85 12 AE 52 00 60 FE 52 0C 41 44 44
+43 2E 42 00 85 12 AE 52 40 60 36 4F 08 53 55 42
+43 00 85 12 AE 52 00 70 1C 53 0C 53 55 42 43 2E
+42 00 85 12 AE 52 40 70 2A 53 06 53 55 42 85 12
+AE 52 00 80 3A 53 0A 53 55 42 2E 42 85 12 AE 52
+40 80 46 53 06 43 4D 50 85 12 AE 52 00 90 54 53
+0A 43 4D 50 2E 42 85 12 AE 52 40 90 00 00 08 44
+41 44 44 00 85 12 AE 52 00 A0 6E 53 0C 44 41 44
+44 2E 42 00 85 12 AE 52 40 A0 9C 52 06 42 49 54
+85 12 AE 52 00 B0 8C 53 0A 42 49 54 2E 42 85 12
+AE 52 40 B0 98 53 06 42 49 43 85 12 AE 52 00 C0
+A6 53 0A 42 49 43 2E 42 85 12 AE 52 40 C0 B2 53
+06 42 49 53 85 12 AE 52 00 D0 C0 53 0A 42 49 53
+2E 42 85 12 AE 52 40 D0 00 00 06 58 4F 52 85 12
+AE 52 00 E0 DA 53 0A 58 4F 52 2E 42 85 12 AE 52
+40 E0 0C 53 06 41 4E 44 85 12 AE 52 00 F0 F4 53
+0A 41 4E 44 2E 42 85 12 AE 52 40 F0 BC 47 6E 52
+B2 51 14 54 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F CC 53 06 52 52 43 85 12 0C 54 00 10
+26 54 0A 52 52 43 2E 42 85 12 0C 54 40 10 60 53
+08 53 57 50 42 00 85 12 0C 54 80 10 32 54 06 52
+52 41 85 12 0C 54 00 11 4E 54 0A 52 52 41 2E 42
+85 12 0C 54 40 11 40 54 06 53 58 54 85 12 0C 54
+80 11 00 00 08 50 55 53 48 00 85 12 0C 54 00 12
+74 54 0C 50 55 53 48 2E 42 00 85 12 0C 54 40 12
+68 54 08 43 41 4C 4C 00 85 12 0C 54 80 12 1A 53
+0E 4A 84 12 FE 49 1E 44 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 45 92 54 06 53 3E 3D 86 12
+00 38 BA 54 04 53 3C 00 86 12 00 34 82 54 06 30
+3E 3D 86 12 00 30 CE 54 04 30 3C 00 86 12 00 30
+0A 4F 04 55 3C 00 86 12 00 2C E2 54 06 55 3E 3D
+86 12 00 28 D8 54 06 30 3C 3E 86 12 00 24 F6 54
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D 7C 53
+08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D EC 54 08 45 4C 53 45 00 1A 42 C8 1D BA 40
+00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F
+5A 54 0A 42 45 47 49 4E 30 40 32 44 44 55 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 1D 30 4D 00 54 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 0E 55 A4 48 8A 49 62 55 0C 52
+45 50 45 41 54 00 0D 12 84 12 A2 55 26 55 8A 49
+D2 55 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F
+98 42 C8 1D 00 00 30 4D BE 55 06 42 57 31 85 12
+D0 55 00 00 EA 55 06 42 57 32 85 12 D0 55 00 00
+F6 55 06 42 57 33 85 12 D0 55 00 00 0E 56 3D 41
+1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D 86 2B
+BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 0C 56 00 00 32 56 06 46
+57 32 85 12 0C 56 00 00 3E 56 06 46 57 33 85 12
+0C 56 00 00 AC 55 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 44 4D 50 4C 8A 49
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F 78 52
+0A 44 2C 00 0E 4A 20 4B AC 44 54 4D BC 47 6E 52
+50 52 A4 56 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+02 56 08 52 52 43 4D 00 85 12 8E 56 50 00 D2 56
+08 52 52 41 4D 00 85 12 8E 56 50 01 E0 56 08 52
+4C 41 4D 00 85 12 8E 56 50 02 EE 56 08 52 52 55
+4D 00 85 12 8E 56 50 03 00 55 0A 50 55 53 48 4D
+85 12 8E 56 00 15 0A 57 08 50 4F 50 4D 00 85 12
+8E 56 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+C6 46 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 08 46
+q
index 34de458..5e8066a 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF E6 57 F2 4F 34 01
-10 00 41 87 B6 45 AA 44 B8 45 8C 45 84 46 E6 57
-F2 4F 72 46 82 47 00 47 DC 46 3C 1D 50 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+C0 46 56 45 56 45 58 45 44 45 00 57 B8 4F 72 4F
+72 4F AE 46 32 47 0A 47 3C 1D E0 1C 66 49 B6 44
+C4 44 82 48 20 00 0A 00 00 1C 56 45 56 45 58 45
+44 45 00 57 B8 4F 72 4F 72 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4400
-B0 12 B8 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 70 46 B2 49 80 47 B2 49 FE 46 B2 49 DA 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BE 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 45 0E 12 B0 12
-F8 44 0A 44 DE 1D D0 47 18 47 EE 44 34 44 8A 45
-14 44 05 1B 5B 37 6D 40 4C 47 0A 44 02 18 D0 47
-C6 48 98 47 34 44 7E 45 14 44 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4C 47 90 48 4C 47
-14 44 04 1B 5B 30 6D 00 4C 47 18 4C 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 45 F2 B0 20 00 21 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE 45 04 57 41 52 4D 00
-B0 12 8C 45 78 40 03 00 B0 12 BA 45 84 12 14 44
-07 0D 0A 1B 5B 37 6D 40 4C 47 0A 44 02 18 D0 47
-C6 48 0A 44 23 00 FC 46 C6 48 14 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 4C 47 0A 44 40 FF 28 44 C4 47
-90 48 14 44 0A 62 79 74 65 73 20 66 72 65 65 00
-3A 44 7E 45 00 00 06 41 43 43 45 50 54 00 30 40
-72 46 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06
-B7 22 3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B
-0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 45 82 93 DE 1D 02 24 92 53 DE 1D 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC 46 2F 83 8F 4E
-00 00 58 43 B0 12 BA 45 92 B3 6C 06 FD 27 1E 42
-4C 06 30 4D 00 00 04 45 4D 49 54 00 30 40 00 47
-08 4E 3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D
-F6 46 04 45 43 48 4F 00 B2 40 C2 48 0A 47 82 43
-DE 1D 38 40 05 00 B0 12 BA 45 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A 47 92 43 DE 1D
-28 42 F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 68 47 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 FE 46 6A 47 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D DC 45 02 43 52 00 30 40
-82 47 0D 12 84 12 14 44 02 0D 0A 00 4C 47 50 48
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 66 46 01 40
-2E 4E 30 4D CE 47 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 7A 47 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 44 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 0A 48 02 23 53 00 0D 12
-84 12 0C 48 46 48 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 3A 48 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 46 47 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-00 48 3E 48 EE 44 7E 48 5A 48 4C 47 04 4C FC 46
-50 48 2E 47 01 2E 0E 93 E3 37 38 43 E2 3F 78 48
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44
-4A 4B 0A 44 22 00 1C 49 EA 48 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-C4 48 82 2E 22 00 0D 12 84 12 D4 48 0A 44 4C 47
-4A 4B 50 48 FA 45 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44
-30 4D 00 00 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 9E 4A
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F A0 4A
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 48 4B 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 56 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 6A 48 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 44 04 4C 1C 49 C0 4B
-9C 26 3D 40 C8 4B DE 3E CA 4B 0A 4E 3E 4F 3D 40
-E4 4B 36 27 3D 40 BA 4B 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 E6 4B 3E 4F 3D 40 BA 4B BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 86 4D
-CC 3F EE 4B 86 12 20 00 D6 47 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7E 47
-BC 44 B4 4B B4 47 E6 47 14 44 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44
-EE 47 14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 45 3A 44 2E 4C 0A 4C 86 41 42 4F 52 54 22 00
-0D 12 84 12 D4 48 0A 44 2A 45 4A 4B 50 48 7E 49
-01 27 0D 12 84 12 04 4C 1C 49 84 49 34 44 02 4C
-50 48 00 00 83 5B 27 5D 0D 12 84 12 82 4C 0A 44
-0A 44 4A 4B 4A 4B 50 48 94 4C 81 5B 82 43 BE 1D
-30 4D FC 47 01 5D B2 43 BE 1D 30 4D B4 4C 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 04 4C 1C 49 84 49 98 47
-34 44 02 4C E6 47 34 44 F6 4C 0A 44 0A 44 4A 4B
-4A 4B 0A 44 4A 4B 4A 4B 50 48 AA 4C 01 3A 30 12
-46 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 04 4C
-1C 49 14 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 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52
-82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 45 FC 4C 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 44 50 48 4A 4B 58 4D AC 4C
-50 48 AA 4B 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D 94 4B 06 43 52 45
-41 54 45 00 B0 12 02 4D BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F BC 4D 04 43 4F 44 45 00 B0 12 02 4D
-A2 82 C6 1D 0D 12 84 12 F4 4F CE 4F 50 48 A4 4D
-07 48 44 4E 43 4F 44 45 B2 40 D2 4F DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 58 4D
-0E 50 2C 50 50 48 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 0E 50 2C 50 50 48
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F F0 4D 85 48 49 32 4C 4F 0D 12 84 12 28 44
-9C 4F 4A 4B AC 4C E4 4D 50 48 8A 4D 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 6C 4E 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 44 00 00 C8 47 04 4C 1C 49
-9A 4B 90 47 34 44 04 4F 9E 47 14 44 06 5B 54 48
-45 4E 5D 00 76 4E DE 4E 9A 4E BC 4E 50 48 9E 47
-14 44 06 5B 45 4C 53 45 5D 00 76 4E F4 4E 9A 4E
-BA 4E 50 48 14 44 04 5B 49 46 5D 00 76 4E BC 4E
-3A 44 BA 4E 72 47 14 44 05 0D 0A 6B 6F 20 4C 47
-BC 44 AC 44 3A 44 BC 4E AA 4E 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 1A 4F 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 04 4C 1C 49
-84 49 28 4F 50 48 2E 4F 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 38 4F E0 47 50 48 60 4F
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5C 4B
-06 4D 41 52 4B 45 52 00 B0 12 02 4D BA 40 85 12
-FC FF BA 40 5E 4F FE FF 28 83 8A 48 00 00 BA 40
-AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A 44 CA 1D D8 47 50 48 85 12 A0 4F 68 4C D6 4D
-12 47 80 4C 54 4E D4 46 70 4F 02 49 98 50 AC 50
-8C 48 16 49 00 00 48 4F BE 4C E4 49 00 00 85 12
-A0 4F 5C 56 C2 56 04 56 12 57 CA 55 00 00 96 53
-00 00 DA 57 BE 57 2E 56 6C 56 A6 54 00 00 00 00
-2E 57 CC 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D A8 4F 26 50 2C 50 3C 50 1A 42 20 18
-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
-CA 4C 09 50 57 52 5F 53 54 41 54 45 85 12 34 50
-E6 57 D0 48 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 80 50 F3 3F 72 50 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 80 50 30 4D 84 50 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 0A 51 FE FF 29 83
-B9 40 E2 45 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 E4 45 B2 49 FA 44 B2 49 02 44 B2 49 02 46
-B2 49 EE FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C FC 23
-B2 40 FE FF 02 02 B2 D3 06 02 B2 D3 26 02 B2 40
-FF BF 22 02 F2 43 22 03 F2 D3 26 03 F2 40 A5 00
-61 01 82 43 62 01 82 43 66 01 B2 40 33 00 64 01
-D2 43 61 01 39 40 40 00 18 42 00 18 18 83 FE 23
-19 83 FA 23 B2 D2 B0 01 F2 D0 10 00 2A 03 F2 C0
-40 00 A1 04 1E 42 08 18 82 43 08 18 1E D2 9E 01
-B0 12 F8 44 00 46 38 40 C0 1D 0A 4E 39 48 2E 48
-09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27 1E 83
-0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12 12 12
-C4 1D 84 12 1C 49 84 49 E0 47 34 44 D6 51 40 4A
-34 44 F0 51 EA 51 D8 51 3C 4E 3C 80 87 12 05 24
-1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41
-F2 51 B2 41 C4 1D 3E 41 84 12 0A 44 2B 00 1C 49
-84 49 E0 47 34 44 0E 52 40 4A 34 44 02 4C AA 47
-1C 49 40 4A 34 44 02 4C 1A 52 3E 5F E7 3F 3E 40
-28 00 B0 12 BA 51 19 42 C6 1D A2 53 C6 1D 89 4E
-00 00 3E 40 29 00 92 92 C0 1D C4 1D 02 20 30 40
-70 4D 1C 15 12 12 C4 1D 92 53 C4 1D 84 12 1C 49
-40 4A 34 44 62 52 58 52 21 53 3E 90 10 00 C6 2B
-7F 2D 64 52 B2 41 C4 1D C1 3F 0D 12 84 12 04 4C
-96 51 74 52 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 BA 51
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 FF 3C 0E 93 3E 4F
+81 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 AC 46 B2 49
+30 47 B2 49 08 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 2C 50 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 45 B0 12 D0 44 8C 48 AC 44
+42 45 4A 47 1E 44 05 1B 5B 37 6D 40 76 47 0A 44
+02 18 AE 48 DA 49 76 47 1E 44 04 1B 5B 30 6D 00
+76 47 C2 4C 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 4A 47 1E 44 07 0D 0A 1B 5B 37
+6D 40 76 47 0A 44 02 18 AE 48 DA 49 0A 44 23 00
+2E 47 DA 49 1E 44 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+76 47 0A 44 40 FF 32 44 A2 48 A6 49 1E 44 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 44 36 45 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 45 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+20 00 21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+5C 01 31 40 E0 1C 3F 40 80 1C B2 40 FE FF 02 02
+B2 D3 06 02 B2 D3 26 02 B2 40 FF BF 22 02 F2 43
+22 03 F2 D3 26 03 F2 40 A5 00 61 01 82 43 62 01
+82 43 66 01 B2 40 33 00 64 01 D2 43 61 01 39 40
+40 00 18 42 00 18 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 1E 42 08 18 82 43
+08 18 3E F3 02 20 1E 42 9E 01 B0 12 D0 44 80 45
+00 00 0C 41 43 43 45 50 54 00 30 40 AE 46 0A 4E
+2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15 A0 3E
+21 52 A2 C2 6C 06 B2 B0 10 00 40 06 99 22 3A 17
+92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24 48 9C
+06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A
+EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C
+00 00 06 4B 45 59 30 40 0A 47 58 43 B0 12 46 45
+2F 83 8F 4E 00 00 92 B3 6C 06 FD 27 1E 42 4C 06
+B0 12 44 45 30 4D 00 00 08 45 4D 49 54 00 30 40
+32 47 08 4E 3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06
+30 4D 28 47 08 45 43 48 4F 00 B2 40 C2 48 3C 47
+38 40 05 00 B0 12 46 45 30 4D 00 00 0C 4E 4F 45
+43 48 4F 00 B2 40 30 4D 3C 47 28 42 F3 3F 00 00
+08 54 59 50 45 00 0D 12 3D 40 86 47 29 4F 8F 4E
+00 00 7E 49 D4 3F 88 47 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 85 22 F9 98 00 00 82 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 79 22
+9B 24 02 47 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A 44 00 00 A6 48 98 47 EA 49 A4 4C B0 44 14 48
+14 44 06 5B 54 48 45 4E 5D 00 9C 47 F2 47 B8 47
+D6 47 14 44 06 5B 45 4C 53 45 5D 00 9C 47 04 48
+B8 47 D4 47 1E 44 04 5B 49 46 5D 00 9C 47 D6 47
+B2 44 D4 47 1E 44 05 0D 6B 6F 20 0A 76 47 9A 44
+84 44 B2 44 D6 47 C4 47 0D 5B 54 48 45 4E 5D 00
+30 4D 28 48 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 34 48 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 98 47 EA 49 52 4A F6 4B 66 49 44 48 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 98 47
+EA 49 52 4A 76 48 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D A2 46 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D E0 45
+05 53 22 00 82 43 C0 1D 0D 12 84 12 0A 44 1E 44
+54 4C 0A 44 22 00 EA 49 EA 48 B2 40 20 00 C0 1D
+1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D 5C 47
+05 2E 22 00 0D 12 84 12 D4 48 0A 44 76 47 54 4C
+66 49 00 00 04 3C 23 00 B2 40 B2 1D B2 1D 30 4D
+D0 48 02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12 46 44
+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
+22 49 04 23 53 00 0D 12 84 12 24 49 5E 49 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 52 49 04 23 3E 00
+9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 6C 49 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+44 47 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 18 49 98 47 86 49 56 49 82 48 94 49
+70 49 76 47 66 49 00 49 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 1D 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 1D F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42
+C8 1D 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D D8 49 0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D
+3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80
+3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B
+22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 1D 0C 4E
+0E 43 1E 15 3D 40 5C 4B 7E 4C 6A 4C 7A 80 2D 00
+16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24
+3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00
+3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43
+02 00 1E 83 FC 9C 00 00 E0 23 AE 27 5E 4B 2F 24
+2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20
+32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E
+09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80
+3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B
+08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E 44 2A 17
+E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17
+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 49 03 5C 92 42
+C2 1D C6 1D 30 4D 0D 12 84 12 84 44 98 47 EA 49
+B0 44 2E 4D 52 4A 18 4C 0A 4E 3E 4F 3D 40 32 4C
+6D 27 3D 40 0C 4C 1A E2 BC 1D 14 24 0E 12 3E 4F
+30 41 34 4C 3E 4F 3D 40 0C 4C 19 20 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 0A 4E 2A 3C
+FC 4B 02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF
+3E 4F 30 4D 52 4C 0F 4C 49 54 45 52 41 4C 82 93
+BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D BA 40
+0A 44 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
+00 02 03 24 8A 4E 02 00 EE 3F 30 4D 8E 49 0A 43
+4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3
+30 4D B4 48 0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F
+30 4D 3F 40 80 1C 0E 43 84 12 1E 44 02 0D 0A 00
+76 47 94 44 06 4C 94 48 BE 48 1E 44 0B 73 74 61
+63 6B 20 65 6D 70 74 79 08 45 32 44 0A 44 40 FF
+C6 48 1E 44 09 46 52 41 4D 20 66 75 6C 6C 08 45
+B2 44 CA 4C B4 4C 0D 41 42 4F 52 54 22 00 0D 12
+84 12 D4 48 0A 44 08 45 54 4C 66 49 E4 49 02 27
+0D 12 84 12 98 47 EA 49 52 4A B0 44 30 4D F8 48
+3C 4C 5E 48 07 5B 27 5D 0D 12 84 12 20 4D 0A 44
+0A 44 54 4C 54 4C 66 49 34 4D 03 5B 82 43 BC 1D
+30 4D 00 00 02 5D B2 43 BC 1D 30 4D AC 48 11 50
+4F 53 54 50 4F 4E 45 00 0D 12 84 12 98 47 EA 49
+52 4A B0 44 30 4D BE 48 AC 44 88 4D 0A 44 0A 44
+54 4C 54 4C 0A 44 54 4C 54 4C 66 49 00 00 02 3A
+30 12 DE 4D 92 B3 C8 1D A2 63 C8 1D 0D 12 84 12
+98 47 EA 49 A6 4D 3D 41 5A D3 5A 53 0A 5E 19 42
+CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E
+3E 4F E8 58 00 00 82 48 B4 1D 82 49 B6 1D 82 4A
+B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D 30 41 BA 40
+0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 1D 30 4D
+82 9F BA 1D 66 25 84 12 1E 44 0F 73 74 61 63 6B
+20 6D 69 73 6D 61 74 63 68 21 12 45 4A 4D 03 3B
+82 93 BC 1D F4 26 0D 12 84 12 0A 44 66 49 54 4C
+F0 4D 4C 4D 66 49 00 00 12 49 4D 4D 45 44 49 41
+54 45 18 42 B4 1D D8 D3 00 00 30 4D 9E 4C 0C 43
+52 45 41 54 45 00 B0 12 94 4D BA 40 86 12 FC FF
+8A 4A FE FF 3A 3D 70 47 0A 44 4F 45 53 3E 1A 42
+B8 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
+8E 4D 0E 3A 4E 4F 4E 41 4D 45 30 12 DE 4D 2F 83
+8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40
+12 02 08 49 98 3F 28 4E 05 49 53 00 0D 12 82 93
+BC 1D 08 20 84 12 20 4D AA 4E 3D 41 BE 4F 02 00
+3E 4F 30 4D 84 12 38 4D 0A 44 AC 4E 54 4C 66 49
+3E 4E 08 43 4F 44 45 00 B0 12 94 4D A2 82 C8 1D
+61 3C 80 49 0E 48 44 4E 43 4F 44 45 B2 40 98 4F
+CC 1D F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12
+84 12 F0 4D F6 4E 3D 41 92 42 D0 1D CC 1D 5D 3C
+C2 4E 0E 43 4F 44 45 4E 4E 4D 30 12 CC 4E B7 3F
+00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12
+00 00 BA 40 84 12 02 00 A2 52 C8 1D B2 43 BC 1D
+E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42
+C8 1D EF 3F D4 4E 0B 48 49 32 4C 4F A2 53 C8 1D
+1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F 60 4F
+B2 40 72 4F D0 1D 82 4E CE 1D 30 40 F8 48 85 12
+5E 4F 5E 4D 06 4D F0 4F 02 4F 58 4E A2 49 4C 4A
+1E 4D 46 4F 98 4E 72 4E 0E 4E 66 4C 7A 50 A4 4A
+00 00 00 00 85 12 5E 4F F4 56 78 55 D8 56 A0 54
+FC 54 4A 55 26 56 32 56 C2 53 E6 54 00 00 00 00
+34 4F B2 52 00 00 4E 56 92 4F B2 40 72 4F CE 1D
+82 43 D0 1D 30 4D 3B 40 0A 00 BA 49 00 00 2A 53
+2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54
+39 40 C8 1D 3A 40 42 18 B0 12 C6 4F 30 4D D8 4F
+0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40
+C8 1D B0 12 C6 4F 1A 42 CA 1D 3B 40 10 00 09 4A
+08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00
+1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37
+39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40 10 46
+FE FF 29 83 B9 40 FA 45 FE FF 39 90 AE FF F9 23
+39 40 10 18 B2 49 EE FF 3B 40 10 00 3A 40 3A 18
+B0 12 CA 4F 82 43 4A 18 C7 3F 6C 50 B2 4E 42 18
+BE 12 3E 4F 3D 41 C0 3F 54 4D 0C 4D 41 52 4B 45
+52 00 12 12 C6 1D 0D 12 84 12 98 47 EA 49 52 4A
+AC 44 98 50 8C 48 2C 4C 9A 50 3E 4F 3D 41 B2 41
+C6 1D B0 12 94 4D BA 40 85 12 FC FF BA 40 6A 50
+FE FF 28 83 8A 48 00 00 BA 40 82 44 02 00 A2 52
+C8 1D 18 42 B4 1D 19 42 B6 1D A8 49 FE FF 89 48
+00 00 30 4D 12 12 C6 1D 84 12 EA 49 52 4A AC 44
+04 51 E4 50 3C 4E 3C 80 87 12 0A 24 1C 53 02 20
+2E 4E 06 3C BE 90 6A 50 00 00 01 20 3E 52 2E 83
+21 53 30 41 FC 4A AC 44 0C 51 00 51 0E 51 B2 41
+C6 1D 30 41 92 83 C6 1D 3E 40 28 00 0A 4E 3D 15
+B0 12 D4 50 15 20 3E 40 2B 00 B0 12 D4 50 06 20
+3E 40 2D 00 B0 12 D4 50 92 83 C6 1D 0E 12 1E 41
+02 00 84 12 EA 49 FC 4A AC 44 30 4D 4E 51 3E 51
+3A 17 30 41 B0 12 14 51 19 42 C8 1D 89 4E 00 00
+A2 53 C8 1D 3E 40 29 00 92 53 C6 1D 1A 42 C6 1D
+3D 15 84 12 EA 49 FC 4A AC 44 86 51 7E 51 3E 90
+10 00 E6 2B 7C 2D 88 51 A2 41 C6 1D E1 3F 03 20
+B0 12 6C 51 43 3C 7A 90 23 00 24 20 B0 12 1C 51
 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 BA 51 ED 3F 7A 90 40 00 16 20
-3C 40 20 00 92 53 C4 1D B0 12 42 52 0C 20 3C 50
-10 00 3E 40 2B 00 B0 12 42 52 92 92 C0 1D C4 1D
-02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12 42 52
-FA 23 3C 50 10 00 B0 12 1E 52 EF 3F 0C 43 1B 42
-C6 1D A2 53 C6 1D 0D 12 84 12 04 4C 96 51 40 53
-FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50 82 00
-C7 3F B0 12 42 52 E0 23 3C 50 80 00 B0 12 1E 52
-DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12 0A 44
-00 13 4A 4B 50 48 0A 44 2C 00 6A 52 36 53 80 53
-09 4B 2E 4E 0E DC A2 3F 42 4E 03 4D 4F 56 85 12
-76 53 00 40 8A 53 05 4D 4F 56 2E 42 85 12 76 53
-40 40 00 00 03 41 44 44 85 12 76 53 00 50 A4 53
-05 41 44 44 2E 42 85 12 76 53 40 50 B0 53 04 41
-44 44 43 00 85 12 76 53 00 60 BE 53 06 41 44 44
-43 2E 42 00 85 12 76 53 40 60 64 53 04 53 55 42
-43 00 85 12 76 53 00 70 DC 53 06 53 55 42 43 2E
-42 00 85 12 76 53 40 70 EA 53 03 53 55 42 85 12
-76 53 00 80 FA 53 05 53 55 42 2E 42 85 12 76 53
-40 80 18 4E 03 43 4D 50 85 12 76 53 00 90 14 54
-05 43 4D 50 2E 42 85 12 76 53 40 90 02 4E 04 44
-41 44 44 00 85 12 76 53 00 A0 2E 54 06 44 41 44
-44 2E 42 00 85 12 76 53 40 A0 20 54 03 42 49 54
-85 12 76 53 00 B0 4C 54 05 42 49 54 2E 42 85 12
-76 53 40 B0 58 54 03 42 49 43 85 12 76 53 00 C0
-66 54 05 42 49 43 2E 42 85 12 76 53 40 C0 72 54
-03 42 49 53 85 12 76 53 00 D0 80 54 05 42 49 53
-2E 42 85 12 76 53 40 D0 00 00 03 58 4F 52 85 12
-76 53 00 E0 9A 54 05 58 4F 52 2E 42 85 12 76 53
-40 E0 CC 53 03 41 4E 44 85 12 76 53 00 F0 B4 54
-05 41 4E 44 2E 42 85 12 76 53 40 F0 04 4C 6A 52
-D2 54 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
-4F 3F 06 54 03 52 52 43 85 12 CC 54 00 10 E4 54
-05 52 52 43 2E 42 85 12 CC 54 40 10 F0 54 04 53
-57 50 42 00 85 12 CC 54 80 10 FE 54 03 52 52 41
-85 12 CC 54 00 11 0C 55 05 52 52 41 2E 42 85 12
-CC 54 40 11 18 55 03 53 58 54 85 12 CC 54 80 11
-00 00 04 50 55 53 48 00 85 12 CC 54 00 12 32 55
-06 50 55 53 48 2E 42 00 85 12 CC 54 40 12 8C 54
-04 43 41 4C 4C 00 85 12 CC 54 80 12 1A 53 0E 4A
-0D 12 84 12 C6 48 14 44 0D 6F 75 74 20 6F 66 20
-62 6F 75 6E 64 73 36 45 26 55 03 53 3E 3D 86 12
-00 38 7A 55 02 53 3C 00 86 12 00 34 40 55 03 30
-3E 3D 86 12 00 30 8E 55 02 30 3C 00 86 12 00 30
-00 00 02 55 3C 00 86 12 00 2C A2 55 03 55 3E 3D
-86 12 00 28 98 55 03 30 3C 3E 86 12 00 24 B6 55
-02 30 3D 00 86 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 AC 55
-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 B1 2F 88 DA 00 00
-30 4D 3C 54 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
-50 55 05 42 45 47 49 4E 30 40 28 44 E0 55 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 8A 3B 3A F0 FF 03 08 DA
-89 48 00 00 A2 53 C6 1D 30 4D C0 54 05 41 47 41
-49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49
-4C 45 0D 12 84 12 CE 55 AA 47 50 48 84 55 06 52
-45 50 45 41 54 00 0D 12 84 12 62 56 E6 55 50 48
-92 56 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F
-98 42 C6 1D 00 00 30 4D 22 56 03 42 57 31 85 12
-90 56 00 00 AA 56 03 42 57 32 85 12 90 56 00 00
-B6 56 03 42 57 33 85 12 90 56 00 00 CE 56 3D 41
-1A 42 C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F 00 00
-A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46
-57 31 85 12 CC 56 00 00 EE 56 03 46 57 32 85 12
-CC 56 00 00 FA 56 03 46 57 33 85 12 CC 56 00 00
-06 57 04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
-00 3C 0D 12 84 12 82 4C DE 4B 50 48 00 00 05 3F
+3C 40 30 00 19 42 C8 1D A2 53 C8 1D 89 4E 00 00
+3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12
+1C 51 F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12
+68 51 0C 20 3C D0 10 00 3E 40 2B 00 B0 12 6C 51
+92 92 C2 1D C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E
+DF 3F 3C D0 10 00 B0 12 54 51 F2 3F 03 20 B0 12
+6C 51 F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F
+3C D0 80 00 B0 12 54 51 EA 3F 0C 43 1B 42 C8 1D
+A2 53 C8 1D 3A 40 20 00 19 42 C6 1D 19 52 C4 1D
+7A 99 FE 27 5A 49 FF FF 19 82 C4 1D 82 49 C6 1D
+7A 90 52 00 30 4D 00 00 08 52 45 54 49 00 0D 12
+84 12 0A 44 00 13 54 4C 66 49 0A 44 2C 00 4A 52
+8E 51 98 47 54 52 2C 52 9A 52 3D 41 2C DE 8B 4C
+00 00 9E 3F 00 00 06 4D 4F 56 85 12 8A 52 00 40
+A6 52 0A 4D 4F 56 2E 42 85 12 8A 52 40 40 00 00
+06 41 44 44 85 12 8A 52 00 50 C0 52 0A 41 44 44
+2E 42 85 12 8A 52 40 50 CC 52 08 41 44 44 43 00
+85 12 8A 52 00 60 DA 52 0C 41 44 44 43 2E 42 00
+85 12 8A 52 40 60 12 4F 08 53 55 42 43 00 85 12
+8A 52 00 70 F8 52 0C 53 55 42 43 2E 42 00 85 12
+8A 52 40 70 06 53 06 53 55 42 85 12 8A 52 00 80
+16 53 0A 53 55 42 2E 42 85 12 8A 52 40 80 22 53
+06 43 4D 50 85 12 8A 52 00 90 30 53 0A 43 4D 50
+2E 42 85 12 8A 52 40 90 00 00 08 44 41 44 44 00
+85 12 8A 52 00 A0 4A 53 0C 44 41 44 44 2E 42 00
+85 12 8A 52 40 A0 78 52 06 42 49 54 85 12 8A 52
+00 B0 68 53 0A 42 49 54 2E 42 85 12 8A 52 40 B0
+74 53 06 42 49 43 85 12 8A 52 00 C0 82 53 0A 42
+49 43 2E 42 85 12 8A 52 40 C0 8E 53 06 42 49 53
+85 12 8A 52 00 D0 9C 53 0A 42 49 53 2E 42 85 12
+8A 52 40 D0 00 00 06 58 4F 52 85 12 8A 52 00 E0
+B6 53 0A 58 4F 52 2E 42 85 12 8A 52 40 E0 E8 52
+06 41 4E 44 85 12 8A 52 00 F0 D0 53 0A 41 4E 44
+2E 42 85 12 8A 52 40 F0 98 47 4A 52 8E 51 F0 53
+0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F
+A8 53 06 52 52 43 85 12 E8 53 00 10 02 54 0A 52
+52 43 2E 42 85 12 E8 53 40 10 3C 53 08 53 57 50
+42 00 85 12 E8 53 80 10 0E 54 06 52 52 41 85 12
+E8 53 00 11 2A 54 0A 52 52 41 2E 42 85 12 E8 53
+40 11 1C 54 06 53 58 54 85 12 E8 53 80 11 00 00
+08 50 55 53 48 00 85 12 E8 53 00 12 50 54 0C 50
+55 53 48 2E 42 00 85 12 E8 53 40 12 44 54 08 43
+41 4C 4C 00 85 12 E8 53 80 12 1A 53 0E 4A 84 12
+DA 49 1E 44 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
+64 73 12 45 6E 54 06 53 3E 3D 86 12 00 38 96 54
+04 53 3C 00 86 12 00 34 5E 54 06 30 3E 3D 86 12
+00 30 AA 54 04 30 3C 00 86 12 00 30 E6 4E 04 55
+3C 00 86 12 00 2C BE 54 06 55 3E 3D 86 12 00 28
+B4 54 06 30 3C 3E 86 12 00 24 D2 54 04 30 3D 00
+86 12 00 20 00 00 04 49 46 00 1A 42 C8 1D 8A 4E
+00 00 A2 53 C8 1D 0E 4A 30 4D 58 53 08 54 48 45
+4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D C8 54
+08 45 4C 53 45 00 1A 42 C8 1D BA 40 00 3C 00 00
+A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F 36 54 0A 42
+45 47 49 4E 30 40 32 44 20 55 0A 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11
+3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C8 1D 30 4D DC 53 0A 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12
+84 12 EA 54 80 48 66 49 3E 55 0C 52 45 50 45 41
+54 00 0D 12 84 12 7E 55 02 55 66 49 AE 55 3D 41
+08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D
+00 00 30 4D 9A 55 06 42 57 31 85 12 AC 55 00 00
+C6 55 06 42 57 32 85 12 AC 55 00 00 D2 55 06 42
+57 33 85 12 AC 55 00 00 EA 55 3D 41 1A 42 C8 1D
+28 4E 8E 43 00 00 B2 92 C6 1D 86 2B BA 4F 00 00
+A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00 06 46
+57 31 85 12 E8 55 00 00 0E 56 06 46 57 32 85 12
+E8 55 00 00 1A 56 06 46 57 33 85 12 E8 55 00 00
+88 55 08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C 0D 12 84 12 20 4D 2C 4C 66 49 00 00 0A 3F
 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
-00 10 EF 27 3E E0 00 08 EC 3F 04 4C 96 51 50 57
-92 53 C4 1D 3E 40 2C 00 84 12 1C 49 40 4A 34 44
-02 4C 2C 53 66 57 0A 4E 3E 4F 1A 83 F7 32 29 4E
-59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
-10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06
-A6 3E 7E 56 04 52 52 43 4D 00 85 12 4A 57 50 00
-94 57 04 52 52 41 4D 00 85 12 4A 57 50 01 A2 57
-04 52 4C 41 4D 00 85 12 4A 57 50 02 B0 57 04 52
-52 55 4D 00 85 12 4A 57 50 03 C0 55 05 50 55 53
-48 4D 85 12 4A 57 00 15 CC 57 04 50 4F 50 4D 00
-85 12 4A 57 00 17
+00 10 EF 27 3E E0 00 08 EC 3F 54 52 0A 44 2C 00
+EA 49 FC 4A AC 44 30 4D 98 47 4A 52 2C 52 80 56
+0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E
+AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E DE 55 08 52
+52 43 4D 00 85 12 6A 56 50 00 AE 56 08 52 52 41
+4D 00 85 12 6A 56 50 01 BC 56 08 52 4C 41 4D 00
+85 12 6A 56 50 02 CA 56 08 52 52 55 4D 00 85 12
+6A 56 50 03 DC 54 0A 50 55 53 48 4D 85 12 6A 56
+00 15 E6 56 08 50 4F 50 4D 00 85 12 6A 56 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 84 46
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 0A 51
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 C0 46
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 10 46
 q
diff --git a/binaries/MSP_EXP430FR5969_1MHz_UART.txt b/binaries/MSP_EXP430FR5969_1MHz_UART.txt
deleted file mode 100644 (file)
index ed3d074..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF FC 57 04 50 34 01
-10 00 41 B3 94 45 AA 44 DA 45 9C 45 96 46 FC 57
-04 50 7C 46 94 47 26 47 00 47 3C 1D 62 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
-@4400
-B0 12 DA 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 7A 46 B2 49 92 47 B2 49 24 47 B2 49 FE 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 D0 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 45 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 44 0A 44 DE 1D E2 47 34 47
-14 44 04 1B 5B 37 6D 00 5E 47 AA 47 34 44 86 45
-14 44 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5E 47 A2 48 5E 47 14 44 04 1B 5B 30 6D 00
-5E 47 2A 4C 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D3 23 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C3 23 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 45 F2 B0 20 00 21 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE 45 04 57 41 52 4D 00
-B0 12 9C 45 84 12 14 44 07 0D 0A 1B 5B 37 6D 23
-5E 47 D8 48 14 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
-5E 47 0A 44 40 FF 28 44 D6 47 A2 48 14 44 0A 62
-79 74 65 73 20 66 72 65 65 00 3A 44 86 45 00 00
-06 41 43 43 45 50 54 00 30 40 7C 46 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 46 3C 40
-D4 46 5D 15 B5 3E 21 52 3A 17 58 42 CC 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 CE 05 30 4D CA 46 2D 83 92 B3 DC 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-DC 05 FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53
-DE 1D 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 47
-2F 83 8F 4E 00 00 B0 12 DA 45 92 B3 DC 05 FD 27
-1E 42 CC 05 B0 12 C8 45 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 47 08 4E 3E 4F C8 3F 1C 47 04 45
-43 48 4F 00 B2 40 C2 48 C2 46 82 43 DE 1D 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 46
-92 43 DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93
-11 24 0D 12 3D 40 7A 47 28 4F 2F 83 8F 4E 00 00
-7E 48 8F 48 02 00 10 42 24 47 7C 47 2D 83 1E 83
-F3 23 3D 41 2F 53 3E 4F 30 4D FC 45 02 43 52 00
-30 40 94 47 0D 12 84 12 14 44 02 0D 0A 00 5E 47
-62 48 2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D
-8F 4E FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E
-00 00 0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F
-0E 11 2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 46
-01 40 2E 4E 30 4D E0 47 01 21 BE 4F 00 00 3E 4F
-30 4D 1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D
-3E 8F 03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 8C 47 01 23 1B 42
-DC 1D 2C 4F 2F 83 B0 12 6E 44 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 1C 48 02 23 53 00
-0D 12 84 12 1E 48 58 48 2D 83 09 93 E2 23 0E 93
-E0 23 3D 41 30 4D 4C 48 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 4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00
-0E 93 3E 4F 7A 40 2D 00 D1 33 30 4D 58 47 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12
-3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
-84 12 12 48 50 48 EE 44 90 48 6C 48 5E 47 16 4C
-22 47 62 48 42 47 01 2E 0E 93 E3 37 38 43 E2 3F
-8A 48 82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44
-14 44 5C 4B 0A 44 22 00 2E 49 FC 48 B2 40 20 00
-B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41
-30 4D D6 48 82 2E 22 00 0D 12 84 12 E6 48 0A 44
-5E 47 5C 4B 62 48 1A 46 04 57 4F 52 44 00 3C 40
-C0 1D 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24
-7E 9A FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90
-27 00 00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24
-7C 4A 4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00
-F3 2F 4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00
-1E 43 01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40
-D4 44 30 4D 00 00 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
-B0 4A 09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C
-FC 90 27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00
-7E 90 03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23
-B1 43 02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53
-04 24 3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F
-B2 4A 31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02
-2A 20 32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00
-22 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00
-AF 4F 04 00 4A 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 00 00 01 2C 1A 42 C6 1D
-8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D 5A 4B 87 4C
-49 54 45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42
-C6 1D A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00
-3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
-EE 3F 30 4D 68 48 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 7C 48 09 49 4E 54
-45 52 50 52 45 54 0D 12 84 12 AC 44 16 4C 2E 49
-D2 4B 9C 26 3D 40 DA 4B DE 3E DC 4B 0A 4E 3E 4F
-3D 40 F6 4B 36 27 3D 40 CC 4B 1A E2 BE 1D B6 27
-0E 12 3E 4F 30 41 F8 4B 3E 4F 3D 40 CC 4B BB 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-98 4D CC 3F 00 4C 86 12 20 00 E8 47 05 41 4C 4C
-4F 54 82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43
-31 40 E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12
-90 47 BC 44 C6 4B C6 47 F8 47 14 44 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF
-28 44 00 48 14 44 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 2A 45 3A 44 40 4C 1C 4C 86 41 42 4F 52 54
-22 00 0D 12 84 12 E6 48 0A 44 2A 45 5C 4B 62 48
-90 49 01 27 0D 12 84 12 16 4C 2E 49 96 49 34 44
-14 4C 62 48 00 00 83 5B 27 5D 0D 12 84 12 94 4C
-0A 44 0A 44 5C 4B 5C 4B 62 48 A6 4C 81 5B 82 43
-BE 1D 30 4D 0E 48 01 5D B2 43 BE 1D 30 4D C6 4C
-81 5C 92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53
-54 50 4F 4E 45 00 0D 12 84 12 16 4C 2E 49 96 49
-AA 47 34 44 14 4C F8 47 34 44 08 4D 0A 44 0A 44
-5C 4B 5C 4B 0A 44 5C 4B 5C 4B 62 48 BC 4C 01 3A
-30 12 58 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12
-16 4C 2E 49 26 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
-82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D
-2A 52 82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40
-84 12 FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20
-18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
-30 4D 0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D
-69 73 6D 61 74 63 68 21 36 45 0E 4D 81 3B 82 93
-BE 1D 97 27 0D 12 84 12 0A 44 62 48 5C 4B 6A 4D
-BE 4C 62 48 BC 4B 09 49 4D 4D 45 44 49 41 54 45
-18 42 B6 1D F8 D0 80 00 00 00 30 4D A6 4B 06 43
-52 45 41 54 45 00 B0 12 14 4D BA 40 86 12 FC FF
-8A 4A FE FF C9 3F CE 4D 04 43 4F 44 45 00 B0 12
-14 4D A2 82 C6 1D 0D 12 84 12 06 50 E0 4F 62 48
-B6 4D 07 48 44 4E 43 4F 44 45 B2 40 E4 4F DA 1D
-EE 3F 00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12
-6A 4D 20 50 3E 50 62 48 00 00 05 43 4F 4C 4F 4E
-1A 42 C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00
-A2 52 C6 1D B2 43 BE 1D 0D 12 84 12 20 50 3E 50
-62 48 00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42
-C6 1D EB 3F 02 4E 85 48 49 32 4C 4F 0D 12 84 12
-28 44 AE 4F 5C 4B BE 4C F6 4D 62 48 9C 4D 86 5B
-54 48 45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53
-F9 98 FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83
-00 00 F9 23 2F 53 2D 53 F7 3F 7E 4E 86 5B 45 4C
-53 45 5D 00 0D 12 84 12 0A 44 00 00 DA 47 16 4C
-2E 49 AC 4B A2 47 34 44 16 4F B0 47 14 44 06 5B
-54 48 45 4E 5D 00 88 4E F0 4E AC 4E CE 4E 62 48
-B0 47 14 44 06 5B 45 4C 53 45 5D 00 88 4E 06 4F
-AC 4E CC 4E 62 48 14 44 04 5B 49 46 5D 00 88 4E
-CE 4E 3A 44 CC 4E 84 47 14 44 05 0D 0A 6B 6F 20
-5E 47 BC 44 AC 44 3A 44 CE 4E BC 4E 84 5B 49 46
-5D 00 0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2C 4F
-89 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 16 4C
-2E 49 96 49 3A 4F 62 48 40 4F 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 0D 12 84 12 4A 4F F2 47 62 48
-72 4F B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C
-6E 4B 06 4D 41 52 4B 45 52 00 B0 12 14 4D BA 40
-85 12 FC FF BA 40 70 4F FE FF 28 83 8A 48 00 00
-BA 40 AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53
-30 4D 0A 44 CA 1D EA 47 62 48 85 12 B2 4F 7A 4C
-E8 4D 2E 47 92 4C 66 4E F8 46 82 4F 14 49 AA 50
-BE 50 9E 48 28 49 00 00 5A 4F D0 4C F6 49 00 00
-85 12 B2 4F 72 56 D8 56 1A 56 28 57 E0 55 00 00
-AC 53 00 00 F0 57 D4 57 44 56 82 56 BC 54 00 00
-00 00 44 57 DE 4F 3A 40 0C 00 39 40 D6 1D 08 49
-28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-3A 40 0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42
-CA 1D DA 1D 30 4D BA 4F 38 50 3E 50 4E 50 1A 42
-20 18 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 DC 4C 09 50 57 52 5F 53 54 41 54 45 85 12
-46 50 FC 57 E2 48 09 52 53 54 5F 53 54 41 54 45
-92 42 0A 18 92 50 F3 3F 84 50 08 50 57 52 5F 48
-45 52 45 00 92 42 C6 1D 92 50 30 4D 96 50 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F
-3E 90 0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40
-10 00 29 83 B9 43 80 FF FC 23 B9 40 1C 51 FE FF
-29 83 B9 40 02 46 FE FF 39 90 AE FF F9 23 39 40
-14 18 B2 49 04 46 B2 49 FA 44 B2 49 02 44 B2 49
-22 46 B2 49 F0 FF B2 49 0A 18 C2 3F B2 D0 03 00
-04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40
-E0 1C 3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C
-FC 23 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
-B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
-00 18 18 83 FE 23 19 83 FA 23 B2 D2 B0 01 F2 D0
-10 00 2A 03 F2 C0 40 00 A1 04 1E 42 08 18 82 43
-08 18 1E D2 9E 01 B0 12 F8 44 20 46 38 40 C0 1D
-0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D 09 9E 03 24
-7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D
-1C 15 0E 12 12 12 C4 1D 84 12 2E 49 96 49 F2 47
-34 44 EC 51 52 4A 34 44 06 52 00 52 EE 51 3C 4E
-3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83
-21 52 1B 17 30 41 08 52 B2 41 C4 1D 3E 41 84 12
-0A 44 2B 00 2E 49 96 49 F2 47 34 44 24 52 52 4A
-34 44 14 4C BC 47 2E 49 52 4A 34 44 14 4C 30 52
-3E 5F E7 3F 3E 40 28 00 B0 12 D0 51 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 40 29 00 92 92 C0 1D
-C4 1D 02 20 30 40 82 4D 1C 15 12 12 C4 1D 92 53
-C4 1D 84 12 2E 49 52 4A 34 44 78 52 6E 52 21 53
-3E 90 10 00 C6 2B 7F 2D 7A 52 B2 41 C4 1D C1 3F
-0D 12 84 12 16 4C AC 51 8A 52 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 D0 51 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 D0 51 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12
-58 52 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 58 52
-92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E
-DA 3F B0 12 58 52 FA 23 3C 50 10 00 B0 12 34 52
-EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12 84 12
-16 4C AC 51 56 53 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C7 3F B0 12 58 52 E0 23 3C 50
-80 00 B0 12 34 52 DB 3F 00 00 04 52 45 54 49 00
-0D 12 84 12 0A 44 00 13 5C 4B 62 48 0A 44 2C 00
-80 52 4C 53 96 53 09 4B 2E 4E 0E DC A2 3F 54 4E
-03 4D 4F 56 85 12 8C 53 00 40 A0 53 05 4D 4F 56
-2E 42 85 12 8C 53 40 40 00 00 03 41 44 44 85 12
-8C 53 00 50 BA 53 05 41 44 44 2E 42 85 12 8C 53
-40 50 C6 53 04 41 44 44 43 00 85 12 8C 53 00 60
-D4 53 06 41 44 44 43 2E 42 00 85 12 8C 53 40 60
-7A 53 04 53 55 42 43 00 85 12 8C 53 00 70 F2 53
-06 53 55 42 43 2E 42 00 85 12 8C 53 40 70 00 54
-03 53 55 42 85 12 8C 53 00 80 10 54 05 53 55 42
-2E 42 85 12 8C 53 40 80 2A 4E 03 43 4D 50 85 12
-8C 53 00 90 2A 54 05 43 4D 50 2E 42 85 12 8C 53
-40 90 14 4E 04 44 41 44 44 00 85 12 8C 53 00 A0
-44 54 06 44 41 44 44 2E 42 00 85 12 8C 53 40 A0
-36 54 03 42 49 54 85 12 8C 53 00 B0 62 54 05 42
-49 54 2E 42 85 12 8C 53 40 B0 6E 54 03 42 49 43
-85 12 8C 53 00 C0 7C 54 05 42 49 43 2E 42 85 12
-8C 53 40 C0 88 54 03 42 49 53 85 12 8C 53 00 D0
-96 54 05 42 49 53 2E 42 85 12 8C 53 40 D0 00 00
-03 58 4F 52 85 12 8C 53 00 E0 B0 54 05 58 4F 52
-2E 42 85 12 8C 53 40 E0 E2 53 03 41 4E 44 85 12
-8C 53 00 F0 CA 54 05 41 4E 44 2E 42 85 12 8C 53
-40 F0 16 4C 80 52 E8 54 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F 1C 54 03 52 52 43 85 12
-E2 54 00 10 FA 54 05 52 52 43 2E 42 85 12 E2 54
-40 10 06 55 04 53 57 50 42 00 85 12 E2 54 80 10
-14 55 03 52 52 41 85 12 E2 54 00 11 22 55 05 52
-52 41 2E 42 85 12 E2 54 40 11 2E 55 03 53 58 54
-85 12 E2 54 80 11 00 00 04 50 55 53 48 00 85 12
-E2 54 00 12 48 55 06 50 55 53 48 2E 42 00 85 12
-E2 54 40 12 A2 54 04 43 41 4C 4C 00 85 12 E2 54
-80 12 1A 53 0E 4A 0D 12 84 12 D8 48 14 44 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 36 45 3C 55
-03 53 3E 3D 86 12 00 38 90 55 02 53 3C 00 86 12
-00 34 56 55 03 30 3E 3D 86 12 00 30 A4 55 02 30
-3C 00 86 12 00 30 00 00 02 55 3C 00 86 12 00 2C
-B8 55 03 55 3E 3D 86 12 00 28 AE 55 03 30 3C 3E
-86 12 00 24 CC 55 02 30 3D 00 86 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 C2 55 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
-B1 2F 88 DA 00 00 30 4D 52 54 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 66 55 05 42 45 47 49 4E 30 40
-28 44 F6 55 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 8A 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D
-D6 54 05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
-00 00 05 57 48 49 4C 45 0D 12 84 12 E4 55 BC 47
-62 48 9A 55 06 52 45 50 45 41 54 00 0D 12 84 12
-78 56 FC 55 62 48 A8 56 3D 41 08 4E 3E 4F 2A 48
-B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D 38 56
-03 42 57 31 85 12 A6 56 00 00 C0 56 03 42 57 32
-85 12 A6 56 00 00 CC 56 03 42 57 33 85 12 A6 56
-00 00 E4 56 3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D
-88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 85 12 E2 56 00 00 04 57
-03 46 57 32 85 12 E2 56 00 00 10 57 03 46 57 33
-85 12 E2 56 00 00 1C 57 04 47 4F 54 4F 00 2F 83
-8F 4E 00 00 3E 40 00 3C 0D 12 84 12 94 4C F0 4B
-62 48 00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27
-3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
-16 4C AC 51 66 57 92 53 C4 1D 3E 40 2C 00 84 12
-2E 49 52 4A 34 44 14 4C 42 53 7C 57 0A 4E 3E 4F
-1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92
-E8 2E 8A 10 5A 06 A6 3E 94 56 04 52 52 43 4D 00
-85 12 60 57 50 00 AA 57 04 52 52 41 4D 00 85 12
-60 57 50 01 B8 57 04 52 4C 41 4D 00 85 12 60 57
-50 02 C6 57 04 52 52 55 4D 00 85 12 60 57 50 03
-D6 55 05 50 55 53 48 4D 85 12 60 57 00 15 E2 57
-04 50 4F 50 4D 00 85 12 60 57 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-96 46 02 46 02 46 02 46 02 46 02 46 02 46 1C 51
-q
diff --git a/binaries/MSP_EXP430FR5969_8MHz_115200.txt b/binaries/MSP_EXP430FR5969_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..67502d6
--- /dev/null
@@ -0,0 +1,324 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A1 59
+C2 46 7E 45 84 45 54 45 32 47 20 57 D8 4F 92 4F
+92 4F A8 46 66 47 2E 47 3C 1D E0 1C 86 49 B6 44
+C4 44 A2 48 20 00 0A 00 00 1C 7E 45 84 45 54 45
+32 47 20 57 D8 4F 92 4F 92 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 FC 3C 0E 93 3E 4F
+91 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A6 46 B2 49
+64 47 B2 49 2C 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 4C 50 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 32 47 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 44 AC 48 AC 44 52 45 74 47 1E 44 04 1B
+5B 37 6D 00 96 47 96 47 1E 44 04 1B 5B 30 6D 00
+96 47 E2 4C B0 12 7E 45 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 74 47 1E 44
+07 0D 0A 1B 5B 37 6D 23 96 47 FA 49 1E 44 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 96 47 0A 44 40 FF 32 44
+C2 48 C6 49 1E 44 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 44 46 45 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 45 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 20 00 21 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40
+E0 1C 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 B2 40 33 00
+64 01 D2 43 61 01 39 40 40 00 18 42 00 18 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 19 42 9E 01 1E 42 08 18 82 43 08 18 3E F3
+01 20 0E 49 B0 12 D0 44 86 45 00 00 0C 41 43 43
+45 50 54 00 30 40 A8 46 08 4E 2E 4F 08 5E 39 40
+0D 00 3A 40 20 00 3B 40 06 47 3C 40 12 47 5D 15
+9F 3E 21 52 3A 17 58 42 CC 05 48 9B 09 20 A2 B3
+DC 05 FD 27 B2 40 13 00 CE 05 E2 D3 23 02 30 41
+48 9C 06 2C 78 92 11 20 2E 9F 0F 24 1E 83 05 3C
+0E 9A 03 2C CE 48 00 00 1E 53 A2 B3 DC 05 FD 27
+C2 48 CE 05 30 4D 08 47 2D 83 92 B3 DC 05 DB 23
+FC 3F 3E 8F 3D 41 92 B3 DC 05 FD 27 58 42 CC 05
+08 4C EB 3F 00 00 06 4B 45 59 30 40 2E 47 30 12
+44 47 A2 B3 DC 05 FD 27 B2 40 11 00 CE 05 E2 C3
+23 02 30 41 2F 83 8F 4E 00 00 92 B3 DC 05 FD 27
+B0 12 CE 46 1E 42 CC 05 30 4D 00 00 08 45 4D 49
+54 00 30 40 66 47 08 4E 3E 4F C7 3F 5C 47 08 45
+43 48 4F 00 B2 40 C2 48 00 47 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D 00 47 30 4D 00 00
+08 54 59 50 45 00 0D 12 3D 40 A6 47 29 4F 8F 4E
+00 00 7E 49 DE 3F A8 47 2D 83 2F 83 5E 83 F7 23
+3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F
+3C 9F 39 4F 3E 4F 75 22 F9 98 00 00 72 22 19 53
+1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 69 22
+9B 24 26 47 0D 5B 45 4C 53 45 5D 00 0D 12 84 12
+0A 44 00 00 C6 48 B8 47 0A 4A C4 4C B0 44 34 48
+14 44 06 5B 54 48 45 4E 5D 00 BC 47 12 48 D8 47
+F6 47 14 44 06 5B 45 4C 53 45 5D 00 BC 47 24 48
+D8 47 F4 47 1E 44 04 5B 49 46 5D 00 BC 47 F6 47
+B2 44 F4 47 1E 44 05 0D 6B 6F 20 0A 96 47 9A 44
+84 44 B2 44 F6 47 E4 47 0D 5B 54 48 45 4E 5D 00
+30 4D 48 48 09 5B 49 46 5D 00 0E 93 3E 4F C6 27
+30 4D 54 48 13 5B 44 45 46 49 4E 45 44 5D 0D 12
+84 12 B8 47 0A 4A 72 4A 16 4C 86 49 64 48 17 5B
+55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12 B8 47
+0A 4A 72 4A 96 48 3D 41 2F 53 1E 83 0E 7E 30 4D
+3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF
+2F 83 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
+F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E
+30 4D 9C 46 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E
+0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D D8 45
+05 53 22 00 82 43 C0 1D 0D 12 84 12 0A 44 1E 44
+74 4C 0A 44 22 00 0A 4A 0A 49 B2 40 20 00 C0 1D
+1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D 7E 47
+05 2E 22 00 0D 12 84 12 F4 48 0A 44 96 47 74 4C
+86 49 00 00 04 3C 23 00 B2 40 B2 1D B2 1D 30 4D
+F0 48 02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12 46 44
+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
+42 49 04 23 53 00 0D 12 84 12 44 49 7E 49 2D 83
+09 DE 09 93 E1 23 3D 41 30 4D 72 49 04 23 3E 00
+9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00
+08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 8C 49 08 53
+49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D
+6E 47 04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C
+1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+0E 63 84 12 38 49 B8 47 A6 49 76 49 A2 48 B4 49
+90 49 96 47 86 49 20 49 02 2E 0E 93 E4 37 3C 43
+E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 1D 39 4C
+38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27
+18 83 1B 42 C0 1D F8 90 27 00 00 00 04 20 E8 98
+02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42
+C8 1D 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24
+58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+30 4D F8 49 0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D
+3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80
+3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B
+22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04
+18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C
+00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 1D 0C 4E
+0E 43 1E 15 3D 40 7C 4B 7E 4C 6A 4C 7A 80 2D 00
+16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24
+3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00
+3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43
+02 00 1E 83 FC 9C 00 00 E0 23 AE 27 7E 4B 2F 24
+2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20
+32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E
+09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80
+3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B
+08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E 44 2A 17
+E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17
+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 34 49 03 5C 92 42
+C2 1D C6 1D 30 4D 0D 12 84 12 84 44 B8 47 0A 4A
+B0 44 4E 4D 72 4A 38 4C 0A 4E 3E 4F 3D 40 52 4C
+6D 27 3D 40 2C 4C 1A E2 BC 1D 14 24 0E 12 3E 4F
+30 41 54 4C 3E 4F 3D 40 2C 4C 19 20 DE 53 00 00
+68 4E 08 5E F8 40 3F 00 00 00 3D 40 2A 4E 2A 3C
+1C 4C 02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF
+3E 4F 30 4D 72 4C 0F 4C 49 54 45 52 41 4C 82 93
+BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D BA 40
+0A 44 00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0
+00 02 03 24 8A 4E 02 00 EE 3F 30 4D AE 49 0A 43
+4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3
+30 4D D4 48 0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F
+30 4D 3F 40 80 1C 0E 43 84 12 1E 44 02 0D 0A 00
+96 47 94 44 26 4C B4 48 DE 48 1E 44 0B 73 74 61
+63 6B 20 65 6D 70 74 79 08 45 32 44 0A 44 40 FF
+E6 48 1E 44 09 46 52 41 4D 20 66 75 6C 6C 08 45
+B2 44 EA 4C D4 4C 0D 41 42 4F 52 54 22 00 0D 12
+84 12 F4 48 0A 44 08 45 74 4C 86 49 04 4A 02 27
+0D 12 84 12 B8 47 0A 4A 72 4A B0 44 50 4D 18 49
+5C 4C 7E 48 07 5B 27 5D 0D 12 84 12 40 4D 0A 44
+0A 44 74 4C 74 4C 86 49 54 4D 03 5B 82 43 BC 1D
+30 4D 00 00 02 5D B2 43 BC 1D 30 4D CC 48 11 50
+4F 53 54 50 4F 4E 45 00 0D 12 84 12 B8 47 0A 4A
+72 4A B0 44 50 4D DE 48 AC 44 A8 4D 0A 44 0A 44
+74 4C 74 4C 0A 44 74 4C 74 4C 86 49 00 00 02 3A
+30 12 FE 4D 92 B3 C8 1D A2 63 C8 1D 0D 12 84 12
+B8 47 0A 4A C6 4D 3D 41 5A D3 5A 53 0A 5E 19 42
+CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E
+3E 4F E8 58 00 00 82 48 B4 1D 82 49 B6 1D 82 4A
+B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D 30 41 BA 40
+0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 1D 30 4D
+82 9F BA 1D 66 25 84 12 1E 44 0F 73 74 61 63 6B
+20 6D 69 73 6D 61 74 63 68 21 12 45 6A 4D 03 3B
+82 93 BC 1D F4 26 0D 12 84 12 0A 44 86 49 74 4C
+10 4E 6C 4D 86 49 00 00 12 49 4D 4D 45 44 49 41
+54 45 18 42 B4 1D D8 D3 00 00 30 4D BE 4C 0C 43
+52 45 41 54 45 00 B0 12 B4 4D BA 40 86 12 FC FF
+8A 4A FE FF 3A 3D 90 47 0A 44 4F 45 53 3E 1A 42
+B8 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
+AE 4D 0E 3A 4E 4F 4E 41 4D 45 30 12 FE 4D 2F 83
+8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40
+12 02 08 49 98 3F 48 4E 05 49 53 00 0D 12 82 93
+BC 1D 08 20 84 12 40 4D CA 4E 3D 41 BE 4F 02 00
+3E 4F 30 4D 84 12 58 4D 0A 44 CC 4E 74 4C 86 49
+5E 4E 08 43 4F 44 45 00 B0 12 B4 4D A2 82 C8 1D
+61 3C A0 49 0E 48 44 4E 43 4F 44 45 B2 40 B8 4F
+CC 1D F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12
+84 12 10 4E 16 4F 3D 41 92 42 D0 1D CC 1D 5D 3C
+E2 4E 0E 43 4F 44 45 4E 4E 4D 30 12 EC 4E B7 3F
+00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12
+00 00 BA 40 84 12 02 00 A2 52 C8 1D B2 43 BC 1D
+E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42
+C8 1D EF 3F F4 4E 0B 48 49 32 4C 4F A2 53 C8 1D
+1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F 80 4F
+B2 40 92 4F D0 1D 82 4E CE 1D 30 40 18 49 85 12
+7E 4F 7E 4D 26 4D 10 50 22 4F 78 4E C2 49 6C 4A
+3E 4D 66 4F B8 4E 92 4E 2E 4E 86 4C 9A 50 C4 4A
+00 00 00 00 85 12 7E 4F 14 57 98 55 F8 56 C0 54
+1C 55 6A 55 46 56 52 56 E2 53 06 55 00 00 00 00
+54 4F D2 52 00 00 6E 56 B2 4F B2 40 92 4F CE 1D
+82 43 D0 1D 30 4D 3B 40 0A 00 BA 49 00 00 2A 53
+2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54
+39 40 C8 1D 3A 40 42 18 B0 12 E6 4F 30 4D F8 4F
+0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40
+C8 1D B0 12 E6 4F 1A 42 CA 1D 3B 40 10 00 09 4A
+08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00
+1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37
+39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40 08 46
+FE FF 29 83 B9 40 F2 45 FE FF 39 90 AE FF F9 23
+39 40 10 18 B2 49 F0 FF 3B 40 10 00 3A 40 3A 18
+B0 12 EA 4F 82 43 4A 18 C7 3F 8C 50 B2 4E 42 18
+BE 12 3E 4F 3D 41 C0 3F 74 4D 0C 4D 41 52 4B 45
+52 00 12 12 C6 1D 0D 12 84 12 B8 47 0A 4A 72 4A
+AC 44 B8 50 AC 48 4C 4C BA 50 3E 4F 3D 41 B2 41
+C6 1D B0 12 B4 4D BA 40 85 12 FC FF BA 40 8A 50
+FE FF 28 83 8A 48 00 00 BA 40 82 44 02 00 A2 52
+C8 1D 18 42 B4 1D 19 42 B6 1D A8 49 FE FF 89 48
+00 00 30 4D 12 12 C6 1D 84 12 0A 4A 72 4A AC 44
+24 51 04 51 3C 4E 3C 80 87 12 0A 24 1C 53 02 20
+2E 4E 06 3C BE 90 8A 50 00 00 01 20 3E 52 2E 83
+21 53 30 41 1C 4B AC 44 2C 51 20 51 2E 51 B2 41
+C6 1D 30 41 92 83 C6 1D 3E 40 28 00 0A 4E 3D 15
+B0 12 F4 50 15 20 3E 40 2B 00 B0 12 F4 50 06 20
+3E 40 2D 00 B0 12 F4 50 92 83 C6 1D 0E 12 1E 41
+02 00 84 12 0A 4A 1C 4B AC 44 50 4D 6E 51 3E 51
+3A 17 30 41 B0 12 34 51 19 42 C8 1D 89 4E 00 00
+A2 53 C8 1D 3E 40 29 00 92 53 C6 1D 1A 42 C6 1D
+3D 15 84 12 0A 4A 1C 4B AC 44 A6 51 9E 51 3E 90
+10 00 E6 2B 7C 2D A8 51 A2 41 C6 1D E1 3F 03 20
+B0 12 8C 51 43 3C 7A 90 23 00 24 20 B0 12 3C 51
+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 C8 1D A2 53 C8 1D 89 4E 00 00
+3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12
+3C 51 F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12
+88 51 0C 20 3C D0 10 00 3E 40 2B 00 B0 12 8C 51
+92 92 C2 1D C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E
+DF 3F 3C D0 10 00 B0 12 74 51 F2 3F 03 20 B0 12
+8C 51 F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F
+3C D0 80 00 B0 12 74 51 EA 3F 0C 43 1B 42 C8 1D
+A2 53 C8 1D 3A 40 20 00 19 42 C6 1D 19 52 C4 1D
+7A 99 FE 27 5A 49 FF FF 19 82 C4 1D 82 49 C6 1D
+7A 90 52 00 30 4D 00 00 08 52 45 54 49 00 0D 12
+84 12 0A 44 00 13 74 4C 86 49 0A 44 2C 00 6A 52
+AE 51 B8 47 74 52 4C 52 BA 52 3D 41 2C DE 8B 4C
+00 00 9E 3F 00 00 06 4D 4F 56 85 12 AA 52 00 40
+C6 52 0A 4D 4F 56 2E 42 85 12 AA 52 40 40 00 00
+06 41 44 44 85 12 AA 52 00 50 E0 52 0A 41 44 44
+2E 42 85 12 AA 52 40 50 EC 52 08 41 44 44 43 00
+85 12 AA 52 00 60 FA 52 0C 41 44 44 43 2E 42 00
+85 12 AA 52 40 60 32 4F 08 53 55 42 43 00 85 12
+AA 52 00 70 18 53 0C 53 55 42 43 2E 42 00 85 12
+AA 52 40 70 26 53 06 53 55 42 85 12 AA 52 00 80
+36 53 0A 53 55 42 2E 42 85 12 AA 52 40 80 42 53
+06 43 4D 50 85 12 AA 52 00 90 50 53 0A 43 4D 50
+2E 42 85 12 AA 52 40 90 00 00 08 44 41 44 44 00
+85 12 AA 52 00 A0 6A 53 0C 44 41 44 44 2E 42 00
+85 12 AA 52 40 A0 98 52 06 42 49 54 85 12 AA 52
+00 B0 88 53 0A 42 49 54 2E 42 85 12 AA 52 40 B0
+94 53 06 42 49 43 85 12 AA 52 00 C0 A2 53 0A 42
+49 43 2E 42 85 12 AA 52 40 C0 AE 53 06 42 49 53
+85 12 AA 52 00 D0 BC 53 0A 42 49 53 2E 42 85 12
+AA 52 40 D0 00 00 06 58 4F 52 85 12 AA 52 00 E0
+D6 53 0A 58 4F 52 2E 42 85 12 AA 52 40 E0 08 53
+06 41 4E 44 85 12 AA 52 00 F0 F0 53 0A 41 4E 44
+2E 42 85 12 AA 52 40 F0 B8 47 6A 52 AE 51 10 54
+0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F
+C8 53 06 52 52 43 85 12 08 54 00 10 22 54 0A 52
+52 43 2E 42 85 12 08 54 40 10 5C 53 08 53 57 50
+42 00 85 12 08 54 80 10 2E 54 06 52 52 41 85 12
+08 54 00 11 4A 54 0A 52 52 41 2E 42 85 12 08 54
+40 11 3C 54 06 53 58 54 85 12 08 54 80 11 00 00
+08 50 55 53 48 00 85 12 08 54 00 12 70 54 0C 50
+55 53 48 2E 42 00 85 12 08 54 40 12 64 54 08 43
+41 4C 4C 00 85 12 08 54 80 12 1A 53 0E 4A 84 12
+FA 49 1E 44 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
+64 73 12 45 8E 54 06 53 3E 3D 86 12 00 38 B6 54
+04 53 3C 00 86 12 00 34 7E 54 06 30 3E 3D 86 12
+00 30 CA 54 04 30 3C 00 86 12 00 30 06 4F 04 55
+3C 00 86 12 00 2C DE 54 06 55 3E 3D 86 12 00 28
+D4 54 06 30 3C 3E 86 12 00 24 F2 54 04 30 3D 00
+86 12 00 20 00 00 04 49 46 00 1A 42 C8 1D 8A 4E
+00 00 A2 53 C8 1D 0E 4A 30 4D 78 53 08 54 48 45
+4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48 29 53 0A 89
+0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D E8 54
+08 45 4C 53 45 00 1A 42 C8 1D BA 40 00 3C 00 00
+A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F 56 54 0A 42
+45 47 49 4E 30 40 32 44 40 55 0A 55 4E 54 49 4C
+3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11
+3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00
+A2 53 C8 1D 30 4D FC 53 0A 41 47 41 49 4E 0A 4E
+38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12
+84 12 0A 55 A0 48 86 49 5E 55 0C 52 45 50 45 41
+54 00 0D 12 84 12 9E 55 22 55 86 49 CE 55 3D 41
+08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D
+00 00 30 4D BA 55 06 42 57 31 85 12 CC 55 00 00
+E6 55 06 42 57 32 85 12 CC 55 00 00 F2 55 06 42
+57 33 85 12 CC 55 00 00 0A 56 3D 41 1A 42 C8 1D
+28 4E 8E 43 00 00 B2 92 C6 1D 86 2B BA 4F 00 00
+A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00 06 46
+57 31 85 12 08 56 00 00 2E 56 06 46 57 32 85 12
+08 56 00 00 3A 56 06 46 57 33 85 12 08 56 00 00
+A8 55 08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40
+00 3C 0D 12 84 12 40 4D 4C 4C 86 49 00 00 0A 3F
+47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0
+00 10 EF 27 3E E0 00 08 EC 3F 74 52 0A 44 2C 00
+0A 4A 1C 4B AC 44 50 4D B8 47 6A 52 4C 52 A0 56
+0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C
+59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E
+AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E FE 55 08 52
+52 43 4D 00 85 12 8A 56 50 00 CE 56 08 52 52 41
+4D 00 85 12 8A 56 50 01 DC 56 08 52 4C 41 4D 00
+85 12 8A 56 50 02 EA 56 08 52 52 55 4D 00 85 12
+8A 56 50 03 FC 54 0A 50 55 53 48 4D 85 12 8A 56
+00 15 06 57 08 50 4F 50 4D 00 85 12 8A 56 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+C2 46 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 08 46
+q
index 67e6d97..6af88b3 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF E2 57 F2 4F 34 01
-10 00 41 87 B6 45 AA 44 B8 45 8C 45 84 46 E2 57
-F2 4F 72 46 82 47 00 47 DC 46 3C 1D 50 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+BC 46 56 45 56 45 58 45 44 45 FC 56 B4 4F 6E 4F
+6E 4F AA 46 2E 47 06 47 3C 1D E0 1C 62 49 B6 44
+C4 44 7E 48 20 00 0A 00 00 1C 56 45 56 45 58 45
+44 45 FC 56 B4 4F 6E 4F 6E 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4400
-B0 12 B8 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 70 46 B2 49 80 47 B2 49 FE 46 B2 49 DA 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BE 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 45 0E 12 B0 12
-F8 44 0A 44 DE 1D D0 47 18 47 EE 44 34 44 8A 45
-14 44 05 1B 5B 37 6D 40 4C 47 0A 44 02 18 D0 47
-C6 48 98 47 34 44 7E 45 14 44 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4C 47 90 48 4C 47
-14 44 04 1B 5B 30 6D 00 4C 47 18 4C 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 45 F2 B0 20 00 21 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE 45 04 57 41 52 4D 00
-B0 12 8C 45 78 40 03 00 B0 12 BA 45 84 12 14 44
-07 0D 0A 1B 5B 37 6D 40 4C 47 0A 44 02 18 D0 47
-C6 48 0A 44 23 00 FC 46 C6 48 14 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 4C 47 0A 44 40 FF 28 44 C4 47
-90 48 14 44 0A 62 79 74 65 73 20 66 72 65 65 00
-3A 44 7E 45 00 00 06 41 43 43 45 50 54 00 30 40
-72 46 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06
-B7 22 3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B
-0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 45 82 93 DE 1D 02 24 92 53 DE 1D 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC 46 2F 83 8F 4E
-00 00 58 43 B0 12 BA 45 92 B3 6C 06 FD 27 1E 42
-4C 06 30 4D 00 00 04 45 4D 49 54 00 30 40 00 47
-08 4E 3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D
-F6 46 04 45 43 48 4F 00 B2 40 C2 48 0A 47 82 43
-DE 1D 38 40 05 00 B0 12 BA 45 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A 47 92 43 DE 1D
-28 42 F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 68 47 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 FE 46 6A 47 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D DC 45 02 43 52 00 30 40
-82 47 0D 12 84 12 14 44 02 0D 0A 00 4C 47 50 48
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 66 46 01 40
-2E 4E 30 4D CE 47 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 7A 47 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 44 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 0A 48 02 23 53 00 0D 12
-84 12 0C 48 46 48 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 3A 48 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 46 47 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 FD 3C 0E 93 3E 4F
+7F 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 A8 46 B2 49
+2C 47 B2 49 04 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 28 50 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 45 B0 12 D0 44 88 48 AC 44
+42 45 46 47 1E 44 05 1B 5B 37 6D 40 72 47 0A 44
+02 18 AA 48 D6 49 72 47 1E 44 04 1B 5B 30 6D 00
+72 47 BE 4C 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 46 47 1E 44 07 0D 0A 1B 5B 37
+6D 40 72 47 0A 44 02 18 AA 48 D6 49 0A 44 23 00
+2A 47 D6 49 1E 44 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+72 47 0A 44 40 FF 32 44 9E 48 A2 49 1E 44 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 44 36 45 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 45 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+20 00 21 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+5C 01 31 40 E0 1C 3F 40 80 1C B2 40 FE FF 02 02
+B2 D3 06 02 B2 D3 26 02 B2 40 FF BF 22 02 F2 43
+22 03 F2 D3 26 03 F2 40 A5 00 61 01 82 43 66 01
+B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
+00 18 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 1E 42 08 18 82 43 08 18 3E F3
+02 20 1E 42 9E 01 B0 12 D0 44 80 45 00 00 0C 41
+43 43 45 50 54 00 30 40 AA 46 0A 4E 2E 4F 0A 5E
+3B 40 0A 00 3C 40 20 00 3D 15 A2 3E 21 52 A2 C2
+6C 06 B2 B0 10 00 40 06 9B 22 3A 17 92 B3 6C 06
+FD 27 58 42 4C 06 48 9B 0E 24 48 9C 06 2C 78 92
+F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48
+00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C 00 00 06 4B
+45 59 30 40 06 47 58 43 B0 12 46 45 2F 83 8F 4E
+00 00 92 B3 6C 06 FD 27 1E 42 4C 06 B0 12 44 45
+30 4D 00 00 08 45 4D 49 54 00 30 40 2E 47 08 4E
+3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D 24 47
+08 45 43 48 4F 00 B2 40 C2 48 38 47 38 40 05 00
+B0 12 46 45 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 38 47 28 42 F3 3F 00 00 08 54 59 50
+45 00 0D 12 3D 40 82 47 29 4F 8F 4E 00 00 7E 49
+D4 3F 84 47 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53
+3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F
+3E 4F 87 22 F9 98 00 00 84 22 19 53 1C 83 FA 23
+2D 53 30 4D 2F 53 3E 4F 1E 83 7B 22 9B 24 FE 46
+0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A 44 00 00
+A2 48 94 47 E6 49 A0 4C B0 44 10 48 14 44 06 5B
+54 48 45 4E 5D 00 98 47 EE 47 B4 47 D2 47 14 44
+06 5B 45 4C 53 45 5D 00 98 47 00 48 B4 47 D0 47
+1E 44 04 5B 49 46 5D 00 98 47 D2 47 B2 44 D0 47
+1E 44 05 0D 6B 6F 20 0A 72 47 9A 44 84 44 B2 44
+D2 47 C0 47 0D 5B 54 48 45 4E 5D 00 30 4D 24 48
+09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D 30 48
+13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 94 47
+E6 49 4E 4A F2 4B 62 49 40 48 17 5B 55 4E 44 45
+46 49 4E 45 44 5D 0D 12 84 12 94 47 E6 49 4E 4A
+72 48 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83
+8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D
+8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F
+3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D 9E 46
+02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3
+30 4D 3E 8F 01 28 0E F3 30 4D E0 45 05 53 22 00
+82 43 C0 1D 0D 12 84 12 0A 44 1E 44 50 4C 0A 44
+22 00 E6 49 E6 48 B2 40 20 00 C0 1D 1A 53 1A B3
+82 6A C8 1D 3E 4F 3D 41 30 4D 58 47 05 2E 22 00
+0D 12 84 12 D0 48 0A 44 72 47 50 4C 62 49 00 00
+04 3C 23 00 B2 40 B2 1D B2 1D 30 4D CC 48 02 23
+1B 42 BE 1D 2C 4F 2F 83 B0 12 46 44 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 1E 49 04 23
+53 00 0D 12 84 12 20 49 5A 49 2D 83 09 DE 09 93
+E1 23 3D 41 30 4D 4E 49 04 23 3E 00 9F 42 B2 1D
+00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C
+44 00 4A 4E 3E 4F DB 3F 68 49 08 53 49 47 4E 00
+0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 40 47 04 55
+2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3
 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-00 48 3E 48 EE 44 7E 48 5A 48 4C 47 04 4C FC 46
-50 48 2E 47 01 2E 0E 93 E3 37 38 43 E2 3F 78 48
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44
-4A 4B 0A 44 22 00 1C 49 EA 48 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-C4 48 82 2E 22 00 0D 12 84 12 D4 48 0A 44 4C 47
-4A 4B 50 48 FA 45 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44
-30 4D 00 00 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 9E 4A
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F A0 4A
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 93 2B 17 0E 4C 82 4B DC 1D 06 24 32 C0
+14 49 94 47 82 49 52 49 7E 48 90 49 6C 49 72 47
+62 49 FC 48 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00
+08 57 4F 52 44 00 3C 40 C2 1D 39 4C 38 4C 09 58
+38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42
+C0 1D F8 90 27 00 00 00 04 20 E8 98 02 00 01 20
+0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24
+1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B
+F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E
+CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83
+0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00
+78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93
+F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99
+01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49
+6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D D4 49
+0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F
+29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28
+7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C
+82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04
+09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48
+02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E
+06 00 08 43 09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15
+3D 40 58 4B 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F
+2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00
+5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C
+01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83
+FC 9C 00 00 E0 23 AE 27 5A 4B 2F 24 2D 83 6A 4C
+7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02
+7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49
+02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28
+79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49
+00 00 0E 4B 2C 15 B0 12 3E 44 2A 17 E8 3F 9F 4F
+04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 48 4B 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 56 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 6A 48 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 44 04 4C 1C 49 C0 4B
-9C 26 3D 40 C8 4B DE 3E CA 4B 0A 4E 3E 4F 3D 40
-E4 4B 36 27 3D 40 BA 4B 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 E6 4B 3E 4F 3D 40 BA 4B BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 86 4D
-CC 3F EE 4B 86 12 20 00 D6 47 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7E 47
-BC 44 B4 4B B4 47 E6 47 14 44 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44
-EE 47 14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 45 3A 44 2E 4C 0A 4C 86 41 42 4F 52 54 22 00
-0D 12 84 12 D4 48 0A 44 2A 45 4A 4B 50 48 7E 49
-01 27 0D 12 84 12 04 4C 1C 49 84 49 34 44 02 4C
-50 48 00 00 83 5B 27 5D 0D 12 84 12 82 4C 0A 44
-0A 44 4A 4B 4A 4B 50 48 94 4C 81 5B 82 43 BE 1D
-30 4D FC 47 01 5D B2 43 BE 1D 30 4D B4 4C 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 04 4C 1C 49 84 49 98 47
-34 44 02 4C E6 47 34 44 F6 4C 0A 44 0A 44 4A 4B
-4A 4B 0A 44 4A 4B 4A 4B 50 48 AA 4C 01 3A 30 12
-46 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 04 4C
-1C 49 14 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 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52
-82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 45 FC 4C 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 44 50 48 4A 4B 58 4D AC 4C
-50 48 AA 4B 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D 94 4B 06 43 52 45
-41 54 45 00 B0 12 02 4D BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F BC 4D 04 43 4F 44 45 00 B0 12 02 4D
-A2 82 C6 1D 0D 12 84 12 F4 4F CE 4F 50 48 A4 4D
-07 48 44 4E 43 4F 44 45 B2 40 D2 4F DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 58 4D
-0E 50 2C 50 50 48 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 0E 50 2C 50 50 48
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F F0 4D 85 48 49 32 4C 4F 0D 12 84 12 28 44
-9C 4F 4A 4B AC 4C E4 4D 50 48 8A 4D 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 6C 4E 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 44 00 00 C8 47 04 4C 1C 49
-9A 4B 90 47 34 44 04 4F 9E 47 14 44 06 5B 54 48
-45 4E 5D 00 76 4E DE 4E 9A 4E BC 4E 50 48 9E 47
-14 44 06 5B 45 4C 53 45 5D 00 76 4E F4 4E 9A 4E
-BA 4E 50 48 14 44 04 5B 49 46 5D 00 76 4E BC 4E
-3A 44 BA 4E 72 47 14 44 05 0D 0A 6B 6F 20 4C 47
-BC 44 AC 44 3A 44 BC 4E AA 4E 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 1A 4F 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 04 4C 1C 49
-84 49 28 4F 50 48 2E 4F 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 38 4F E0 47 50 48 60 4F
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5C 4B
-06 4D 41 52 4B 45 52 00 B0 12 02 4D BA 40 85 12
-FC FF BA 40 5E 4F FE FF 28 83 8A 48 00 00 BA 40
-AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A 44 CA 1D D8 47 50 48 85 12 A0 4F 68 4C D6 4D
-12 47 80 4C 54 4E D4 46 70 4F 02 49 98 50 AC 50
-8C 48 16 49 00 00 48 4F BE 4C E4 49 00 00 85 12
-A0 4F 58 56 BE 56 00 56 0E 57 C6 55 00 00 92 53
-00 00 D6 57 BA 57 2A 56 68 56 A2 54 00 00 00 00
-2A 57 CC 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D A8 4F 26 50 2C 50 3C 50 1A 42 20 18
-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
-CA 4C 09 50 57 52 5F 53 54 41 54 45 85 12 34 50
-E2 57 D0 48 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 80 50 F3 3F 72 50 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 80 50 30 4D 84 50 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 0A 51 FE FF 29 83
-B9 40 E2 45 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 E4 45 B2 49 FA 44 B2 49 02 44 B2 49 02 46
-B2 49 EE FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C FC 23
-B2 40 FE FF 02 02 B2 D3 06 02 B2 D3 26 02 B2 40
-FF BF 22 02 F2 43 22 03 F2 D3 26 03 F2 40 A5 00
-61 01 82 43 66 01 B2 40 33 00 64 01 D2 43 61 01
-39 40 40 00 18 42 00 18 18 83 FE 23 19 83 FA 23
-B2 D2 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A1 04
-1E 42 08 18 82 43 08 18 1E D2 9E 01 B0 12 F8 44
-00 46 38 40 C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52
-C4 1D 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88
-82 4A C4 1D 30 4D 1C 15 0E 12 12 12 C4 1D 84 12
-1C 49 84 49 E0 47 34 44 D2 51 40 4A 34 44 EC 51
-E6 51 D4 51 3C 4E 3C 80 87 12 05 24 1C 53 02 20
-2E 4E 01 3C 2E 83 21 52 1B 17 30 41 EE 51 B2 41
-C4 1D 3E 41 84 12 0A 44 2B 00 1C 49 84 49 E0 47
-34 44 0A 52 40 4A 34 44 02 4C AA 47 1C 49 40 4A
-34 44 02 4C 16 52 3E 5F E7 3F 3E 40 28 00 B0 12
-B6 51 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
-29 00 92 92 C0 1D C4 1D 02 20 30 40 70 4D 1C 15
-12 12 C4 1D 92 53 C4 1D 84 12 1C 49 40 4A 34 44
-5E 52 54 52 21 53 3E 90 10 00 C6 2B 7F 2D 60 52
-B2 41 C4 1D C1 3F 0D 12 84 12 04 4C 92 51 70 52
-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 B6 51 3C 40 00 03
+01 20 2F 53 30 4D 10 49 03 5C 92 42 C2 1D C6 1D
+30 4D 0D 12 84 12 84 44 94 47 E6 49 B0 44 2A 4D
+4E 4A 14 4C 0A 4E 3E 4F 3D 40 2E 4C 6D 27 3D 40
+08 4C 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41 30 4C
+3E 4F 3D 40 08 4C 19 20 DE 53 00 00 68 4E 08 5E
+F8 40 3F 00 00 00 3D 40 06 4E 2A 3C F8 4B 02 2C
+A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D
+4E 4C 0F 4C 49 54 45 52 41 4C 82 93 BC 1D 0D 24
+09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A 44 00 00
+8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24
+8A 4E 02 00 EE 3F 30 4D 8A 49 0A 43 4F 55 4E 54
+2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D B0 48
+0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40
+80 1C 0E 43 84 12 1E 44 02 0D 0A 00 72 47 94 44
+02 4C 90 48 BA 48 1E 44 0B 73 74 61 63 6B 20 65
+6D 70 74 79 08 45 32 44 0A 44 40 FF C2 48 1E 44
+09 46 52 41 4D 20 66 75 6C 6C 08 45 B2 44 C6 4C
+B0 4C 0D 41 42 4F 52 54 22 00 0D 12 84 12 D0 48
+0A 44 08 45 50 4C 62 49 E0 49 02 27 0D 12 84 12
+94 47 E6 49 4E 4A B0 44 2C 4D F4 48 38 4C 5A 48
+07 5B 27 5D 0D 12 84 12 1C 4D 0A 44 0A 44 50 4C
+50 4C 62 49 30 4D 03 5B 82 43 BC 1D 30 4D 00 00
+02 5D B2 43 BC 1D 30 4D A8 48 11 50 4F 53 54 50
+4F 4E 45 00 0D 12 84 12 94 47 E6 49 4E 4A B0 44
+2C 4D BA 48 AC 44 84 4D 0A 44 0A 44 50 4C 50 4C
+0A 44 50 4C 50 4C 62 49 00 00 02 3A 30 12 DA 4D
+92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 94 47 E6 49
+A2 4D 3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E
+5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58
+00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F
+BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12 FC FF
+BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F BA 1D
+66 25 84 12 1E 44 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 12 45 46 4D 03 3B 82 93 BC 1D
+F4 26 0D 12 84 12 0A 44 62 49 50 4C EC 4D 48 4D
+62 49 00 00 12 49 4D 4D 45 44 49 41 54 45 18 42
+B4 1D D8 D3 00 00 30 4D 9A 4C 0C 43 52 45 41 54
+45 00 B0 12 90 4D BA 40 86 12 FC FF 8A 4A FE FF
+3A 3D 6C 47 0A 44 4F 45 53 3E 1A 42 B8 1D BA 40
+85 12 00 00 8A 4D 02 00 3D 41 30 4D 8A 4D 0E 3A
+4E 4F 4E 41 4D 45 30 12 DA 4D 2F 83 8F 4E 00 00
+1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02 08 49
+98 3F 24 4E 05 49 53 00 0D 12 82 93 BC 1D 08 20
+84 12 1C 4D A6 4E 3D 41 BE 4F 02 00 3E 4F 30 4D
+84 12 34 4D 0A 44 A8 4E 50 4C 62 49 3A 4E 08 43
+4F 44 45 00 B0 12 90 4D A2 82 C8 1D 61 3C 7C 49
+0E 48 44 4E 43 4F 44 45 B2 40 94 4F CC 1D F2 3F
+00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12 EC 4D
+F2 4E 3D 41 92 42 D0 1D CC 1D 5D 3C BE 4E 0E 43
+4F 44 45 4E 4E 4D 30 12 C8 4E B7 3F 00 00 0A 43
+4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12 00 00 BA 40
+84 12 02 00 A2 52 C8 1D B2 43 BC 1D E3 3F 00 00
+0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F
+D0 4E 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D
+8A 4A FE FF 82 43 BC 1D B9 3F 5C 4F B2 40 6E 4F
+D0 1D 82 4E CE 1D 30 40 F4 48 85 12 5A 4F 5A 4D
+02 4D EC 4F FE 4E 54 4E 9E 49 48 4A 1A 4D 42 4F
+94 4E 6E 4E 0A 4E 62 4C 76 50 A0 4A 00 00 00 00
+85 12 5A 4F F0 56 74 55 D4 56 9C 54 F8 54 46 55
+22 56 2E 56 BE 53 E2 54 00 00 00 00 30 4F AE 52
+00 00 4A 56 8E 4F B2 40 6E 4F CE 1D 82 43 D0 1D
+30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23
+30 41 00 00 0E 52 53 54 5F 53 45 54 39 40 C8 1D
+3A 40 42 18 B0 12 C2 4F 30 4D D4 4F 0E 52 53 54
+5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 1D B0 12
+C2 4F 1A 42 CA 1D 3B 40 10 00 09 4A 08 49 29 83
+18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23
+2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00
+29 83 B9 43 80 FF FC 23 B9 40 10 46 FE FF 29 83
+B9 40 FA 45 FE FF 39 90 AE FF F9 23 39 40 10 18
+B2 49 EE FF 3B 40 10 00 3A 40 3A 18 B0 12 C6 4F
+82 43 4A 18 C7 3F 68 50 B2 4E 42 18 BE 12 3E 4F
+3D 41 C0 3F 50 4D 0C 4D 41 52 4B 45 52 00 12 12
+C6 1D 0D 12 84 12 94 47 E6 49 4E 4A AC 44 94 50
+88 48 28 4C 96 50 3E 4F 3D 41 B2 41 C6 1D B0 12
+90 4D BA 40 85 12 FC FF BA 40 66 50 FE FF 28 83
+8A 48 00 00 BA 40 82 44 02 00 A2 52 C8 1D 18 42
+B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00 30 4D
+12 12 C6 1D 84 12 E6 49 4E 4A AC 44 00 51 E0 50
+3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C
+BE 90 66 50 00 00 01 20 3E 52 2E 83 21 53 30 41
+F8 4A AC 44 08 51 FC 50 0A 51 B2 41 C6 1D 30 41
+92 83 C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12 D0 50
+15 20 3E 40 2B 00 B0 12 D0 50 06 20 3E 40 2D 00
+B0 12 D0 50 92 83 C6 1D 0E 12 1E 41 02 00 84 12
+E6 49 F8 4A AC 44 2C 4D 4A 51 3E 51 3A 17 30 41
+B0 12 10 51 19 42 C8 1D 89 4E 00 00 A2 53 C8 1D
+3E 40 29 00 92 53 C6 1D 1A 42 C6 1D 3D 15 84 12
+E6 49 F8 4A AC 44 82 51 7A 51 3E 90 10 00 E6 2B
+7C 2D 84 51 A2 41 C6 1D E1 3F 03 20 B0 12 68 51
+43 3C 7A 90 23 00 24 20 B0 12 18 51 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 B6 51 ED 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 3E 52 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 3E 52 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E DA 3F B0 12 3E 52 FA 23 3C 50
-10 00 B0 12 1A 52 EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 0D 12 84 12 04 4C 92 51 3C 53 FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12
-3E 52 E0 23 3C 50 80 00 B0 12 1A 52 DB 3F 00 00
-04 52 45 54 49 00 0D 12 84 12 0A 44 00 13 4A 4B
-50 48 0A 44 2C 00 66 52 32 53 7C 53 09 4B 2E 4E
-0E DC A2 3F 42 4E 03 4D 4F 56 85 12 72 53 00 40
-86 53 05 4D 4F 56 2E 42 85 12 72 53 40 40 00 00
-03 41 44 44 85 12 72 53 00 50 A0 53 05 41 44 44
-2E 42 85 12 72 53 40 50 AC 53 04 41 44 44 43 00
-85 12 72 53 00 60 BA 53 06 41 44 44 43 2E 42 00
-85 12 72 53 40 60 60 53 04 53 55 42 43 00 85 12
-72 53 00 70 D8 53 06 53 55 42 43 2E 42 00 85 12
-72 53 40 70 E6 53 03 53 55 42 85 12 72 53 00 80
-F6 53 05 53 55 42 2E 42 85 12 72 53 40 80 18 4E
-03 43 4D 50 85 12 72 53 00 90 10 54 05 43 4D 50
-2E 42 85 12 72 53 40 90 02 4E 04 44 41 44 44 00
-85 12 72 53 00 A0 2A 54 06 44 41 44 44 2E 42 00
-85 12 72 53 40 A0 1C 54 03 42 49 54 85 12 72 53
-00 B0 48 54 05 42 49 54 2E 42 85 12 72 53 40 B0
-54 54 03 42 49 43 85 12 72 53 00 C0 62 54 05 42
-49 43 2E 42 85 12 72 53 40 C0 6E 54 03 42 49 53
-85 12 72 53 00 D0 7C 54 05 42 49 53 2E 42 85 12
-72 53 40 D0 00 00 03 58 4F 52 85 12 72 53 00 E0
-96 54 05 58 4F 52 2E 42 85 12 72 53 40 E0 C8 53
-03 41 4E 44 85 12 72 53 00 F0 B0 54 05 41 4E 44
-2E 42 85 12 72 53 40 F0 04 4C 66 52 CE 54 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 02 54
-03 52 52 43 85 12 C8 54 00 10 E0 54 05 52 52 43
-2E 42 85 12 C8 54 40 10 EC 54 04 53 57 50 42 00
-85 12 C8 54 80 10 FA 54 03 52 52 41 85 12 C8 54
-00 11 08 55 05 52 52 41 2E 42 85 12 C8 54 40 11
-14 55 03 53 58 54 85 12 C8 54 80 11 00 00 04 50
-55 53 48 00 85 12 C8 54 00 12 2E 55 06 50 55 53
-48 2E 42 00 85 12 C8 54 40 12 88 54 04 43 41 4C
-4C 00 85 12 C8 54 80 12 1A 53 0E 4A 0D 12 84 12
-C6 48 14 44 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 36 45 22 55 03 53 3E 3D 86 12 00 38 76 55
-02 53 3C 00 86 12 00 34 3C 55 03 30 3E 3D 86 12
-00 30 8A 55 02 30 3C 00 86 12 00 30 00 00 02 55
-3C 00 86 12 00 2C 9E 55 03 55 3E 3D 86 12 00 28
-94 55 03 30 3C 3E 86 12 00 24 B2 55 02 30 3D 00
-86 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 A8 55 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 B1 2F 88 DA 00 00 30 4D 38 54
-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 4C 55 05 42
-45 47 49 4E 30 40 28 44 DC 55 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D BC 54 05 41 47 41 49 4E 0A 4E
-38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12
-84 12 CA 55 AA 47 50 48 80 55 06 52 45 50 45 41
-54 00 0D 12 84 12 5E 56 E2 55 50 48 8E 56 3D 41
-08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D
-00 00 30 4D 1E 56 03 42 57 31 85 12 8C 56 00 00
-A6 56 03 42 57 32 85 12 8C 56 00 00 B2 56 03 42
-57 33 85 12 8C 56 00 00 CA 56 3D 41 1A 42 C6 1D
-28 4E B2 92 C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12
-C8 56 00 00 EA 56 03 46 57 32 85 12 C8 56 00 00
-F6 56 03 46 57 33 85 12 C8 56 00 00 02 57 04 47
+19 42 C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D
+7A 90 26 00 05 20 3C 40 10 02 B0 12 18 51 F0 3F
+7A 90 40 00 14 20 3C 40 20 00 B0 12 64 51 0C 20
+3C D0 10 00 3E 40 2B 00 B0 12 68 51 92 92 C2 1D
+C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0
+10 00 B0 12 50 51 F2 3F 03 20 B0 12 68 51 F5 3F
+7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00
+B0 12 50 51 EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D
+3A 40 20 00 19 42 C6 1D 19 52 C4 1D 7A 99 FE 27
+5A 49 FF FF 19 82 C4 1D 82 49 C6 1D 7A 90 52 00
+30 4D 00 00 08 52 45 54 49 00 0D 12 84 12 0A 44
+00 13 50 4C 62 49 0A 44 2C 00 46 52 8A 51 94 47
+50 52 28 52 96 52 3D 41 2C DE 8B 4C 00 00 9E 3F
+00 00 06 4D 4F 56 85 12 86 52 00 40 A2 52 0A 4D
+4F 56 2E 42 85 12 86 52 40 40 00 00 06 41 44 44
+85 12 86 52 00 50 BC 52 0A 41 44 44 2E 42 85 12
+86 52 40 50 C8 52 08 41 44 44 43 00 85 12 86 52
+00 60 D6 52 0C 41 44 44 43 2E 42 00 85 12 86 52
+40 60 0E 4F 08 53 55 42 43 00 85 12 86 52 00 70
+F4 52 0C 53 55 42 43 2E 42 00 85 12 86 52 40 70
+02 53 06 53 55 42 85 12 86 52 00 80 12 53 0A 53
+55 42 2E 42 85 12 86 52 40 80 1E 53 06 43 4D 50
+85 12 86 52 00 90 2C 53 0A 43 4D 50 2E 42 85 12
+86 52 40 90 00 00 08 44 41 44 44 00 85 12 86 52
+00 A0 46 53 0C 44 41 44 44 2E 42 00 85 12 86 52
+40 A0 74 52 06 42 49 54 85 12 86 52 00 B0 64 53
+0A 42 49 54 2E 42 85 12 86 52 40 B0 70 53 06 42
+49 43 85 12 86 52 00 C0 7E 53 0A 42 49 43 2E 42
+85 12 86 52 40 C0 8A 53 06 42 49 53 85 12 86 52
+00 D0 98 53 0A 42 49 53 2E 42 85 12 86 52 40 D0
+00 00 06 58 4F 52 85 12 86 52 00 E0 B2 53 0A 58
+4F 52 2E 42 85 12 86 52 40 E0 E4 52 06 41 4E 44
+85 12 86 52 00 F0 CC 53 0A 41 4E 44 2E 42 85 12
+86 52 40 F0 94 47 46 52 8A 51 EC 53 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4D 3F A4 53 06 52
+52 43 85 12 E4 53 00 10 FE 53 0A 52 52 43 2E 42
+85 12 E4 53 40 10 38 53 08 53 57 50 42 00 85 12
+E4 53 80 10 0A 54 06 52 52 41 85 12 E4 53 00 11
+26 54 0A 52 52 41 2E 42 85 12 E4 53 40 11 18 54
+06 53 58 54 85 12 E4 53 80 11 00 00 08 50 55 53
+48 00 85 12 E4 53 00 12 4C 54 0C 50 55 53 48 2E
+42 00 85 12 E4 53 40 12 40 54 08 43 41 4C 4C 00
+85 12 E4 53 80 12 1A 53 0E 4A 84 12 D6 49 1E 44
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 12 45
+6A 54 06 53 3E 3D 86 12 00 38 92 54 04 53 3C 00
+86 12 00 34 5A 54 06 30 3E 3D 86 12 00 30 A6 54
+04 30 3C 00 86 12 00 30 E2 4E 04 55 3C 00 86 12
+00 2C BA 54 06 55 3E 3D 86 12 00 28 B0 54 06 30
+3C 3E 86 12 00 24 CE 54 04 30 3D 00 86 12 00 20
+00 00 04 49 46 00 1A 42 C8 1D 8A 4E 00 00 A2 53
+C8 1D 0E 4A 30 4D 54 53 08 54 48 45 4E 00 1A 42
+C8 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 B2 2F 88 DA 00 00 30 4D C4 54 08 45 4C 53
+45 00 1A 42 C8 1D BA 40 00 3C 00 00 A2 53 C8 1D
+2F 83 8F 4A 00 00 E3 3F 32 54 0A 42 45 47 49 4E
+30 40 32 44 1C 55 0A 55 4E 54 49 4C 3A 4F 08 4E
+3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE
+8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 1D
+30 4D D8 53 0A 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12 E6 54
+7C 48 62 49 3A 55 0C 52 45 50 45 41 54 00 0D 12
+84 12 7A 55 FE 54 62 49 AA 55 3D 41 08 4E 3E 4F
+2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D 00 00 30 4D
+96 55 06 42 57 31 85 12 A8 55 00 00 C2 55 06 42
+57 32 85 12 A8 55 00 00 CE 55 06 42 57 33 85 12
+A8 55 00 00 E6 55 3D 41 1A 42 C8 1D 28 4E 8E 43
+00 00 B2 92 C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D
+8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12
+E4 55 00 00 0A 56 06 46 57 32 85 12 E4 55 00 00
+16 56 06 46 57 33 85 12 E4 55 00 00 84 55 08 47
 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
-84 12 82 4C DE 4B 50 48 00 00 05 3F 47 4F 54 4F
+84 12 1C 4D 28 4C 62 49 00 00 0A 3F 47 4F 54 4F
 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
-3E E0 00 08 EC 3F 04 4C 92 51 4C 57 92 53 C4 1D
-3E 40 2C 00 84 12 1C 49 40 4A 34 44 02 4C 28 53
-62 57 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E
-5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 7A 56
-04 52 52 43 4D 00 85 12 46 57 50 00 90 57 04 52
-52 41 4D 00 85 12 46 57 50 01 9E 57 04 52 4C 41
-4D 00 85 12 46 57 50 02 AC 57 04 52 52 55 4D 00
-85 12 46 57 50 03 BC 55 05 50 55 53 48 4D 85 12
-46 57 00 15 C8 57 04 50 4F 50 4D 00 85 12 46 57
-00 17
+3E E0 00 08 EC 3F 50 52 0A 44 2C 00 E6 49 F8 4A
+AC 44 2C 4D 94 47 46 52 28 52 7C 56 0A 4E 3E 4F
+1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92
+EA 2E 8A 10 5A 06 A8 3E DA 55 08 52 52 43 4D 00
+85 12 66 56 50 00 AA 56 08 52 52 41 4D 00 85 12
+66 56 50 01 B8 56 08 52 4C 41 4D 00 85 12 66 56
+50 02 C6 56 08 52 52 55 4D 00 85 12 66 56 50 03
+D8 54 0A 50 55 53 48 4D 85 12 66 56 00 15 E2 56
+08 50 4F 50 4D 00 85 12 66 56 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 84 46
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 0A 51
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 BC 46
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 10 46
 q
diff --git a/binaries/MSP_EXP430FR5969_8MHz_UART.txt b/binaries/MSP_EXP430FR5969_8MHz_UART.txt
deleted file mode 100644 (file)
index fba5a5c..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF F8 57 04 50 34 01
-10 00 41 B3 94 45 AA 44 DA 45 9C 45 96 46 F8 57
-04 50 7C 46 94 47 26 47 00 47 3C 1D 62 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
-@4400
-B0 12 DA 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 7A 46 B2 49 92 47 B2 49 24 47 B2 49 FE 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 D0 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 45 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 44 0A 44 DE 1D E2 47 34 47
-14 44 04 1B 5B 37 6D 00 5E 47 AA 47 34 44 86 45
-14 44 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5E 47 A2 48 5E 47 14 44 04 1B 5B 30 6D 00
-5E 47 2A 4C 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D3 23 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C3 23 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 45 F2 B0 20 00 21 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE 45 04 57 41 52 4D 00
-B0 12 9C 45 84 12 14 44 07 0D 0A 1B 5B 37 6D 23
-5E 47 D8 48 14 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
-5E 47 0A 44 40 FF 28 44 D6 47 A2 48 14 44 0A 62
-79 74 65 73 20 66 72 65 65 00 3A 44 86 45 00 00
-06 41 43 43 45 50 54 00 30 40 7C 46 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 46 3C 40
-D4 46 5D 15 B5 3E 21 52 3A 17 58 42 CC 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 CE 05 30 4D CA 46 2D 83 92 B3 DC 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-DC 05 FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53
-DE 1D 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 47
-2F 83 8F 4E 00 00 B0 12 DA 45 92 B3 DC 05 FD 27
-1E 42 CC 05 B0 12 C8 45 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 47 08 4E 3E 4F C8 3F 1C 47 04 45
-43 48 4F 00 B2 40 C2 48 C2 46 82 43 DE 1D 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 46
-92 43 DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93
-11 24 0D 12 3D 40 7A 47 28 4F 2F 83 8F 4E 00 00
-7E 48 8F 48 02 00 10 42 24 47 7C 47 2D 83 1E 83
-F3 23 3D 41 2F 53 3E 4F 30 4D FC 45 02 43 52 00
-30 40 94 47 0D 12 84 12 14 44 02 0D 0A 00 5E 47
-62 48 2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D
-8F 4E FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E
-00 00 0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F
-0E 11 2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 46
-01 40 2E 4E 30 4D E0 47 01 21 BE 4F 00 00 3E 4F
-30 4D 1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D
-3E 8F 03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C
-23 00 B2 40 B2 1D B2 1D 30 4D 8C 47 01 23 1B 42
-DC 1D 2C 4F 2F 83 B0 12 6E 44 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 1C 48 02 23 53 00
-0D 12 84 12 1E 48 58 48 2D 83 09 93 E2 23 0E 93
-E0 23 3D 41 30 4D 4C 48 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 4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00
-0E 93 3E 4F 7A 40 2D 00 D1 33 30 4D 58 47 02 55
-2E 00 08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12
-3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
-84 12 12 48 50 48 EE 44 90 48 6C 48 5E 47 16 4C
-22 47 62 48 42 47 01 2E 0E 93 E3 37 38 43 E2 3F
-8A 48 82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44
-14 44 5C 4B 0A 44 22 00 2E 49 FC 48 B2 40 20 00
-B4 1D 6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41
-30 4D D6 48 82 2E 22 00 0D 12 84 12 E6 48 0A 44
-5E 47 5C 4B 62 48 1A 46 04 57 4F 52 44 00 3C 40
-C0 1D 39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24
-7E 9A FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90
-27 00 00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24
-7C 4A 4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00
-F3 2F 4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23
-1A 53 58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00
-1E 43 01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40
-D4 44 30 4D 00 00 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
-B0 4A 09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C
-FC 90 27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00
-7E 90 03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23
-B1 43 02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53
-04 24 3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F
-B2 4A 31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02
-2A 20 32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00
-22 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00
-AF 4F 04 00 4A 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 00 00 01 2C 1A 42 C6 1D
-8A 4E 00 00 A2 53 C6 1D 3E 4F 30 4D 5A 4B 87 4C
-49 54 45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42
-C6 1D A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00
-3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
-EE 3F 30 4D 68 48 05 43 4F 55 4E 54 2F 83 1E 53
-8F 4E 00 00 5E 4E FF FF 30 4D 7C 48 09 49 4E 54
-45 52 50 52 45 54 0D 12 84 12 AC 44 16 4C 2E 49
-D2 4B 9C 26 3D 40 DA 4B DE 3E DC 4B 0A 4E 3E 4F
-3D 40 F6 4B 36 27 3D 40 CC 4B 1A E2 BE 1D B6 27
-0E 12 3E 4F 30 41 F8 4B 3E 4F 3D 40 CC 4B BB 23
-DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
-98 4D CC 3F 00 4C 86 12 20 00 E8 47 05 41 4C 4C
-4F 54 82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43
-31 40 E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12
-90 47 BC 44 C6 4B C6 47 F8 47 14 44 0C 73 74 61
-63 6B 20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF
-28 44 00 48 14 44 0A 46 52 41 4D 20 66 75 6C 6C
-21 00 2A 45 3A 44 40 4C 1C 4C 86 41 42 4F 52 54
-22 00 0D 12 84 12 E6 48 0A 44 2A 45 5C 4B 62 48
-90 49 01 27 0D 12 84 12 16 4C 2E 49 96 49 34 44
-14 4C 62 48 00 00 83 5B 27 5D 0D 12 84 12 94 4C
-0A 44 0A 44 5C 4B 5C 4B 62 48 A6 4C 81 5B 82 43
-BE 1D 30 4D 0E 48 01 5D B2 43 BE 1D 30 4D C6 4C
-81 5C 92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53
-54 50 4F 4E 45 00 0D 12 84 12 16 4C 2E 49 96 49
-AA 47 34 44 14 4C F8 47 34 44 08 4D 0A 44 0A 44
-5C 4B 5C 4B 0A 44 5C 4B 5C 4B 62 48 BC 4C 01 3A
-30 12 58 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12
-16 4C 2E 49 26 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
-82 48 B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D
-2A 52 82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40
-84 12 FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20
-18 42 B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00
-30 4D 0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D
-69 73 6D 61 74 63 68 21 36 45 0E 4D 81 3B 82 93
-BE 1D 97 27 0D 12 84 12 0A 44 62 48 5C 4B 6A 4D
-BE 4C 62 48 BC 4B 09 49 4D 4D 45 44 49 41 54 45
-18 42 B6 1D F8 D0 80 00 00 00 30 4D A6 4B 06 43
-52 45 41 54 45 00 B0 12 14 4D BA 40 86 12 FC FF
-8A 4A FE FF C9 3F CE 4D 04 43 4F 44 45 00 B0 12
-14 4D A2 82 C6 1D 0D 12 84 12 06 50 E0 4F 62 48
-B6 4D 07 48 44 4E 43 4F 44 45 B2 40 E4 4F DA 1D
-EE 3F 00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12
-6A 4D 20 50 3E 50 62 48 00 00 05 43 4F 4C 4F 4E
-1A 42 C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00
-A2 52 C6 1D B2 43 BE 1D 0D 12 84 12 20 50 3E 50
-62 48 00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42
-C6 1D EB 3F 02 4E 85 48 49 32 4C 4F 0D 12 84 12
-28 44 AE 4F 5C 4B BE 4C F6 4D 62 48 9C 4D 86 5B
-54 48 45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F
-0E 4B 0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53
-F9 98 FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83
-00 00 F9 23 2F 53 2D 53 F7 3F 7E 4E 86 5B 45 4C
-53 45 5D 00 0D 12 84 12 0A 44 00 00 DA 47 16 4C
-2E 49 AC 4B A2 47 34 44 16 4F B0 47 14 44 06 5B
-54 48 45 4E 5D 00 88 4E F0 4E AC 4E CE 4E 62 48
-B0 47 14 44 06 5B 45 4C 53 45 5D 00 88 4E 06 4F
-AC 4E CC 4E 62 48 14 44 04 5B 49 46 5D 00 88 4E
-CE 4E 3A 44 CC 4E 84 47 14 44 05 0D 0A 6B 6F 20
-5E 47 BC 44 AC 44 3A 44 CE 4E BC 4E 84 5B 49 46
-5D 00 0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2C 4F
-89 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 16 4C
-2E 49 96 49 3A 4F 62 48 40 4F 8B 5B 55 4E 44 45
-46 49 4E 45 44 5D 0D 12 84 12 4A 4F F2 47 62 48
-72 4F B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C
-6E 4B 06 4D 41 52 4B 45 52 00 B0 12 14 4D BA 40
-85 12 FC FF BA 40 70 4F FE FF 28 83 8A 48 00 00
-BA 40 AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53
-30 4D 0A 44 CA 1D EA 47 62 48 85 12 B2 4F 7A 4C
-E8 4D 2E 47 92 4C 66 4E F8 46 82 4F 14 49 AA 50
-BE 50 9E 48 28 49 00 00 5A 4F D0 4C F6 49 00 00
-85 12 B2 4F 6E 56 D4 56 16 56 24 57 DC 55 00 00
-A8 53 00 00 EC 57 D0 57 40 56 7E 56 B8 54 00 00
-00 00 40 57 DE 4F 3A 40 0C 00 39 40 D6 1D 08 49
-28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D
-3A 40 0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42
-CA 1D DA 1D 30 4D BA 4F 38 50 3E 50 4E 50 1A 42
-20 18 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 DC 4C 09 50 57 52 5F 53 54 41 54 45 85 12
-46 50 F8 57 E2 48 09 52 53 54 5F 53 54 41 54 45
-92 42 0A 18 92 50 F3 3F 84 50 08 50 57 52 5F 48
-45 52 45 00 92 42 C6 1D 92 50 30 4D 96 50 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F
-3E 90 0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40
-10 00 29 83 B9 43 80 FF FC 23 B9 40 1C 51 FE FF
-29 83 B9 40 02 46 FE FF 39 90 AE FF F9 23 39 40
-14 18 B2 49 04 46 B2 49 FA 44 B2 49 02 44 B2 49
-22 46 B2 49 F0 FF B2 49 0A 18 C2 3F B2 D0 03 00
-04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40
-E0 1C 3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C
-FC 23 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 B2 40 33 00
-64 01 D2 43 61 01 39 40 40 00 18 42 00 18 18 83
-FE 23 19 83 FA 23 B2 D2 B0 01 F2 D0 10 00 2A 03
-F2 C0 40 00 A1 04 1E 42 08 18 82 43 08 18 1E D2
-9E 01 B0 12 F8 44 20 46 38 40 C0 1D 0A 4E 39 48
-2E 48 09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27
-1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12
-12 12 C4 1D 84 12 2E 49 96 49 F2 47 34 44 E8 51
-52 4A 34 44 02 52 FC 51 EA 51 3C 4E 3C 80 87 12
-05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17
-30 41 04 52 B2 41 C4 1D 3E 41 84 12 0A 44 2B 00
-2E 49 96 49 F2 47 34 44 20 52 52 4A 34 44 14 4C
-BC 47 2E 49 52 4A 34 44 14 4C 2C 52 3E 5F E7 3F
-3E 40 28 00 B0 12 CC 51 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 40 29 00 92 92 C0 1D C4 1D 02 20
-30 40 82 4D 1C 15 12 12 C4 1D 92 53 C4 1D 84 12
-2E 49 52 4A 34 44 74 52 6A 52 21 53 3E 90 10 00
-C6 2B 7F 2D 76 52 B2 41 C4 1D C1 3F 0D 12 84 12
-16 4C A8 51 86 52 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
-CC 51 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 CC 51 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 1D B0 12 54 52 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 54 52 92 92 C0 1D
-C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12
-54 52 FA 23 3C 50 10 00 B0 12 30 52 EF 3F 0C 43
-1B 42 C6 1D A2 53 C6 1D 0D 12 84 12 16 4C A8 51
-52 53 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
-82 00 C7 3F B0 12 54 52 E0 23 3C 50 80 00 B0 12
-30 52 DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12
-0A 44 00 13 5C 4B 62 48 0A 44 2C 00 7C 52 48 53
-92 53 09 4B 2E 4E 0E DC A2 3F 54 4E 03 4D 4F 56
-85 12 88 53 00 40 9C 53 05 4D 4F 56 2E 42 85 12
-88 53 40 40 00 00 03 41 44 44 85 12 88 53 00 50
-B6 53 05 41 44 44 2E 42 85 12 88 53 40 50 C2 53
-04 41 44 44 43 00 85 12 88 53 00 60 D0 53 06 41
-44 44 43 2E 42 00 85 12 88 53 40 60 76 53 04 53
-55 42 43 00 85 12 88 53 00 70 EE 53 06 53 55 42
-43 2E 42 00 85 12 88 53 40 70 FC 53 03 53 55 42
-85 12 88 53 00 80 0C 54 05 53 55 42 2E 42 85 12
-88 53 40 80 2A 4E 03 43 4D 50 85 12 88 53 00 90
-26 54 05 43 4D 50 2E 42 85 12 88 53 40 90 14 4E
-04 44 41 44 44 00 85 12 88 53 00 A0 40 54 06 44
-41 44 44 2E 42 00 85 12 88 53 40 A0 32 54 03 42
-49 54 85 12 88 53 00 B0 5E 54 05 42 49 54 2E 42
-85 12 88 53 40 B0 6A 54 03 42 49 43 85 12 88 53
-00 C0 78 54 05 42 49 43 2E 42 85 12 88 53 40 C0
-84 54 03 42 49 53 85 12 88 53 00 D0 92 54 05 42
-49 53 2E 42 85 12 88 53 40 D0 00 00 03 58 4F 52
-85 12 88 53 00 E0 AC 54 05 58 4F 52 2E 42 85 12
-88 53 40 E0 DE 53 03 41 4E 44 85 12 88 53 00 F0
-C6 54 05 41 4E 44 2E 42 85 12 88 53 40 F0 16 4C
-7C 52 E4 54 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 18 54 03 52 52 43 85 12 DE 54 00 10
-F6 54 05 52 52 43 2E 42 85 12 DE 54 40 10 02 55
-04 53 57 50 42 00 85 12 DE 54 80 10 10 55 03 52
-52 41 85 12 DE 54 00 11 1E 55 05 52 52 41 2E 42
-85 12 DE 54 40 11 2A 55 03 53 58 54 85 12 DE 54
-80 11 00 00 04 50 55 53 48 00 85 12 DE 54 00 12
-44 55 06 50 55 53 48 2E 42 00 85 12 DE 54 40 12
-9E 54 04 43 41 4C 4C 00 85 12 DE 54 80 12 1A 53
-0E 4A 0D 12 84 12 D8 48 14 44 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 36 45 38 55 03 53 3E 3D
-86 12 00 38 8C 55 02 53 3C 00 86 12 00 34 52 55
-03 30 3E 3D 86 12 00 30 A0 55 02 30 3C 00 86 12
-00 30 00 00 02 55 3C 00 86 12 00 2C B4 55 03 55
-3E 3D 86 12 00 28 AA 55 03 30 3C 3E 86 12 00 24
-C8 55 02 30 3D 00 86 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
-BE 55 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 B1 2F 88 DA
-00 00 30 4D 4E 54 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 62 55 05 42 45 47 49 4E 30 40 28 44 F2 55
-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 8A 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 1D 30 4D D2 54 05 41
-47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
-48 49 4C 45 0D 12 84 12 E0 55 BC 47 62 48 96 55
-06 52 45 50 45 41 54 00 0D 12 84 12 74 56 F8 55
-62 48 A4 56 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D
-CB 2F 98 42 C6 1D 00 00 30 4D 34 56 03 42 57 31
-85 12 A2 56 00 00 BC 56 03 42 57 32 85 12 A2 56
-00 00 C8 56 03 42 57 33 85 12 A2 56 00 00 E0 56
-3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 85 12 DE 56 00 00 00 57 03 46 57 32
-85 12 DE 56 00 00 0C 57 03 46 57 33 85 12 DE 56
-00 00 18 57 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
-3E 40 00 3C 0D 12 84 12 94 4C F0 4B 62 48 00 00
-05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
-3E B0 00 10 EF 27 3E E0 00 08 EC 3F 16 4C A8 51
-62 57 92 53 C4 1D 3E 40 2C 00 84 12 2E 49 52 4A
-34 44 14 4C 3E 53 78 57 0A 4E 3E 4F 1A 83 F7 32
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10
-5A 06 A6 3E 90 56 04 52 52 43 4D 00 85 12 5C 57
-50 00 A6 57 04 52 52 41 4D 00 85 12 5C 57 50 01
-B4 57 04 52 4C 41 4D 00 85 12 5C 57 50 02 C2 57
-04 52 52 55 4D 00 85 12 5C 57 50 03 D2 55 05 50
-55 53 48 4D 85 12 5C 57 00 15 DE 57 04 50 4F 50
-4D 00 85 12 5C 57 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-96 46 02 46 02 46 02 46 02 46 02 46 02 46 1C 51
-q
diff --git a/binaries/MSP_EXP430FR5994_16MHz_115200.txt b/binaries/MSP_EXP430FR5994_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..c6f34d8
--- /dev/null
@@ -0,0 +1,506 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A1 59
+EC 42 7E 41 1C 56 FC 54 5C 43 74 5E 60 4C 1A 4C
+1A 4C D2 42 90 43 58 43 3C 1D E0 1C 0E 46 B6 40
+C4 40 2A 45 20 00 0A 00 00 1C 7E 41 1C 56 FC 54
+5C 43 74 5E 60 4C 1A 4C 1A 4C 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 11 3D 0E 93 3E 4F
+D5 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 D0 42 B2 49
+8E 43 B2 49 56 43 B2 49 A0 40 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 D4 4C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 5C 43 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 40 34 45 AC 40 52 41 9E 43 1E 40 04 1B
+5B 37 6D 00 1E 44 1E 44 1E 40 04 1B 5B 30 6D 00
+1E 44 6A 49 B0 12 7E 41 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 9E 43 1E 40
+07 0D 0A 1B 5B 37 6D 23 1E 44 82 46 1E 40 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 1E 44 0A 40 40 FF 32 40
+4A 45 4E 46 1E 40 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 40 46 41 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 41 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 40 00 40 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40
+E0 1C 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
+B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
+00 18 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 19 42 9E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 40 86 41 00 00 0C 41 43 43 45 50 54 00 30 40
+D2 42 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 30 43 3C 40 3C 43 5D 15 8A 3E 21 52 3A 17
+58 42 CC 05 48 9B 09 20 A2 B3 DC 05 FD 27 B2 40
+13 00 CE 05 E2 D2 23 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 DC 05 FD 27 C2 48 CE 05 30 4D
+32 43 2D 83 92 B3 DC 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 DC 05 FD 27 58 42 CC 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 58 43 30 12 6E 43 A2 B3 DC 05
+FD 27 B2 40 11 00 CE 05 E2 C2 23 02 30 41 2F 83
+8F 4E 00 00 92 B3 DC 05 FD 27 B0 12 F8 42 1E 42
+CC 05 30 4D 00 00 08 45 4D 49 54 00 30 40 90 43
+08 4E 3E 4F C7 3F 86 43 08 45 43 48 4F 00 B2 40
+C2 48 2A 43 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 2A 43 30 4D 0D 12 3D 40 D8 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 DA 43 2D 83 0C 9B 16 2C
+58 4C 00 1E 1C 53 78 90 20 00 09 2C 78 90 0A 00
+F5 23 82 4C 1E 20 3D 41 3C 40 20 00 A6 3F 0E 99
+91 27 CA 48 00 00 1A 53 1E 53 8C 3F 1A 15 B0 12
+6A 57 19 17 DC 3F 00 00 08 54 59 50 45 00 0D 12
+3D 40 2E 44 29 4F 8F 4E 00 00 7E 49 AF 3F 30 44
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 31 22
+F9 98 00 00 2E 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 25 22 9B 24 50 43 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A 40 00 00 4E 45 40 44
+92 46 4C 49 B0 40 BC 44 14 40 06 5B 54 48 45 4E
+5D 00 44 44 9A 44 60 44 7E 44 14 40 06 5B 45 4C
+53 45 5D 00 44 44 AC 44 60 44 7C 44 1E 40 04 5B
+49 46 5D 00 44 44 7E 44 B2 40 7C 44 1E 40 05 0D
+6B 6F 20 0A 1E 44 9A 40 84 40 B2 40 7E 44 6C 44
+0D 5B 54 48 45 4E 5D 00 30 4D D0 44 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D DC 44 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 40 44 92 46 FA 46
+9E 48 0E 46 EC 44 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 40 44 92 46 FA 46 1E 45 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D C6 42 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 41 05 53 22 00 82 43 C0 1D
+0D 12 84 12 0A 40 1E 40 FC 48 0A 40 22 00 92 46
+92 45 B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D
+3E 4F 3D 41 30 4D A8 43 05 2E 22 00 0D 12 84 12
+7C 45 0A 40 1E 44 FC 48 0E 46 00 00 04 3C 23 00
+B2 40 B2 1D B2 1D 30 4D 78 45 02 23 1B 42 BE 1D
+2C 4F 2F 83 B0 12 46 40 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 CA 45 04 23 53 00 0D 12
+84 12 CC 45 06 46 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D FA 45 04 23 3E 00 9F 42 B2 1D 00 00 3E 40
+B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 14 46 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 98 43 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 C0 45 40 44
+2E 46 FE 45 2A 45 3C 46 18 46 1E 44 0E 46 A8 45
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D 80 46 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 04 48
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 06 48 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 40 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 BC 45 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12
+84 12 84 40 40 44 92 46 B0 40 D6 49 FA 46 C0 48
+0A 4E 3E 4F 3D 40 DA 48 6D 27 3D 40 B4 48 1A E2
+BC 1D 14 24 0E 12 3E 4F 30 41 DC 48 3E 4F 3D 40
+B4 48 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 B2 4A 2A 3C A4 48 02 2C A2 53 C8 1D
+1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D FA 48 0F 4C
+49 54 45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42
+C8 1D A2 52 C8 1D BA 40 0A 40 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D 36 46 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D 5C 45 0A 41 4C 4C
+4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43
+84 12 1E 40 02 0D 0A 00 1E 44 94 40 AE 48 3C 45
+66 45 1E 40 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 41 32 40 0A 40 40 FF 6E 45 1E 40 09 46 52 41
+4D 20 66 75 6C 6C 08 41 B2 40 72 49 5C 49 0D 41
+42 4F 52 54 22 00 0D 12 84 12 7C 45 0A 40 08 41
+FC 48 0E 46 8C 46 02 27 0D 12 84 12 40 44 92 46
+FA 46 B0 40 D8 49 A0 45 E4 48 06 45 07 5B 27 5D
+0D 12 84 12 C8 49 0A 40 0A 40 FC 48 FC 48 0E 46
+DC 49 03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43
+BC 1D 30 4D 54 45 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 40 44 92 46 FA 46 B0 40 D8 49 66 45
+AC 40 30 4A 0A 40 0A 40 FC 48 FC 48 0A 40 FC 48
+FC 48 0E 46 00 00 02 3A 30 12 86 4A 92 B3 C8 1D
+A2 63 C8 1D 0D 12 84 12 40 44 92 46 4E 4A 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52
+82 4A C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12
+1E 40 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 41 F2 49 03 3B 82 93 BC 1D F4 26 0D 12
+84 12 0A 40 0E 46 FC 48 98 4A F4 49 0E 46 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3
+00 00 30 4D 46 49 0C 43 52 45 41 54 45 00 B0 12
+3C 4A BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 18 44
+0A 44 4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D 36 4A 0E 3A 4E 4F 4E 41
+4D 45 30 12 86 4A 2F 83 8F 4E 00 00 1A 42 C8 1D
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F D0 4A
+05 49 53 00 0D 12 82 93 BC 1D 08 20 84 12 C8 49
+52 4B 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 E0 49
+0A 40 54 4B FC 48 0E 46 E6 4A 08 43 4F 44 45 00
+B0 12 3C 4A A2 82 C8 1D 61 3C 28 46 0E 48 44 4E
+43 4F 44 45 B2 40 40 4C CC 1D F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 98 4A 9E 4B 3D 41
+92 42 D0 1D CC 1D 5D 3C 6A 4B 0E 43 4F 44 45 4E
+4E 4D 30 12 74 4B B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F 7C 4B 0B 48
+49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF
+82 43 BC 1D B9 3F 08 4C B2 40 1A 4C D0 1D 82 4E
+CE 1D 30 40 A0 45 85 12 06 4C 06 4A 7A 58 76 5A
+88 58 10 5E 4A 46 F4 46 F0 5C EE 4B 40 4B 1A 4B
+B6 4A 96 58 22 4D 5A 5A 00 00 00 00 85 12 06 4C
+9C 53 20 52 42 54 48 51 A4 51 F2 51 CE 52 88 54
+6A 50 8E 51 00 00 00 00 DC 4B 5A 4F 00 00 F6 52
+3A 4C B2 40 1A 4C CE 1D 82 43 D0 1D 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18
+B0 12 6E 4C 30 4D 80 4C 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 1D B0 12 6E 4C 1A 42
+CA 1D 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 08 42 FE FF 29 83 B9 40 F2 41
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 F0 FF
+3B 40 10 00 3A 40 3A 18 B0 12 72 4C 82 43 4A 18
+C7 3F 14 4D B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+FC 49 0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12
+84 12 40 44 92 46 FA 46 AC 40 40 4D 34 45 D4 48
+42 4D 3E 4F 3D 41 B2 41 C6 1D B0 12 3C 4A BA 40
+85 12 FC FF BA 40 12 4D FE FF 28 83 8A 48 00 00
+BA 40 82 40 02 00 A2 52 C8 1D 18 42 B4 1D 19 42
+B6 1D A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D
+84 12 92 46 FA 46 AC 40 AC 4D 8C 4D 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 12 4D
+00 00 01 20 3E 52 2E 83 21 53 30 41 A4 47 AC 40
+B4 4D A8 4D B6 4D B2 41 C6 1D 30 41 92 83 C6 1D
+3E 40 28 00 0A 4E 3D 15 B0 12 7C 4D 15 20 3E 40
+2B 00 B0 12 7C 4D 06 20 3E 40 2D 00 B0 12 7C 4D
+92 83 C6 1D 0E 12 1E 41 02 00 84 12 92 46 A4 47
+AC 40 D8 49 F6 4D 3E 51 3A 17 30 41 B0 12 BC 4D
+19 42 C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00
+92 53 C6 1D 1A 42 C6 1D 3D 15 84 12 92 46 A4 47
+AC 40 2E 4E 26 4E 3E 90 10 00 E6 2B 7C 2D 30 4E
+A2 41 C6 1D E1 3F 03 20 B0 12 14 4E 43 3C 7A 90
+23 00 24 20 B0 12 C4 4D 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 C8 1D
+A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 C4 4D F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 10 4E 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 14 4E 92 92 C2 1D C6 1D 02 24
+92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+FC 4D F2 3F 03 20 B0 12 14 4E F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 FC 4D
+EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00
+19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF
+19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A 40 00 13 FC 48
+0E 46 0A 40 2C 00 F2 4E 36 4E 40 44 FC 4E D4 4E
+42 4F 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 32 4F 00 40 4E 4F 0A 4D 4F 56 2E 42
+85 12 32 4F 40 40 00 00 06 41 44 44 85 12 32 4F
+00 50 68 4F 0A 41 44 44 2E 42 85 12 32 4F 40 50
+74 4F 08 41 44 44 43 00 85 12 32 4F 00 60 82 4F
+0C 41 44 44 43 2E 42 00 85 12 32 4F 40 60 BA 4B
+08 53 55 42 43 00 85 12 32 4F 00 70 A0 4F 0C 53
+55 42 43 2E 42 00 85 12 32 4F 40 70 AE 4F 06 53
+55 42 85 12 32 4F 00 80 BE 4F 0A 53 55 42 2E 42
+85 12 32 4F 40 80 CA 4F 06 43 4D 50 85 12 32 4F
+00 90 D8 4F 0A 43 4D 50 2E 42 85 12 32 4F 40 90
+00 00 08 44 41 44 44 00 85 12 32 4F 00 A0 F2 4F
+0C 44 41 44 44 2E 42 00 85 12 32 4F 40 A0 20 4F
+06 42 49 54 85 12 32 4F 00 B0 10 50 0A 42 49 54
+2E 42 85 12 32 4F 40 B0 1C 50 06 42 49 43 85 12
+32 4F 00 C0 2A 50 0A 42 49 43 2E 42 85 12 32 4F
+40 C0 36 50 06 42 49 53 85 12 32 4F 00 D0 44 50
+0A 42 49 53 2E 42 85 12 32 4F 40 D0 00 00 06 58
+4F 52 85 12 32 4F 00 E0 5E 50 0A 58 4F 52 2E 42
+85 12 32 4F 40 E0 90 4F 06 41 4E 44 85 12 32 4F
+00 F0 78 50 0A 41 4E 44 2E 42 85 12 32 4F 40 F0
+40 44 F2 4E 36 4E 98 50 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F 50 50 06 52 52 43 85 12
+90 50 00 10 AA 50 0A 52 52 43 2E 42 85 12 90 50
+40 10 E4 4F 08 53 57 50 42 00 85 12 90 50 80 10
+B6 50 06 52 52 41 85 12 90 50 00 11 D2 50 0A 52
+52 41 2E 42 85 12 90 50 40 11 C4 50 06 53 58 54
+85 12 90 50 80 11 00 00 08 50 55 53 48 00 85 12
+90 50 00 12 F8 50 0C 50 55 53 48 2E 42 00 85 12
+90 50 40 12 EC 50 08 43 41 4C 4C 00 85 12 90 50
+80 12 1A 53 0E 4A 84 12 82 46 1E 40 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 41 16 51 06 53
+3E 3D 86 12 00 38 3E 51 04 53 3C 00 86 12 00 34
+06 51 06 30 3E 3D 86 12 00 30 52 51 04 30 3C 00
+86 12 00 30 8E 4B 04 55 3C 00 86 12 00 2C 66 51
+06 55 3E 3D 86 12 00 28 5C 51 06 30 3C 3E 86 12
+00 24 7A 51 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A
+30 4D 00 50 08 54 48 45 4E 00 1A 42 C8 1D 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D 70 51 08 45 4C 53 45 00 1A 42
+C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A
+00 00 E3 3F DE 50 0A 42 45 47 49 4E 30 40 32 40
+C8 51 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D 84 50
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 92 51 28 45 0E 46
+E6 51 0C 52 45 50 45 41 54 00 0D 12 84 12 26 52
+AA 51 0E 46 56 52 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 1D CB 2F 98 42 C8 1D 00 00 30 4D 42 52 06 42
+57 31 85 12 54 52 00 00 6E 52 06 42 57 32 85 12
+54 52 00 00 7A 52 06 42 57 33 85 12 54 52 00 00
+92 52 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92
+C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 90 52 00 00
+B6 52 06 46 57 32 85 12 90 52 00 00 C2 52 06 46
+57 33 85 12 90 52 00 00 30 52 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 C8 49
+D4 48 0E 46 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F FC 4E 0A 40 2C 00 92 46 A4 47 AC 40 D8 49
+40 44 F2 4E D4 4E 28 53 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E 86 52 08 52 52 43 4D 00 85 12 12 53
+50 00 56 53 08 52 52 41 4D 00 85 12 12 53 50 01
+64 53 08 52 4C 41 4D 00 85 12 12 53 50 02 72 53
+08 52 52 55 4D 00 85 12 12 53 50 03 84 51 0A 50
+55 53 48 4D 85 12 12 53 00 15 8E 53 08 50 4F 50
+4D 00 85 12 12 53 00 17 D2 C3 23 02 E2 B2 60 02
+02 24 30 40 F2 41 1A 52 04 20 19 62 06 20 92 43
+14 20 C2 4A 15 20 8A 10 C2 4A 16 20 C2 49 17 20
+89 10 C2 49 18 20 B0 12 1C 54 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 1A 43 E1 3F 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
+80 53 12 52 5F 53 45 43 54 5F 57 58 1C D3 F2 40
+51 00 19 20 B0 12 A8 53 38 20 B0 12 1C 54 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 DA 52 12 57 5F 53 45 43 54 5F
+57 58 2C D3 F0 40 58 00 81 CB B0 12 A8 53 15 20
+3A 40 FE FF 29 43 B0 12 20 54 D2 49 00 1E 4E 06
+03 43 19 53 39 90 00 02 F8 23 39 40 03 00 B0 12
+1E 54 7A C0 E1 00 6A 82 D9 27 8C 10 1C 52 4C 06
+D2 D3 23 02 84 12 9E 43 1E 40 0B 3C 20 53 44 20
+45 72 72 6F 72 21 E8 54 2F 83 8F 4E 00 00 B2 40
+10 00 BE 1D 0E 4C 84 12 4E 46 12 41 B0 12 54 41
+E2 B2 60 02 8A 20 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
+39 40 6E 01 29 83 89 43 02 20 FC 23 39 42 B0 12
+1E 54 D2 C3 23 02 2C 42 B2 40 95 00 14 20 B2 40
+00 40 18 20 B0 12 18 54 02 24 30 40 CA 54 B0 12
+1C 54 7A 93 FC 23 B2 40 87 AA 14 20 92 43 16 20
+B2 40 00 48 18 20 B0 12 18 54 29 42 B0 12 1E 54
+92 43 14 20 82 43 16 20 78 43 3C 42 B2 40 00 77
+18 20 B0 12 18 54 B2 40 40 69 18 20 B0 12 D6 53
+03 24 58 83 F3 23 D9 3F 0C 5C A2 43 16 20 B2 40
+00 50 18 20 B0 12 D6 53 D0 23 92 D3 40 06 82 43
+46 06 92 C3 40 06 0A 43 09 43 B0 12 4C 54 38 40
+00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20 5C 48
+C2 01 7C 80 0C 00 08 24 5C 53 06 24 6C 52 04 24
+3C 50 07 20 30 40 D0 54 09 43 B0 12 4C 54 A2 43
+2C 20 19 48 0E 00 82 49 08 20 1A 48 24 00 82 4A
+0A 20 09 5A 82 49 0C 20 09 5A 58 48 0D 00 82 48
+12 20 09 88 09 88 82 49 10 20 30 41 82 43 32 20
+30 40 84 41 92 4B 0E 00 22 20 92 4B 10 00 24 20
+5A 42 23 20 58 42 22 20 59 42 24 20 89 10 0A D9
+88 10 08 58 0A 6A 88 10 08 58 30 41 1A 52 08 20
+09 43 FC 3E 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 54 56 5A 4B
+03 00 82 5A 1A 20 82 63 1C 20 30 41 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 A3 25 09 4B 3B 50 1C 00
+3B 90 18 21 EF 23 0C 5C 9B 3D 0C 43 82 4B 32 20
+8B 49 00 00 09 93 0A 24 99 52 C6 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 1A 24 A4 37 8B 43 16 00 7A 93 02 24 07 38
+35 3C B2 40 1C 21 A0 40 B2 40 B8 43 D0 42 9B 42
+C2 1D 18 00 9B 82 C6 1D 18 00 9B 42 C4 1D 1A 00
+9B 52 C6 1D 1A 00 22 3C 30 41 1B 42 32 20 82 43
+1E 20 B2 90 00 02 20 20 3F 20 BB 80 00 02 12 00
+8B 73 14 00 DB 53 03 00 DB 92 12 20 03 00 0E 28
+CB 43 03 00 B0 12 24 56 B0 12 4C 56 8B 43 10 00
+9B 48 00 1E 0E 00 9B 48 02 1E 10 00 B2 40 00 02
+20 20 8B 93 14 00 0B 20 92 9B 12 00 1E 20 1C 2C
+BB 90 00 02 12 00 03 2C 92 4B 12 00 20 20 B0 12
+7E 56 1A 42 1A 20 19 42 1C 20 38 3E CB 43 02 00
+2B 4B 82 4B 32 20 0B 93 06 24 92 4B 16 00 1E 20
+B0 12 AC 57 22 C3 30 41 1B 42 32 20 0B 93 FB 27
+EB 92 02 00 04 20 B0 12 6A 5B B0 12 5A 5C CB 93
+02 00 E4 37 1E 4B 18 00 9F 4B 1A 00 00 00 31 50
+06 00 3D 41 B0 12 DC 57 02 24 30 40 B0 43 B2 40
+3C 1D A0 40 B2 40 D2 42 D0 42 30 40 9E 43 09 93
+07 24 F8 90 20 00 00 1E 03 20 18 53 19 83 F9 23
+30 41 98 4C 0B 52 45 41 44 22 5A 43 20 3C 00 4B
+09 44 45 4C 22 00 6A 43 1A 3C C6 49 0D 57 52 49
+54 45 22 00 6A 42 13 3C AE 49 0F 41 50 50 45 4E
+44 22 7A 42 0C 3C AA 4B 0A 43 4C 4F 53 45 B0 12
+F8 57 30 4D 0E 49 0B 4C 4F 41 44 22 7A 43 2F 83
+8F 4E 00 00 0E 4A 82 93 BC 1D 0B 24 0D 12 84 12
+0A 40 0A 40 FC 48 FC 48 7C 45 0A 40 D2 58 FC 48
+0E 46 0D 12 84 12 0A 40 22 00 92 46 4C 49 D0 58
+3D 41 36 4F 0E 56 82 4E 36 20 A2 43 22 20 82 43
+24 20 1C 43 0E 96 8C 24 F6 90 3A 00 01 00 01 20
+26 53 F6 90 5C 00 00 00 03 20 16 53 0E 96 66 24
+82 46 34 20 B0 12 54 56 15 42 12 20 B0 12 D2 57
+2C 43 0A 43 08 4A 58 0E 08 58 82 48 30 20 C8 93
+00 1E 60 24 39 42 F8 96 00 1E 04 20 18 53 19 83
+FA 23 16 53 F6 90 2E 00 FF FF 19 24 39 50 03 00
+B0 12 3E 58 06 20 F6 90 5C 00 FF FF 29 24 0E 96
+27 28 16 42 34 20 1A 53 3A 90 10 00 DB 23 92 53
+1A 20 82 63 1C 20 15 83 D1 23 2C 42 49 3C F6 90
+2E 00 FE FF EE 27 B0 12 3E 58 EB 23 39 40 03 00
+F8 96 00 1E 04 20 18 53 19 83 FA 23 09 3C 0E 96
+E0 2F F6 90 5C 00 FF FF DC 23 B0 12 3E 58 D9 23
+18 42 30 20 92 48 1A 1E 22 20 92 48 14 1E 24 20
+F8 B0 10 00 0B 1E 13 24 82 93 24 20 05 20 82 93
+22 20 02 20 A2 43 22 20 0E 96 9A 23 92 42 22 20
+2C 20 92 42 24 20 2E 20 8F 43 00 00 03 3C 2A 4F
+B0 12 9C 56 35 40 B6 40 36 40 C4 40 3A 4F 3E 4F
+0A 93 04 24 7A 93 39 20 0C 93 02 20 30 40 B0 43
+0D 12 84 12 9E 43 1E 40 0B 3C 20 4F 70 65 6E 45
+72 72 6F 72 B2 40 E6 54 E2 B2 60 02 02 24 30 40
+86 41 92 12 3E 18 3F 40 7E 1C 8F 43 00 00 0D 12
+84 12 1E 40 0F 4C 4F 41 44 22 20 42 4F 4F 54 2E
+34 54 48 22 B2 40 7C 49 54 58 08 42 4F 4F 54 00
+B2 40 18 5A C2 42 30 4D 4C 47 0C 4E 4F 42 4F 4F
+54 00 B2 40 86 41 C2 42 30 4D 1A 93 89 20 0C 93
+C7 23 30 4D 4A 5A 08 52 45 41 44 00 2F 83 8F 4E
+00 00 1E 42 32 20 B0 12 6A 57 1E 82 32 20 30 4D
+08 4A 1A 52 08 20 B0 12 A0 5A 0A 48 1A 52 0C 20
+09 43 30 40 92 54 3C 42 0A 12 2A 41 82 9A 0A 20
+2B 25 B0 12 4C 56 88 93 02 1E 03 20 88 93 00 1E
+08 24 28 52 38 90 00 02 F6 2B 91 53 00 00 08 43
+EC 3F A2 41 26 20 82 48 28 20 0C 43 B8 43 00 1E
+6A 41 B8 40 FF 0F 02 1E 08 11 8A 10 08 5A 5A 41
+01 00 0A 11 08 10 82 4A 24 20 82 48 22 20 2A 41
+B0 12 90 5A 3A 41 30 41 90 4B 0A 00 16 C5 90 4B
+0C 00 12 C5 B0 12 30 56 82 4A 26 20 82 48 28 20
+0A 12 B0 12 4C 56 1A 48 00 1E 88 43 00 1E 19 48
+02 1E 88 43 02 1E 39 F0 FF 0F 39 90 FF 0F 02 20
+3A 93 10 24 82 4A 22 20 82 49 24 20 B0 12 30 56
+2A 91 E9 27 09 4A 2A 41 81 49 00 00 B0 12 90 5A
+2A 41 DF 3F 3A 41 30 40 90 5A 9B 52 1E 20 12 00
+8B 63 14 00 1A 42 1A 20 19 42 1C 20 30 40 92 54
+2A 93 BC 20 0C 93 09 20 F8 40 E5 00 00 1E B0 12
+74 5B B0 12 08 5B B0 12 F8 57 30 4D 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 28 39 80 03 00
+B0 12 48 5C 39 40 03 00 7A 4B C8 4A 00 1E 82 9B
+36 20 12 28 0D 12 3D 40 0F 00 3C 40 F8 5B 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 1A 4B 04 00 19 4B
+06 00 B0 12 4C 54 18 4B 08 00 B0 12 9C 5B 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
+92 54 B2 40 00 02 1E 20 1B 42 32 20 B0 12 6A 5B
+82 43 1E 20 DB 53 03 00 DB 92 12 20 03 00 1D 28
+B0 12 24 56 08 12 0A 12 B0 12 A6 5A 2A 91 03 24
+2A 41 B0 12 4C 56 3A 41 38 41 98 42 22 20 00 1E
+98 42 24 20 02 1E B0 12 90 5A AB 42 02 00 9B 42
+22 20 0E 00 9B 42 24 20 10 00 30 40 8A 56 6C 58
+0A 57 52 49 54 45 B0 12 92 5C 30 4D 2A 92 54 20
+2C 93 0E 24 0C 93 3D 24 0D 12 84 12 1E 40 0C 3C
+20 57 72 69 74 65 45 72 72 6F 72 00 B2 40 E6 54
+0A 43 08 43 B0 12 A6 5A B0 12 D2 57 18 42 30 20
+F8 40 20 00 0B 1E B0 12 9C 5B 88 43 0C 1E 88 4A
+0E 1E 88 49 10 1E 98 42 24 20 14 1E 98 42 22 20
+1A 1E 88 43 1C 1E 88 43 1E 1E 2C 42 1B 42 34 20
+82 9B 36 20 D1 27 FB 90 2E 00 00 00 CD 27 39 40
+0B 00 B0 12 18 5C B0 12 74 5B 2A 42 B0 12 9C 56
+30 4D B0 12 08 5B 8B 43 12 00 8B 43 14 00 90 4B
+0A 00 90 C2 90 4B 0C 00 8C C2 B0 12 30 56 B0 12
+A6 5A B0 12 DA 5C 30 4D 2C 93 BA 27 0C 93 AC 23
+EB 42 02 00 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 B0 12 CE 57 1A 4B 12 00 BB C0
+FF 01 12 00 3A F0 FF 01 82 4A 1E 20 30 4D 60 58
+10 54 45 52 4D 32 53 44 22 00 0D 12 84 12 74 58
+22 5E 0A 43 B0 12 5C 43 92 B3 DC 05 FD 27 59 42
+CC 05 C2 49 CE 05 69 92 0D 24 CA 49 00 1E 1A 53
+3A 90 FF 01 04 24 F0 2B B0 12 92 5C EA 3F B0 12
+F8 42 EA 3F F2 90 0D 00 CC 05 FC 27 B0 12 F8 42
+F2 90 0A 00 CC 05 FC 27 82 4A 1E 20 B0 12 F8 57
+3D 41 30 4D
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+EC 42 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 08 42
+q
diff --git a/binaries/MSP_EXP430FR5994_16MHz_4MBds.txt b/binaries/MSP_EXP430FR5994_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..4c94bcd
--- /dev/null
@@ -0,0 +1,506 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A1 59
+EC 42 7E 41 1C 56 FC 54 5C 43 74 5E 60 4C 1A 4C
+1A 4C D2 42 90 43 58 43 3C 1D E0 1C 0E 46 B6 40
+C4 40 2A 45 20 00 0A 00 00 1C 7E 41 1C 56 FC 54
+5C 43 74 5E 60 4C 1A 4C 1A 4C 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 11 3D 0E 93 3E 4F
+D5 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 D0 42 B2 49
+8E 43 B2 49 56 43 B2 49 A0 40 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 D4 4C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 5C 43 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 40 34 45 AC 40 52 41 9E 43 1E 40 04 1B
+5B 37 6D 00 1E 44 1E 44 1E 40 04 1B 5B 30 6D 00
+1E 44 6A 49 B0 12 7E 41 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 9E 43 1E 40
+07 0D 0A 1B 5B 37 6D 23 1E 44 82 46 1E 40 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 1E 44 0A 40 40 FF 32 40
+4A 45 4E 46 1E 40 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 40 46 41 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 41 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 40 00 40 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40
+E0 1C 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
+B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
+00 18 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 19 42 9E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 40 86 41 00 00 0C 41 43 43 45 50 54 00 30 40
+D2 42 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 30 43 3C 40 3C 43 5D 15 8A 3E 21 52 3A 17
+58 42 CC 05 48 9B 09 20 A2 B3 DC 05 FD 27 B2 40
+13 00 CE 05 E2 D2 23 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 DC 05 FD 27 C2 48 CE 05 30 4D
+32 43 2D 83 92 B3 DC 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 DC 05 FD 27 58 42 CC 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 58 43 30 12 6E 43 A2 B3 DC 05
+FD 27 B2 40 11 00 CE 05 E2 C2 23 02 30 41 2F 83
+8F 4E 00 00 92 B3 DC 05 FD 27 B0 12 F8 42 1E 42
+CC 05 30 4D 00 00 08 45 4D 49 54 00 30 40 90 43
+08 4E 3E 4F C7 3F 86 43 08 45 43 48 4F 00 B2 40
+C2 48 2A 43 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 2A 43 30 4D 0D 12 3D 40 D8 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 DA 43 2D 83 0C 9B 16 2C
+58 4C 00 1E 1C 53 78 90 20 00 09 2C 78 90 0A 00
+F5 23 82 4C 1E 20 3D 41 3C 40 20 00 A6 3F 0E 99
+91 27 CA 48 00 00 1A 53 1E 53 8C 3F 1A 15 B0 12
+6A 57 19 17 DC 3F 00 00 08 54 59 50 45 00 0D 12
+3D 40 2E 44 29 4F 8F 4E 00 00 7E 49 AF 3F 30 44
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 31 22
+F9 98 00 00 2E 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 25 22 9B 24 50 43 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A 40 00 00 4E 45 40 44
+92 46 4C 49 B0 40 BC 44 14 40 06 5B 54 48 45 4E
+5D 00 44 44 9A 44 60 44 7E 44 14 40 06 5B 45 4C
+53 45 5D 00 44 44 AC 44 60 44 7C 44 1E 40 04 5B
+49 46 5D 00 44 44 7E 44 B2 40 7C 44 1E 40 05 0D
+6B 6F 20 0A 1E 44 9A 40 84 40 B2 40 7E 44 6C 44
+0D 5B 54 48 45 4E 5D 00 30 4D D0 44 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D DC 44 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 40 44 92 46 FA 46
+9E 48 0E 46 EC 44 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 40 44 92 46 FA 46 1E 45 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D C6 42 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D D8 41 05 53 22 00 82 43 C0 1D
+0D 12 84 12 0A 40 1E 40 FC 48 0A 40 22 00 92 46
+92 45 B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D
+3E 4F 3D 41 30 4D A8 43 05 2E 22 00 0D 12 84 12
+7C 45 0A 40 1E 44 FC 48 0E 46 00 00 04 3C 23 00
+B2 40 B2 1D B2 1D 30 4D 78 45 02 23 1B 42 BE 1D
+2C 4F 2F 83 B0 12 46 40 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 CA 45 04 23 53 00 0D 12
+84 12 CC 45 06 46 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D FA 45 04 23 3E 00 9F 42 B2 1D 00 00 3E 40
+B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 14 46 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 98 43 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 C0 45 40 44
+2E 46 FE 45 2A 45 3C 46 18 46 1E 44 0E 46 A8 45
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D 80 46 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 04 48
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 06 48 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 40 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 BC 45 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12
+84 12 84 40 40 44 92 46 B0 40 D6 49 FA 46 C0 48
+0A 4E 3E 4F 3D 40 DA 48 6D 27 3D 40 B4 48 1A E2
+BC 1D 14 24 0E 12 3E 4F 30 41 DC 48 3E 4F 3D 40
+B4 48 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 B2 4A 2A 3C A4 48 02 2C A2 53 C8 1D
+1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D FA 48 0F 4C
+49 54 45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42
+C8 1D A2 52 C8 1D BA 40 0A 40 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D 36 46 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D 5C 45 0A 41 4C 4C
+4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43
+84 12 1E 40 02 0D 0A 00 1E 44 94 40 AE 48 3C 45
+66 45 1E 40 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 41 32 40 0A 40 40 FF 6E 45 1E 40 09 46 52 41
+4D 20 66 75 6C 6C 08 41 B2 40 72 49 5C 49 0D 41
+42 4F 52 54 22 00 0D 12 84 12 7C 45 0A 40 08 41
+FC 48 0E 46 8C 46 02 27 0D 12 84 12 40 44 92 46
+FA 46 B0 40 D8 49 A0 45 E4 48 06 45 07 5B 27 5D
+0D 12 84 12 C8 49 0A 40 0A 40 FC 48 FC 48 0E 46
+DC 49 03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43
+BC 1D 30 4D 54 45 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 40 44 92 46 FA 46 B0 40 D8 49 66 45
+AC 40 30 4A 0A 40 0A 40 FC 48 FC 48 0A 40 FC 48
+FC 48 0E 46 00 00 02 3A 30 12 86 4A 92 B3 C8 1D
+A2 63 C8 1D 0D 12 84 12 40 44 92 46 4E 4A 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52
+82 4A C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12
+1E 40 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 41 F2 49 03 3B 82 93 BC 1D F4 26 0D 12
+84 12 0A 40 0E 46 FC 48 98 4A F4 49 0E 46 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3
+00 00 30 4D 46 49 0C 43 52 45 41 54 45 00 B0 12
+3C 4A BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 18 44
+0A 44 4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D 36 4A 0E 3A 4E 4F 4E 41
+4D 45 30 12 86 4A 2F 83 8F 4E 00 00 1A 42 C8 1D
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F D0 4A
+05 49 53 00 0D 12 82 93 BC 1D 08 20 84 12 C8 49
+52 4B 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 E0 49
+0A 40 54 4B FC 48 0E 46 E6 4A 08 43 4F 44 45 00
+B0 12 3C 4A A2 82 C8 1D 61 3C 28 46 0E 48 44 4E
+43 4F 44 45 B2 40 40 4C CC 1D F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 98 4A 9E 4B 3D 41
+92 42 D0 1D CC 1D 5D 3C 6A 4B 0E 43 4F 44 45 4E
+4E 4D 30 12 74 4B B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F 7C 4B 0B 48
+49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF
+82 43 BC 1D B9 3F 08 4C B2 40 1A 4C D0 1D 82 4E
+CE 1D 30 40 A0 45 85 12 06 4C 06 4A 7A 58 76 5A
+88 58 10 5E 4A 46 F4 46 F0 5C EE 4B 40 4B 1A 4B
+B6 4A 96 58 22 4D 5A 5A 00 00 00 00 85 12 06 4C
+9C 53 20 52 42 54 48 51 A4 51 F2 51 CE 52 88 54
+6A 50 8E 51 00 00 00 00 DC 4B 5A 4F 00 00 F6 52
+3A 4C B2 40 1A 4C CE 1D 82 43 D0 1D 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18
+B0 12 6E 4C 30 4D 80 4C 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 1D B0 12 6E 4C 1A 42
+CA 1D 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 08 42 FE FF 29 83 B9 40 F2 41
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 F0 FF
+3B 40 10 00 3A 40 3A 18 B0 12 72 4C 82 43 4A 18
+C7 3F 14 4D B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+FC 49 0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12
+84 12 40 44 92 46 FA 46 AC 40 40 4D 34 45 D4 48
+42 4D 3E 4F 3D 41 B2 41 C6 1D B0 12 3C 4A BA 40
+85 12 FC FF BA 40 12 4D FE FF 28 83 8A 48 00 00
+BA 40 82 40 02 00 A2 52 C8 1D 18 42 B4 1D 19 42
+B6 1D A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D
+84 12 92 46 FA 46 AC 40 AC 4D 8C 4D 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 12 4D
+00 00 01 20 3E 52 2E 83 21 53 30 41 A4 47 AC 40
+B4 4D A8 4D B6 4D B2 41 C6 1D 30 41 92 83 C6 1D
+3E 40 28 00 0A 4E 3D 15 B0 12 7C 4D 15 20 3E 40
+2B 00 B0 12 7C 4D 06 20 3E 40 2D 00 B0 12 7C 4D
+92 83 C6 1D 0E 12 1E 41 02 00 84 12 92 46 A4 47
+AC 40 D8 49 F6 4D 3E 51 3A 17 30 41 B0 12 BC 4D
+19 42 C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00
+92 53 C6 1D 1A 42 C6 1D 3D 15 84 12 92 46 A4 47
+AC 40 2E 4E 26 4E 3E 90 10 00 E6 2B 7C 2D 30 4E
+A2 41 C6 1D E1 3F 03 20 B0 12 14 4E 43 3C 7A 90
+23 00 24 20 B0 12 C4 4D 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 C8 1D
+A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 C4 4D F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 10 4E 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 14 4E 92 92 C2 1D C6 1D 02 24
+92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+FC 4D F2 3F 03 20 B0 12 14 4E F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 FC 4D
+EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00
+19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF
+19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A 40 00 13 FC 48
+0E 46 0A 40 2C 00 F2 4E 36 4E 40 44 FC 4E D4 4E
+42 4F 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 32 4F 00 40 4E 4F 0A 4D 4F 56 2E 42
+85 12 32 4F 40 40 00 00 06 41 44 44 85 12 32 4F
+00 50 68 4F 0A 41 44 44 2E 42 85 12 32 4F 40 50
+74 4F 08 41 44 44 43 00 85 12 32 4F 00 60 82 4F
+0C 41 44 44 43 2E 42 00 85 12 32 4F 40 60 BA 4B
+08 53 55 42 43 00 85 12 32 4F 00 70 A0 4F 0C 53
+55 42 43 2E 42 00 85 12 32 4F 40 70 AE 4F 06 53
+55 42 85 12 32 4F 00 80 BE 4F 0A 53 55 42 2E 42
+85 12 32 4F 40 80 CA 4F 06 43 4D 50 85 12 32 4F
+00 90 D8 4F 0A 43 4D 50 2E 42 85 12 32 4F 40 90
+00 00 08 44 41 44 44 00 85 12 32 4F 00 A0 F2 4F
+0C 44 41 44 44 2E 42 00 85 12 32 4F 40 A0 20 4F
+06 42 49 54 85 12 32 4F 00 B0 10 50 0A 42 49 54
+2E 42 85 12 32 4F 40 B0 1C 50 06 42 49 43 85 12
+32 4F 00 C0 2A 50 0A 42 49 43 2E 42 85 12 32 4F
+40 C0 36 50 06 42 49 53 85 12 32 4F 00 D0 44 50
+0A 42 49 53 2E 42 85 12 32 4F 40 D0 00 00 06 58
+4F 52 85 12 32 4F 00 E0 5E 50 0A 58 4F 52 2E 42
+85 12 32 4F 40 E0 90 4F 06 41 4E 44 85 12 32 4F
+00 F0 78 50 0A 41 4E 44 2E 42 85 12 32 4F 40 F0
+40 44 F2 4E 36 4E 98 50 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F 50 50 06 52 52 43 85 12
+90 50 00 10 AA 50 0A 52 52 43 2E 42 85 12 90 50
+40 10 E4 4F 08 53 57 50 42 00 85 12 90 50 80 10
+B6 50 06 52 52 41 85 12 90 50 00 11 D2 50 0A 52
+52 41 2E 42 85 12 90 50 40 11 C4 50 06 53 58 54
+85 12 90 50 80 11 00 00 08 50 55 53 48 00 85 12
+90 50 00 12 F8 50 0C 50 55 53 48 2E 42 00 85 12
+90 50 40 12 EC 50 08 43 41 4C 4C 00 85 12 90 50
+80 12 1A 53 0E 4A 84 12 82 46 1E 40 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 41 16 51 06 53
+3E 3D 86 12 00 38 3E 51 04 53 3C 00 86 12 00 34
+06 51 06 30 3E 3D 86 12 00 30 52 51 04 30 3C 00
+86 12 00 30 8E 4B 04 55 3C 00 86 12 00 2C 66 51
+06 55 3E 3D 86 12 00 28 5C 51 06 30 3C 3E 86 12
+00 24 7A 51 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A
+30 4D 00 50 08 54 48 45 4E 00 1A 42 C8 1D 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D 70 51 08 45 4C 53 45 00 1A 42
+C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A
+00 00 E3 3F DE 50 0A 42 45 47 49 4E 30 40 32 40
+C8 51 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D 84 50
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 92 51 28 45 0E 46
+E6 51 0C 52 45 50 45 41 54 00 0D 12 84 12 26 52
+AA 51 0E 46 56 52 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 1D CB 2F 98 42 C8 1D 00 00 30 4D 42 52 06 42
+57 31 85 12 54 52 00 00 6E 52 06 42 57 32 85 12
+54 52 00 00 7A 52 06 42 57 33 85 12 54 52 00 00
+92 52 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92
+C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 90 52 00 00
+B6 52 06 46 57 32 85 12 90 52 00 00 C2 52 06 46
+57 33 85 12 90 52 00 00 30 52 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 C8 49
+D4 48 0E 46 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+EC 3F FC 4E 0A 40 2C 00 92 46 A4 47 AC 40 D8 49
+40 44 F2 4E D4 4E 28 53 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E 86 52 08 52 52 43 4D 00 85 12 12 53
+50 00 56 53 08 52 52 41 4D 00 85 12 12 53 50 01
+64 53 08 52 4C 41 4D 00 85 12 12 53 50 02 72 53
+08 52 52 55 4D 00 85 12 12 53 50 03 84 51 0A 50
+55 53 48 4D 85 12 12 53 00 15 8E 53 08 50 4F 50
+4D 00 85 12 12 53 00 17 D2 C3 23 02 E2 B2 60 02
+02 24 30 40 F2 41 1A 52 04 20 19 62 06 20 92 43
+14 20 C2 4A 15 20 8A 10 C2 4A 16 20 C2 49 17 20
+89 10 C2 49 18 20 B0 12 1C 54 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 1A 43 E1 3F 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
+80 53 12 52 5F 53 45 43 54 5F 57 58 1C D3 F2 40
+51 00 19 20 B0 12 A8 53 38 20 B0 12 1C 54 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 DA 52 12 57 5F 53 45 43 54 5F
+57 58 2C D3 F0 40 58 00 81 CB B0 12 A8 53 15 20
+3A 40 FE FF 29 43 B0 12 20 54 D2 49 00 1E 4E 06
+03 43 19 53 39 90 00 02 F8 23 39 40 03 00 B0 12
+1E 54 7A C0 E1 00 6A 82 D9 27 8C 10 1C 52 4C 06
+D2 D3 23 02 84 12 9E 43 1E 40 0B 3C 20 53 44 20
+45 72 72 6F 72 21 E8 54 2F 83 8F 4E 00 00 B2 40
+10 00 BE 1D 0E 4C 84 12 4E 46 12 41 B0 12 54 41
+E2 B2 60 02 8A 20 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
+39 40 6E 01 29 83 89 43 02 20 FC 23 39 42 B0 12
+1E 54 D2 C3 23 02 2C 42 B2 40 95 00 14 20 B2 40
+00 40 18 20 B0 12 18 54 02 24 30 40 CA 54 B0 12
+1C 54 7A 93 FC 23 B2 40 87 AA 14 20 92 43 16 20
+B2 40 00 48 18 20 B0 12 18 54 29 42 B0 12 1E 54
+92 43 14 20 82 43 16 20 78 43 3C 42 B2 40 00 77
+18 20 B0 12 18 54 B2 40 40 69 18 20 B0 12 D6 53
+03 24 58 83 F3 23 D9 3F 0C 5C A2 43 16 20 B2 40
+00 50 18 20 B0 12 D6 53 D0 23 92 D3 40 06 82 43
+46 06 92 C3 40 06 0A 43 09 43 B0 12 4C 54 38 40
+00 1E 92 48 C6 01 04 20 92 48 C8 01 06 20 5C 48
+C2 01 7C 80 0C 00 08 24 5C 53 06 24 6C 52 04 24
+3C 50 07 20 30 40 D0 54 09 43 B0 12 4C 54 A2 43
+2C 20 19 48 0E 00 82 49 08 20 1A 48 24 00 82 4A
+0A 20 09 5A 82 49 0C 20 09 5A 58 48 0D 00 82 48
+12 20 09 88 09 88 82 49 10 20 30 41 82 43 32 20
+30 40 84 41 92 4B 0E 00 22 20 92 4B 10 00 24 20
+5A 42 23 20 58 42 22 20 59 42 24 20 89 10 0A D9
+88 10 08 58 0A 6A 88 10 08 58 30 41 1A 52 08 20
+09 43 FC 3E 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 54 56 5A 4B
+03 00 82 5A 1A 20 82 63 1C 20 30 41 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 A3 25 09 4B 3B 50 1C 00
+3B 90 18 21 EF 23 0C 5C 9B 3D 0C 43 82 4B 32 20
+8B 49 00 00 09 93 0A 24 99 52 C6 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 1A 24 A4 37 8B 43 16 00 7A 93 02 24 07 38
+35 3C B2 40 1C 21 A0 40 B2 40 B8 43 D0 42 9B 42
+C2 1D 18 00 9B 82 C6 1D 18 00 9B 42 C4 1D 1A 00
+9B 52 C6 1D 1A 00 22 3C 30 41 1B 42 32 20 82 43
+1E 20 B2 90 00 02 20 20 3F 20 BB 80 00 02 12 00
+8B 73 14 00 DB 53 03 00 DB 92 12 20 03 00 0E 28
+CB 43 03 00 B0 12 24 56 B0 12 4C 56 8B 43 10 00
+9B 48 00 1E 0E 00 9B 48 02 1E 10 00 B2 40 00 02
+20 20 8B 93 14 00 0B 20 92 9B 12 00 1E 20 1C 2C
+BB 90 00 02 12 00 03 2C 92 4B 12 00 20 20 B0 12
+7E 56 1A 42 1A 20 19 42 1C 20 38 3E CB 43 02 00
+2B 4B 82 4B 32 20 0B 93 06 24 92 4B 16 00 1E 20
+B0 12 AC 57 22 C3 30 41 1B 42 32 20 0B 93 FB 27
+EB 92 02 00 04 20 B0 12 6A 5B B0 12 5A 5C CB 93
+02 00 E4 37 1E 4B 18 00 9F 4B 1A 00 00 00 31 50
+06 00 3D 41 B0 12 DC 57 02 24 30 40 B0 43 B2 40
+3C 1D A0 40 B2 40 D2 42 D0 42 30 40 9E 43 09 93
+07 24 F8 90 20 00 00 1E 03 20 18 53 19 83 F9 23
+30 41 98 4C 0B 52 45 41 44 22 5A 43 20 3C 00 4B
+09 44 45 4C 22 00 6A 43 1A 3C C6 49 0D 57 52 49
+54 45 22 00 6A 42 13 3C AE 49 0F 41 50 50 45 4E
+44 22 7A 42 0C 3C AA 4B 0A 43 4C 4F 53 45 B0 12
+F8 57 30 4D 0E 49 0B 4C 4F 41 44 22 7A 43 2F 83
+8F 4E 00 00 0E 4A 82 93 BC 1D 0B 24 0D 12 84 12
+0A 40 0A 40 FC 48 FC 48 7C 45 0A 40 D2 58 FC 48
+0E 46 0D 12 84 12 0A 40 22 00 92 46 4C 49 D0 58
+3D 41 36 4F 0E 56 82 4E 36 20 A2 43 22 20 82 43
+24 20 1C 43 0E 96 8C 24 F6 90 3A 00 01 00 01 20
+26 53 F6 90 5C 00 00 00 03 20 16 53 0E 96 66 24
+82 46 34 20 B0 12 54 56 15 42 12 20 B0 12 D2 57
+2C 43 0A 43 08 4A 58 0E 08 58 82 48 30 20 C8 93
+00 1E 60 24 39 42 F8 96 00 1E 04 20 18 53 19 83
+FA 23 16 53 F6 90 2E 00 FF FF 19 24 39 50 03 00
+B0 12 3E 58 06 20 F6 90 5C 00 FF FF 29 24 0E 96
+27 28 16 42 34 20 1A 53 3A 90 10 00 DB 23 92 53
+1A 20 82 63 1C 20 15 83 D1 23 2C 42 49 3C F6 90
+2E 00 FE FF EE 27 B0 12 3E 58 EB 23 39 40 03 00
+F8 96 00 1E 04 20 18 53 19 83 FA 23 09 3C 0E 96
+E0 2F F6 90 5C 00 FF FF DC 23 B0 12 3E 58 D9 23
+18 42 30 20 92 48 1A 1E 22 20 92 48 14 1E 24 20
+F8 B0 10 00 0B 1E 13 24 82 93 24 20 05 20 82 93
+22 20 02 20 A2 43 22 20 0E 96 9A 23 92 42 22 20
+2C 20 92 42 24 20 2E 20 8F 43 00 00 03 3C 2A 4F
+B0 12 9C 56 35 40 B6 40 36 40 C4 40 3A 4F 3E 4F
+0A 93 04 24 7A 93 39 20 0C 93 02 20 30 40 B0 43
+0D 12 84 12 9E 43 1E 40 0B 3C 20 4F 70 65 6E 45
+72 72 6F 72 B2 40 E6 54 E2 B2 60 02 02 24 30 40
+86 41 92 12 3E 18 3F 40 7E 1C 8F 43 00 00 0D 12
+84 12 1E 40 0F 4C 4F 41 44 22 20 42 4F 4F 54 2E
+34 54 48 22 B2 40 7C 49 54 58 08 42 4F 4F 54 00
+B2 40 18 5A C2 42 30 4D 4C 47 0C 4E 4F 42 4F 4F
+54 00 B2 40 86 41 C2 42 30 4D 1A 93 89 20 0C 93
+C7 23 30 4D 4A 5A 08 52 45 41 44 00 2F 83 8F 4E
+00 00 1E 42 32 20 B0 12 6A 57 1E 82 32 20 30 4D
+08 4A 1A 52 08 20 B0 12 A0 5A 0A 48 1A 52 0C 20
+09 43 30 40 92 54 3C 42 0A 12 2A 41 82 9A 0A 20
+2B 25 B0 12 4C 56 88 93 02 1E 03 20 88 93 00 1E
+08 24 28 52 38 90 00 02 F6 2B 91 53 00 00 08 43
+EC 3F A2 41 26 20 82 48 28 20 0C 43 B8 43 00 1E
+6A 41 B8 40 FF 0F 02 1E 08 11 8A 10 08 5A 5A 41
+01 00 0A 11 08 10 82 4A 24 20 82 48 22 20 2A 41
+B0 12 90 5A 3A 41 30 41 90 4B 0A 00 16 C5 90 4B
+0C 00 12 C5 B0 12 30 56 82 4A 26 20 82 48 28 20
+0A 12 B0 12 4C 56 1A 48 00 1E 88 43 00 1E 19 48
+02 1E 88 43 02 1E 39 F0 FF 0F 39 90 FF 0F 02 20
+3A 93 10 24 82 4A 22 20 82 49 24 20 B0 12 30 56
+2A 91 E9 27 09 4A 2A 41 81 49 00 00 B0 12 90 5A
+2A 41 DF 3F 3A 41 30 40 90 5A 9B 52 1E 20 12 00
+8B 63 14 00 1A 42 1A 20 19 42 1C 20 30 40 92 54
+2A 93 BC 20 0C 93 09 20 F8 40 E5 00 00 1E B0 12
+74 5B B0 12 08 5B B0 12 F8 57 30 4D 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 28 39 80 03 00
+B0 12 48 5C 39 40 03 00 7A 4B C8 4A 00 1E 82 9B
+36 20 12 28 0D 12 3D 40 0F 00 3C 40 F8 5B 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 1A 4B 04 00 19 4B
+06 00 B0 12 4C 54 18 4B 08 00 B0 12 9C 5B 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
+92 54 B2 40 00 02 1E 20 1B 42 32 20 B0 12 6A 5B
+82 43 1E 20 DB 53 03 00 DB 92 12 20 03 00 1D 28
+B0 12 24 56 08 12 0A 12 B0 12 A6 5A 2A 91 03 24
+2A 41 B0 12 4C 56 3A 41 38 41 98 42 22 20 00 1E
+98 42 24 20 02 1E B0 12 90 5A AB 42 02 00 9B 42
+22 20 0E 00 9B 42 24 20 10 00 30 40 8A 56 6C 58
+0A 57 52 49 54 45 B0 12 92 5C 30 4D 2A 92 54 20
+2C 93 0E 24 0C 93 3D 24 0D 12 84 12 1E 40 0C 3C
+20 57 72 69 74 65 45 72 72 6F 72 00 B2 40 E6 54
+0A 43 08 43 B0 12 A6 5A B0 12 D2 57 18 42 30 20
+F8 40 20 00 0B 1E B0 12 9C 5B 88 43 0C 1E 88 4A
+0E 1E 88 49 10 1E 98 42 24 20 14 1E 98 42 22 20
+1A 1E 88 43 1C 1E 88 43 1E 1E 2C 42 1B 42 34 20
+82 9B 36 20 D1 27 FB 90 2E 00 00 00 CD 27 39 40
+0B 00 B0 12 18 5C B0 12 74 5B 2A 42 B0 12 9C 56
+30 4D B0 12 08 5B 8B 43 12 00 8B 43 14 00 90 4B
+0A 00 90 C2 90 4B 0C 00 8C C2 B0 12 30 56 B0 12
+A6 5A B0 12 DA 5C 30 4D 2C 93 BA 27 0C 93 AC 23
+EB 42 02 00 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 B0 12 CE 57 1A 4B 12 00 BB C0
+FF 01 12 00 3A F0 FF 01 82 4A 1E 20 30 4D 60 58
+10 54 45 52 4D 32 53 44 22 00 0D 12 84 12 74 58
+22 5E 0A 43 B0 12 5C 43 92 B3 DC 05 FD 27 59 42
+CC 05 C2 49 CE 05 69 92 0D 24 CA 49 00 1E 1A 53
+3A 90 FF 01 04 24 F0 2B B0 12 92 5C EA 3F B0 12
+F8 42 EA 3F F2 90 0D 00 CC 05 FC 27 B0 12 F8 42
+F2 90 0A 00 CC 05 FC 27 82 4A 1E 20 B0 12 F8 57
+3D 41 30 4D
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+EC 42 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 08 42
+q
index fc3e728..b7c3a10 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF 16 68 3E 4D 34 01
-10 00 C1 87 B6 41 62 5F B8 41 20 5E 84 42 16 68
-3E 4D 72 42 E0 43 00 43 DC 42 3C 1D AE 44 D4 40
-E2 40 EE 40 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+E6 42 56 41 F8 55 D8 54 44 41 56 5E 3C 4C F6 4B
+F6 4B D4 42 58 43 30 43 3C 1D E0 1C EA 45 B6 40
+C4 40 06 45 20 00 0A 00 00 1C 56 41 F8 55 D8 54
+44 41 56 5E 3C 4C F6 4B F6 4B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4000
-B0 12 B8 41 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 40
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 62 5F 39 40 22 18
-B2 49 70 42 B2 49 DE 43 B2 49 FE 42 B2 49 DA 42
-B2 49 CA 40 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 46 4E 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 41 0E 12 B0 12
-F8 40 0A 40 DE 1D 2E 44 18 43 EE 40 34 40 8A 41
-14 40 05 1B 5B 37 6D 40 AA 43 0A 40 02 18 2E 44
-24 45 F6 43 34 40 7E 41 14 40 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 AA 43 EE 44 AA 43
-14 40 04 1B 5B 30 6D 00 AA 43 76 48 2E 93 13 28
-B2 D0 C0 07 C0 06 18 42 02 18 08 11 38 D0 00 04
-82 48 D4 06 F2 D0 03 00 6A 02 92 C3 C0 06 A2 D2
-EA 06 92 C3 30 01 30 41 48 43 A2 B3 EC 06 FD 27
-C2 48 CE 06 A2 B2 EC 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 41 F2 B0 40 00 40 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE 41 04 57 41 52 4D 00
-B0 12 20 5E 78 40 03 00 B0 12 BA 41 84 12 14 40
-07 0D 0A 1B 5B 37 6D 40 AA 43 0A 40 02 18 2E 44
-24 45 0A 40 23 00 FC 42 24 45 14 40 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 AA 43 0A 40 40 FF 28 40 22 44
-EE 44 14 40 0A 62 79 74 65 73 20 66 72 65 65 00
-3A 40 7E 41 00 00 06 41 43 43 45 50 54 00 30 40
-72 42 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 EC 06 B2 B0 10 00 C0 06
-B7 22 3A 17 92 B3 EC 06 FD 27 58 42 CC 06 48 9B
-0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 41 82 93 DE 1D 02 24 92 53 DE 1D 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC 42 2F 83 8F 4E
-00 00 58 43 B0 12 BA 41 92 B3 EC 06 FD 27 1E 42
-CC 06 30 4D 00 00 04 45 4D 49 54 00 30 40 00 43
-08 4E 3E 4F A2 B3 EC 06 FD 27 C2 48 CE 06 30 4D
-F6 42 04 45 43 48 4F 00 B2 40 C2 48 0A 43 82 43
-DE 1D 38 40 05 00 B0 12 BA 41 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A 43 92 43 DE 1D
-28 42 F1 3F 0D 12 3D 40 64 43 1B 42 32 20 9B 42
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 12 3D 0E 93 3E 4F
+C3 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 D2 42 B2 49
+56 43 B2 49 2E 43 B2 49 A0 40 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 B0 4C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 41 B0 12 D0 40 10 45 AC 40
+42 41 70 43 1E 40 05 1B 5B 37 6D 40 FA 43 0A 40
+02 18 32 45 5E 46 FA 43 1E 40 04 1B 5B 30 6D 00
+FA 43 46 49 48 43 A2 B3 EC 06 FD 27 C2 48 CE 06
+A2 B2 EC 06 FD 27 30 41 B2 D0 C0 07 C0 06 18 42
+02 18 08 11 38 D0 00 04 82 48 D4 06 F2 D0 03 00
+6A 02 92 C3 C0 06 A2 D2 EA 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 70 43 1E 40 07 0D 0A 1B 5B 37
+6D 40 FA 43 0A 40 02 18 32 45 5E 46 0A 40 23 00
+54 43 5E 46 1E 40 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+FA 43 0A 40 40 FF 32 40 26 45 2A 46 1E 40 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 40 36 41 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 41 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+40 00 40 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+5C 01 31 40 E0 1C 3F 40 80 1C B2 D3 06 02 B2 40
+FC FF 02 02 B2 43 26 02 B2 D3 22 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 B2 40 33 00 64 01 D2 43 61 01 39 40
+40 00 18 42 00 18 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
+1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42 9E 01
+B0 12 D0 40 80 41 00 00 0C 41 43 43 45 50 54 00
+30 40 D4 42 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40
+20 00 3D 15 8D 3E 21 52 A2 C2 EC 06 B2 B0 10 00
+C0 06 86 22 3A 17 92 B3 EC 06 FD 27 58 42 CC 06
+48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27
+1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F
+3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40 30 43
+58 43 B0 12 46 41 2F 83 8F 4E 00 00 92 B3 EC 06
+FD 27 1E 42 CC 06 B0 12 44 41 30 4D 00 00 08 45
+4D 49 54 00 30 40 58 43 08 4E 3E 4F A2 B3 EC 06
+FD 27 C2 48 CE 06 30 4D 4E 43 08 45 43 48 4F 00
+B2 40 C2 48 62 43 38 40 05 00 B0 12 46 41 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 62 43
+28 42 F3 3F 0D 12 3D 40 B4 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 66 43 2D 83 0C 9B 16 2C 58 4C 00 1E
-1C 53 78 90 20 00 09 2C 78 90 0A 00 F5 23 3D 41
-82 4C 1E 20 3C 40 20 00 9D 3F 0E 99 BB 27 CA 48
-00 00 1A 53 1E 53 B6 3F 1A 15 B0 12 18 60 19 17
-DC 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 C6 43 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FE 42 C8 43 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 41 02 43 52 00 30 40 E0 43
-0D 12 84 12 14 40 02 0D 0A 00 AA 43 AE 44 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 66 42 01 40 2E 4E
-30 4D 2C 44 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D D8 43 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E 40 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 68 44 02 23 53 00 0D 12 84 12
-6A 44 A4 44 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 98 44 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D A4 43 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 5E 44
-9C 44 EE 40 DC 44 B8 44 AA 43 62 48 FC 42 AE 44
-2E 43 01 2E 0E 93 E3 37 38 43 E2 3F D6 44 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A 40 14 40 A8 47
-0A 40 22 00 7A 45 48 45 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D 22 45
-82 2E 22 00 0D 12 84 12 32 45 0A 40 AA 43 A8 47
-AE 44 FA 41 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 40 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 40 35 40 D4 40 30 4D
-00 00 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 FC 46 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F FE 46 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 40 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D A6 47 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A 40 00 00 8A 49 02 00 3E 4F 32 B0
+20 20 02 3C B6 43 2D 83 0C 9B 16 2C 58 4C 00 1E
+1C 53 78 90 20 00 09 2C 78 90 0A 00 F5 23 82 4C
+1E 20 3D 41 3C 40 20 00 A4 3F 0E 99 BF 27 CA 48
+00 00 1A 53 1E 53 BA 3F 1A 15 B0 12 46 57 19 17
+DC 3F 00 00 08 54 59 50 45 00 0D 12 3D 40 0A 44
+29 4F 8F 4E 00 00 7E 49 A5 3F 0C 44 2D 83 2F 83
+5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00
+0C 4E 38 4F 3C 9F 39 4F 3E 4F 43 22 F9 98 00 00
+40 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F
+1E 83 37 22 9B 24 28 43 0D 5B 45 4C 53 45 5D 00
+0D 12 84 12 0A 40 00 00 2A 45 1C 44 6E 46 28 49
+B0 40 98 44 14 40 06 5B 54 48 45 4E 5D 00 20 44
+76 44 3C 44 5A 44 14 40 06 5B 45 4C 53 45 5D 00
+20 44 88 44 3C 44 58 44 1E 40 04 5B 49 46 5D 00
+20 44 5A 44 B2 40 58 44 1E 40 05 0D 6B 6F 20 0A
+FA 43 9A 40 84 40 B2 40 5A 44 48 44 0D 5B 54 48
+45 4E 5D 00 30 4D AC 44 09 5B 49 46 5D 00 0E 93
+3E 4F C6 27 30 4D B8 44 13 5B 44 45 46 49 4E 45
+44 5D 0D 12 84 12 1C 44 6E 46 D6 46 7A 48 EA 45
+C8 44 17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12
+84 12 1C 44 6E 46 D6 46 FA 44 3D 41 2F 53 1E 83
+0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D
+8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 1C
+0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00
+02 40 2E 4E 30 4D C8 42 02 21 BE 4F 00 00 3E 4F
+30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3
+30 4D E0 41 05 53 22 00 82 43 C0 1D 0D 12 84 12
+0A 40 1E 40 D8 48 0A 40 22 00 6E 46 6E 45 B2 40
+20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41
+30 4D 82 43 05 2E 22 00 0D 12 84 12 58 45 0A 40
+FA 43 D8 48 EA 45 00 00 04 3C 23 00 B2 40 B2 1D
+B2 1D 30 4D 54 45 02 23 1B 42 BE 1D 2C 4F 2F 83
+B0 12 46 40 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 A6 45 04 23 53 00 0D 12 84 12 A8 45
+E2 45 2D 83 09 DE 09 93 E1 23 3D 41 30 4D D6 45
+04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F
+30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F
+F0 45 08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00
+D2 33 30 4D 6A 43 04 55 2E 00 0C 43 2F 83 8F 4E
+00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3
+9F 53 00 00 0E 63 84 12 9C 45 1C 44 0A 46 DA 45
+06 45 18 46 F4 45 FA 43 EA 45 84 45 02 2E 0E 93
+E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40
+C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24
+7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00 00 00
+04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98
+0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B
+7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48
+C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D 00 00
+08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B
+0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58
+2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11
+68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
+FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83
+8F 4C 00 00 30 4D 5C 46 0E 3E 4E 55 4D 42 45 52
+1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04
+6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50
+0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04
+19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83
+E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D
+32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42
+BE 1D 0C 4E 0E 43 1E 15 3D 40 E0 47 7E 4C 6A 4C
+7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52
+6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20
+3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00
+38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27
+E2 47 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0
+00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53
+20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C
+69 49 79 80 3A 00 03 28 79 80 07 00 0C 28 79 50
+0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12
+3E 40 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00
+4A 93 1D 17 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 98 45
+03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12 84 40
+1C 44 6E 46 B0 40 B2 49 D6 46 9C 48 0A 4E 3E 4F
+3D 40 B6 48 6D 27 3D 40 90 48 1A E2 BC 1D 14 24
+0E 12 3E 4F 30 41 B8 48 3E 4F 3D 40 90 48 19 20
+DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40
+8E 4A 2A 3C 80 48 02 2C A2 53 C8 1D 1A 42 C8 1D
+8A 4E FE FF 3E 4F 30 4D D6 48 0F 4C 49 54 45 52
+41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52
+C8 1D BA 40 0A 40 00 00 8A 49 02 00 3E 4F 32 B0
 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-B4 44 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D C8 44 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 40 62 48 7A 45 1E 48 9C 26
-3D 40 26 48 DE 3E 28 48 0A 4E 3E 4F 3D 40 42 48
-36 27 3D 40 18 48 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 44 48 3E 4F 3D 40 18 48 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 E4 49 CC 3F
-4C 48 86 12 20 00 34 44 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 DC 43 BC 40
-12 48 12 44 44 44 14 40 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 41 0A 40 40 FF 28 40 4C 44
-14 40 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 41
-3A 40 8C 48 68 48 86 41 42 4F 52 54 22 00 0D 12
-84 12 32 45 0A 40 2A 41 A8 47 AE 44 DC 45 01 27
-0D 12 84 12 62 48 7A 45 E2 45 34 40 60 48 AE 44
-00 00 83 5B 27 5D 0D 12 84 12 E0 48 0A 40 0A 40
-A8 47 A8 47 AE 44 F2 48 81 5B 82 43 BE 1D 30 4D
-5A 44 01 5D B2 43 BE 1D 30 4D 12 49 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 62 48 7A 45 E2 45 F6 43 34 40
-60 48 44 44 34 40 54 49 0A 40 0A 40 A8 47 A8 47
-0A 40 A8 47 A8 47 AE 44 08 49 01 3A 30 12 A4 49
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 62 48 7A 45
-72 49 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 40 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 41 5A 49 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A 40 AE 44 A8 47 B6 49 0A 49 AE 44
-08 48 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D F2 47 06 43 52 45 41 54
-45 00 B0 12 60 49 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F E8 49 07 3A 4E 4F 4E 41 4D 45 30 12 A4 49
-2F 83 8F 4E 00 00 1A 42 C6 1D 1A B3 0A 63 0E 4A
-39 40 10 02 08 49 28 53 99 3F 12 43 05 44 45 46
-45 52 B0 12 60 49 BA 40 30 40 FC FF BA 40 E2 4D
-FE FF A8 3F BE 4F 02 00 3E 4F 30 4D 02 4A 82 49
-53 00 0D 12 82 93 BE 1D 06 24 84 12 F6 48 0A 40
-74 4A A8 47 AE 44 84 12 E0 48 74 4A AE 44 1A 4A
-04 43 4F 44 45 00 B0 12 60 49 A2 82 C6 1D 82 43
-78 5C 0D 12 84 12 48 4D 1A 4D AE 44 7E 4A 07 48
-44 4E 43 4F 44 45 B2 40 1E 4D DA 1D EC 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 B6 49 6E 4D
-A2 4D AE 44 A0 4A 07 43 4F 44 45 4E 4E 4D 30 12
-AA 4A A6 3F 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 6E 4D A2 4D AE 44 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-BE 4A 85 48 49 32 4C 4F 0D 12 84 12 28 40 82 4C
-A8 47 0A 49 AE 4A AE 44 34 4A 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 4A 4B 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 40 00 00 26 44 62 48 7A 45 F8 47
-EE 43 34 40 E2 4B FC 43 14 40 06 5B 54 48 45 4E
-5D 00 54 4B BC 4B 78 4B 9A 4B AE 44 FC 43 14 40
-06 5B 45 4C 53 45 5D 00 54 4B D2 4B 78 4B 98 4B
-AE 44 14 40 04 5B 49 46 5D 00 54 4B 9A 4B 3A 40
-98 4B D0 43 14 40 05 0D 0A 6B 6F 20 AA 43 BC 40
-AC 40 3A 40 9A 4B 88 4B 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D F8 4B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 62 48 7A 45 E2 45
-06 4C AE 44 0C 4C 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 16 4C 3E 44 AE 44 3E 4C B2 4E
-0A 18 B2 4E 0C 18 BE 12 3E 4F 3D 41 DB 3C BA 47
-06 4D 41 52 4B 45 52 00 B0 12 60 49 BA 40 85 12
-FC FF BA 40 3C 4C FE FF 28 83 8A 48 00 00 9A 42
-C8 1D 02 00 BA 40 AA 40 04 00 B2 50 06 00 C6 1D
-9D 3E 2E 53 30 4D 5C 4A 05 44 4F 45 53 3E 1A 42
-BA 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
-74 45 0A 56 4F 43 41 42 55 4C 41 52 59 00 0D 12
-84 12 22 4A 0A 40 10 00 0A 40 00 00 3E 40 0A 40
-00 00 A8 47 60 40 BE 4C 28 40 0A 40 C8 1D EE 43
-2E 44 A8 47 36 44 8E 4C 0A 40 CA 1D 36 44 AE 44
-DE 48 05 46 4F 52 54 48 85 12 D8 4C 42 4D AC 63
-E0 61 E2 4C 32 4B D4 42 FA 61 88 4D 14 4E 02 64
-AA 67 C6 66 00 00 9E 63 1C 49 42 46 00 00 C6 48
-09 41 53 53 45 4D 42 4C 45 52 85 12 D8 4C 44 5B
-DC 5A 40 5A 00 55 92 53 00 00 08 59 00 00 68 5C
-64 5D F6 53 AA 5D 10 5B 00 00 00 00 DA 54 0C 4D
-10 4D 04 41 4C 53 4F 00 3A 40 0C 00 39 40 D6 1D
-08 49 28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23
-30 4D 28 49 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 60 45 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 E8 4C 8E 4D A2 4D
-B2 4D 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 64 4D 09 50 57 52 5F 53 54 41 54 45
-85 12 AA 4D 3E 4D 16 68 2E 45 09 52 53 54 5F 53
-54 41 54 45 92 42 0A 18 F6 4D 92 42 0C 18 F4 4D
-EF 3F E6 4D 08 50 57 52 5F 48 45 52 45 00 92 42
-C6 1D F6 4D 92 42 C8 1D F4 4D 30 4D FA 4D 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18 92 42
-C8 1D 0C 18 EC 3F 3E 90 0E 00 D2 27 2E 92 DA 37
-0E 93 CE 37 39 40 10 00 29 83 B9 43 80 FF FC 23
-B9 40 96 4E FE FF 29 83 B9 40 E2 41 FE FF 39 90
-AE FF F9 23 39 40 14 18 B2 49 E4 41 B2 49 FA 40
-B2 49 02 40 B2 49 02 42 B2 49 BC FF B2 49 0A 18
-B2 49 0C 18 B7 3F B2 D0 03 00 04 01 B2 D0 10 00
-00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40 80 1C
-39 40 00 10 29 83 89 43 00 1C FC 23 B2 D3 06 02
-B2 40 FC FF 02 02 B2 43 26 02 B2 D3 22 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 B2 40 33 00 64 01 D2 43 61 01
-39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18 1E D2
-9E 01 B0 12 F8 40 00 42 38 40 C0 1D 0A 4E 39 48
-2E 48 09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27
-1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12
-12 12 C4 1D 84 12 7A 45 E2 45 3E 44 34 40 88 4F
-9E 46 34 40 A2 4F 9C 4F 8A 4F 3C 4E 3C 80 87 12
-05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17
-30 41 A4 4F B2 41 C4 1D 3E 41 84 12 0A 40 2B 00
-7A 45 E2 45 3E 44 34 40 C0 4F 9E 46 34 40 60 48
-08 44 7A 45 9E 46 34 40 60 48 CC 4F 3E 5F E7 3F
-32 B0 00 02 01 24 3E 4F 30 41 3E 40 28 00 B0 12
-6C 4F B0 12 D0 4F 19 42 C6 1D A2 53 C6 1D 89 4E
-00 00 3E 40 29 00 1C 15 92 92 C0 1D C4 1D 02 20
-30 40 CE 49 12 12 C4 1D 92 53 C4 1D 84 12 7A 45
-9E 46 34 40 22 50 18 50 21 53 3E 90 10 00 84 2D
-BE 2B 24 50 B2 41 C4 1D BA 3F 0D 12 84 12 62 48
-48 4F 34 50 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 6C 4F
-B0 12 D0 4F 3C 40 00 03 0E 93 1C 24 3C 40 10 03
+12 46 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00
+0E 4A 3E F3 30 4D 38 45 0A 41 4C 4C 4F 54 82 5E
+C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12 1E 40
+02 0D 0A 00 FA 43 94 40 8A 48 18 45 42 45 1E 40
+0B 73 74 61 63 6B 20 65 6D 70 74 79 08 41 32 40
+0A 40 40 FF 4A 45 1E 40 09 46 52 41 4D 20 66 75
+6C 6C 08 41 B2 40 4E 49 38 49 0D 41 42 4F 52 54
+22 00 0D 12 84 12 58 45 0A 40 08 41 D8 48 EA 45
+68 46 02 27 0D 12 84 12 1C 44 6E 46 D6 46 B0 40
+B4 49 7C 45 C0 48 E2 44 07 5B 27 5D 0D 12 84 12
+A4 49 0A 40 0A 40 D8 48 D8 48 EA 45 B8 49 03 5B
+82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D 30 4D
+30 45 11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12
+1C 44 6E 46 D6 46 B0 40 B4 49 42 45 AC 40 0C 4A
+0A 40 0A 40 D8 48 D8 48 0A 40 D8 48 D8 48 EA 45
+00 00 02 3A 30 12 62 4A 92 B3 C8 1D A2 63 C8 1D
+0D 12 84 12 1C 44 6E 46 2A 4A 3D 41 5A D3 5A 53
+0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00
+0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D 82 49
+B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D
+30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43
+BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E 40 0F 73
+74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21 12 41
+CE 49 03 3B 82 93 BC 1D F4 26 0D 12 84 12 0A 40
+EA 45 D8 48 74 4A D0 49 EA 45 00 00 12 49 4D 4D
+45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00 30 4D
+22 49 0C 43 52 45 41 54 45 00 B0 12 18 4A BA 40
+86 12 FC FF 8A 4A FE FF 3A 3D F4 43 0A 44 4F 45
+53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D 02 00
+3D 41 30 4D 12 4A 0E 3A 4E 4F 4E 41 4D 45 30 12
+62 4A 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63
+0E 4A 39 40 12 02 08 49 98 3F AC 4A 05 49 53 00
+0D 12 82 93 BC 1D 08 20 84 12 A4 49 2E 4B 3D 41
+BE 4F 02 00 3E 4F 30 4D 84 12 BC 49 0A 40 30 4B
+D8 48 EA 45 C2 4A 08 43 4F 44 45 00 B0 12 18 4A
+A2 82 C8 1D 61 3C 04 46 0E 48 44 4E 43 4F 44 45
+B2 40 1C 4C CC 1D F2 3F 00 00 0E 45 4E 44 43 4F
+44 45 0D 12 84 12 74 4A 7A 4B 3D 41 92 42 D0 1D
+CC 1D 5D 3C 46 4B 0E 43 4F 44 45 4E 4E 4D 30 12
+50 4B B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D
+BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 1D
+B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49 A2 83
+C8 1D 1A 42 C8 1D EF 3F 58 4B 0B 48 49 32 4C 4F
+A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D
+B9 3F E4 4B B2 40 F6 4B D0 1D 82 4E CE 1D 30 40
+7C 45 85 12 E2 4B E2 49 56 58 52 5A 64 58 EC 5D
+26 46 D0 46 CC 5C CA 4B 1C 4B F6 4A 92 4A 72 58
+FE 4C 36 5A 00 00 00 00 85 12 E2 4B 78 53 FC 51
+1E 54 24 51 80 51 CE 51 AA 52 64 54 46 50 6A 51
+00 00 00 00 B8 4B 36 4F 00 00 D2 52 16 4C B2 40
+F6 4B CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00 BA 49
+00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54
+5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12 4A 4C
+30 4D 5C 4C 0E 52 53 54 5F 52 45 54 39 40 42 18
+2C 49 3A 40 C8 1D B0 12 4A 4C 1A 42 CA 1D 3B 40
+10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B
+89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D
+0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23
+B9 40 10 42 FE FF 29 83 B9 40 FA 41 FE FF 39 90
+AE FF F9 23 39 40 10 18 B2 49 BC FF 3B 40 10 00
+3A 40 3A 18 B0 12 4E 4C 82 43 4A 18 C7 3F F0 4C
+B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F D8 49 0C 4D
+41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12 1C 44
+6E 46 D6 46 AC 40 1C 4D 10 45 B0 48 1E 4D 3E 4F
+3D 41 B2 41 C6 1D B0 12 18 4A BA 40 85 12 FC FF
+BA 40 EE 4C FE FF 28 83 8A 48 00 00 BA 40 82 40
+02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D A8 49
+FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12 6E 46
+D6 46 AC 40 88 4D 68 4D 3C 4E 3C 80 87 12 0A 24
+1C 53 02 20 2E 4E 06 3C BE 90 EE 4C 00 00 01 20
+3E 52 2E 83 21 53 30 41 80 47 AC 40 90 4D 84 4D
+92 4D B2 41 C6 1D 30 41 92 83 C6 1D 3E 40 28 00
+0A 4E 3D 15 B0 12 58 4D 15 20 3E 40 2B 00 B0 12
+58 4D 06 20 3E 40 2D 00 B0 12 58 4D 92 83 C6 1D
+0E 12 1E 41 02 00 84 12 6E 46 80 47 AC 40 B4 49
+D2 4D 3E 51 3A 17 30 41 B0 12 98 4D 19 42 C8 1D
+89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53 C6 1D
+1A 42 C6 1D 3D 15 84 12 6E 46 80 47 AC 40 0A 4E
+02 4E 3E 90 10 00 E6 2B 7C 2D 0C 4E A2 41 C6 1D
+E1 3F 03 20 B0 12 F0 4D 43 3C 7A 90 23 00 24 20
+B0 12 A0 4D 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 6C 4F B0 12 D0 4F
-EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 F6 4F 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-F6 4F 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E D8 3F B0 12 F6 4F FA 23 3C 50 10 00 B0 12
-DA 4F EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12
-84 12 62 48 48 4F 08 51 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C5 3F B0 12 F6 4F E0 23
-3C 50 80 00 B0 12 DA 4F DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 40 00 13 A8 47 AE 44 0A 40
-2C 00 2A 50 FE 50 48 51 09 4B 2E 4E 0E DC A0 3F
-20 4B 03 4D 4F 56 85 12 3E 51 00 40 52 51 05 4D
-4F 56 2E 42 85 12 3E 51 40 40 00 00 03 41 44 44
-85 12 3E 51 00 50 6C 51 05 41 44 44 2E 42 85 12
-3E 51 40 50 78 51 04 41 44 44 43 00 85 12 3E 51
-00 60 86 51 06 41 44 44 43 2E 42 00 85 12 3E 51
-40 60 2C 51 04 53 55 42 43 00 85 12 3E 51 00 70
-A4 51 06 53 55 42 43 2E 42 00 85 12 3E 51 40 70
-B2 51 03 53 55 42 85 12 3E 51 00 80 C2 51 05 53
-55 42 2E 42 85 12 3E 51 40 80 F6 4A 03 43 4D 50
-85 12 3E 51 00 90 DC 51 05 43 4D 50 2E 42 85 12
-3E 51 40 90 D0 4A 04 44 41 44 44 00 85 12 3E 51
-00 A0 F6 51 06 44 41 44 44 2E 42 00 85 12 3E 51
-40 A0 E8 51 03 42 49 54 85 12 3E 51 00 B0 14 52
-05 42 49 54 2E 42 85 12 3E 51 40 B0 20 52 03 42
-49 43 85 12 3E 51 00 C0 2E 52 05 42 49 43 2E 42
-85 12 3E 51 40 C0 3A 52 03 42 49 53 85 12 3E 51
-00 D0 48 52 05 42 49 53 2E 42 85 12 3E 51 40 D0
-00 00 03 58 4F 52 85 12 3E 51 00 E0 62 52 05 58
-4F 52 2E 42 85 12 3E 51 40 E0 94 51 03 41 4E 44
-85 12 3E 51 00 F0 7C 52 05 41 4E 44 2E 42 85 12
-3E 51 40 F0 62 48 2A 50 9A 52 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F CE 51 03 52 52 43
-85 12 94 52 00 10 AC 52 05 52 52 43 2E 42 85 12
-94 52 40 10 B8 52 04 53 57 50 42 00 85 12 94 52
-80 10 C6 52 03 52 52 41 85 12 94 52 00 11 D4 52
-05 52 52 41 2E 42 85 12 94 52 40 11 E0 52 03 53
-58 54 85 12 94 52 80 11 00 00 04 50 55 53 48 00
-85 12 94 52 00 12 FA 52 06 50 55 53 48 2E 42 00
-85 12 94 52 40 12 54 52 04 43 41 4C 4C 00 85 12
-94 52 80 12 1A 53 0E 4A 0D 12 84 12 24 45 14 40
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 41
-EE 52 03 53 3E 3D 86 12 00 38 42 53 02 53 3C 00
-86 12 00 34 08 53 03 30 3E 3D 86 12 00 30 56 53
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C 6A 53 03 55 3E 3D 86 12 00 28 60 53 03 30
-3C 3E 86 12 00 24 7E 53 02 30 3D 00 86 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 74 53 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 B1 2F 88 DA 00 00 30 4D 04 52 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 18 53 05 42 45 47 49 4E
-30 40 28 40 A8 53 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D 88 52 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 96 53
-08 44 AE 44 4C 53 06 52 45 50 45 41 54 00 0D 12
-84 12 2A 54 AE 53 AE 44 5A 54 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D
-EA 53 03 42 57 31 85 12 58 54 00 00 72 54 03 42
-57 32 85 12 58 54 00 00 7E 54 03 42 57 33 85 12
-58 54 00 00 96 54 3D 41 1A 42 C6 1D 28 4E B2 92
-C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 94 54 00 00
-B6 54 03 46 57 32 85 12 94 54 00 00 C2 54 03 46
-57 33 85 12 94 54 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 0D 12 84 12 E0 48 3C 48 AE 44 CE 54
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-F1 3F 62 48 48 4F 18 55 92 53 C4 1D 3E 40 2C 00
-84 12 7A 45 9E 46 34 40 60 48 F4 50 2E 55 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E 46 54 04 52 52 43
-4D 00 85 12 12 55 50 00 5C 55 04 52 52 41 4D 00
-85 12 12 55 50 01 6A 55 04 52 4C 41 4D 00 85 12
-12 55 50 02 78 55 04 52 52 55 4D 00 85 12 12 55
-50 03 88 53 05 50 55 53 48 4D 85 12 12 55 00 15
-94 55 04 50 4F 50 4D 00 85 12 12 55 00 17 86 55
-06 52 52 43 4D 2E 41 00 85 12 12 55 40 00 B0 55
-06 52 52 41 4D 2E 41 00 85 12 12 55 40 01 C0 55
-06 52 4C 41 4D 2E 41 00 85 12 12 55 40 02 D0 55
-06 52 52 55 4D 2E 41 00 85 12 12 55 40 03 A2 55
-07 50 55 53 48 4D 2E 41 85 12 12 55 00 14 F0 55
-06 50 4F 50 4D 2E 41 00 85 12 12 55 00 16 8A 54
-05 43 41 4C 4C 41 0D 12 84 12 62 48 48 4F 20 56
-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 F6 4F 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 F6 4F 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 6C 4F BB 4F
-02 00 DC 3F 7E 90 26 00 02 20 2C 53 F4 3F 7E 40
-28 00 1C 83 B0 12 6C 4F BB 4F 02 00 3E 40 29 00
-CB 3F 0D 12 84 12 62 48 48 4F AC 56 69 4E 3E 4F
-3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90 52 00
-0A 20 B0 12 F6 4F 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 6C 4F 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 F6 4F D8 23 3C D0 10 00 3E 40 2B 00 B0 12
-F6 4F 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 6C 4F
-BB 4F 02 00 3E 40 29 00 EA 3F 0D 12 84 12 62 48
-48 4F 54 57 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90
-52 00 03 20 B0 12 F6 4F B0 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 6C 4F BB 4F 02 00 A0 3F 3C D0 70 00 3E 40
-28 00 B0 12 6C 4F BB 4F 02 00 3E 40 29 00 E2 3F
-0A 40 2C 00 A2 56 4A 57 D2 43 AE 44 5E 51 04 4D
-4F 56 41 00 85 12 A0 57 C0 00 10 56 04 43 4D 50
-41 00 85 12 A0 57 D0 00 24 54 04 41 44 44 41 00
-85 12 A0 57 E0 00 E0 55 04 53 55 42 41 00 85 12
-A0 57 F0 00 0D 12 84 12 62 48 48 4F EE 57 69 4E
-3E 4F 3C 40 00 18 79 90 52 00 05 20 B0 12 F6 4F
-0E 4C 3D 41 30 4D 82 43 78 5C 79 90 23 00 0B 20
-92 53 C4 1D B0 12 6C 4F 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 F6 4F E2 23 3E 40 2B 00
-92 53 C4 1D B0 12 F6 4F 92 92 C0 1D C4 1D D8 27
-92 53 C4 1D D5 3F 3E 40 28 00 B0 12 6C 4F 8F 4E
-00 00 3E 40 29 00 B0 12 F6 4F 3E 4F 3E F0 0F 00
-0C DE EA 3F 0D 12 84 12 62 48 48 4F 7E 58 3C 4F
-69 4E 3E 40 20 00 79 90 52 00 BA 27 82 43 78 5C
-79 90 26 00 08 20 92 53 C4 1D B0 12 6C 4F 2F 53
-3E F0 0F 00 BE 3F 3E 40 28 00 B0 12 6C 4F F7 3F
-B2 4F C4 1D 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F
-1C D2 78 5C 82 43 78 5C 3C DE 8B 4C 00 00 30 4D
-0A 40 C4 1D 2E 44 0A 40 2C 00 E4 57 74 58 B0 58
-3A 40 3E 51 AE 57 04 4D 4F 56 58 00 85 12 D0 58
-40 00 00 40 E6 58 06 4D 4F 56 58 2E 41 00 85 12
-D0 58 00 00 40 40 F6 58 06 4D 4F 56 58 2E 42 00
-85 12 D0 58 40 00 40 40 CA 57 04 41 44 44 58 00
-85 12 D0 58 40 00 00 50 1A 59 06 41 44 44 58 2E
-41 00 85 12 D0 58 00 00 40 50 2A 59 06 41 44 44
-58 2E 42 00 85 12 D0 58 40 00 40 50 3C 59 05 41
-44 44 43 58 85 12 D0 58 40 00 00 60 4E 59 07 41
-44 44 43 58 2E 41 85 12 D0 58 00 00 40 60 5E 59
-07 41 44 44 43 58 2E 42 85 12 D0 58 40 00 40 60
-D8 57 05 53 55 42 43 58 85 12 D0 58 40 00 00 70
-82 59 07 53 55 42 43 58 2E 41 85 12 D0 58 00 00
-40 70 92 59 07 53 55 42 43 58 2E 42 85 12 D0 58
-40 00 40 70 A4 59 04 53 55 42 58 00 85 12 D0 58
-40 00 00 80 B6 59 06 53 55 42 58 2E 41 00 85 12
-D0 58 00 00 40 80 C6 59 06 53 55 42 58 2E 42 00
-85 12 D0 58 40 00 40 80 BC 57 04 43 4D 50 58 00
-85 12 D0 58 40 00 00 90 EA 59 06 43 4D 50 58 2E
-41 00 85 12 D0 58 00 00 40 90 FA 59 06 43 4D 50
-58 2E 42 00 85 12 D0 58 40 00 40 90 CC 53 05 44
-41 44 44 58 85 12 D0 58 40 00 00 A0 1E 5A 07 44
-41 44 44 58 2E 41 85 12 D0 58 00 00 40 A0 2E 5A
-07 44 41 44 44 58 2E 42 85 12 D0 58 40 00 40 A0
-0C 5A 04 42 49 54 58 00 85 12 D0 58 40 00 00 B0
-52 5A 06 42 49 54 58 2E 41 00 85 12 D0 58 00 00
-40 B0 62 5A 06 42 49 54 58 2E 42 00 85 12 D0 58
-40 00 40 B0 74 5A 04 42 49 43 58 00 85 12 D0 58
-40 00 00 C0 86 5A 06 42 49 43 58 2E 41 00 85 12
-D0 58 00 00 40 C0 96 5A 06 42 49 43 58 2E 42 00
-85 12 D0 58 40 00 40 C0 A8 5A 04 42 49 53 58 00
-85 12 D0 58 40 00 00 D0 BA 5A 06 42 49 53 58 2E
-41 00 85 12 D0 58 00 00 40 D0 CA 5A 06 42 49 53
-58 2E 42 00 85 12 D0 58 40 00 40 D0 6E 52 04 58
-4F 52 58 00 85 12 D0 58 40 00 00 E0 EE 5A 06 58
-4F 52 58 2E 41 00 85 12 D0 58 00 00 40 E0 FE 5A
-06 58 4F 52 58 2E 42 00 85 12 D0 58 40 00 40 E0
-70 59 04 41 4E 44 58 00 85 12 D0 58 40 00 00 F0
-22 5B 06 41 4E 44 58 2E 41 00 85 12 D0 58 00 00
-40 F0 32 5B 06 41 4E 44 58 2E 42 00 85 12 D0 58
-40 00 40 F0 0A 40 C4 1D 2E 44 62 48 E4 57 B0 58
-3A 40 94 52 D8 59 04 52 52 43 58 00 85 12 54 5B
-40 00 00 10 66 5B 06 52 52 43 58 2E 41 00 85 12
-54 5B 00 00 40 10 76 5B 06 52 52 43 58 2E 42 00
-85 12 54 5B 40 00 40 10 88 5B 04 52 52 55 58 00
-85 12 54 5B 40 01 00 10 9A 5B 06 52 52 55 58 2E
-41 00 85 12 54 5B 00 01 40 10 AA 5B 06 52 52 55
-58 2E 42 00 85 12 54 5B 40 01 40 10 BC 5B 05 53
-57 50 42 58 85 12 54 5B 40 00 80 10 CE 5B 07 53
-57 50 42 58 2E 41 85 12 54 5B 00 00 80 10 DE 5B
-04 52 52 41 58 00 85 12 54 5B 40 00 00 11 F0 5B
-06 52 52 41 58 2E 41 00 85 12 54 5B 00 00 40 11
-00 5C 06 52 52 41 58 2E 42 00 85 12 54 5B 40 00
-40 11 12 5C 04 53 58 54 58 00 85 12 54 5B 40 00
-80 11 24 5C 06 53 58 54 58 2E 41 00 85 12 54 5B
-00 00 80 11 00 56 05 50 55 53 48 58 85 12 54 5B
-40 00 00 12 46 5C 07 50 55 53 48 58 2E 41 85 12
-54 5B 00 00 40 12 56 5C 07 50 55 53 48 58 2E 42
-85 12 54 5B 40 00 40 12 00 00 34 5C 03 52 50 54
-0D 12 84 12 62 48 48 4F 8A 5C 29 4E 7E 40 20 00
-79 90 52 00 06 20 B0 12 F6 4F 03 24 3E D0 80 00
-05 3C B0 12 6C 4F 1E 83 3E F0 0F 00 82 4E 78 5C
-3E 4F 3D 41 30 4D D2 C3 23 02 E2 B2 60 02 02 24
-30 40 E2 41 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 3E 5D 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 1A 43 E1 3F 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 7C 5C 08 52 45 41 44 5F 53 57 58 00 1C D3
-F2 40 51 00 19 20 B0 12 B6 5C 38 20 B0 12 3E 5D
-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 34 54 09 57 52 49 54 45
-5F 53 57 58 2C D3 F0 40 58 00 5F C2 B0 12 B6 5C
-15 20 3A 40 FE FF 29 43 B0 12 42 5D D2 49 00 1E
-4E 06 03 43 19 53 39 90 00 02 F8 23 39 40 03 00
-B0 12 40 5D 7A C0 E1 00 6A 92 D9 27 8C 10 1C 52
-4C 06 D2 D3 23 02 0D 12 84 12 18 43 14 40 0B 3C
-20 53 44 20 45 72 72 6F 72 21 0C 5E 2F 83 8F 4E
-00 00 B2 40 10 00 DC 1D 0E 4C 84 12 EE 44 36 41
-B0 12 8C 41 0E 93 9C 24 E2 B2 60 02 99 20 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 39 42 B0 12 40 5D D2 C3
+3E 93 08 24 3C 40 30 00 19 42 C8 1D A2 53 C8 1D
+89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40
+10 02 B0 12 A0 4D F0 3F 7A 90 40 00 14 20 3C 40
+20 00 B0 12 EC 4D 0C 20 3C D0 10 00 3E 40 2B 00
+B0 12 F0 4D 92 92 C2 1D C6 1D 02 24 92 53 C6 1D
+8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 D8 4D F2 3F
+03 20 B0 12 F0 4D F5 3F 7A 90 26 00 03 20 3C D0
+82 00 D7 3F 3C D0 80 00 B0 12 D8 4D EA 3F 0C 43
+1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42 C6 1D
+19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82 C4 1D
+82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52 45 54
+49 00 0D 12 84 12 0A 40 00 13 D8 48 EA 45 0A 40
+2C 00 CE 4E 12 4E 1C 44 D8 4E B0 4E 1E 4F 3D 41
+2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12
+0E 4F 00 40 2A 4F 0A 4D 4F 56 2E 42 85 12 0E 4F
+40 40 00 00 06 41 44 44 85 12 0E 4F 00 50 44 4F
+0A 41 44 44 2E 42 85 12 0E 4F 40 50 50 4F 08 41
+44 44 43 00 85 12 0E 4F 00 60 5E 4F 0C 41 44 44
+43 2E 42 00 85 12 0E 4F 40 60 96 4B 08 53 55 42
+43 00 85 12 0E 4F 00 70 7C 4F 0C 53 55 42 43 2E
+42 00 85 12 0E 4F 40 70 8A 4F 06 53 55 42 85 12
+0E 4F 00 80 9A 4F 0A 53 55 42 2E 42 85 12 0E 4F
+40 80 A6 4F 06 43 4D 50 85 12 0E 4F 00 90 B4 4F
+0A 43 4D 50 2E 42 85 12 0E 4F 40 90 00 00 08 44
+41 44 44 00 85 12 0E 4F 00 A0 CE 4F 0C 44 41 44
+44 2E 42 00 85 12 0E 4F 40 A0 FC 4E 06 42 49 54
+85 12 0E 4F 00 B0 EC 4F 0A 42 49 54 2E 42 85 12
+0E 4F 40 B0 F8 4F 06 42 49 43 85 12 0E 4F 00 C0
+06 50 0A 42 49 43 2E 42 85 12 0E 4F 40 C0 12 50
+06 42 49 53 85 12 0E 4F 00 D0 20 50 0A 42 49 53
+2E 42 85 12 0E 4F 40 D0 00 00 06 58 4F 52 85 12
+0E 4F 00 E0 3A 50 0A 58 4F 52 2E 42 85 12 0E 4F
+40 E0 6C 4F 06 41 4E 44 85 12 0E 4F 00 F0 54 50
+0A 41 4E 44 2E 42 85 12 0E 4F 40 F0 1C 44 CE 4E
+12 4E 74 50 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
+0C DA 4D 3F 2C 50 06 52 52 43 85 12 6C 50 00 10
+86 50 0A 52 52 43 2E 42 85 12 6C 50 40 10 C0 4F
+08 53 57 50 42 00 85 12 6C 50 80 10 92 50 06 52
+52 41 85 12 6C 50 00 11 AE 50 0A 52 52 41 2E 42
+85 12 6C 50 40 11 A0 50 06 53 58 54 85 12 6C 50
+80 11 00 00 08 50 55 53 48 00 85 12 6C 50 00 12
+D4 50 0C 50 55 53 48 2E 42 00 85 12 6C 50 40 12
+C8 50 08 43 41 4C 4C 00 85 12 6C 50 80 12 1A 53
+0E 4A 84 12 5E 46 1E 40 0D 6F 75 74 20 6F 66 20
+62 6F 75 6E 64 73 12 41 F2 50 06 53 3E 3D 86 12
+00 38 1A 51 04 53 3C 00 86 12 00 34 E2 50 06 30
+3E 3D 86 12 00 30 2E 51 04 30 3C 00 86 12 00 30
+6A 4B 04 55 3C 00 86 12 00 2C 42 51 06 55 3E 3D
+86 12 00 28 38 51 06 30 3C 3E 86 12 00 24 56 51
+04 30 3D 00 86 12 00 20 00 00 04 49 46 00 1A 42
+C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D DC 4F
+08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48
+29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00
+30 4D 4C 51 08 45 4C 53 45 00 1A 42 C8 1D BA 40
+00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F
+BA 50 0A 42 45 47 49 4E 30 40 32 40 A4 51 0A 55
+4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83
+0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA
+89 48 00 00 A2 53 C8 1D 30 4D 60 50 0A 41 47 41
+49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49
+4C 45 0D 12 84 12 6E 51 04 45 EA 45 C2 51 0C 52
+45 50 45 41 54 00 0D 12 84 12 02 52 86 51 EA 45
+32 52 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F
+98 42 C8 1D 00 00 30 4D 1E 52 06 42 57 31 85 12
+30 52 00 00 4A 52 06 42 57 32 85 12 30 52 00 00
+56 52 06 42 57 33 85 12 30 52 00 00 6E 52 3D 41
+1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D 86 2B
+BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D
+00 00 06 46 57 31 85 12 6C 52 00 00 92 52 06 46
+57 32 85 12 6C 52 00 00 9E 52 06 46 57 33 85 12
+6C 52 00 00 0C 52 08 47 4F 54 4F 00 2F 83 8F 4E
+00 00 3E 40 00 3C 0D 12 84 12 A4 49 B0 48 EA 45
+00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0
+00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F D8 4E
+0A 40 2C 00 6E 46 80 47 AC 40 B4 49 1C 44 CE 4E
+B0 4E 04 53 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E
+0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
+EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E
+62 52 08 52 52 43 4D 00 85 12 EE 52 50 00 32 53
+08 52 52 41 4D 00 85 12 EE 52 50 01 40 53 08 52
+4C 41 4D 00 85 12 EE 52 50 02 4E 53 08 52 52 55
+4D 00 85 12 EE 52 50 03 60 51 0A 50 55 53 48 4D
+85 12 EE 52 00 15 6A 53 08 50 4F 50 4D 00 85 12
+EE 52 00 17 D2 C3 23 02 E2 B2 60 02 02 24 30 40
+FA 41 1A 52 04 20 19 62 06 20 92 43 14 20 C2 4A
+15 20 8A 10 C2 4A 16 20 C2 49 17 20 89 10 C2 49
+18 20 B0 12 F8 53 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 1A 43 E1 3F 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 5C 53 12 52
+5F 53 45 43 54 5F 57 58 1C D3 F2 40 51 00 19 20
+B0 12 84 53 38 20 B0 12 F8 53 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 B6 52 12 57 5F 53 45 43 54 5F 57 58 2C D3
+F0 40 58 00 A5 CB B0 12 84 53 15 20 3A 40 FE FF
+29 43 B0 12 FC 53 D2 49 00 1E 4E 06 03 43 19 53
+39 90 00 02 F8 23 39 40 03 00 B0 12 FA 53 7A C0
+E1 00 6A 82 D9 27 8C 10 1C 52 4C 06 D2 D3 23 02
+84 12 70 43 1E 40 0B 3C 20 53 44 20 45 72 72 6F
+72 21 C4 54 2F 83 8F 4E 00 00 B2 40 10 00 BE 1D
+0E 4C 84 12 2A 46 12 41 B0 12 58 41 E2 B2 60 02
+8A 20 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 39 40 6E 01
+29 83 89 43 02 20 FC 23 39 42 B0 12 FA 53 D2 C3
 23 02 2C 42 B2 40 95 00 14 20 B2 40 00 40 18 20
-B0 12 3A 5D 02 24 30 40 EC 5D B0 12 3E 5D 7A 93
+B0 12 F4 53 02 24 30 40 A6 54 B0 12 F8 53 7A 93
 FC 23 B2 40 87 AA 14 20 92 43 16 20 B2 40 00 48
-18 20 B0 12 3A 5D 29 42 B0 12 40 5D 92 43 14 20
+18 20 B0 12 F4 53 29 42 B0 12 FA 53 92 43 14 20
 82 43 16 20 78 43 3C 42 B2 40 00 77 18 20 B0 12
-3A 5D B2 40 40 69 18 20 B0 12 F8 5C 03 24 58 83
+F4 53 B2 40 40 69 18 20 B0 12 B2 53 03 24 58 83
 F3 23 D9 3F 0C 5C A2 43 16 20 B2 40 00 50 18 20
-B0 12 F8 5C D0 23 92 D3 40 06 82 43 46 06 92 C3
-40 06 09 43 B0 12 6E 5D 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 F2 5D 09 43 B0 12 6E 5D 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
-30 41 B0 12 AA 40 39 40 E0 00 29 83 89 43 38 20
-FC 23 82 43 32 20 30 41 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 A6 5F 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 AB 20 BB 80 00 02 12 00 8B 73
-14 00 DB 53 03 00 DB 92 12 20 03 00 14 28 CB 43
-03 00 B0 12 78 5F 1A 52 08 20 09 43 B0 12 6E 5D
-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 E6 5F 1A 42 1A 20
-19 42 1C 20 6C 3E 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 5C 27 C9 37
-8B 43 16 00 7A 93 02 24 07 38 95 3F B2 40 1C 21
-CA 40 B2 40 44 43 70 42 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 66 60 22 C3 30 41 1B 42
-32 20 0B 93 FB 27 EB 93 02 00 04 20 B0 12 42 66
-B0 12 0A 66 CB 93 02 00 E4 37 1E 4B 18 00 9F 4B
-1A 00 00 00 31 50 06 00 3D 41 B0 12 62 61 02 24
-30 40 36 43 B2 40 3C 1D CA 40 B2 40 72 42 70 42
-30 40 18 43 2E 4E 85 52 45 41 44 22 5A 43 19 3C
-A2 4C 86 57 52 49 54 45 22 00 6A 43 12 3C 96 4D
-84 44 45 4C 22 00 6A 42 0C 3C E6 4A 05 43 4C 4F
-53 45 B0 12 7E 61 30 4D 50 4C 85 4C 4F 41 44 22
-7A 43 2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D 0B 24
-0D 12 84 12 0A 40 0A 40 A8 47 A8 47 32 45 0A 40
-36 62 A8 47 AE 44 0D 12 84 12 0A 40 22 00 7A 45
-F8 47 34 62 3D 41 36 4F 0E 56 82 4E 36 20 1C 43
-92 42 2C 20 22 20 92 42 2E 20 24 20 0E 96 8D 24
-F6 90 3A 00 01 00 01 20 26 53 F6 90 5C 00 00 00
-08 20 16 53 92 42 02 20 22 20 82 43 24 20 0E 96
-70 24 82 46 34 20 B0 12 A6 5F 35 40 20 00 A2 93
-02 20 04 24 92 92 22 20 02 20 02 24 15 42 12 20
-B0 12 8C 60 2C 43 0A 43 08 4A 58 0E 08 58 82 48
-30 20 C8 93 00 1E 61 24 39 42 F8 96 00 1E 04 20
-18 53 19 83 FA 23 16 53 F6 90 2E 00 FF FF 19 24
-39 50 03 00 B0 12 04 60 06 20 F6 90 5C 00 FF FF
-29 24 0E 96 27 28 16 42 34 20 1A 53 3A 90 10 00
-DB 23 92 53 1A 20 82 63 1C 20 15 83 D1 23 2C 42
-3C 3C F6 90 2E 00 FE FF EE 27 B0 12 04 60 EB 23
-39 40 03 00 F8 96 00 1E 04 20 18 53 19 83 FA 23
-09 3C 0E 96 E0 2F F6 90 5C 00 FF FF DC 23 B0 12
-04 60 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 96
-8E 2F 92 42 22 20 2C 20 92 42 24 20 2E 20 8F 43
-00 00 03 3C 2A 4F B0 12 96 60 35 40 D4 40 36 40
-E2 40 3A 4F 3E 4F 0A 93 04 24 7A 93 3C 20 0C 93
-01 20 30 4D 0D 12 84 12 18 43 14 40 0B 3C 20 4F
-70 65 6E 45 72 72 6F 72 3A 40 0A 5E 26 4C 05 5B
-50 46 41 5D 2E 53 2E 4E 30 4D EC 61 04 42 4F 4F
-54 00 39 40 20 5E 2E 93 01 2C 30 41 E2 B2 60 02
-02 24 10 49 02 00 89 12 3F 40 7E 1C 8F 43 00 00
-82 43 BE 1D B2 40 00 1C 00 1C 31 40 E0 1C 84 12
-14 40 0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54
-48 22 3A 40 90 48 1A 93 BB 20 0C 93 C3 23 30 4D
-C6 61 04 52 45 41 44 00 2F 83 8F 4E 00 00 1E 42
-32 20 B0 12 18 60 1E 82 32 20 30 4D 2C 43 12 12
-2A 20 18 42 02 20 08 58 2A 41 82 9A 0A 20 A6 24
-1A 52 08 20 09 43 B0 12 6E 5D 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 E7 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
-09 43 B0 12 B4 5D 3A 41 1A 52 0C 20 09 43 B0 12
-B4 5D 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 5E 65 39 40 03 00 7A 4B
-C8 4A 00 1E 82 9B 36 20 12 28 0D 12 3D 40 0F 00
-3C 40 0E 65 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 DC 20 2C 93 0E 24 0C 93 AB 24 0D 12 84 12
-14 40 0C 3C 20 57 72 69 74 65 45 72 72 6F 72 00
-3A 40 0A 5E B0 12 1C 64 92 42 26 20 22 20 92 42
-28 20 24 20 B0 12 9A 64 B0 12 8C 60 18 42 30 20
-F8 40 20 00 0B 1E B0 12 B2 64 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 C9 27 FB 90 2E 00 00 00
-C5 27 39 40 0B 00 B0 12 2E 65 B0 12 4C 66 2A 43
-B0 12 96 60 0C 93 BA 23 30 4D 1A 4B 04 00 19 4B
-06 00 B0 12 6E 5D B0 12 B2 64 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
-B4 5D 9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20
-19 42 1C 20 30 40 B4 5D B2 40 00 02 1E 20 1B 42
-32 20 B0 12 42 66 82 43 1E 20 DB 53 03 00 DB 92
-12 20 03 00 25 20 CB 43 03 00 B0 12 78 5F 08 12
-0A 12 B0 12 1C 64 2A 91 08 24 B0 12 9A 64 2A 41
-1A 52 08 20 09 43 B0 12 6E 5D 3A 41 38 41 98 42
-26 20 00 1E 92 93 02 20 03 24 98 42 28 20 02 1E
-B0 12 9A 64 9B 42 26 20 0E 00 9B 42 28 20 10 00
-30 40 E6 5F D2 61 05 57 52 49 54 45 B0 12 58 66
-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 88 60 30 4D 0C 93 3B 20
-38 90 E0 01 03 2C C8 93 20 1E 02 24 7C 40 E5 00
-C8 4C 00 1E B0 12 4C 66 B0 12 84 5F 82 4A 2A 20
-0B 4A 1A 52 08 20 09 43 B0 12 6E 5D 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 84 5F 0B 9A E6 27
-0A 12 0A 4B B0 12 9A 64 3A 41 DA 3F 0A 4B B0 12
-9A 64 B0 12 7E 61 30 4D EA 44 08 54 45 52 4D 32
-53 44 22 00 0D 12 84 12 E6 61 0A 40 02 00 28 40
-F8 47 36 62 C6 67 B0 12 B8 41 0A 43 92 B3 EC 06
-FD 27 59 42 CC 06 69 92 11 24 CA 49 00 1E 1A 53
-79 90 0A 00 05 20 84 12 DC 43 EC 67 B0 12 B8 41
-3A 90 00 02 EB 2B B0 12 58 66 E7 3F 92 B3 EC 06
-FD 27 F2 90 0A 00 CC 06 F9 23 82 4A 1E 20 B0 12
-7E 61 3D 41 30 4D
+B0 12 B2 53 D0 23 92 D3 40 06 82 43 46 06 92 C3
+40 06 0A 43 09 43 B0 12 28 54 38 40 00 1E 92 48
+C6 01 04 20 92 48 C8 01 06 20 5C 48 C2 01 7C 80
+0C 00 08 24 5C 53 06 24 6C 52 04 24 3C 50 07 20
+30 40 AC 54 09 43 B0 12 28 54 A2 43 2C 20 19 48
+0E 00 82 49 08 20 1A 48 24 00 82 4A 0A 20 09 5A
+82 49 0C 20 09 5A 58 48 0D 00 82 48 12 20 09 88
+09 88 82 49 10 20 30 41 82 43 32 20 30 40 56 41
+92 4B 0E 00 22 20 92 4B 10 00 24 20 5A 42 23 20
+58 42 22 20 59 42 24 20 89 10 0A D9 88 10 08 58
+0A 6A 88 10 08 58 30 41 1A 52 08 20 09 43 FC 3E
+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 30 56 5A 4B 03 00 82 5A
+1A 20 82 63 1C 20 30 41 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 A3 25 09 4B 3B 50 1C 00 3B 90 18 21
+EF 23 0C 5C 9B 3D 0C 43 82 4B 32 20 8B 49 00 00
+09 93 0A 24 99 52 C6 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 1A 24
+A4 37 8B 43 16 00 7A 93 02 24 07 38 35 3C B2 40
+1C 21 A0 40 B2 40 94 43 D2 42 9B 42 C2 1D 18 00
+9B 82 C6 1D 18 00 9B 42 C4 1D 1A 00 9B 52 C6 1D
+1A 00 22 3C 30 41 1B 42 32 20 82 43 1E 20 B2 90
+00 02 20 20 3F 20 BB 80 00 02 12 00 8B 73 14 00
+DB 53 03 00 DB 92 12 20 03 00 0E 28 CB 43 03 00
+B0 12 00 56 B0 12 28 56 8B 43 10 00 9B 48 00 1E
+0E 00 9B 48 02 1E 10 00 B2 40 00 02 20 20 8B 93
+14 00 0B 20 92 9B 12 00 1E 20 1C 2C BB 90 00 02
+12 00 03 2C 92 4B 12 00 20 20 B0 12 5A 56 1A 42
+1A 20 19 42 1C 20 38 3E CB 43 02 00 2B 4B 82 4B
+32 20 0B 93 06 24 92 4B 16 00 1E 20 B0 12 88 57
+22 C3 30 41 1B 42 32 20 0B 93 FB 27 EB 92 02 00
+04 20 B0 12 46 5B B0 12 36 5C CB 93 02 00 E4 37
+1E 4B 18 00 9F 4B 1A 00 00 00 31 50 06 00 3D 41
+B0 12 B8 57 02 24 30 40 8A 43 B2 40 3C 1D A0 40
+B2 40 D4 42 D2 42 30 40 70 43 09 93 07 24 F8 90
+20 00 00 1E 03 20 18 53 19 83 F9 23 30 41 74 4C
+0B 52 45 41 44 22 5A 43 20 3C DC 4A 09 44 45 4C
+22 00 6A 43 1A 3C A2 49 0D 57 52 49 54 45 22 00
+6A 42 13 3C 8A 49 0F 41 50 50 45 4E 44 22 7A 42
+0C 3C 86 4B 0A 43 4C 4F 53 45 B0 12 D4 57 30 4D
+EA 48 0B 4C 4F 41 44 22 7A 43 2F 83 8F 4E 00 00
+0E 4A 82 93 BC 1D 0B 24 0D 12 84 12 0A 40 0A 40
+D8 48 D8 48 58 45 0A 40 AE 58 D8 48 EA 45 0D 12
+84 12 0A 40 22 00 6E 46 28 49 AC 58 3D 41 36 4F
+0E 56 82 4E 36 20 A2 43 22 20 82 43 24 20 1C 43
+0E 96 8C 24 F6 90 3A 00 01 00 01 20 26 53 F6 90
+5C 00 00 00 03 20 16 53 0E 96 66 24 82 46 34 20
+B0 12 30 56 15 42 12 20 B0 12 AE 57 2C 43 0A 43
+08 4A 58 0E 08 58 82 48 30 20 C8 93 00 1E 60 24
+39 42 F8 96 00 1E 04 20 18 53 19 83 FA 23 16 53
+F6 90 2E 00 FF FF 19 24 39 50 03 00 B0 12 1A 58
+06 20 F6 90 5C 00 FF FF 29 24 0E 96 27 28 16 42
+34 20 1A 53 3A 90 10 00 DB 23 92 53 1A 20 82 63
+1C 20 15 83 D1 23 2C 42 49 3C F6 90 2E 00 FE FF
+EE 27 B0 12 1A 58 EB 23 39 40 03 00 F8 96 00 1E
+04 20 18 53 19 83 FA 23 09 3C 0E 96 E0 2F F6 90
+5C 00 FF FF DC 23 B0 12 1A 58 D9 23 18 42 30 20
+92 48 1A 1E 22 20 92 48 14 1E 24 20 F8 B0 10 00
+0B 1E 13 24 82 93 24 20 05 20 82 93 22 20 02 20
+A2 43 22 20 0E 96 9A 23 92 42 22 20 2C 20 92 42
+24 20 2E 20 8F 43 00 00 03 3C 2A 4F B0 12 78 56
+35 40 B6 40 36 40 C4 40 3A 4F 3E 4F 0A 93 04 24
+7A 93 39 20 0C 93 02 20 30 40 8A 43 0D 12 84 12
+70 43 1E 40 0B 3C 20 4F 70 65 6E 45 72 72 6F 72
+B2 40 C2 54 E2 B2 60 02 02 24 30 40 80 41 92 12
+3E 18 3F 40 7E 1C 8F 43 00 00 0D 12 84 12 1E 40
+0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54 48 22
+B2 40 58 49 30 58 08 42 4F 4F 54 00 B2 40 F4 59
+C4 42 30 4D 28 47 0C 4E 4F 42 4F 4F 54 00 B2 40
+80 41 C4 42 30 4D 1A 93 89 20 0C 93 C7 23 30 4D
+26 5A 08 52 45 41 44 00 2F 83 8F 4E 00 00 1E 42
+32 20 B0 12 46 57 1E 82 32 20 30 4D 08 4A 1A 52
+08 20 B0 12 7C 5A 0A 48 1A 52 0C 20 09 43 30 40
+6E 54 3C 42 0A 12 2A 41 82 9A 0A 20 2B 25 B0 12
+28 56 88 93 02 1E 03 20 88 93 00 1E 08 24 28 52
+38 90 00 02 F6 2B 91 53 00 00 08 43 EC 3F A2 41
+26 20 82 48 28 20 0C 43 B8 43 00 1E 6A 41 B8 40
+FF 0F 02 1E 08 11 8A 10 08 5A 5A 41 01 00 0A 11
+08 10 82 4A 24 20 82 48 22 20 2A 41 B0 12 6C 5A
+3A 41 30 41 90 4B 0A 00 3A C5 90 4B 0C 00 36 C5
+B0 12 0C 56 82 4A 26 20 82 48 28 20 0A 12 B0 12
+28 56 1A 48 00 1E 88 43 00 1E 19 48 02 1E 88 43
+02 1E 39 F0 FF 0F 39 90 FF 0F 02 20 3A 93 10 24
+82 4A 22 20 82 49 24 20 B0 12 0C 56 2A 91 E9 27
+09 4A 2A 41 81 49 00 00 B0 12 6C 5A 2A 41 DF 3F
+3A 41 30 40 6C 5A 9B 52 1E 20 12 00 8B 63 14 00
+1A 42 1A 20 19 42 1C 20 30 40 6E 54 2A 93 BC 20
+0C 93 09 20 F8 40 E5 00 00 1E B0 12 50 5B B0 12
+E4 5A B0 12 D4 57 30 4D 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 28 39 80 03 00 B0 12 24 5C
+39 40 03 00 7A 4B C8 4A 00 1E 82 9B 36 20 12 28
+0D 12 3D 40 0F 00 3C 40 D4 5B 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 1A 4B 04 00 19 4B 06 00 B0 12
+28 54 18 4B 08 00 B0 12 78 5B 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 6E 54 B2 40
+00 02 1E 20 1B 42 32 20 B0 12 46 5B 82 43 1E 20
+DB 53 03 00 DB 92 12 20 03 00 1D 28 B0 12 00 56
+08 12 0A 12 B0 12 82 5A 2A 91 03 24 2A 41 B0 12
+28 56 3A 41 38 41 98 42 22 20 00 1E 98 42 24 20
+02 1E B0 12 6C 5A AB 42 02 00 9B 42 22 20 0E 00
+9B 42 24 20 10 00 30 40 66 56 48 58 0A 57 52 49
+54 45 B0 12 6E 5C 30 4D 2A 92 54 20 2C 93 0E 24
+0C 93 3D 24 0D 12 84 12 1E 40 0C 3C 20 57 72 69
+74 65 45 72 72 6F 72 00 B2 40 C2 54 0A 43 08 43
+B0 12 82 5A B0 12 AE 57 18 42 30 20 F8 40 20 00
+0B 1E B0 12 78 5B 88 43 0C 1E 88 4A 0E 1E 88 49
+10 1E 98 42 24 20 14 1E 98 42 22 20 1A 1E 88 43
+1C 1E 88 43 1E 1E 2C 42 1B 42 34 20 82 9B 36 20
+D1 27 FB 90 2E 00 00 00 CD 27 39 40 0B 00 B0 12
+F4 5B B0 12 50 5B 2A 42 B0 12 78 56 30 4D B0 12
+E4 5A 8B 43 12 00 8B 43 14 00 90 4B 0A 00 B4 C2
+90 4B 0C 00 B0 C2 B0 12 0C 56 B0 12 82 5A B0 12
+B6 5C 30 4D 2C 93 BA 27 0C 93 AC 23 EB 42 02 00
+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 B0 12 AA 57 1A 4B 12 00 BB C0 FF 01 12 00
+3A F0 FF 01 82 4A 1E 20 30 4D 3C 58 10 54 45 52
+4D 32 53 44 22 00 0D 12 84 12 50 58 FE 5D 0A 43
+7D 40 0A 00 B0 12 44 41 3A 90 00 02 03 28 B0 12
+6E 5C 0A 43 92 B3 EC 06 FD 27 59 42 CC 06 69 92
+11 24 CA 49 00 1E 1A 53 49 9D EE 23 A2 B3 EC 06
+FD 27 F2 40 0D 00 CE 06 A2 B3 EC 06 FD 27 C2 4D
+CE 06 E0 3F C2 9D CC 06 FD 23 82 4A 1E 20 B0 12
+D4 57 3D 41 30 4D
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 84 42 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 96 4E
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 E6 42 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 10 42
 q
diff --git a/binaries/MSP_EXP430FR5994_16MHz_UART.txt b/binaries/MSP_EXP430FR5994_16MHz_UART.txt
deleted file mode 100644 (file)
index 937328d..0000000
+++ /dev/null
@@ -1,658 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF 1E 68 50 4D 34 01
-10 00 C1 B3 94 41 78 5F DA 41 36 5E 96 42 1E 68
-50 4D 7C 42 F2 43 26 43 00 43 3C 1D C0 44 D4 40
-E2 40 EE 40 20 00 0A 00 00 00 00 00 00 00 00 00
-@4000
-B0 12 DA 41 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 40
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 78 5F 39 40 22 18
-B2 49 7A 42 B2 49 F0 43 B2 49 24 43 B2 49 FE 42
-B2 49 CA 40 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 58 4E 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 41 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 40 0A 40 DE 1D 40 44 34 43
-14 40 04 1B 5B 37 6D 00 BC 43 08 44 34 40 86 41
-14 40 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 BC 43 00 45 BC 43 14 40 04 1B 5B 30 6D 00
-BC 43 88 48 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D2 23 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 23 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 41 F2 B0 40 00 40 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE 41 04 57 41 52 4D 00
-B0 12 36 5E 84 12 14 40 07 0D 0A 1B 5B 37 6D 23
-BC 43 36 45 14 40 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
-BC 43 0A 40 40 FF 28 40 34 44 00 45 14 40 0A 62
-79 74 65 73 20 66 72 65 65 00 3A 40 86 41 00 00
-06 41 43 43 45 50 54 00 30 40 7C 42 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 42 3C 40
-D4 42 5D 15 B5 3E 21 52 3A 17 58 42 CC 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 CE 05 30 4D CA 42 2D 83 92 B3 DC 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-DC 05 FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53
-DE 1D 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 43
-2F 83 8F 4E 00 00 B0 12 DA 41 92 B3 DC 05 FD 27
-1E 42 CC 05 B0 12 C8 41 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 43 08 4E 3E 4F C8 3F 1C 43 04 45
-43 48 4F 00 B2 40 C2 48 C2 42 82 43 DE 1D 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 42
-92 43 DE 1D 30 4D 0D 12 3D 40 76 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 78 43 2D 83 0C 9B 16 2C 58 4C
-00 1E 1C 53 78 90 20 00 09 2C 78 90 0A 00 F5 23
-3D 41 82 4C 1E 20 3C 40 20 00 A6 3F 0E 99 8E 27
-CA 48 00 00 1A 53 1E 53 89 3F 1A 15 B0 12 2E 60
-19 17 DC 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 D8 43 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 24 43 DA 43 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 41 02 43 52 00 30 40
-F2 43 0D 12 84 12 14 40 02 0D 0A 00 BC 43 C0 44
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 42 01 40
-2E 4E 30 4D 3E 44 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D EA 43 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 40 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 7A 44 02 23 53 00 0D 12
-84 12 7C 44 B6 44 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D AA 44 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D B6 43 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-70 44 AE 44 EE 40 EE 44 CA 44 BC 43 74 48 22 43
-C0 44 42 43 01 2E 0E 93 E3 37 38 43 E2 3F E8 44
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 40 14 40
-BA 47 0A 40 22 00 8C 45 5A 45 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-34 45 82 2E 22 00 0D 12 84 12 44 45 0A 40 BC 43
-BA 47 C0 44 1A 42 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 40 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 40 35 40 D4 40
-30 4D 00 00 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 0E 47
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F 10 47
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 40 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D B8 47 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 40 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D C6 44 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D DA 44 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 40 74 48 8C 45 30 48
-9C 26 3D 40 38 48 DE 3E 3A 48 0A 4E 3E 4F 3D 40
-54 48 36 27 3D 40 2A 48 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 56 48 3E 4F 3D 40 2A 48 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 F6 49
-CC 3F 5E 48 86 12 20 00 46 44 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 EE 43
-BC 40 24 48 24 44 56 44 14 40 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 41 0A 40 40 FF 28 40
-5E 44 14 40 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 41 3A 40 9E 48 7A 48 86 41 42 4F 52 54 22 00
-0D 12 84 12 44 45 0A 40 2A 41 BA 47 C0 44 EE 45
-01 27 0D 12 84 12 74 48 8C 45 F4 45 34 40 72 48
-C0 44 00 00 83 5B 27 5D 0D 12 84 12 F2 48 0A 40
-0A 40 BA 47 BA 47 C0 44 04 49 81 5B 82 43 BE 1D
-30 4D 6C 44 01 5D B2 43 BE 1D 30 4D 24 49 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 74 48 8C 45 F4 45 08 44
-34 40 72 48 56 44 34 40 66 49 0A 40 0A 40 BA 47
-BA 47 0A 40 BA 47 BA 47 C0 44 1A 49 01 3A 30 12
-B6 49 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 74 48
-8C 45 84 49 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 40 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 41 6C 49 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 40 C0 44 BA 47 C8 49 1C 49
-C0 44 1A 48 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D 04 48 06 43 52 45
-41 54 45 00 B0 12 72 49 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F FA 49 07 3A 4E 4F 4E 41 4D 45 30 12
-B6 49 2F 83 8F 4E 00 00 1A 42 C6 1D 1A B3 0A 63
-0E 4A 39 40 10 02 08 49 28 53 99 3F 2E 43 05 44
-45 46 45 52 B0 12 72 49 BA 40 30 40 FC FF BA 40
-F4 4D FE FF A8 3F BE 4F 02 00 3E 4F 30 4D 14 4A
-82 49 53 00 0D 12 82 93 BE 1D 06 24 84 12 08 49
-0A 40 86 4A BA 47 C0 44 84 12 F2 48 86 4A C0 44
-2C 4A 04 43 4F 44 45 00 B0 12 72 49 A2 82 C6 1D
-82 43 8E 5C 0D 12 84 12 5A 4D 2C 4D C0 44 90 4A
-07 48 44 4E 43 4F 44 45 B2 40 30 4D DA 1D EC 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 C8 49
-80 4D B4 4D C0 44 B2 4A 07 43 4F 44 45 4E 4E 4D
-30 12 BC 4A A6 3F 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 80 4D B4 4D C0 44
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F D0 4A 85 48 49 32 4C 4F 0D 12 84 12 28 40
-94 4C BA 47 1C 49 C0 4A C0 44 46 4A 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 5C 4B 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 40 00 00 38 44 74 48 8C 45
-0A 48 00 44 34 40 F4 4B 0E 44 14 40 06 5B 54 48
-45 4E 5D 00 66 4B CE 4B 8A 4B AC 4B C0 44 0E 44
-14 40 06 5B 45 4C 53 45 5D 00 66 4B E4 4B 8A 4B
-AA 4B C0 44 14 40 04 5B 49 46 5D 00 66 4B AC 4B
-3A 40 AA 4B E2 43 14 40 05 0D 0A 6B 6F 20 BC 43
-BC 40 AC 40 3A 40 AC 4B 9A 4B 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 0A 4C 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 74 48 8C 45
-F4 45 18 4C C0 44 1E 4C 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 28 4C 50 44 C0 44 50 4C
-B2 4E 0A 18 B2 4E 0C 18 BE 12 3E 4F 3D 41 DB 3C
-CC 47 06 4D 41 52 4B 45 52 00 B0 12 72 49 BA 40
-85 12 FC FF BA 40 4E 4C FE FF 28 83 8A 48 00 00
-9A 42 C8 1D 02 00 BA 40 AA 40 04 00 B2 50 06 00
-C6 1D 9D 3E 2E 53 30 4D 6E 4A 05 44 4F 45 53 3E
-1A 42 BA 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41
-30 4D 86 45 0A 56 4F 43 41 42 55 4C 41 52 59 00
-0D 12 84 12 34 4A 0A 40 10 00 0A 40 00 00 3E 40
-0A 40 00 00 BA 47 60 40 D0 4C 28 40 0A 40 C8 1D
-00 44 40 44 BA 47 48 44 A0 4C 0A 40 CA 1D 48 44
-C0 44 F0 48 05 46 4F 52 54 48 85 12 EA 4C 54 4D
-C2 63 F6 61 F4 4C 44 4B F8 42 10 62 9A 4D 26 4E
-18 64 C0 67 DC 66 00 00 B4 63 2E 49 54 46 00 00
-D8 48 09 41 53 53 45 4D 42 4C 45 52 85 12 EA 4C
-5A 5B F2 5A 56 5A 16 55 A8 53 00 00 1E 59 00 00
-7E 5C 7A 5D 0C 54 C0 5D 26 5B 00 00 00 00 F0 54
-1E 4D 22 4D 04 41 4C 53 4F 00 3A 40 0C 00 39 40
-D6 1D 08 49 28 53 19 83 18 83 E8 49 00 00 1A 83
-FA 23 30 4D 3A 49 08 50 52 45 56 49 4F 55 53 00
-3A 40 0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 72 45 04 4F 4E 4C 59 00
-82 43 CC 1D 30 4D 9A 4C 0B 44 45 46 49 4E 49 54
-49 4F 4E 53 92 42 CA 1D DA 1D 30 4D FA 4C A0 4D
-B4 4D C4 4D 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 76 4D 09 50 57 52 5F 53 54 41
-54 45 85 12 BC 4D 50 4D 1E 68 40 45 09 52 53 54
-5F 53 54 41 54 45 92 42 0A 18 08 4E 92 42 0C 18
-06 4E EF 3F F8 4D 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 08 4E 92 42 C8 1D 06 4E 30 4D 0C 4E
-08 52 53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18
-92 42 C8 1D 0C 18 EC 3F 3E 90 0E 00 D2 27 2E 92
-DA 37 0E 93 CE 37 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B9 40 A8 4E FE FF 29 83 B9 40 02 42 FE FF
-39 90 AE FF F9 23 39 40 14 18 B2 49 04 42 B2 49
-FA 40 B2 49 02 40 B2 49 22 42 B2 49 F0 FF B2 49
-0A 18 B2 49 0C 18 B7 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 10 29 83 89 43 00 1C FC 23 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 B2 40 33 00
-64 01 D2 43 61 01 39 40 40 00 18 42 00 18 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 1E 42 08 18
-82 43 08 18 1E D2 9E 01 B0 12 F8 40 20 42 38 40
-C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D
-30 4D 1C 15 0E 12 12 12 C4 1D 84 12 8C 45 F4 45
-50 44 34 40 9E 4F B0 46 34 40 B8 4F B2 4F A0 4F
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 BA 4F B2 41 C4 1D 3E 41
-84 12 0A 40 2B 00 8C 45 F4 45 50 44 34 40 D6 4F
-B0 46 34 40 72 48 1A 44 8C 45 B0 46 34 40 72 48
-E2 4F 3E 5F E7 3F 32 B0 00 02 01 24 3E 4F 30 41
-3E 40 28 00 B0 12 82 4F B0 12 E6 4F 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 40 29 00 1C 15 92 92
-C0 1D C4 1D 02 20 30 40 E0 49 12 12 C4 1D 92 53
-C4 1D 84 12 8C 45 B0 46 34 40 38 50 2E 50 21 53
-3E 90 10 00 84 2D BE 2B 3A 50 B2 41 C4 1D BA 3F
-0D 12 84 12 74 48 5E 4F 4A 50 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 82 4F B0 12 E6 4F 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
-82 4F B0 12 E6 4F EB 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 1D B0 12 0C 50 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 0C 50 92 92 C0 1D C4 1D 02 24
-92 53 C4 1D 8E 10 0C 5E D8 3F B0 12 0C 50 FA 23
-3C 50 10 00 B0 12 F0 4F EF 3F 0C 43 1B 42 C6 1D
-A2 53 C6 1D 0D 12 84 12 74 48 5E 4F 1E 51 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C5 3F
-B0 12 0C 50 E0 23 3C 50 80 00 B0 12 F0 4F DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A 40 00 13
-BA 47 C0 44 0A 40 2C 00 40 50 14 51 5E 51 09 4B
-2E 4E 0E DC A0 3F 32 4B 03 4D 4F 56 85 12 54 51
-00 40 68 51 05 4D 4F 56 2E 42 85 12 54 51 40 40
-00 00 03 41 44 44 85 12 54 51 00 50 82 51 05 41
-44 44 2E 42 85 12 54 51 40 50 8E 51 04 41 44 44
-43 00 85 12 54 51 00 60 9C 51 06 41 44 44 43 2E
-42 00 85 12 54 51 40 60 42 51 04 53 55 42 43 00
-85 12 54 51 00 70 BA 51 06 53 55 42 43 2E 42 00
-85 12 54 51 40 70 C8 51 03 53 55 42 85 12 54 51
-00 80 D8 51 05 53 55 42 2E 42 85 12 54 51 40 80
-08 4B 03 43 4D 50 85 12 54 51 00 90 F2 51 05 43
-4D 50 2E 42 85 12 54 51 40 90 E2 4A 04 44 41 44
-44 00 85 12 54 51 00 A0 0C 52 06 44 41 44 44 2E
-42 00 85 12 54 51 40 A0 FE 51 03 42 49 54 85 12
-54 51 00 B0 2A 52 05 42 49 54 2E 42 85 12 54 51
-40 B0 36 52 03 42 49 43 85 12 54 51 00 C0 44 52
-05 42 49 43 2E 42 85 12 54 51 40 C0 50 52 03 42
-49 53 85 12 54 51 00 D0 5E 52 05 42 49 53 2E 42
-85 12 54 51 40 D0 00 00 03 58 4F 52 85 12 54 51
-00 E0 78 52 05 58 4F 52 2E 42 85 12 54 51 40 E0
-AA 51 03 41 4E 44 85 12 54 51 00 F0 92 52 05 41
-4E 44 2E 42 85 12 54 51 40 F0 74 48 40 50 B0 52
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-E4 51 03 52 52 43 85 12 AA 52 00 10 C2 52 05 52
-52 43 2E 42 85 12 AA 52 40 10 CE 52 04 53 57 50
-42 00 85 12 AA 52 80 10 DC 52 03 52 52 41 85 12
-AA 52 00 11 EA 52 05 52 52 41 2E 42 85 12 AA 52
-40 11 F6 52 03 53 58 54 85 12 AA 52 80 11 00 00
-04 50 55 53 48 00 85 12 AA 52 00 12 10 53 06 50
-55 53 48 2E 42 00 85 12 AA 52 40 12 6A 52 04 43
-41 4C 4C 00 85 12 AA 52 80 12 1A 53 0E 4A 0D 12
-84 12 36 45 14 40 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 41 04 53 03 53 3E 3D 86 12 00 38
-58 53 02 53 3C 00 86 12 00 34 1E 53 03 30 3E 3D
-86 12 00 30 6C 53 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C 80 53 03 55 3E 3D 86 12
-00 28 76 53 03 30 3C 3E 86 12 00 24 94 53 02 30
-3D 00 86 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 8A 53 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 B1 2F 88 DA 00 00 30 4D
-1A 52 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 2E 53
-05 42 45 47 49 4E 30 40 28 40 BE 53 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 1D 30 4D 9E 52 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 AC 53 1A 44 C0 44 62 53 06 52 45 50
-45 41 54 00 0D 12 84 12 40 54 C4 53 C0 44 70 54
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42
-C6 1D 00 00 30 4D 00 54 03 42 57 31 85 12 6E 54
-00 00 88 54 03 42 57 32 85 12 6E 54 00 00 94 54
-03 42 57 33 85 12 6E 54 00 00 AC 54 3D 41 1A 42
-C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F 00 00 A2 53
-C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 AA 54 00 00 CC 54 03 46 57 32 85 12 AA 54
-00 00 D8 54 03 46 57 33 85 12 AA 54 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 0D 12 84 12 F2 48
-4E 48 C0 44 E4 54 04 47 4F 54 4F 00 2F 83 8F 4E
-00 00 3E 40 00 3C F1 3F 74 48 5E 4F 2E 55 92 53
-C4 1D 3E 40 2C 00 84 12 8C 45 B0 46 34 40 72 48
-0A 51 44 55 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-5C 54 04 52 52 43 4D 00 85 12 28 55 50 00 72 55
-04 52 52 41 4D 00 85 12 28 55 50 01 80 55 04 52
-4C 41 4D 00 85 12 28 55 50 02 8E 55 04 52 52 55
-4D 00 85 12 28 55 50 03 9E 53 05 50 55 53 48 4D
-85 12 28 55 00 15 AA 55 04 50 4F 50 4D 00 85 12
-28 55 00 17 9C 55 06 52 52 43 4D 2E 41 00 85 12
-28 55 40 00 C6 55 06 52 52 41 4D 2E 41 00 85 12
-28 55 40 01 D6 55 06 52 4C 41 4D 2E 41 00 85 12
-28 55 40 02 E6 55 06 52 52 55 4D 2E 41 00 85 12
-28 55 40 03 B8 55 07 50 55 53 48 4D 2E 41 85 12
-28 55 00 14 06 56 06 50 4F 50 4D 2E 41 00 85 12
-28 55 00 16 A0 54 05 43 41 4C 4C 41 0D 12 84 12
-74 48 5E 4F 36 56 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
-0C 50 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 0C 50 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 82 4F BB 4F 02 00 DC 3F 7E 90 26 00 02 20
-2C 53 F4 3F 7E 40 28 00 1C 83 B0 12 82 4F BB 4F
-02 00 3E 40 29 00 CB 3F 0D 12 84 12 74 48 5E 4F
-C2 56 69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53
-C6 1D 79 90 52 00 0A 20 B0 12 0C 50 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
-82 4F 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 0C 50 D8 23 3C D0 10 00
-3E 40 2B 00 B0 12 0C 50 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 82 4F BB 4F 02 00 3E 40 29 00 EA 3F
-0D 12 84 12 74 48 5E 4F 6A 57 3B 4F 2C 4B 69 4E
-7E 40 20 00 79 90 52 00 03 20 B0 12 0C 50 B0 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 82 4F BB 4F 02 00 A0 3F
-3C D0 70 00 3E 40 28 00 B0 12 82 4F BB 4F 02 00
-3E 40 29 00 E2 3F 0A 40 2C 00 B8 56 60 57 E4 43
-C0 44 74 51 04 4D 4F 56 41 00 85 12 B6 57 C0 00
-26 56 04 43 4D 50 41 00 85 12 B6 57 D0 00 3A 54
-04 41 44 44 41 00 85 12 B6 57 E0 00 F6 55 04 53
-55 42 41 00 85 12 B6 57 F0 00 0D 12 84 12 74 48
-5E 4F 04 58 69 4E 3E 4F 3C 40 00 18 79 90 52 00
-05 20 B0 12 0C 50 0E 4C 3D 41 30 4D 82 43 8E 5C
-79 90 23 00 0B 20 92 53 C4 1D B0 12 82 4F 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 0C 50
-E2 23 3E 40 2B 00 92 53 C4 1D B0 12 0C 50 92 92
-C0 1D C4 1D D8 27 92 53 C4 1D D5 3F 3E 40 28 00
-B0 12 82 4F 8F 4E 00 00 3E 40 29 00 B0 12 0C 50
-3E 4F 3E F0 0F 00 0C DE EA 3F 0D 12 84 12 74 48
-5E 4F 94 58 3C 4F 69 4E 3E 40 20 00 79 90 52 00
-BA 27 82 43 8E 5C 79 90 26 00 08 20 92 53 C4 1D
-B0 12 82 4F 2F 53 3E F0 0F 00 BE 3F 3E 40 28 00
-B0 12 82 4F F7 3F B2 4F C4 1D 1B 42 C6 1D A2 53
-C6 1D 0C 4E 3E 4F 1C D2 8E 5C 82 43 8E 5C 3C DE
-8B 4C 00 00 30 4D 0A 40 C4 1D 40 44 0A 40 2C 00
-FA 57 8A 58 C6 58 3A 40 54 51 C4 57 04 4D 4F 56
-58 00 85 12 E6 58 40 00 00 40 FC 58 06 4D 4F 56
-58 2E 41 00 85 12 E6 58 00 00 40 40 0C 59 06 4D
-4F 56 58 2E 42 00 85 12 E6 58 40 00 40 40 E0 57
-04 41 44 44 58 00 85 12 E6 58 40 00 00 50 30 59
-06 41 44 44 58 2E 41 00 85 12 E6 58 00 00 40 50
-40 59 06 41 44 44 58 2E 42 00 85 12 E6 58 40 00
-40 50 52 59 05 41 44 44 43 58 85 12 E6 58 40 00
-00 60 64 59 07 41 44 44 43 58 2E 41 85 12 E6 58
-00 00 40 60 74 59 07 41 44 44 43 58 2E 42 85 12
-E6 58 40 00 40 60 EE 57 05 53 55 42 43 58 85 12
-E6 58 40 00 00 70 98 59 07 53 55 42 43 58 2E 41
-85 12 E6 58 00 00 40 70 A8 59 07 53 55 42 43 58
-2E 42 85 12 E6 58 40 00 40 70 BA 59 04 53 55 42
-58 00 85 12 E6 58 40 00 00 80 CC 59 06 53 55 42
-58 2E 41 00 85 12 E6 58 00 00 40 80 DC 59 06 53
-55 42 58 2E 42 00 85 12 E6 58 40 00 40 80 D2 57
-04 43 4D 50 58 00 85 12 E6 58 40 00 00 90 00 5A
-06 43 4D 50 58 2E 41 00 85 12 E6 58 00 00 40 90
-10 5A 06 43 4D 50 58 2E 42 00 85 12 E6 58 40 00
-40 90 E2 53 05 44 41 44 44 58 85 12 E6 58 40 00
-00 A0 34 5A 07 44 41 44 44 58 2E 41 85 12 E6 58
-00 00 40 A0 44 5A 07 44 41 44 44 58 2E 42 85 12
-E6 58 40 00 40 A0 22 5A 04 42 49 54 58 00 85 12
-E6 58 40 00 00 B0 68 5A 06 42 49 54 58 2E 41 00
-85 12 E6 58 00 00 40 B0 78 5A 06 42 49 54 58 2E
-42 00 85 12 E6 58 40 00 40 B0 8A 5A 04 42 49 43
-58 00 85 12 E6 58 40 00 00 C0 9C 5A 06 42 49 43
-58 2E 41 00 85 12 E6 58 00 00 40 C0 AC 5A 06 42
-49 43 58 2E 42 00 85 12 E6 58 40 00 40 C0 BE 5A
-04 42 49 53 58 00 85 12 E6 58 40 00 00 D0 D0 5A
-06 42 49 53 58 2E 41 00 85 12 E6 58 00 00 40 D0
-E0 5A 06 42 49 53 58 2E 42 00 85 12 E6 58 40 00
-40 D0 84 52 04 58 4F 52 58 00 85 12 E6 58 40 00
-00 E0 04 5B 06 58 4F 52 58 2E 41 00 85 12 E6 58
-00 00 40 E0 14 5B 06 58 4F 52 58 2E 42 00 85 12
-E6 58 40 00 40 E0 86 59 04 41 4E 44 58 00 85 12
-E6 58 40 00 00 F0 38 5B 06 41 4E 44 58 2E 41 00
-85 12 E6 58 00 00 40 F0 48 5B 06 41 4E 44 58 2E
-42 00 85 12 E6 58 40 00 40 F0 0A 40 C4 1D 40 44
-74 48 FA 57 C6 58 3A 40 AA 52 EE 59 04 52 52 43
-58 00 85 12 6A 5B 40 00 00 10 7C 5B 06 52 52 43
-58 2E 41 00 85 12 6A 5B 00 00 40 10 8C 5B 06 52
-52 43 58 2E 42 00 85 12 6A 5B 40 00 40 10 9E 5B
-04 52 52 55 58 00 85 12 6A 5B 40 01 00 10 B0 5B
-06 52 52 55 58 2E 41 00 85 12 6A 5B 00 01 40 10
-C0 5B 06 52 52 55 58 2E 42 00 85 12 6A 5B 40 01
-40 10 D2 5B 05 53 57 50 42 58 85 12 6A 5B 40 00
-80 10 E4 5B 07 53 57 50 42 58 2E 41 85 12 6A 5B
-00 00 80 10 F4 5B 04 52 52 41 58 00 85 12 6A 5B
-40 00 00 11 06 5C 06 52 52 41 58 2E 41 00 85 12
-6A 5B 00 00 40 11 16 5C 06 52 52 41 58 2E 42 00
-85 12 6A 5B 40 00 40 11 28 5C 04 53 58 54 58 00
-85 12 6A 5B 40 00 80 11 3A 5C 06 53 58 54 58 2E
-41 00 85 12 6A 5B 00 00 80 11 16 56 05 50 55 53
-48 58 85 12 6A 5B 40 00 00 12 5C 5C 07 50 55 53
-48 58 2E 41 85 12 6A 5B 00 00 40 12 6C 5C 07 50
-55 53 48 58 2E 42 85 12 6A 5B 40 00 40 12 00 00
-4A 5C 03 52 50 54 0D 12 84 12 74 48 5E 4F A0 5C
-29 4E 7E 40 20 00 79 90 52 00 06 20 B0 12 0C 50
-03 24 3E D0 80 00 05 3C B0 12 82 4F 1E 83 3E F0
-0F 00 82 4E 8E 5C 3E 4F 3D 41 30 4D D2 C3 23 02
-E2 B2 60 02 02 24 30 40 02 42 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
-54 5D 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
-1A 43 E1 3F 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 92 5C 08 52 45 41 44 5F
-53 57 58 00 1C D3 F2 40 51 00 19 20 B0 12 CC 5C
-38 20 B0 12 54 5D 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 4A 54
-09 57 52 49 54 45 5F 53 57 58 2C D3 F0 40 58 00
-49 C2 B0 12 CC 5C 15 20 3A 40 FE FF 29 43 B0 12
-58 5D D2 49 00 1E 4E 06 03 43 19 53 39 90 00 02
-F8 23 39 40 03 00 B0 12 56 5D 7A C0 E1 00 6A 92
-D9 27 8C 10 1C 52 4C 06 D2 D3 23 02 0D 12 84 12
-34 43 14 40 0B 3C 20 53 44 20 45 72 72 6F 72 21
-22 5E 2F 83 8F 4E 00 00 B2 40 10 00 DC 1D 0E 4C
-84 12 00 45 36 41 B0 12 9C 41 0E 93 9C 24 E2 B2
-60 02 99 20 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 39 42
-B0 12 56 5D D2 C3 23 02 2C 42 B2 40 95 00 14 20
-B2 40 00 40 18 20 B0 12 50 5D 02 24 30 40 02 5E
-B0 12 54 5D 7A 93 FC 23 B2 40 87 AA 14 20 92 43
-16 20 B2 40 00 48 18 20 B0 12 50 5D 29 42 B0 12
-56 5D 92 43 14 20 82 43 16 20 78 43 3C 42 B2 40
-00 77 18 20 B0 12 50 5D B2 40 40 69 18 20 B0 12
-0E 5D 03 24 58 83 F3 23 D9 3F 0C 5C A2 43 16 20
-B2 40 00 50 18 20 B0 12 0E 5D D0 23 92 D3 40 06
-82 43 46 06 92 C3 40 06 09 43 B0 12 84 5D 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 08 5E 09 43 B0 12 84 5D
-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 30 41 B0 12 AA 40 39 40 E0 00
-29 83 89 43 38 20 FC 23 82 43 32 20 30 41 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 BC 5F 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 AB 20 BB 80
-00 02 12 00 8B 73 14 00 DB 53 03 00 DB 92 12 20
-03 00 14 28 CB 43 03 00 B0 12 8E 5F 1A 52 08 20
-09 43 B0 12 84 5D 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
-FC 5F 1A 42 1A 20 19 42 1C 20 6C 3E 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 5C 27 C9 37 8B 43 16 00 7A 93 02 24 07 38
-95 3F B2 40 1C 21 CA 40 B2 40 56 43 7A 42 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 7C 60
-22 C3 30 41 1B 42 32 20 0B 93 FB 27 EB 93 02 00
-04 20 B0 12 58 66 B0 12 20 66 CB 93 02 00 E4 37
-1E 4B 18 00 9F 4B 1A 00 00 00 31 50 06 00 3D 41
-B0 12 78 61 02 24 30 40 4A 43 B2 40 3C 1D CA 40
-B2 40 7C 42 7A 42 30 40 34 43 40 4E 85 52 45 41
-44 22 5A 43 19 3C B4 4C 86 57 52 49 54 45 22 00
-6A 43 12 3C A8 4D 84 44 45 4C 22 00 6A 42 0C 3C
-F8 4A 05 43 4C 4F 53 45 B0 12 94 61 30 4D 62 4C
-85 4C 4F 41 44 22 7A 43 2F 83 8F 4E 00 00 0E 4A
-82 93 BE 1D 0B 24 0D 12 84 12 0A 40 0A 40 BA 47
-BA 47 44 45 0A 40 4C 62 BA 47 C0 44 0D 12 84 12
-0A 40 22 00 8C 45 0A 48 4A 62 3D 41 36 4F 0E 56
-82 4E 36 20 1C 43 92 42 2C 20 22 20 92 42 2E 20
-24 20 0E 96 8D 24 F6 90 3A 00 01 00 01 20 26 53
-F6 90 5C 00 00 00 08 20 16 53 92 42 02 20 22 20
-82 43 24 20 0E 96 70 24 82 46 34 20 B0 12 BC 5F
-35 40 20 00 A2 93 02 20 04 24 92 92 22 20 02 20
-02 24 15 42 12 20 B0 12 A2 60 2C 43 0A 43 08 4A
-58 0E 08 58 82 48 30 20 C8 93 00 1E 61 24 39 42
-F8 96 00 1E 04 20 18 53 19 83 FA 23 16 53 F6 90
-2E 00 FF FF 19 24 39 50 03 00 B0 12 1A 60 06 20
-F6 90 5C 00 FF FF 29 24 0E 96 27 28 16 42 34 20
-1A 53 3A 90 10 00 DB 23 92 53 1A 20 82 63 1C 20
-15 83 D1 23 2C 42 3C 3C F6 90 2E 00 FE FF EE 27
-B0 12 1A 60 EB 23 39 40 03 00 F8 96 00 1E 04 20
-18 53 19 83 FA 23 09 3C 0E 96 E0 2F F6 90 5C 00
-FF FF DC 23 B0 12 1A 60 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 96 8E 2F 92 42 22 20 2C 20 92 42
-24 20 2E 20 8F 43 00 00 03 3C 2A 4F B0 12 AC 60
-35 40 D4 40 36 40 E2 40 3A 4F 3E 4F 0A 93 04 24
-7A 93 3C 20 0C 93 01 20 30 4D 0D 12 84 12 34 43
-14 40 0B 3C 20 4F 70 65 6E 45 72 72 6F 72 3A 40
-20 5E 38 4C 05 5B 50 46 41 5D 2E 53 2E 4E 30 4D
-02 62 04 42 4F 4F 54 00 39 40 36 5E 2E 93 01 2C
-30 41 E2 B2 60 02 02 24 10 49 02 00 89 12 3F 40
-7E 1C 8F 43 00 00 82 43 BE 1D B2 40 00 1C 00 1C
-31 40 E0 1C 84 12 14 40 0F 4C 4F 41 44 22 20 42
-4F 4F 54 2E 34 54 48 22 3A 40 A2 48 1A 93 BB 20
-0C 93 C3 23 30 4D DC 61 04 52 45 41 44 00 2F 83
-8F 4E 00 00 1E 42 32 20 B0 12 2E 60 1E 82 32 20
-30 4D 2C 43 12 12 2A 20 18 42 02 20 08 58 2A 41
-82 9A 0A 20 A6 24 1A 52 08 20 09 43 B0 12 84 5D
-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 E7 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 09 43 B0 12 CA 5D 3A 41 1A 52
-0C 20 09 43 B0 12 CA 5D 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 74 65
-39 40 03 00 7A 4B C8 4A 00 1E 82 9B 36 20 12 28
-0D 12 3D 40 0F 00 3C 40 24 65 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 DC 20 2C 93 0E 24 0C 93
-AB 24 0D 12 84 12 14 40 0C 3C 20 57 72 69 74 65
-45 72 72 6F 72 00 3A 40 20 5E B0 12 32 64 92 42
-26 20 22 20 92 42 28 20 24 20 B0 12 B0 64 B0 12
-A2 60 18 42 30 20 F8 40 20 00 0B 1E B0 12 C8 64
-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 C9 27
-FB 90 2E 00 00 00 C5 27 39 40 0B 00 B0 12 44 65
-B0 12 62 66 2A 43 B0 12 AC 60 0C 93 BA 23 30 4D
-1A 4B 04 00 19 4B 06 00 B0 12 84 5D B0 12 C8 64
-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 CA 5D 9B 52 1E 20 12 00 8B 63
-14 00 1A 42 1A 20 19 42 1C 20 30 40 CA 5D B2 40
-00 02 1E 20 1B 42 32 20 B0 12 58 66 82 43 1E 20
-DB 53 03 00 DB 92 12 20 03 00 25 20 CB 43 03 00
-B0 12 8E 5F 08 12 0A 12 B0 12 32 64 2A 91 08 24
-B0 12 B0 64 2A 41 1A 52 08 20 09 43 B0 12 84 5D
-3A 41 38 41 98 42 26 20 00 1E 92 93 02 20 03 24
-98 42 28 20 02 1E B0 12 B0 64 9B 42 26 20 0E 00
-9B 42 28 20 10 00 30 40 FC 5F E8 61 05 57 52 49
-54 45 B0 12 6E 66 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 9E 60
-30 4D 0C 93 3B 20 38 90 E0 01 03 2C C8 93 20 1E
-02 24 7C 40 E5 00 C8 4C 00 1E B0 12 62 66 B0 12
-9A 5F 82 4A 2A 20 0B 4A 1A 52 08 20 09 43 B0 12
-84 5D 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
-9A 5F 0B 9A E6 27 0A 12 0A 4B B0 12 B0 64 3A 41
-DA 3F 0A 4B B0 12 B0 64 B0 12 94 61 30 4D FC 44
-08 54 45 52 4D 32 53 44 22 00 0D 12 84 12 FC 61
-0A 40 02 00 28 40 0A 48 4C 62 DC 67 3D 41 0A 43
-B0 12 DA 41 92 B3 DC 05 FD 27 59 42 CC 05 C2 49
-CE 05 69 92 0D 24 CA 49 00 1E 1A 53 3A 90 FF 01
-F1 2B 03 24 B0 12 6E 66 EA 3F B0 12 C8 41 EA 3F
-B0 12 C8 41 82 4A 1E 20 B0 12 94 61 30 4D
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-96 42 02 42 02 42 02 42 02 42 02 42 02 42 A8 4E
-q
diff --git a/binaries/MSP_EXP430FR5994_1MHz_115200.txt b/binaries/MSP_EXP430FR5994_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..f789d59
--- /dev/null
@@ -0,0 +1,505 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A1 59
+DA 42 7E 41 0A 56 EA 54 4A 43 62 5E 4E 4C 08 4C
+08 4C C0 42 7E 43 46 43 3C 1D E0 1C FC 45 B6 40
+C4 40 18 45 20 00 0A 00 00 1C 7E 41 0A 56 EA 54
+4A 43 62 5E 4E 4C 08 4C 08 4C 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 08 3D 0E 93 3E 4F
+CC 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 BE 42 B2 49
+7C 43 B2 49 44 43 B2 49 A0 40 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 C2 4C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 4A 43 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 40 22 45 AC 40 52 41 8C 43 1E 40 04 1B
+5B 37 6D 00 0C 44 0C 44 1E 40 04 1B 5B 30 6D 00
+0C 44 58 49 B0 12 7E 41 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 8C 43 1E 40
+07 0D 0A 1B 5B 37 6D 23 0C 44 70 46 1E 40 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 0C 44 0A 40 40 FF 32 40
+38 45 3C 46 1E 40 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 40 46 41 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 41 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 40 00 40 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40
+E0 1C 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 B2 40
+33 00 64 01 D2 43 61 01 39 40 40 00 18 42 00 18
+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 19 42 9E 01 1E 42
+08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 40
+86 41 00 00 0C 41 43 43 45 50 54 00 30 40 C0 42
+08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40
+1E 43 3C 40 2A 43 5D 15 93 3E 21 52 3A 17 58 42
+CC 05 48 9B 09 20 A2 B3 DC 05 FD 27 B2 40 13 00
+CE 05 E2 D2 23 02 30 41 48 9C 06 2C 78 92 11 20
+2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00
+1E 53 A2 B3 DC 05 FD 27 C2 48 CE 05 30 4D 20 43
+2D 83 92 B3 DC 05 DB 23 FC 3F 3E 8F 3D 41 92 B3
+DC 05 FD 27 58 42 CC 05 08 4C EB 3F 00 00 06 4B
+45 59 30 40 46 43 30 12 5C 43 A2 B3 DC 05 FD 27
+B2 40 11 00 CE 05 E2 C2 23 02 30 41 2F 83 8F 4E
+00 00 92 B3 DC 05 FD 27 B0 12 E6 42 1E 42 CC 05
+30 4D 00 00 08 45 4D 49 54 00 30 40 7E 43 08 4E
+3E 4F C7 3F 74 43 08 45 43 48 4F 00 B2 40 C2 48
+18 43 30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40
+30 4D 18 43 30 4D 0D 12 3D 40 C6 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 C8 43 2D 83 0C 9B 16 2C 58 4C
+00 1E 1C 53 78 90 20 00 09 2C 78 90 0A 00 F5 23
+82 4C 1E 20 3D 41 3C 40 20 00 A6 3F 0E 99 91 27
+CA 48 00 00 1A 53 1E 53 8C 3F 1A 15 B0 12 58 57
+19 17 DC 3F 00 00 08 54 59 50 45 00 0D 12 3D 40
+1C 44 29 4F 8F 4E 00 00 7E 49 AF 3F 1E 44 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 3A 22 F9 98
+00 00 37 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 2E 22 9B 24 3E 43 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A 40 00 00 3C 45 2E 44 80 46
+3A 49 B0 40 AA 44 14 40 06 5B 54 48 45 4E 5D 00
+32 44 88 44 4E 44 6C 44 14 40 06 5B 45 4C 53 45
+5D 00 32 44 9A 44 4E 44 6A 44 1E 40 04 5B 49 46
+5D 00 32 44 6C 44 B2 40 6A 44 1E 40 05 0D 6B 6F
+20 0A 0C 44 9A 40 84 40 B2 40 6C 44 5A 44 0D 5B
+54 48 45 4E 5D 00 30 4D BE 44 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D CA 44 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 2E 44 80 46 E8 46 8C 48
+FC 45 DA 44 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 2E 44 80 46 E8 46 0C 45 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D B4 42 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D D8 41 05 53 22 00 82 43 C0 1D 0D 12
+84 12 0A 40 1E 40 EA 48 0A 40 22 00 80 46 80 45
+B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F
+3D 41 30 4D 96 43 05 2E 22 00 0D 12 84 12 6A 45
+0A 40 0C 44 EA 48 FC 45 00 00 04 3C 23 00 B2 40
+B2 1D B2 1D 30 4D 66 45 02 23 1B 42 BE 1D 2C 4F
+2F 83 B0 12 46 40 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 B8 45 04 23 53 00 0D 12 84 12
+BA 45 F4 45 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+E8 45 04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F 02 46 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 86 43 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 AE 45 2E 44 1C 46
+EC 45 18 45 2A 46 06 46 0C 44 FC 45 96 45 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D
+82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D 6E 46 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 F2 47 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 F4 47 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 40 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+AA 45 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12
+84 40 2E 44 80 46 B0 40 C4 49 E8 46 AE 48 0A 4E
+3E 4F 3D 40 C8 48 6D 27 3D 40 A2 48 1A E2 BC 1D
+14 24 0E 12 3E 4F 30 41 CA 48 3E 4F 3D 40 A2 48
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 A0 4A 2A 3C 92 48 02 2C A2 53 C8 1D 1A 42
+C8 1D 8A 4E FE FF 3E 4F 30 4D E8 48 0F 4C 49 54
+45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D
+A2 52 C8 1D BA 40 0A 40 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D 24 46 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D 4A 45 0A 41 4C 4C 4F 54
+82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12
+1E 40 02 0D 0A 00 0C 44 94 40 9C 48 2A 45 54 45
+1E 40 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 41
+32 40 0A 40 40 FF 5C 45 1E 40 09 46 52 41 4D 20
+66 75 6C 6C 08 41 B2 40 60 49 4A 49 0D 41 42 4F
+52 54 22 00 0D 12 84 12 6A 45 0A 40 08 41 EA 48
+FC 45 7A 46 02 27 0D 12 84 12 2E 44 80 46 E8 46
+B0 40 C6 49 8E 45 D2 48 F4 44 07 5B 27 5D 0D 12
+84 12 B6 49 0A 40 0A 40 EA 48 EA 48 FC 45 CA 49
+03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D
+30 4D 42 45 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 2E 44 80 46 E8 46 B0 40 C6 49 54 45 AC 40
+1E 4A 0A 40 0A 40 EA 48 EA 48 0A 40 EA 48 EA 48
+FC 45 00 00 02 3A 30 12 74 4A 92 B3 C8 1D A2 63
+C8 1D 0D 12 84 12 2E 44 80 46 3C 4A 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D
+82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A
+C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E 40
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 41 E0 49 03 3B 82 93 BC 1D F4 26 0D 12 84 12
+0A 40 FC 45 EA 48 86 4A E2 49 FC 45 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00
+30 4D 34 49 0C 43 52 45 41 54 45 00 B0 12 2A 4A
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 06 44 0A 44
+4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D 24 4A 0E 3A 4E 4F 4E 41 4D 45
+30 12 74 4A 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F BE 4A 05 49
+53 00 0D 12 82 93 BC 1D 08 20 84 12 B6 49 40 4B
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 CE 49 0A 40
+42 4B EA 48 FC 45 D4 4A 08 43 4F 44 45 00 B0 12
+2A 4A A2 82 C8 1D 61 3C 16 46 0E 48 44 4E 43 4F
+44 45 B2 40 2E 4C CC 1D F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 86 4A 8C 4B 3D 41 92 42
+D0 1D CC 1D 5D 3C 58 4B 0E 43 4F 44 45 4E 4E 4D
+30 12 62 4B B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 1D 1A 42 C8 1D EF 3F 6A 4B 0B 48 49 32
+4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43
+BC 1D B9 3F F6 4B B2 40 08 4C D0 1D 82 4E CE 1D
+30 40 8E 45 85 12 F4 4B F4 49 68 58 64 5A 76 58
+FE 5D 38 46 E2 46 DE 5C DC 4B 2E 4B 08 4B A4 4A
+84 58 10 4D 48 5A 00 00 00 00 85 12 F4 4B 8A 53
+0E 52 30 54 36 51 92 51 E0 51 BC 52 76 54 58 50
+7C 51 00 00 00 00 CA 4B 48 4F 00 00 E4 52 28 4C
+B2 40 08 4C CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12
+5C 4C 30 4D 6E 4C 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 1D B0 12 5C 4C 1A 42 CA 1D
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 08 42 FE FF 29 83 B9 40 F2 41 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 F0 FF 3B 40
+10 00 3A 40 3A 18 B0 12 60 4C 82 43 4A 18 C7 3F
+02 4D B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F EA 49
+0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12
+2E 44 80 46 E8 46 AC 40 2E 4D 22 45 C2 48 30 4D
+3E 4F 3D 41 B2 41 C6 1D B0 12 2A 4A BA 40 85 12
+FC FF BA 40 00 4D FE FF 28 83 8A 48 00 00 BA 40
+82 40 02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12
+80 46 E8 46 AC 40 9A 4D 7A 4D 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 00 4D 00 00
+01 20 3E 52 2E 83 21 53 30 41 92 47 AC 40 A2 4D
+96 4D A4 4D B2 41 C6 1D 30 41 92 83 C6 1D 3E 40
+28 00 0A 4E 3D 15 B0 12 6A 4D 15 20 3E 40 2B 00
+B0 12 6A 4D 06 20 3E 40 2D 00 B0 12 6A 4D 92 83
+C6 1D 0E 12 1E 41 02 00 84 12 80 46 92 47 AC 40
+C6 49 E4 4D 3E 51 3A 17 30 41 B0 12 AA 4D 19 42
+C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53
+C6 1D 1A 42 C6 1D 3D 15 84 12 80 46 92 47 AC 40
+1C 4E 14 4E 3E 90 10 00 E6 2B 7C 2D 1E 4E A2 41
+C6 1D E1 3F 03 20 B0 12 02 4E 43 3C 7A 90 23 00
+24 20 B0 12 B2 4D 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 C8 1D A2 53
+C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 B2 4D F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 FE 4D 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 02 4E 92 92 C2 1D C6 1D 02 24 92 53
+C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 EA 4D
+F2 3F 03 20 B0 12 02 4E F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 EA 4D EA 3F
+0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42
+C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82
+C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A 40 00 13 EA 48 FC 45
+0A 40 2C 00 E0 4E 24 4E 2E 44 EA 4E C2 4E 30 4F
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 20 4F 00 40 3C 4F 0A 4D 4F 56 2E 42 85 12
+20 4F 40 40 00 00 06 41 44 44 85 12 20 4F 00 50
+56 4F 0A 41 44 44 2E 42 85 12 20 4F 40 50 62 4F
+08 41 44 44 43 00 85 12 20 4F 00 60 70 4F 0C 41
+44 44 43 2E 42 00 85 12 20 4F 40 60 A8 4B 08 53
+55 42 43 00 85 12 20 4F 00 70 8E 4F 0C 53 55 42
+43 2E 42 00 85 12 20 4F 40 70 9C 4F 06 53 55 42
+85 12 20 4F 00 80 AC 4F 0A 53 55 42 2E 42 85 12
+20 4F 40 80 B8 4F 06 43 4D 50 85 12 20 4F 00 90
+C6 4F 0A 43 4D 50 2E 42 85 12 20 4F 40 90 00 00
+08 44 41 44 44 00 85 12 20 4F 00 A0 E0 4F 0C 44
+41 44 44 2E 42 00 85 12 20 4F 40 A0 0E 4F 06 42
+49 54 85 12 20 4F 00 B0 FE 4F 0A 42 49 54 2E 42
+85 12 20 4F 40 B0 0A 50 06 42 49 43 85 12 20 4F
+00 C0 18 50 0A 42 49 43 2E 42 85 12 20 4F 40 C0
+24 50 06 42 49 53 85 12 20 4F 00 D0 32 50 0A 42
+49 53 2E 42 85 12 20 4F 40 D0 00 00 06 58 4F 52
+85 12 20 4F 00 E0 4C 50 0A 58 4F 52 2E 42 85 12
+20 4F 40 E0 7E 4F 06 41 4E 44 85 12 20 4F 00 F0
+66 50 0A 41 4E 44 2E 42 85 12 20 4F 40 F0 2E 44
+E0 4E 24 4E 86 50 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F 3E 50 06 52 52 43 85 12 7E 50
+00 10 98 50 0A 52 52 43 2E 42 85 12 7E 50 40 10
+D2 4F 08 53 57 50 42 00 85 12 7E 50 80 10 A4 50
+06 52 52 41 85 12 7E 50 00 11 C0 50 0A 52 52 41
+2E 42 85 12 7E 50 40 11 B2 50 06 53 58 54 85 12
+7E 50 80 11 00 00 08 50 55 53 48 00 85 12 7E 50
+00 12 E6 50 0C 50 55 53 48 2E 42 00 85 12 7E 50
+40 12 DA 50 08 43 41 4C 4C 00 85 12 7E 50 80 12
+1A 53 0E 4A 84 12 70 46 1E 40 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 41 04 51 06 53 3E 3D
+86 12 00 38 2C 51 04 53 3C 00 86 12 00 34 F4 50
+06 30 3E 3D 86 12 00 30 40 51 04 30 3C 00 86 12
+00 30 7C 4B 04 55 3C 00 86 12 00 2C 54 51 06 55
+3E 3D 86 12 00 28 4A 51 06 30 3C 3E 86 12 00 24
+68 51 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D
+EE 4F 08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D 5E 51 08 45 4C 53 45 00 1A 42 C8 1D
+BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00
+E3 3F CC 50 0A 42 45 47 49 4E 30 40 32 40 B6 51
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 1D 30 4D 72 50 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 80 51 16 45 FC 45 D4 51
+0C 52 45 50 45 41 54 00 0D 12 84 12 14 52 98 51
+FC 45 44 52 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D
+CB 2F 98 42 C8 1D 00 00 30 4D 30 52 06 42 57 31
+85 12 42 52 00 00 5C 52 06 42 57 32 85 12 42 52
+00 00 68 52 06 42 57 33 85 12 42 52 00 00 80 52
+3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D
+86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 7E 52 00 00 A4 52
+06 46 57 32 85 12 7E 52 00 00 B0 52 06 46 57 33
+85 12 7E 52 00 00 1E 52 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 B6 49 C2 48
+FC 45 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+EA 4E 0A 40 2C 00 80 46 92 47 AC 40 C6 49 2E 44
+E0 4E C2 4E 16 53 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E 74 52 08 52 52 43 4D 00 85 12 00 53 50 00
+44 53 08 52 52 41 4D 00 85 12 00 53 50 01 52 53
+08 52 4C 41 4D 00 85 12 00 53 50 02 60 53 08 52
+52 55 4D 00 85 12 00 53 50 03 72 51 0A 50 55 53
+48 4D 85 12 00 53 00 15 7C 53 08 50 4F 50 4D 00
+85 12 00 53 00 17 D2 C3 23 02 E2 B2 60 02 02 24
+30 40 F2 41 1A 52 04 20 19 62 06 20 92 43 14 20
+C2 4A 15 20 8A 10 C2 4A 16 20 C2 49 17 20 89 10
+C2 49 18 20 B0 12 0A 54 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 1A 43 E1 3F 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 6E 53
+12 52 5F 53 45 43 54 5F 57 58 1C D3 F2 40 51 00
+19 20 B0 12 96 53 38 20 B0 12 0A 54 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 C8 52 12 57 5F 53 45 43 54 5F 57 58
+2C D3 F0 40 58 00 93 CB B0 12 96 53 15 20 3A 40
+FE FF 29 43 B0 12 0E 54 D2 49 00 1E 4E 06 03 43
+19 53 39 90 00 02 F8 23 39 40 03 00 B0 12 0C 54
+7A C0 E1 00 6A 82 D9 27 8C 10 1C 52 4C 06 D2 D3
+23 02 84 12 8C 43 1E 40 0B 3C 20 53 44 20 45 72
+72 6F 72 21 D6 54 2F 83 8F 4E 00 00 B2 40 10 00
+BE 1D 0E 4C 84 12 3C 46 12 41 B0 12 54 41 E2 B2
+60 02 8A 20 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 39 40
+6E 01 29 83 89 43 02 20 FC 23 39 42 B0 12 0C 54
+D2 C3 23 02 2C 42 B2 40 95 00 14 20 B2 40 00 40
+18 20 B0 12 06 54 02 24 30 40 B8 54 B0 12 0A 54
+7A 93 FC 23 B2 40 87 AA 14 20 92 43 16 20 B2 40
+00 48 18 20 B0 12 06 54 29 42 B0 12 0C 54 92 43
+14 20 82 43 16 20 78 43 3C 42 B2 40 00 77 18 20
+B0 12 06 54 B2 40 40 69 18 20 B0 12 C4 53 03 24
+58 83 F3 23 D9 3F 0C 5C A2 43 16 20 B2 40 00 50
+18 20 B0 12 C4 53 D0 23 92 D3 40 06 82 43 46 06
+92 C3 40 06 0A 43 09 43 B0 12 3A 54 38 40 00 1E
+92 48 C6 01 04 20 92 48 C8 01 06 20 5C 48 C2 01
+7C 80 0C 00 08 24 5C 53 06 24 6C 52 04 24 3C 50
+07 20 30 40 BE 54 09 43 B0 12 3A 54 A2 43 2C 20
+19 48 0E 00 82 49 08 20 1A 48 24 00 82 4A 0A 20
+09 5A 82 49 0C 20 09 5A 58 48 0D 00 82 48 12 20
+09 88 09 88 82 49 10 20 30 41 82 43 32 20 30 40
+84 41 92 4B 0E 00 22 20 92 4B 10 00 24 20 5A 42
+23 20 58 42 22 20 59 42 24 20 89 10 0A D9 88 10
+08 58 0A 6A 88 10 08 58 30 41 1A 52 08 20 09 43
+FC 3E 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 42 56 5A 4B 03 00
+82 5A 1A 20 82 63 1C 20 30 41 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 A3 25 09 4B 3B 50 1C 00 3B 90
+18 21 EF 23 0C 5C 9B 3D 0C 43 82 4B 32 20 8B 49
+00 00 09 93 0A 24 99 52 C6 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
+1A 24 A4 37 8B 43 16 00 7A 93 02 24 07 38 35 3C
+B2 40 1C 21 A0 40 B2 40 A6 43 BE 42 9B 42 C2 1D
+18 00 9B 82 C6 1D 18 00 9B 42 C4 1D 1A 00 9B 52
+C6 1D 1A 00 22 3C 30 41 1B 42 32 20 82 43 1E 20
+B2 90 00 02 20 20 3F 20 BB 80 00 02 12 00 8B 73
+14 00 DB 53 03 00 DB 92 12 20 03 00 0E 28 CB 43
+03 00 B0 12 12 56 B0 12 3A 56 8B 43 10 00 9B 48
+00 1E 0E 00 9B 48 02 1E 10 00 B2 40 00 02 20 20
+8B 93 14 00 0B 20 92 9B 12 00 1E 20 1C 2C BB 90
+00 02 12 00 03 2C 92 4B 12 00 20 20 B0 12 6C 56
+1A 42 1A 20 19 42 1C 20 38 3E CB 43 02 00 2B 4B
+82 4B 32 20 0B 93 06 24 92 4B 16 00 1E 20 B0 12
+9A 57 22 C3 30 41 1B 42 32 20 0B 93 FB 27 EB 92
+02 00 04 20 B0 12 58 5B B0 12 48 5C CB 93 02 00
+E4 37 1E 4B 18 00 9F 4B 1A 00 00 00 31 50 06 00
+3D 41 B0 12 CA 57 02 24 30 40 9E 43 B2 40 3C 1D
+A0 40 B2 40 C0 42 BE 42 30 40 8C 43 09 93 07 24
+F8 90 20 00 00 1E 03 20 18 53 19 83 F9 23 30 41
+86 4C 0B 52 45 41 44 22 5A 43 20 3C EE 4A 09 44
+45 4C 22 00 6A 43 1A 3C B4 49 0D 57 52 49 54 45
+22 00 6A 42 13 3C 9C 49 0F 41 50 50 45 4E 44 22
+7A 42 0C 3C 98 4B 0A 43 4C 4F 53 45 B0 12 E6 57
+30 4D FC 48 0B 4C 4F 41 44 22 7A 43 2F 83 8F 4E
+00 00 0E 4A 82 93 BC 1D 0B 24 0D 12 84 12 0A 40
+0A 40 EA 48 EA 48 6A 45 0A 40 C0 58 EA 48 FC 45
+0D 12 84 12 0A 40 22 00 80 46 3A 49 BE 58 3D 41
+36 4F 0E 56 82 4E 36 20 A2 43 22 20 82 43 24 20
+1C 43 0E 96 8C 24 F6 90 3A 00 01 00 01 20 26 53
+F6 90 5C 00 00 00 03 20 16 53 0E 96 66 24 82 46
+34 20 B0 12 42 56 15 42 12 20 B0 12 C0 57 2C 43
+0A 43 08 4A 58 0E 08 58 82 48 30 20 C8 93 00 1E
+60 24 39 42 F8 96 00 1E 04 20 18 53 19 83 FA 23
+16 53 F6 90 2E 00 FF FF 19 24 39 50 03 00 B0 12
+2C 58 06 20 F6 90 5C 00 FF FF 29 24 0E 96 27 28
+16 42 34 20 1A 53 3A 90 10 00 DB 23 92 53 1A 20
+82 63 1C 20 15 83 D1 23 2C 42 49 3C F6 90 2E 00
+FE FF EE 27 B0 12 2C 58 EB 23 39 40 03 00 F8 96
+00 1E 04 20 18 53 19 83 FA 23 09 3C 0E 96 E0 2F
+F6 90 5C 00 FF FF DC 23 B0 12 2C 58 D9 23 18 42
+30 20 92 48 1A 1E 22 20 92 48 14 1E 24 20 F8 B0
+10 00 0B 1E 13 24 82 93 24 20 05 20 82 93 22 20
+02 20 A2 43 22 20 0E 96 9A 23 92 42 22 20 2C 20
+92 42 24 20 2E 20 8F 43 00 00 03 3C 2A 4F B0 12
+8A 56 35 40 B6 40 36 40 C4 40 3A 4F 3E 4F 0A 93
+04 24 7A 93 39 20 0C 93 02 20 30 40 9E 43 0D 12
+84 12 8C 43 1E 40 0B 3C 20 4F 70 65 6E 45 72 72
+6F 72 B2 40 D4 54 E2 B2 60 02 02 24 30 40 86 41
+92 12 3E 18 3F 40 7E 1C 8F 43 00 00 0D 12 84 12
+1E 40 0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54
+48 22 B2 40 6A 49 42 58 08 42 4F 4F 54 00 B2 40
+06 5A B0 42 30 4D 3A 47 0C 4E 4F 42 4F 4F 54 00
+B2 40 86 41 B0 42 30 4D 1A 93 89 20 0C 93 C7 23
+30 4D 38 5A 08 52 45 41 44 00 2F 83 8F 4E 00 00
+1E 42 32 20 B0 12 58 57 1E 82 32 20 30 4D 08 4A
+1A 52 08 20 B0 12 8E 5A 0A 48 1A 52 0C 20 09 43
+30 40 80 54 3C 42 0A 12 2A 41 82 9A 0A 20 2B 25
+B0 12 3A 56 88 93 02 1E 03 20 88 93 00 1E 08 24
+28 52 38 90 00 02 F6 2B 91 53 00 00 08 43 EC 3F
+A2 41 26 20 82 48 28 20 0C 43 B8 43 00 1E 6A 41
+B8 40 FF 0F 02 1E 08 11 8A 10 08 5A 5A 41 01 00
+0A 11 08 10 82 4A 24 20 82 48 22 20 2A 41 B0 12
+7E 5A 3A 41 30 41 90 4B 0A 00 28 C5 90 4B 0C 00
+24 C5 B0 12 1E 56 82 4A 26 20 82 48 28 20 0A 12
+B0 12 3A 56 1A 48 00 1E 88 43 00 1E 19 48 02 1E
+88 43 02 1E 39 F0 FF 0F 39 90 FF 0F 02 20 3A 93
+10 24 82 4A 22 20 82 49 24 20 B0 12 1E 56 2A 91
+E9 27 09 4A 2A 41 81 49 00 00 B0 12 7E 5A 2A 41
+DF 3F 3A 41 30 40 7E 5A 9B 52 1E 20 12 00 8B 63
+14 00 1A 42 1A 20 19 42 1C 20 30 40 80 54 2A 93
+BC 20 0C 93 09 20 F8 40 E5 00 00 1E B0 12 62 5B
+B0 12 F6 5A B0 12 E6 57 30 4D 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 28 39 80 03 00 B0 12
+36 5C 39 40 03 00 7A 4B C8 4A 00 1E 82 9B 36 20
+12 28 0D 12 3D 40 0F 00 3C 40 E6 5B 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 1A 4B 04 00 19 4B 06 00
+B0 12 3A 54 18 4B 08 00 B0 12 8A 5B 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 80 54
+B2 40 00 02 1E 20 1B 42 32 20 B0 12 58 5B 82 43
+1E 20 DB 53 03 00 DB 92 12 20 03 00 1D 28 B0 12
+12 56 08 12 0A 12 B0 12 94 5A 2A 91 03 24 2A 41
+B0 12 3A 56 3A 41 38 41 98 42 22 20 00 1E 98 42
+24 20 02 1E B0 12 7E 5A AB 42 02 00 9B 42 22 20
+0E 00 9B 42 24 20 10 00 30 40 78 56 5A 58 0A 57
+52 49 54 45 B0 12 80 5C 30 4D 2A 92 54 20 2C 93
+0E 24 0C 93 3D 24 0D 12 84 12 1E 40 0C 3C 20 57
+72 69 74 65 45 72 72 6F 72 00 B2 40 D4 54 0A 43
+08 43 B0 12 94 5A B0 12 C0 57 18 42 30 20 F8 40
+20 00 0B 1E B0 12 8A 5B 88 43 0C 1E 88 4A 0E 1E
+88 49 10 1E 98 42 24 20 14 1E 98 42 22 20 1A 1E
+88 43 1C 1E 88 43 1E 1E 2C 42 1B 42 34 20 82 9B
+36 20 D1 27 FB 90 2E 00 00 00 CD 27 39 40 0B 00
+B0 12 06 5C B0 12 62 5B 2A 42 B0 12 8A 56 30 4D
+B0 12 F6 5A 8B 43 12 00 8B 43 14 00 90 4B 0A 00
+A2 C2 90 4B 0C 00 9E C2 B0 12 1E 56 B0 12 94 5A
+B0 12 C8 5C 30 4D 2C 93 BA 27 0C 93 AC 23 EB 42
+02 00 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 B0 12 BC 57 1A 4B 12 00 BB C0 FF 01
+12 00 3A F0 FF 01 82 4A 1E 20 30 4D 4E 58 10 54
+45 52 4D 32 53 44 22 00 0D 12 84 12 62 58 10 5E
+0A 43 B0 12 4A 43 92 B3 DC 05 FD 27 59 42 CC 05
+C2 49 CE 05 69 92 0D 24 CA 49 00 1E 1A 53 3A 90
+FF 01 04 24 F0 2B B0 12 80 5C EA 3F B0 12 E6 42
+EA 3F F2 90 0D 00 CC 05 FC 27 B0 12 E6 42 F2 90
+0A 00 CC 05 FC 27 82 4A 1E 20 B0 12 E6 57 3D 41
+30 4D
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+DA 42 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 08 42
+q
index 070a11c..34ced74 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF 04 68 3E 4D 34 01
-10 00 C1 87 B6 41 50 5F B8 41 0E 5E 84 42 04 68
-3E 4D 72 42 E0 43 00 43 DC 42 3C 1D AE 44 D4 40
-E2 40 EE 40 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+D4 42 56 41 E6 55 C6 54 44 41 44 5E 2A 4C E4 4B
+E4 4B C2 42 46 43 1E 43 3C 1D E0 1C D8 45 B6 40
+C4 40 F4 44 20 00 0A 00 00 1C 56 41 E6 55 C6 54
+44 41 44 5E 2A 4C E4 4B E4 4B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4000
-B0 12 B8 41 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 40
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 50 5F 39 40 22 18
-B2 49 70 42 B2 49 DE 43 B2 49 FE 42 B2 49 DA 42
-B2 49 CA 40 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 46 4E 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 41 0E 12 B0 12
-F8 40 0A 40 DE 1D 2E 44 18 43 EE 40 34 40 8A 41
-14 40 05 1B 5B 37 6D 40 AA 43 0A 40 02 18 2E 44
-24 45 F6 43 34 40 7E 41 14 40 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 AA 43 EE 44 AA 43
-14 40 04 1B 5B 30 6D 00 AA 43 76 48 2E 93 13 28
-B2 D0 C0 07 C0 06 18 42 02 18 08 11 38 D0 00 04
-82 48 D4 06 F2 D0 03 00 6A 02 92 C3 C0 06 A2 D2
-EA 06 92 C3 30 01 30 41 48 43 A2 B3 EC 06 FD 27
-C2 48 CE 06 A2 B2 EC 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 41 F2 B0 40 00 40 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE 41 04 57 41 52 4D 00
-B0 12 0E 5E 78 40 03 00 B0 12 BA 41 84 12 14 40
-07 0D 0A 1B 5B 37 6D 40 AA 43 0A 40 02 18 2E 44
-24 45 0A 40 23 00 FC 42 24 45 14 40 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 AA 43 0A 40 40 FF 28 40 22 44
-EE 44 14 40 0A 62 79 74 65 73 20 66 72 65 65 00
-3A 40 7E 41 00 00 06 41 43 43 45 50 54 00 30 40
-72 42 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 EC 06 B2 B0 10 00 C0 06
-B7 22 3A 17 92 B3 EC 06 FD 27 58 42 CC 06 48 9B
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 09 3D 0E 93 3E 4F
+BA 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 C0 42 B2 49
+44 43 B2 49 1C 43 B2 49 A0 40 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 9E 4C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 41 B0 12 D0 40 FE 44 AC 40
+42 41 5E 43 1E 40 05 1B 5B 37 6D 40 E8 43 0A 40
+02 18 20 45 4C 46 E8 43 1E 40 04 1B 5B 30 6D 00
+E8 43 34 49 48 43 A2 B3 EC 06 FD 27 C2 48 CE 06
+A2 B2 EC 06 FD 27 30 41 B2 D0 C0 07 C0 06 18 42
+02 18 08 11 38 D0 00 04 82 48 D4 06 F2 D0 03 00
+6A 02 92 C3 C0 06 A2 D2 EA 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 5E 43 1E 40 07 0D 0A 1B 5B 37
+6D 40 E8 43 0A 40 02 18 20 45 4C 46 0A 40 23 00
+42 43 4C 46 1E 40 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+E8 43 0A 40 40 FF 32 40 14 45 18 46 1E 40 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 40 36 41 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 41 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+40 00 40 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+5C 01 31 40 E0 1C 3F 40 80 1C B2 D3 06 02 B2 40
+FC FF 02 02 B2 43 26 02 B2 D3 22 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 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
+18 42 00 18 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 1E 42
+08 18 82 43 08 18 3E F3 02 20 1E 42 9E 01 B0 12
+D0 40 80 41 00 00 0C 41 43 43 45 50 54 00 30 40
+C2 42 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
+3D 15 96 3E 21 52 A2 C2 EC 06 B2 B0 10 00 C0 06
+8F 22 3A 17 92 B3 EC 06 FD 27 58 42 CC 06 48 9B
 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 41 82 93 DE 1D 02 24 92 53 DE 1D 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC 42 2F 83 8F 4E
-00 00 58 43 B0 12 BA 41 92 B3 EC 06 FD 27 1E 42
-CC 06 30 4D 00 00 04 45 4D 49 54 00 30 40 00 43
-08 4E 3E 4F A2 B3 EC 06 FD 27 C2 48 CE 06 30 4D
-F6 42 04 45 43 48 4F 00 B2 40 C2 48 0A 43 82 43
-DE 1D 38 40 05 00 B0 12 BA 41 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A 43 92 43 DE 1D
-28 42 F1 3F 0D 12 3D 40 64 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 66 43 2D 83 0C 9B 16 2C 58 4C 00 1E
-1C 53 78 90 20 00 09 2C 78 90 0A 00 F5 23 3D 41
-82 4C 1E 20 3C 40 20 00 9D 3F 0E 99 BB 27 CA 48
-00 00 1A 53 1E 53 B6 3F 1A 15 B0 12 06 60 19 17
-DC 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 C6 43 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FE 42 C8 43 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 41 02 43 52 00 30 40 E0 43
-0D 12 84 12 14 40 02 0D 0A 00 AA 43 AE 44 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 66 42 01 40 2E 4E
-30 4D 2C 44 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D D8 43 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E 40 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 68 44 02 23 53 00 0D 12 84 12
-6A 44 A4 44 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 98 44 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D A4 43 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 5E 44
-9C 44 EE 40 DC 44 B8 44 AA 43 62 48 FC 42 AE 44
-2E 43 01 2E 0E 93 E3 37 38 43 E2 3F D6 44 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A 40 14 40 A8 47
-0A 40 22 00 7A 45 48 45 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D 22 45
-82 2E 22 00 0D 12 84 12 32 45 0A 40 AA 43 A8 47
-AE 44 FA 41 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 40 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 40 35 40 D4 40 30 4D
-00 00 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
+F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F
+08 4C 1B 3C 00 00 06 4B 45 59 30 40 1E 43 58 43
+B0 12 46 41 2F 83 8F 4E 00 00 92 B3 EC 06 FD 27
+1E 42 CC 06 B0 12 44 41 30 4D 00 00 08 45 4D 49
+54 00 30 40 46 43 08 4E 3E 4F A2 B3 EC 06 FD 27
+C2 48 CE 06 30 4D 3C 43 08 45 43 48 4F 00 B2 40
+C2 48 50 43 38 40 05 00 B0 12 46 41 30 4D 00 00
+0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 50 43 28 42
+F3 3F 0D 12 3D 40 A2 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 A4 43 2D 83 0C 9B 16 2C 58 4C 00 1E 1C 53
+78 90 20 00 09 2C 78 90 0A 00 F5 23 82 4C 1E 20
+3D 41 3C 40 20 00 A4 3F 0E 99 BF 27 CA 48 00 00
+1A 53 1E 53 BA 3F 1A 15 B0 12 34 57 19 17 DC 3F
+00 00 08 54 59 50 45 00 0D 12 3D 40 F8 43 29 4F
+8F 4E 00 00 7E 49 A5 3F FA 43 2D 83 2F 83 5E 83
+F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E
+38 4F 3C 9F 39 4F 3E 4F 4C 22 F9 98 00 00 49 22
+19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83
+40 22 9B 24 16 43 0D 5B 45 4C 53 45 5D 00 0D 12
+84 12 0A 40 00 00 18 45 0A 44 5C 46 16 49 B0 40
+86 44 14 40 06 5B 54 48 45 4E 5D 00 0E 44 64 44
+2A 44 48 44 14 40 06 5B 45 4C 53 45 5D 00 0E 44
+76 44 2A 44 46 44 1E 40 04 5B 49 46 5D 00 0E 44
+48 44 B2 40 46 44 1E 40 05 0D 6B 6F 20 0A E8 43
+9A 40 84 40 B2 40 48 44 36 44 0D 5B 54 48 45 4E
+5D 00 30 4D 9A 44 09 5B 49 46 5D 00 0E 93 3E 4F
+C6 27 30 4D A6 44 13 5B 44 45 46 49 4E 45 44 5D
+0D 12 84 12 0A 44 5C 46 C4 46 68 48 D8 45 B6 44
+17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
+0A 44 5C 46 C4 46 E8 44 3D 41 2F 53 1E 83 0E 7E
+30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E
+FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F
+0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40
+2E 4E 30 4D B6 42 02 21 BE 4F 00 00 3E 4F 30 4D
+0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D
+E0 41 05 53 22 00 82 43 C0 1D 0D 12 84 12 0A 40
+1E 40 C6 48 0A 40 22 00 5C 46 5C 45 B2 40 20 00
+C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D
+70 43 05 2E 22 00 0D 12 84 12 46 45 0A 40 E8 43
+C6 48 D8 45 00 00 04 3C 23 00 B2 40 B2 1D B2 1D
+30 4D 42 45 02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12
+46 40 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 94 45 04 23 53 00 0D 12 84 12 96 45 D0 45
+2D 83 09 DE 09 93 E1 23 3D 41 30 4D C4 45 04 23
+3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D
+00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F DE 45
+08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33
+30 4D 58 43 04 55 2E 00 0C 43 2F 83 8F 4E 00 00
+0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 84 12 8A 45 0A 44 F8 45 C8 45 F4 44
+06 46 E2 45 E8 43 D8 45 72 45 02 2E 0E 93 E4 37
+3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 1D
+39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98
+FC 27 18 83 1B 42 C0 1D F8 90 27 00 00 00 04 20
+E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24
+7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90
+7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D
+1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D 00 00 08 46
+49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53
+1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C
+00 00 30 4D 4A 46 0E 3E 4E 55 4D 42 45 52 1B 42
+BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C
+7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00
+0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42
+E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 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 FC 46 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F FE 46 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 40 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D A6 47 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A 40 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-B4 44 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D C8 44 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 40 62 48 7A 45 1E 48 9C 26
-3D 40 26 48 DE 3E 28 48 0A 4E 3E 4F 3D 40 42 48
-36 27 3D 40 18 48 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 44 48 3E 4F 3D 40 18 48 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 E4 49 CC 3F
-4C 48 86 12 20 00 34 44 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 DC 43 BC 40
-12 48 12 44 44 44 14 40 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 41 0A 40 40 FF 28 40 4C 44
-14 40 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 41
-3A 40 8C 48 68 48 86 41 42 4F 52 54 22 00 0D 12
-84 12 32 45 0A 40 2A 41 A8 47 AE 44 DC 45 01 27
-0D 12 84 12 62 48 7A 45 E2 45 34 40 60 48 AE 44
-00 00 83 5B 27 5D 0D 12 84 12 E0 48 0A 40 0A 40
-A8 47 A8 47 AE 44 F2 48 81 5B 82 43 BE 1D 30 4D
-5A 44 01 5D B2 43 BE 1D 30 4D 12 49 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 62 48 7A 45 E2 45 F6 43 34 40
-60 48 44 44 34 40 54 49 0A 40 0A 40 A8 47 A8 47
-0A 40 A8 47 A8 47 AE 44 08 49 01 3A 30 12 A4 49
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 62 48 7A 45
-72 49 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 40 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 41 5A 49 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A 40 AE 44 A8 47 B6 49 0A 49 AE 44
-08 48 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D F2 47 06 43 52 45 41 54
-45 00 B0 12 60 49 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F E8 49 07 3A 4E 4F 4E 41 4D 45 30 12 A4 49
-2F 83 8F 4E 00 00 1A 42 C6 1D 1A B3 0A 63 0E 4A
-39 40 10 02 08 49 28 53 99 3F 12 43 05 44 45 46
-45 52 B0 12 60 49 BA 40 30 40 FC FF BA 40 E2 4D
-FE FF A8 3F BE 4F 02 00 3E 4F 30 4D 02 4A 82 49
-53 00 0D 12 82 93 BE 1D 06 24 84 12 F6 48 0A 40
-74 4A A8 47 AE 44 84 12 E0 48 74 4A AE 44 1A 4A
-04 43 4F 44 45 00 B0 12 60 49 A2 82 C6 1D 82 43
-66 5C 0D 12 84 12 48 4D 1A 4D AE 44 7E 4A 07 48
-44 4E 43 4F 44 45 B2 40 1E 4D DA 1D EC 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 B6 49 6E 4D
-A2 4D AE 44 A0 4A 07 43 4F 44 45 4E 4E 4D 30 12
-AA 4A A6 3F 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 6E 4D A2 4D AE 44 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-BE 4A 85 48 49 32 4C 4F 0D 12 84 12 28 40 82 4C
-A8 47 0A 49 AE 4A AE 44 34 4A 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 4A 4B 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 40 00 00 26 44 62 48 7A 45 F8 47
-EE 43 34 40 E2 4B FC 43 14 40 06 5B 54 48 45 4E
-5D 00 54 4B BC 4B 78 4B 9A 4B AE 44 FC 43 14 40
-06 5B 45 4C 53 45 5D 00 54 4B D2 4B 78 4B 98 4B
-AE 44 14 40 04 5B 49 46 5D 00 54 4B 9A 4B 3A 40
-98 4B D0 43 14 40 05 0D 0A 6B 6F 20 AA 43 BC 40
-AC 40 3A 40 9A 4B 88 4B 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D F8 4B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 62 48 7A 45 E2 45
-06 4C AE 44 0C 4C 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 16 4C 3E 44 AE 44 3E 4C B2 4E
-0A 18 B2 4E 0C 18 BE 12 3E 4F 3D 41 DB 3C BA 47
-06 4D 41 52 4B 45 52 00 B0 12 60 49 BA 40 85 12
-FC FF BA 40 3C 4C FE FF 28 83 8A 48 00 00 9A 42
-C8 1D 02 00 BA 40 AA 40 04 00 B2 50 06 00 C6 1D
-9D 3E 2E 53 30 4D 5C 4A 05 44 4F 45 53 3E 1A 42
-BA 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
-74 45 0A 56 4F 43 41 42 55 4C 41 52 59 00 0D 12
-84 12 22 4A 0A 40 10 00 0A 40 00 00 3E 40 0A 40
-00 00 A8 47 60 40 BE 4C 28 40 0A 40 C8 1D EE 43
-2E 44 A8 47 36 44 8E 4C 0A 40 CA 1D 36 44 AE 44
-DE 48 05 46 4F 52 54 48 85 12 D8 4C 42 4D 9A 63
-CE 61 E2 4C 32 4B D4 42 E8 61 88 4D 14 4E F0 63
-98 67 B4 66 00 00 8C 63 1C 49 42 46 00 00 C6 48
-09 41 53 53 45 4D 42 4C 45 52 85 12 D8 4C 32 5B
-CA 5A 2E 5A EE 54 80 53 00 00 F6 58 00 00 56 5C
-52 5D E4 53 98 5D FE 5A 00 00 00 00 C8 54 0C 4D
-10 4D 04 41 4C 53 4F 00 3A 40 0C 00 39 40 D6 1D
-08 49 28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23
-30 4D 28 49 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 60 45 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 E8 4C 8E 4D A2 4D
-B2 4D 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 64 4D 09 50 57 52 5F 53 54 41 54 45
-85 12 AA 4D 3E 4D 04 68 2E 45 09 52 53 54 5F 53
-54 41 54 45 92 42 0A 18 F6 4D 92 42 0C 18 F4 4D
-EF 3F E6 4D 08 50 57 52 5F 48 45 52 45 00 92 42
-C6 1D F6 4D 92 42 C8 1D F4 4D 30 4D FA 4D 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18 92 42
-C8 1D 0C 18 EC 3F 3E 90 0E 00 D2 27 2E 92 DA 37
-0E 93 CE 37 39 40 10 00 29 83 B9 43 80 FF FC 23
-B9 40 96 4E FE FF 29 83 B9 40 E2 41 FE FF 39 90
-AE FF F9 23 39 40 14 18 B2 49 E4 41 B2 49 FA 40
-B2 49 02 40 B2 49 02 42 B2 49 BC FF B2 49 0A 18
-B2 49 0C 18 B7 3F B2 D0 03 00 04 01 B2 D0 10 00
-00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40 80 1C
-39 40 00 10 29 83 89 43 00 1C FC 23 B2 D3 06 02
-B2 40 FC FF 02 02 B2 43 26 02 B2 D3 22 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 B2 40 33 00 64 01 D2 43 61 01 39 40
-40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18 1E D2 9E 01
-B0 12 F8 40 00 42 38 40 C0 1D 0A 4E 39 48 2E 48
-09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27 1E 83
-0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12 12 12
-C4 1D 84 12 7A 45 E2 45 3E 44 34 40 76 4F 9E 46
-34 40 90 4F 8A 4F 78 4F 3C 4E 3C 80 87 12 05 24
-1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41
-92 4F B2 41 C4 1D 3E 41 84 12 0A 40 2B 00 7A 45
-E2 45 3E 44 34 40 AE 4F 9E 46 34 40 60 48 08 44
-7A 45 9E 46 34 40 60 48 BA 4F 3E 5F E7 3F 32 B0
-00 02 01 24 3E 4F 30 41 3E 40 28 00 B0 12 5A 4F
-B0 12 BE 4F 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
-3E 40 29 00 1C 15 92 92 C0 1D C4 1D 02 20 30 40
-CE 49 12 12 C4 1D 92 53 C4 1D 84 12 7A 45 9E 46
-34 40 10 50 06 50 21 53 3E 90 10 00 84 2D BE 2B
-12 50 B2 41 C4 1D BA 3F 0D 12 84 12 62 48 36 4F
-22 50 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 5A 4F B0 12
-BE 4F 3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93
+00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 1D
+0C 4E 0E 43 1E 15 3D 40 CE 47 7E 4C 6A 4C 7A 80
+2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53
+11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90
+03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C
+B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27 D0 47
+2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02
+27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00
+09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E 40
+2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93
+1D 17 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 86 45 03 5C
+92 42 C2 1D C6 1D 30 4D 0D 12 84 12 84 40 0A 44
+5C 46 B0 40 A0 49 C4 46 8A 48 0A 4E 3E 4F 3D 40
+A4 48 6D 27 3D 40 7E 48 1A E2 BC 1D 14 24 0E 12
+3E 4F 30 41 A6 48 3E 4F 3D 40 7E 48 19 20 DE 53
+00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 7C 4A
+2A 3C 6E 48 02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E
+FE FF 3E 4F 30 4D C4 48 0F 4C 49 54 45 52 41 4C
+82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D
+BA 40 0A 40 00 00 8A 49 02 00 3E 4F 32 B0 00 02
+32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D 00 46
+0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A
+3E F3 30 4D 26 45 0A 41 4C 4C 4F 54 82 5E C8 1D
+3E 4F 30 4D 3F 40 80 1C 0E 43 84 12 1E 40 02 0D
+0A 00 E8 43 94 40 78 48 06 45 30 45 1E 40 0B 73
+74 61 63 6B 20 65 6D 70 74 79 08 41 32 40 0A 40
+40 FF 38 45 1E 40 09 46 52 41 4D 20 66 75 6C 6C
+08 41 B2 40 3C 49 26 49 0D 41 42 4F 52 54 22 00
+0D 12 84 12 46 45 0A 40 08 41 C6 48 D8 45 56 46
+02 27 0D 12 84 12 0A 44 5C 46 C4 46 B0 40 A2 49
+6A 45 AE 48 D0 44 07 5B 27 5D 0D 12 84 12 92 49
+0A 40 0A 40 C6 48 C6 48 D8 45 A6 49 03 5B 82 43
+BC 1D 30 4D 00 00 02 5D B2 43 BC 1D 30 4D 1E 45
+11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12 0A 44
+5C 46 C4 46 B0 40 A2 49 30 45 AC 40 FA 49 0A 40
+0A 40 C6 48 C6 48 0A 40 C6 48 C6 48 D8 45 00 00
+02 3A 30 12 50 4A 92 B3 C8 1D A2 63 C8 1D 0D 12
+84 12 0A 44 5C 46 18 4A 3D 41 5A D3 5A 53 0A 5E
+19 42 CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E
+09 5E 3E 4F E8 58 00 00 82 48 B4 1D 82 49 B6 1D
+82 4A B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D 30 41
+BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 1D
+30 4D 82 9F BA 1D 66 25 84 12 1E 40 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 12 41 BC 49
+03 3B 82 93 BC 1D F4 26 0D 12 84 12 0A 40 D8 45
+C6 48 62 4A BE 49 D8 45 00 00 12 49 4D 4D 45 44
+49 41 54 45 18 42 B4 1D D8 D3 00 00 30 4D 10 49
+0C 43 52 45 41 54 45 00 B0 12 06 4A BA 40 86 12
+FC FF 8A 4A FE FF 3A 3D E2 43 0A 44 4F 45 53 3E
+1A 42 B8 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41
+30 4D 00 4A 0E 3A 4E 4F 4E 41 4D 45 30 12 50 4A
+2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A
+39 40 12 02 08 49 98 3F 9A 4A 05 49 53 00 0D 12
+82 93 BC 1D 08 20 84 12 92 49 1C 4B 3D 41 BE 4F
+02 00 3E 4F 30 4D 84 12 AA 49 0A 40 1E 4B C6 48
+D8 45 B0 4A 08 43 4F 44 45 00 B0 12 06 4A A2 82
+C8 1D 61 3C F2 45 0E 48 44 4E 43 4F 44 45 B2 40
+0A 4C CC 1D F2 3F 00 00 0E 45 4E 44 43 4F 44 45
+0D 12 84 12 62 4A 68 4B 3D 41 92 42 D0 1D CC 1D
+5D 3C 34 4B 0E 43 4F 44 45 4E 4E 4D 30 12 3E 4B
+B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40
+0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 1D B2 43
+BC 1D E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 1D
+1A 42 C8 1D EF 3F 46 4B 0B 48 49 32 4C 4F A2 53
+C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F
+D2 4B B2 40 E4 4B D0 1D 82 4E CE 1D 30 40 6A 45
+85 12 D0 4B D0 49 44 58 40 5A 52 58 DA 5D 14 46
+BE 46 BA 5C B8 4B 0A 4B E4 4A 80 4A 60 58 EC 4C
+24 5A 00 00 00 00 85 12 D0 4B 66 53 EA 51 0C 54
+12 51 6E 51 BC 51 98 52 52 54 34 50 58 51 00 00
+00 00 A6 4B 24 4F 00 00 C0 52 04 4C B2 40 E4 4B
+CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00 BA 49 00 00
+2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53
+45 54 39 40 C8 1D 3A 40 42 18 B0 12 38 4C 30 4D
+4A 4C 0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49
+3A 40 C8 1D B0 12 38 4C 1A 42 CA 1D 3B 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48
+00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93
+E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40
+10 42 FE FF 29 83 B9 40 FA 41 FE FF 39 90 AE FF
+F9 23 39 40 10 18 B2 49 BC FF 3B 40 10 00 3A 40
+3A 18 B0 12 3C 4C 82 43 4A 18 C7 3F DE 4C B2 4E
+42 18 BE 12 3E 4F 3D 41 C0 3F C6 49 0C 4D 41 52
+4B 45 52 00 12 12 C6 1D 0D 12 84 12 0A 44 5C 46
+C4 46 AC 40 0A 4D FE 44 9E 48 0C 4D 3E 4F 3D 41
+B2 41 C6 1D B0 12 06 4A BA 40 85 12 FC FF BA 40
+DC 4C FE FF 28 83 8A 48 00 00 BA 40 82 40 02 00
+A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D A8 49 FE FF
+89 48 00 00 30 4D 12 12 C6 1D 84 12 5C 46 C4 46
+AC 40 76 4D 56 4D 3C 4E 3C 80 87 12 0A 24 1C 53
+02 20 2E 4E 06 3C BE 90 DC 4C 00 00 01 20 3E 52
+2E 83 21 53 30 41 6E 47 AC 40 7E 4D 72 4D 80 4D
+B2 41 C6 1D 30 41 92 83 C6 1D 3E 40 28 00 0A 4E
+3D 15 B0 12 46 4D 15 20 3E 40 2B 00 B0 12 46 4D
+06 20 3E 40 2D 00 B0 12 46 4D 92 83 C6 1D 0E 12
+1E 41 02 00 84 12 5C 46 6E 47 AC 40 A2 49 C0 4D
+3E 51 3A 17 30 41 B0 12 86 4D 19 42 C8 1D 89 4E
+00 00 A2 53 C8 1D 3E 40 29 00 92 53 C6 1D 1A 42
+C6 1D 3D 15 84 12 5C 46 6E 47 AC 40 F8 4D F0 4D
+3E 90 10 00 E6 2B 7C 2D FA 4D A2 41 C6 1D E1 3F
+03 20 B0 12 DE 4D 43 3C 7A 90 23 00 24 20 B0 12
+8E 4D 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 5A 4F B0 12 BE 4F EB 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12
-E4 4F 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 E4 4F
-92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E
-D8 3F B0 12 E4 4F FA 23 3C 50 10 00 B0 12 C8 4F
-EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12 84 12
-62 48 36 4F F6 50 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C5 3F B0 12 E4 4F E0 23 3C 50
-80 00 B0 12 C8 4F DB 3F 00 00 04 52 45 54 49 00
-0D 12 84 12 0A 40 00 13 A8 47 AE 44 0A 40 2C 00
-18 50 EC 50 36 51 09 4B 2E 4E 0E DC A0 3F 20 4B
-03 4D 4F 56 85 12 2C 51 00 40 40 51 05 4D 4F 56
-2E 42 85 12 2C 51 40 40 00 00 03 41 44 44 85 12
-2C 51 00 50 5A 51 05 41 44 44 2E 42 85 12 2C 51
-40 50 66 51 04 41 44 44 43 00 85 12 2C 51 00 60
-74 51 06 41 44 44 43 2E 42 00 85 12 2C 51 40 60
-1A 51 04 53 55 42 43 00 85 12 2C 51 00 70 92 51
-06 53 55 42 43 2E 42 00 85 12 2C 51 40 70 A0 51
-03 53 55 42 85 12 2C 51 00 80 B0 51 05 53 55 42
-2E 42 85 12 2C 51 40 80 F6 4A 03 43 4D 50 85 12
-2C 51 00 90 CA 51 05 43 4D 50 2E 42 85 12 2C 51
-40 90 D0 4A 04 44 41 44 44 00 85 12 2C 51 00 A0
-E4 51 06 44 41 44 44 2E 42 00 85 12 2C 51 40 A0
-D6 51 03 42 49 54 85 12 2C 51 00 B0 02 52 05 42
-49 54 2E 42 85 12 2C 51 40 B0 0E 52 03 42 49 43
-85 12 2C 51 00 C0 1C 52 05 42 49 43 2E 42 85 12
-2C 51 40 C0 28 52 03 42 49 53 85 12 2C 51 00 D0
-36 52 05 42 49 53 2E 42 85 12 2C 51 40 D0 00 00
-03 58 4F 52 85 12 2C 51 00 E0 50 52 05 58 4F 52
-2E 42 85 12 2C 51 40 E0 82 51 03 41 4E 44 85 12
-2C 51 00 F0 6A 52 05 41 4E 44 2E 42 85 12 2C 51
-40 F0 62 48 18 50 88 52 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F BC 51 03 52 52 43 85 12
-82 52 00 10 9A 52 05 52 52 43 2E 42 85 12 82 52
-40 10 A6 52 04 53 57 50 42 00 85 12 82 52 80 10
-B4 52 03 52 52 41 85 12 82 52 00 11 C2 52 05 52
-52 41 2E 42 85 12 82 52 40 11 CE 52 03 53 58 54
-85 12 82 52 80 11 00 00 04 50 55 53 48 00 85 12
-82 52 00 12 E8 52 06 50 55 53 48 2E 42 00 85 12
-82 52 40 12 42 52 04 43 41 4C 4C 00 85 12 82 52
-80 12 1A 53 0E 4A 0D 12 84 12 24 45 14 40 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 36 41 DC 52
-03 53 3E 3D 86 12 00 38 30 53 02 53 3C 00 86 12
-00 34 F6 52 03 30 3E 3D 86 12 00 30 44 53 02 30
-3C 00 86 12 00 30 00 00 02 55 3C 00 86 12 00 2C
-58 53 03 55 3E 3D 86 12 00 28 4E 53 03 30 3C 3E
-86 12 00 24 6C 53 02 30 3D 00 86 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 62 53 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
-B1 2F 88 DA 00 00 30 4D F2 51 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 53 05 42 45 47 49 4E 30 40
-28 40 96 53 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 8A 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D
-76 52 05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
-00 00 05 57 48 49 4C 45 0D 12 84 12 84 53 08 44
-AE 44 3A 53 06 52 45 50 45 41 54 00 0D 12 84 12
-18 54 9C 53 AE 44 48 54 3D 41 08 4E 3E 4F 2A 48
-B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D D8 53
-03 42 57 31 85 12 46 54 00 00 60 54 03 42 57 32
-85 12 46 54 00 00 6C 54 03 42 57 33 85 12 46 54
-00 00 84 54 3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D
-88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 85 12 82 54 00 00 A4 54
-03 46 57 32 85 12 82 54 00 00 B0 54 03 46 57 33
-85 12 82 54 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 0D 12 84 12 E0 48 3C 48 AE 44 BC 54 04 47
-4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C F1 3F
-62 48 36 4F 06 55 92 53 C4 1D 3E 40 2C 00 84 12
-7A 45 9E 46 34 40 60 48 E2 50 1C 55 0A 4E 3E 4F
-1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92
-E8 2E 8A 10 5A 06 A6 3E 34 54 04 52 52 43 4D 00
-85 12 00 55 50 00 4A 55 04 52 52 41 4D 00 85 12
-00 55 50 01 58 55 04 52 4C 41 4D 00 85 12 00 55
-50 02 66 55 04 52 52 55 4D 00 85 12 00 55 50 03
-76 53 05 50 55 53 48 4D 85 12 00 55 00 15 82 55
-04 50 4F 50 4D 00 85 12 00 55 00 17 74 55 06 52
-52 43 4D 2E 41 00 85 12 00 55 40 00 9E 55 06 52
-52 41 4D 2E 41 00 85 12 00 55 40 01 AE 55 06 52
-4C 41 4D 2E 41 00 85 12 00 55 40 02 BE 55 06 52
-52 55 4D 2E 41 00 85 12 00 55 40 03 90 55 07 50
-55 53 48 4D 2E 41 85 12 00 55 00 14 DE 55 06 50
-4F 50 4D 2E 41 00 85 12 00 55 00 16 78 54 05 43
-41 4C 4C 41 0D 12 84 12 62 48 36 4F 0E 56 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 E4 4F 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 E4 4F 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 5A 4F BB 4F 02 00
-DC 3F 7E 90 26 00 02 20 2C 53 F4 3F 7E 40 28 00
-1C 83 B0 12 5A 4F BB 4F 02 00 3E 40 29 00 CB 3F
-0D 12 84 12 62 48 36 4F 9A 56 69 4E 3E 4F 3C 4F
-2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90 52 00 0A 20
-B0 12 E4 4F 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 5A 4F 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
-E4 4F D8 23 3C D0 10 00 3E 40 2B 00 B0 12 E4 4F
-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 5A 4F BB 4F
-02 00 3E 40 29 00 EA 3F 0D 12 84 12 62 48 36 4F
-42 57 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90 52 00
-03 20 B0 12 E4 4F B0 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
-5A 4F BB 4F 02 00 A0 3F 3C D0 70 00 3E 40 28 00
-B0 12 5A 4F BB 4F 02 00 3E 40 29 00 E2 3F 0A 40
-2C 00 90 56 38 57 D2 43 AE 44 4C 51 04 4D 4F 56
-41 00 85 12 8E 57 C0 00 FE 55 04 43 4D 50 41 00
-85 12 8E 57 D0 00 12 54 04 41 44 44 41 00 85 12
-8E 57 E0 00 CE 55 04 53 55 42 41 00 85 12 8E 57
-F0 00 0D 12 84 12 62 48 36 4F DC 57 69 4E 3E 4F
-3C 40 00 18 79 90 52 00 05 20 B0 12 E4 4F 0E 4C
-3D 41 30 4D 82 43 66 5C 79 90 23 00 0B 20 92 53
-C4 1D B0 12 5A 4F 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 E4 4F E2 23 3E 40 2B 00 92 53
-C4 1D B0 12 E4 4F 92 92 C0 1D C4 1D D8 27 92 53
-C4 1D D5 3F 3E 40 28 00 B0 12 5A 4F 8F 4E 00 00
-3E 40 29 00 B0 12 E4 4F 3E 4F 3E F0 0F 00 0C DE
-EA 3F 0D 12 84 12 62 48 36 4F 6C 58 3C 4F 69 4E
-3E 40 20 00 79 90 52 00 BA 27 82 43 66 5C 79 90
-26 00 08 20 92 53 C4 1D B0 12 5A 4F 2F 53 3E F0
-0F 00 BE 3F 3E 40 28 00 B0 12 5A 4F F7 3F B2 4F
-C4 1D 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F 1C D2
-66 5C 82 43 66 5C 3C DE 8B 4C 00 00 30 4D 0A 40
-C4 1D 2E 44 0A 40 2C 00 D2 57 62 58 9E 58 3A 40
-2C 51 9C 57 04 4D 4F 56 58 00 85 12 BE 58 40 00
-00 40 D4 58 06 4D 4F 56 58 2E 41 00 85 12 BE 58
-00 00 40 40 E4 58 06 4D 4F 56 58 2E 42 00 85 12
-BE 58 40 00 40 40 B8 57 04 41 44 44 58 00 85 12
-BE 58 40 00 00 50 08 59 06 41 44 44 58 2E 41 00
-85 12 BE 58 00 00 40 50 18 59 06 41 44 44 58 2E
-42 00 85 12 BE 58 40 00 40 50 2A 59 05 41 44 44
-43 58 85 12 BE 58 40 00 00 60 3C 59 07 41 44 44
-43 58 2E 41 85 12 BE 58 00 00 40 60 4C 59 07 41
-44 44 43 58 2E 42 85 12 BE 58 40 00 40 60 C6 57
-05 53 55 42 43 58 85 12 BE 58 40 00 00 70 70 59
-07 53 55 42 43 58 2E 41 85 12 BE 58 00 00 40 70
-80 59 07 53 55 42 43 58 2E 42 85 12 BE 58 40 00
-40 70 92 59 04 53 55 42 58 00 85 12 BE 58 40 00
-00 80 A4 59 06 53 55 42 58 2E 41 00 85 12 BE 58
-00 00 40 80 B4 59 06 53 55 42 58 2E 42 00 85 12
-BE 58 40 00 40 80 AA 57 04 43 4D 50 58 00 85 12
-BE 58 40 00 00 90 D8 59 06 43 4D 50 58 2E 41 00
-85 12 BE 58 00 00 40 90 E8 59 06 43 4D 50 58 2E
-42 00 85 12 BE 58 40 00 40 90 BA 53 05 44 41 44
-44 58 85 12 BE 58 40 00 00 A0 0C 5A 07 44 41 44
-44 58 2E 41 85 12 BE 58 00 00 40 A0 1C 5A 07 44
-41 44 44 58 2E 42 85 12 BE 58 40 00 40 A0 FA 59
-04 42 49 54 58 00 85 12 BE 58 40 00 00 B0 40 5A
-06 42 49 54 58 2E 41 00 85 12 BE 58 00 00 40 B0
-50 5A 06 42 49 54 58 2E 42 00 85 12 BE 58 40 00
-40 B0 62 5A 04 42 49 43 58 00 85 12 BE 58 40 00
-00 C0 74 5A 06 42 49 43 58 2E 41 00 85 12 BE 58
-00 00 40 C0 84 5A 06 42 49 43 58 2E 42 00 85 12
-BE 58 40 00 40 C0 96 5A 04 42 49 53 58 00 85 12
-BE 58 40 00 00 D0 A8 5A 06 42 49 53 58 2E 41 00
-85 12 BE 58 00 00 40 D0 B8 5A 06 42 49 53 58 2E
-42 00 85 12 BE 58 40 00 40 D0 5C 52 04 58 4F 52
-58 00 85 12 BE 58 40 00 00 E0 DC 5A 06 58 4F 52
-58 2E 41 00 85 12 BE 58 00 00 40 E0 EC 5A 06 58
-4F 52 58 2E 42 00 85 12 BE 58 40 00 40 E0 5E 59
-04 41 4E 44 58 00 85 12 BE 58 40 00 00 F0 10 5B
-06 41 4E 44 58 2E 41 00 85 12 BE 58 00 00 40 F0
-20 5B 06 41 4E 44 58 2E 42 00 85 12 BE 58 40 00
-40 F0 0A 40 C4 1D 2E 44 62 48 D2 57 9E 58 3A 40
-82 52 C6 59 04 52 52 43 58 00 85 12 42 5B 40 00
-00 10 54 5B 06 52 52 43 58 2E 41 00 85 12 42 5B
-00 00 40 10 64 5B 06 52 52 43 58 2E 42 00 85 12
-42 5B 40 00 40 10 76 5B 04 52 52 55 58 00 85 12
-42 5B 40 01 00 10 88 5B 06 52 52 55 58 2E 41 00
-85 12 42 5B 00 01 40 10 98 5B 06 52 52 55 58 2E
-42 00 85 12 42 5B 40 01 40 10 AA 5B 05 53 57 50
-42 58 85 12 42 5B 40 00 80 10 BC 5B 07 53 57 50
-42 58 2E 41 85 12 42 5B 00 00 80 10 CC 5B 04 52
-52 41 58 00 85 12 42 5B 40 00 00 11 DE 5B 06 52
-52 41 58 2E 41 00 85 12 42 5B 00 00 40 11 EE 5B
-06 52 52 41 58 2E 42 00 85 12 42 5B 40 00 40 11
-00 5C 04 53 58 54 58 00 85 12 42 5B 40 00 80 11
-12 5C 06 53 58 54 58 2E 41 00 85 12 42 5B 00 00
-80 11 EE 55 05 50 55 53 48 58 85 12 42 5B 40 00
-00 12 34 5C 07 50 55 53 48 58 2E 41 85 12 42 5B
-00 00 40 12 44 5C 07 50 55 53 48 58 2E 42 85 12
-42 5B 40 00 40 12 00 00 22 5C 03 52 50 54 0D 12
-84 12 62 48 36 4F 78 5C 29 4E 7E 40 20 00 79 90
-52 00 06 20 B0 12 E4 4F 03 24 3E D0 80 00 05 3C
-B0 12 5A 4F 1E 83 3E F0 0F 00 82 4E 66 5C 3E 4F
-3D 41 30 4D D2 C3 23 02 E2 B2 60 02 02 24 30 40
-E2 41 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 2C 5D 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 1A 43 E1 3F 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
-6A 5C 08 52 45 41 44 5F 53 57 58 00 1C D3 F2 40
-51 00 19 20 B0 12 A4 5C 38 20 B0 12 2C 5D 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 22 54 09 57 52 49 54 45 5F 53
-57 58 2C D3 F0 40 58 00 71 C2 B0 12 A4 5C 15 20
-3A 40 FE FF 29 43 B0 12 30 5D D2 49 00 1E 4E 06
-03 43 19 53 39 90 00 02 F8 23 39 40 03 00 B0 12
-2E 5D 7A C0 E1 00 6A 92 D9 27 8C 10 1C 52 4C 06
-D2 D3 23 02 0D 12 84 12 18 43 14 40 0B 3C 20 53
-44 20 45 72 72 6F 72 21 FA 5D 2F 83 8F 4E 00 00
-B2 40 10 00 DC 1D 0E 4C 84 12 EE 44 36 41 B0 12
-8C 41 0E 93 9C 24 E2 B2 60 02 99 20 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 39 42 B0 12 2E 5D D2 C3 23 02
+08 24 3C 40 30 00 19 42 C8 1D A2 53 C8 1D 89 4E
+00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02
+B0 12 8E 4D F0 3F 7A 90 40 00 14 20 3C 40 20 00
+B0 12 DA 4D 0C 20 3C D0 10 00 3E 40 2B 00 B0 12
+DE 4D 92 92 C2 1D C6 1D 02 24 92 53 C6 1D 8E 10
+0C 5E DF 3F 3C D0 10 00 B0 12 C6 4D F2 3F 03 20
+B0 12 DE 4D F5 3F 7A 90 26 00 03 20 3C D0 82 00
+D7 3F 3C D0 80 00 B0 12 C6 4D EA 3F 0C 43 1B 42
+C8 1D A2 53 C8 1D 3A 40 20 00 19 42 C6 1D 19 52
+C4 1D 7A 99 FE 27 5A 49 FF FF 19 82 C4 1D 82 49
+C6 1D 7A 90 52 00 30 4D 00 00 08 52 45 54 49 00
+0D 12 84 12 0A 40 00 13 C6 48 D8 45 0A 40 2C 00
+BC 4E 00 4E 0A 44 C6 4E 9E 4E 0C 4F 3D 41 2C DE
+8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12 FC 4E
+00 40 18 4F 0A 4D 4F 56 2E 42 85 12 FC 4E 40 40
+00 00 06 41 44 44 85 12 FC 4E 00 50 32 4F 0A 41
+44 44 2E 42 85 12 FC 4E 40 50 3E 4F 08 41 44 44
+43 00 85 12 FC 4E 00 60 4C 4F 0C 41 44 44 43 2E
+42 00 85 12 FC 4E 40 60 84 4B 08 53 55 42 43 00
+85 12 FC 4E 00 70 6A 4F 0C 53 55 42 43 2E 42 00
+85 12 FC 4E 40 70 78 4F 06 53 55 42 85 12 FC 4E
+00 80 88 4F 0A 53 55 42 2E 42 85 12 FC 4E 40 80
+94 4F 06 43 4D 50 85 12 FC 4E 00 90 A2 4F 0A 43
+4D 50 2E 42 85 12 FC 4E 40 90 00 00 08 44 41 44
+44 00 85 12 FC 4E 00 A0 BC 4F 0C 44 41 44 44 2E
+42 00 85 12 FC 4E 40 A0 EA 4E 06 42 49 54 85 12
+FC 4E 00 B0 DA 4F 0A 42 49 54 2E 42 85 12 FC 4E
+40 B0 E6 4F 06 42 49 43 85 12 FC 4E 00 C0 F4 4F
+0A 42 49 43 2E 42 85 12 FC 4E 40 C0 00 50 06 42
+49 53 85 12 FC 4E 00 D0 0E 50 0A 42 49 53 2E 42
+85 12 FC 4E 40 D0 00 00 06 58 4F 52 85 12 FC 4E
+00 E0 28 50 0A 58 4F 52 2E 42 85 12 FC 4E 40 E0
+5A 4F 06 41 4E 44 85 12 FC 4E 00 F0 42 50 0A 41
+4E 44 2E 42 85 12 FC 4E 40 F0 0A 44 BC 4E 00 4E
+62 50 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4D 3F 1A 50 06 52 52 43 85 12 5A 50 00 10 74 50
+0A 52 52 43 2E 42 85 12 5A 50 40 10 AE 4F 08 53
+57 50 42 00 85 12 5A 50 80 10 80 50 06 52 52 41
+85 12 5A 50 00 11 9C 50 0A 52 52 41 2E 42 85 12
+5A 50 40 11 8E 50 06 53 58 54 85 12 5A 50 80 11
+00 00 08 50 55 53 48 00 85 12 5A 50 00 12 C2 50
+0C 50 55 53 48 2E 42 00 85 12 5A 50 40 12 B6 50
+08 43 41 4C 4C 00 85 12 5A 50 80 12 1A 53 0E 4A
+84 12 4C 46 1E 40 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 12 41 E0 50 06 53 3E 3D 86 12 00 38
+08 51 04 53 3C 00 86 12 00 34 D0 50 06 30 3E 3D
+86 12 00 30 1C 51 04 30 3C 00 86 12 00 30 58 4B
+04 55 3C 00 86 12 00 2C 30 51 06 55 3E 3D 86 12
+00 28 26 51 06 30 3C 3E 86 12 00 24 44 51 04 30
+3D 00 86 12 00 20 00 00 04 49 46 00 1A 42 C8 1D
+8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D CA 4F 08 54
+48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48 29 53
+0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D
+3A 51 08 45 4C 53 45 00 1A 42 C8 1D BA 40 00 3C
+00 00 A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F A8 50
+0A 42 45 47 49 4E 30 40 32 40 92 51 0A 55 4E 54
+49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89
+0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48
+00 00 A2 53 C8 1D 30 4D 4E 50 0A 41 47 41 49 4E
+0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45
+0D 12 84 12 5C 51 F2 44 D8 45 B0 51 0C 52 45 50
+45 41 54 00 0D 12 84 12 F0 51 74 51 D8 45 20 52
+3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42
+C8 1D 00 00 30 4D 0C 52 06 42 57 31 85 12 1E 52
+00 00 38 52 06 42 57 32 85 12 1E 52 00 00 44 52
+06 42 57 33 85 12 1E 52 00 00 5C 52 3D 41 1A 42
+C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D 86 2B BA 4F
+00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00
+06 46 57 31 85 12 5A 52 00 00 80 52 06 46 57 32
+85 12 5A 52 00 00 8C 52 06 46 57 33 85 12 5A 52
+00 00 FA 51 08 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C 0D 12 84 12 92 49 9E 48 D8 45 00 00
+0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
+3E B0 00 10 EF 27 3E E0 00 08 EC 3F C6 4E 0A 40
+2C 00 5C 46 6E 47 AC 40 A2 49 0A 44 BC 4E 9E 4E
+F2 52 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28
+08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E
+5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E 50 52
+08 52 52 43 4D 00 85 12 DC 52 50 00 20 53 08 52
+52 41 4D 00 85 12 DC 52 50 01 2E 53 08 52 4C 41
+4D 00 85 12 DC 52 50 02 3C 53 08 52 52 55 4D 00
+85 12 DC 52 50 03 4E 51 0A 50 55 53 48 4D 85 12
+DC 52 00 15 58 53 08 50 4F 50 4D 00 85 12 DC 52
+00 17 D2 C3 23 02 E2 B2 60 02 02 24 30 40 FA 41
+1A 52 04 20 19 62 06 20 92 43 14 20 C2 4A 15 20
+8A 10 C2 4A 16 20 C2 49 17 20 89 10 C2 49 18 20
+B0 12 E6 53 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 1A 43 E1 3F 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 4A 53 12 52 5F 53
+45 43 54 5F 57 58 1C D3 F2 40 51 00 19 20 B0 12
+72 53 38 20 B0 12 E6 53 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
+A4 52 12 57 5F 53 45 43 54 5F 57 58 2C D3 F0 40
+58 00 B7 CB B0 12 72 53 15 20 3A 40 FE FF 29 43
+B0 12 EA 53 D2 49 00 1E 4E 06 03 43 19 53 39 90
+00 02 F8 23 39 40 03 00 B0 12 E8 53 7A C0 E1 00
+6A 82 D9 27 8C 10 1C 52 4C 06 D2 D3 23 02 84 12
+5E 43 1E 40 0B 3C 20 53 44 20 45 72 72 6F 72 21
+B2 54 2F 83 8F 4E 00 00 B2 40 10 00 BE 1D 0E 4C
+84 12 18 46 12 41 B0 12 58 41 E2 B2 60 02 8A 20
+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 39 40 6E 01 29 83
+89 43 02 20 FC 23 39 42 B0 12 E8 53 D2 C3 23 02
 2C 42 B2 40 95 00 14 20 B2 40 00 40 18 20 B0 12
-28 5D 02 24 30 40 DA 5D B0 12 2C 5D 7A 93 FC 23
+E2 53 02 24 30 40 94 54 B0 12 E6 53 7A 93 FC 23
 B2 40 87 AA 14 20 92 43 16 20 B2 40 00 48 18 20
-B0 12 28 5D 29 42 B0 12 2E 5D 92 43 14 20 82 43
-16 20 78 43 3C 42 B2 40 00 77 18 20 B0 12 28 5D
-B2 40 40 69 18 20 B0 12 E6 5C 03 24 58 83 F3 23
+B0 12 E2 53 29 42 B0 12 E8 53 92 43 14 20 82 43
+16 20 78 43 3C 42 B2 40 00 77 18 20 B0 12 E2 53
+B2 40 40 69 18 20 B0 12 A0 53 03 24 58 83 F3 23
 D9 3F 0C 5C A2 43 16 20 B2 40 00 50 18 20 B0 12
-E6 5C D0 23 92 D3 40 06 82 43 46 06 92 C3 40 06
-09 43 B0 12 5C 5D 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
-E0 5D 09 43 B0 12 5C 5D 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 30 41
-B0 12 AA 40 39 40 E0 00 29 83 89 43 38 20 FC 23
-82 43 32 20 30 41 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 94 5F 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 AB 20 BB 80 00 02 12 00 8B 73 14 00
-DB 53 03 00 DB 92 12 20 03 00 14 28 CB 43 03 00
-B0 12 66 5F 1A 52 08 20 09 43 B0 12 5C 5D 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 D4 5F 1A 42 1A 20 19 42
-1C 20 6C 3E 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 5C 27 C9 37 8B 43
-16 00 7A 93 02 24 07 38 95 3F B2 40 1C 21 CA 40
-B2 40 44 43 70 42 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 60 22 C3 30 41 1B 42 32 20
-0B 93 FB 27 EB 93 02 00 04 20 B0 12 30 66 B0 12
-F8 65 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 61 02 24 30 40
-36 43 B2 40 3C 1D CA 40 B2 40 72 42 70 42 30 40
-18 43 2E 4E 85 52 45 41 44 22 5A 43 19 3C A2 4C
-86 57 52 49 54 45 22 00 6A 43 12 3C 96 4D 84 44
-45 4C 22 00 6A 42 0C 3C E6 4A 05 43 4C 4F 53 45
-B0 12 6C 61 30 4D 50 4C 85 4C 4F 41 44 22 7A 43
-2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D 0B 24 0D 12
-84 12 0A 40 0A 40 A8 47 A8 47 32 45 0A 40 24 62
-A8 47 AE 44 0D 12 84 12 0A 40 22 00 7A 45 F8 47
-22 62 3D 41 36 4F 0E 56 82 4E 36 20 1C 43 92 42
-2C 20 22 20 92 42 2E 20 24 20 0E 96 8D 24 F6 90
-3A 00 01 00 01 20 26 53 F6 90 5C 00 00 00 08 20
-16 53 92 42 02 20 22 20 82 43 24 20 0E 96 70 24
-82 46 34 20 B0 12 94 5F 35 40 20 00 A2 93 02 20
-04 24 92 92 22 20 02 20 02 24 15 42 12 20 B0 12
-7A 60 2C 43 0A 43 08 4A 58 0E 08 58 82 48 30 20
-C8 93 00 1E 61 24 39 42 F8 96 00 1E 04 20 18 53
-19 83 FA 23 16 53 F6 90 2E 00 FF FF 19 24 39 50
-03 00 B0 12 F2 5F 06 20 F6 90 5C 00 FF FF 29 24
-0E 96 27 28 16 42 34 20 1A 53 3A 90 10 00 DB 23
-92 53 1A 20 82 63 1C 20 15 83 D1 23 2C 42 3C 3C
-F6 90 2E 00 FE FF EE 27 B0 12 F2 5F EB 23 39 40
-03 00 F8 96 00 1E 04 20 18 53 19 83 FA 23 09 3C
-0E 96 E0 2F F6 90 5C 00 FF FF DC 23 B0 12 F2 5F
-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 96 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 60 35 40 D4 40 36 40 E2 40
-3A 4F 3E 4F 0A 93 04 24 7A 93 3C 20 0C 93 01 20
-30 4D 0D 12 84 12 18 43 14 40 0B 3C 20 4F 70 65
-6E 45 72 72 6F 72 3A 40 F8 5D 26 4C 05 5B 50 46
-41 5D 2E 53 2E 4E 30 4D DA 61 04 42 4F 4F 54 00
-39 40 0E 5E 2E 93 01 2C 30 41 E2 B2 60 02 02 24
-10 49 02 00 89 12 3F 40 7E 1C 8F 43 00 00 82 43
-BE 1D B2 40 00 1C 00 1C 31 40 E0 1C 84 12 14 40
-0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54 48 22
-3A 40 90 48 1A 93 BB 20 0C 93 C3 23 30 4D B4 61
-04 52 45 41 44 00 2F 83 8F 4E 00 00 1E 42 32 20
-B0 12 06 60 1E 82 32 20 30 4D 2C 43 12 12 2A 20
-18 42 02 20 08 58 2A 41 82 9A 0A 20 A6 24 1A 52
-08 20 09 43 B0 12 5C 5D 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 E7 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 09 43
-B0 12 A2 5D 3A 41 1A 52 0C 20 09 43 B0 12 A2 5D
-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 4C 65 39 40 03 00 7A 4B C8 4A
-00 1E 82 9B 36 20 12 28 0D 12 3D 40 0F 00 3C 40
-FC 64 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
-DC 20 2C 93 0E 24 0C 93 AB 24 0D 12 84 12 14 40
-0C 3C 20 57 72 69 74 65 45 72 72 6F 72 00 3A 40
-F8 5D B0 12 0A 64 92 42 26 20 22 20 92 42 28 20
-24 20 B0 12 88 64 B0 12 7A 60 18 42 30 20 F8 40
-20 00 0B 1E B0 12 A0 64 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 C9 27 FB 90 2E 00 00 00 C5 27
-39 40 0B 00 B0 12 1C 65 B0 12 3A 66 2A 43 B0 12
-84 60 0C 93 BA 23 30 4D 1A 4B 04 00 19 4B 06 00
-B0 12 5C 5D B0 12 A0 64 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 A2 5D
-9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20 19 42
-1C 20 30 40 A2 5D B2 40 00 02 1E 20 1B 42 32 20
-B0 12 30 66 82 43 1E 20 DB 53 03 00 DB 92 12 20
-03 00 25 20 CB 43 03 00 B0 12 66 5F 08 12 0A 12
-B0 12 0A 64 2A 91 08 24 B0 12 88 64 2A 41 1A 52
-08 20 09 43 B0 12 5C 5D 3A 41 38 41 98 42 26 20
-00 1E 92 93 02 20 03 24 98 42 28 20 02 1E B0 12
-88 64 9B 42 26 20 0E 00 9B 42 28 20 10 00 30 40
-D4 5F C0 61 05 57 52 49 54 45 B0 12 46 66 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 60 30 4D 0C 93 3B 20 38 90
-E0 01 03 2C C8 93 20 1E 02 24 7C 40 E5 00 C8 4C
-00 1E B0 12 3A 66 B0 12 72 5F 82 4A 2A 20 0B 4A
-1A 52 08 20 09 43 B0 12 5C 5D 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 72 5F 0B 9A E6 27 0A 12
-0A 4B B0 12 88 64 3A 41 DA 3F 0A 4B B0 12 88 64
-B0 12 6C 61 30 4D EA 44 08 54 45 52 4D 32 53 44
-22 00 0D 12 84 12 D4 61 0A 40 02 00 28 40 F8 47
-24 62 B4 67 B0 12 B8 41 0A 43 92 B3 EC 06 FD 27
-59 42 CC 06 69 92 11 24 CA 49 00 1E 1A 53 79 90
-0A 00 05 20 84 12 DC 43 DA 67 B0 12 B8 41 3A 90
-00 02 EB 2B B0 12 46 66 E7 3F 92 B3 EC 06 FD 27
-F2 90 0A 00 CC 06 F9 23 82 4A 1E 20 B0 12 6C 61
+A0 53 D0 23 92 D3 40 06 82 43 46 06 92 C3 40 06
+0A 43 09 43 B0 12 16 54 38 40 00 1E 92 48 C6 01
+04 20 92 48 C8 01 06 20 5C 48 C2 01 7C 80 0C 00
+08 24 5C 53 06 24 6C 52 04 24 3C 50 07 20 30 40
+9A 54 09 43 B0 12 16 54 A2 43 2C 20 19 48 0E 00
+82 49 08 20 1A 48 24 00 82 4A 0A 20 09 5A 82 49
+0C 20 09 5A 58 48 0D 00 82 48 12 20 09 88 09 88
+82 49 10 20 30 41 82 43 32 20 30 40 56 41 92 4B
+0E 00 22 20 92 4B 10 00 24 20 5A 42 23 20 58 42
+22 20 59 42 24 20 89 10 0A D9 88 10 08 58 0A 6A
+88 10 08 58 30 41 1A 52 08 20 09 43 FC 3E 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 1E 56 5A 4B 03 00 82 5A 1A 20
+82 63 1C 20 30 41 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 A3 25 09 4B 3B 50 1C 00 3B 90 18 21 EF 23
+0C 5C 9B 3D 0C 43 82 4B 32 20 8B 49 00 00 09 93
+0A 24 99 52 C6 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 1A 24 A4 37
+8B 43 16 00 7A 93 02 24 07 38 35 3C B2 40 1C 21
+A0 40 B2 40 82 43 C0 42 9B 42 C2 1D 18 00 9B 82
+C6 1D 18 00 9B 42 C4 1D 1A 00 9B 52 C6 1D 1A 00
+22 3C 30 41 1B 42 32 20 82 43 1E 20 B2 90 00 02
+20 20 3F 20 BB 80 00 02 12 00 8B 73 14 00 DB 53
+03 00 DB 92 12 20 03 00 0E 28 CB 43 03 00 B0 12
+EE 55 B0 12 16 56 8B 43 10 00 9B 48 00 1E 0E 00
+9B 48 02 1E 10 00 B2 40 00 02 20 20 8B 93 14 00
+0B 20 92 9B 12 00 1E 20 1C 2C BB 90 00 02 12 00
+03 2C 92 4B 12 00 20 20 B0 12 48 56 1A 42 1A 20
+19 42 1C 20 38 3E CB 43 02 00 2B 4B 82 4B 32 20
+0B 93 06 24 92 4B 16 00 1E 20 B0 12 76 57 22 C3
+30 41 1B 42 32 20 0B 93 FB 27 EB 92 02 00 04 20
+B0 12 34 5B B0 12 24 5C CB 93 02 00 E4 37 1E 4B
+18 00 9F 4B 1A 00 00 00 31 50 06 00 3D 41 B0 12
+A6 57 02 24 30 40 78 43 B2 40 3C 1D A0 40 B2 40
+C2 42 C0 42 30 40 5E 43 09 93 07 24 F8 90 20 00
+00 1E 03 20 18 53 19 83 F9 23 30 41 62 4C 0B 52
+45 41 44 22 5A 43 20 3C CA 4A 09 44 45 4C 22 00
+6A 43 1A 3C 90 49 0D 57 52 49 54 45 22 00 6A 42
+13 3C 78 49 0F 41 50 50 45 4E 44 22 7A 42 0C 3C
+74 4B 0A 43 4C 4F 53 45 B0 12 C2 57 30 4D D8 48
+0B 4C 4F 41 44 22 7A 43 2F 83 8F 4E 00 00 0E 4A
+82 93 BC 1D 0B 24 0D 12 84 12 0A 40 0A 40 C6 48
+C6 48 46 45 0A 40 9C 58 C6 48 D8 45 0D 12 84 12
+0A 40 22 00 5C 46 16 49 9A 58 3D 41 36 4F 0E 56
+82 4E 36 20 A2 43 22 20 82 43 24 20 1C 43 0E 96
+8C 24 F6 90 3A 00 01 00 01 20 26 53 F6 90 5C 00
+00 00 03 20 16 53 0E 96 66 24 82 46 34 20 B0 12
+1E 56 15 42 12 20 B0 12 9C 57 2C 43 0A 43 08 4A
+58 0E 08 58 82 48 30 20 C8 93 00 1E 60 24 39 42
+F8 96 00 1E 04 20 18 53 19 83 FA 23 16 53 F6 90
+2E 00 FF FF 19 24 39 50 03 00 B0 12 08 58 06 20
+F6 90 5C 00 FF FF 29 24 0E 96 27 28 16 42 34 20
+1A 53 3A 90 10 00 DB 23 92 53 1A 20 82 63 1C 20
+15 83 D1 23 2C 42 49 3C F6 90 2E 00 FE FF EE 27
+B0 12 08 58 EB 23 39 40 03 00 F8 96 00 1E 04 20
+18 53 19 83 FA 23 09 3C 0E 96 E0 2F F6 90 5C 00
+FF FF DC 23 B0 12 08 58 D9 23 18 42 30 20 92 48
+1A 1E 22 20 92 48 14 1E 24 20 F8 B0 10 00 0B 1E
+13 24 82 93 24 20 05 20 82 93 22 20 02 20 A2 43
+22 20 0E 96 9A 23 92 42 22 20 2C 20 92 42 24 20
+2E 20 8F 43 00 00 03 3C 2A 4F B0 12 66 56 35 40
+B6 40 36 40 C4 40 3A 4F 3E 4F 0A 93 04 24 7A 93
+39 20 0C 93 02 20 30 40 78 43 0D 12 84 12 5E 43
+1E 40 0B 3C 20 4F 70 65 6E 45 72 72 6F 72 B2 40
+B0 54 E2 B2 60 02 02 24 30 40 80 41 92 12 3E 18
+3F 40 7E 1C 8F 43 00 00 0D 12 84 12 1E 40 0F 4C
+4F 41 44 22 20 42 4F 4F 54 2E 34 54 48 22 B2 40
+46 49 1E 58 08 42 4F 4F 54 00 B2 40 E2 59 B2 42
+30 4D 16 47 0C 4E 4F 42 4F 4F 54 00 B2 40 80 41
+B2 42 30 4D 1A 93 89 20 0C 93 C7 23 30 4D 14 5A
+08 52 45 41 44 00 2F 83 8F 4E 00 00 1E 42 32 20
+B0 12 34 57 1E 82 32 20 30 4D 08 4A 1A 52 08 20
+B0 12 6A 5A 0A 48 1A 52 0C 20 09 43 30 40 5C 54
+3C 42 0A 12 2A 41 82 9A 0A 20 2B 25 B0 12 16 56
+88 93 02 1E 03 20 88 93 00 1E 08 24 28 52 38 90
+00 02 F6 2B 91 53 00 00 08 43 EC 3F A2 41 26 20
+82 48 28 20 0C 43 B8 43 00 1E 6A 41 B8 40 FF 0F
+02 1E 08 11 8A 10 08 5A 5A 41 01 00 0A 11 08 10
+82 4A 24 20 82 48 22 20 2A 41 B0 12 5A 5A 3A 41
+30 41 90 4B 0A 00 4C C5 90 4B 0C 00 48 C5 B0 12
+FA 55 82 4A 26 20 82 48 28 20 0A 12 B0 12 16 56
+1A 48 00 1E 88 43 00 1E 19 48 02 1E 88 43 02 1E
+39 F0 FF 0F 39 90 FF 0F 02 20 3A 93 10 24 82 4A
+22 20 82 49 24 20 B0 12 FA 55 2A 91 E9 27 09 4A
+2A 41 81 49 00 00 B0 12 5A 5A 2A 41 DF 3F 3A 41
+30 40 5A 5A 9B 52 1E 20 12 00 8B 63 14 00 1A 42
+1A 20 19 42 1C 20 30 40 5C 54 2A 93 BC 20 0C 93
+09 20 F8 40 E5 00 00 1E B0 12 3E 5B B0 12 D2 5A
+B0 12 C2 57 30 4D 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 28 39 80 03 00 B0 12 12 5C 39 40
+03 00 7A 4B C8 4A 00 1E 82 9B 36 20 12 28 0D 12
+3D 40 0F 00 3C 40 C2 5B 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 1A 4B 04 00 19 4B 06 00 B0 12 16 54
+18 4B 08 00 B0 12 66 5B 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 5C 54 B2 40 00 02
+1E 20 1B 42 32 20 B0 12 34 5B 82 43 1E 20 DB 53
+03 00 DB 92 12 20 03 00 1D 28 B0 12 EE 55 08 12
+0A 12 B0 12 70 5A 2A 91 03 24 2A 41 B0 12 16 56
+3A 41 38 41 98 42 22 20 00 1E 98 42 24 20 02 1E
+B0 12 5A 5A AB 42 02 00 9B 42 22 20 0E 00 9B 42
+24 20 10 00 30 40 54 56 36 58 0A 57 52 49 54 45
+B0 12 5C 5C 30 4D 2A 92 54 20 2C 93 0E 24 0C 93
+3D 24 0D 12 84 12 1E 40 0C 3C 20 57 72 69 74 65
+45 72 72 6F 72 00 B2 40 B0 54 0A 43 08 43 B0 12
+70 5A B0 12 9C 57 18 42 30 20 F8 40 20 00 0B 1E
+B0 12 66 5B 88 43 0C 1E 88 4A 0E 1E 88 49 10 1E
+98 42 24 20 14 1E 98 42 22 20 1A 1E 88 43 1C 1E
+88 43 1E 1E 2C 42 1B 42 34 20 82 9B 36 20 D1 27
+FB 90 2E 00 00 00 CD 27 39 40 0B 00 B0 12 E2 5B
+B0 12 3E 5B 2A 42 B0 12 66 56 30 4D B0 12 D2 5A
+8B 43 12 00 8B 43 14 00 90 4B 0A 00 C6 C2 90 4B
+0C 00 C2 C2 B0 12 FA 55 B0 12 70 5A B0 12 A4 5C
+30 4D 2C 93 BA 27 0C 93 AC 23 EB 42 02 00 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
+B0 12 98 57 1A 4B 12 00 BB C0 FF 01 12 00 3A F0
+FF 01 82 4A 1E 20 30 4D 2A 58 10 54 45 52 4D 32
+53 44 22 00 0D 12 84 12 3E 58 EC 5D 0A 43 7D 40
+0A 00 B0 12 44 41 3A 90 00 02 03 28 B0 12 5C 5C
+0A 43 92 B3 EC 06 FD 27 59 42 CC 06 69 92 11 24
+CA 49 00 1E 1A 53 49 9D EE 23 A2 B3 EC 06 FD 27
+F2 40 0D 00 CE 06 A2 B3 EC 06 FD 27 C2 4D CE 06
+E0 3F C2 9D CC 06 FD 23 82 4A 1E 20 B0 12 C2 57
 3D 41 30 4D
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 84 42 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 96 4E
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 D4 42 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 10 42
 q
diff --git a/binaries/MSP_EXP430FR5994_1MHz_UART.txt b/binaries/MSP_EXP430FR5994_1MHz_UART.txt
deleted file mode 100644 (file)
index 782000a..0000000
+++ /dev/null
@@ -1,657 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF 0C 68 50 4D 34 01
-10 00 C1 B3 94 41 66 5F DA 41 24 5E 96 42 0C 68
-50 4D 7C 42 F2 43 26 43 00 43 3C 1D C0 44 D4 40
-E2 40 EE 40 20 00 0A 00 00 00 00 00 00 00 00 00
-@4000
-B0 12 DA 41 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 40
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 66 5F 39 40 22 18
-B2 49 7A 42 B2 49 F0 43 B2 49 24 43 B2 49 FE 42
-B2 49 CA 40 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 58 4E 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 41 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 40 0A 40 DE 1D 40 44 34 43
-14 40 04 1B 5B 37 6D 00 BC 43 08 44 34 40 86 41
-14 40 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 BC 43 00 45 BC 43 14 40 04 1B 5B 30 6D 00
-BC 43 88 48 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D2 23 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 23 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 41 F2 B0 40 00 40 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE 41 04 57 41 52 4D 00
-B0 12 24 5E 84 12 14 40 07 0D 0A 1B 5B 37 6D 23
-BC 43 36 45 14 40 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
-BC 43 0A 40 40 FF 28 40 34 44 00 45 14 40 0A 62
-79 74 65 73 20 66 72 65 65 00 3A 40 86 41 00 00
-06 41 43 43 45 50 54 00 30 40 7C 42 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 42 3C 40
-D4 42 5D 15 B5 3E 21 52 3A 17 58 42 CC 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 CE 05 30 4D CA 42 2D 83 92 B3 DC 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-DC 05 FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53
-DE 1D 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 43
-2F 83 8F 4E 00 00 B0 12 DA 41 92 B3 DC 05 FD 27
-1E 42 CC 05 B0 12 C8 41 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 43 08 4E 3E 4F C8 3F 1C 43 04 45
-43 48 4F 00 B2 40 C2 48 C2 42 82 43 DE 1D 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 42
-92 43 DE 1D 30 4D 0D 12 3D 40 76 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 78 43 2D 83 0C 9B 16 2C 58 4C
-00 1E 1C 53 78 90 20 00 09 2C 78 90 0A 00 F5 23
-3D 41 82 4C 1E 20 3C 40 20 00 A6 3F 0E 99 8E 27
-CA 48 00 00 1A 53 1E 53 89 3F 1A 15 B0 12 1C 60
-19 17 DC 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 D8 43 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 24 43 DA 43 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 41 02 43 52 00 30 40
-F2 43 0D 12 84 12 14 40 02 0D 0A 00 BC 43 C0 44
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 42 01 40
-2E 4E 30 4D 3E 44 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D EA 43 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 40 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 7A 44 02 23 53 00 0D 12
-84 12 7C 44 B6 44 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D AA 44 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D B6 43 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-70 44 AE 44 EE 40 EE 44 CA 44 BC 43 74 48 22 43
-C0 44 42 43 01 2E 0E 93 E3 37 38 43 E2 3F E8 44
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 40 14 40
-BA 47 0A 40 22 00 8C 45 5A 45 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-34 45 82 2E 22 00 0D 12 84 12 44 45 0A 40 BC 43
-BA 47 C0 44 1A 42 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 40 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 40 35 40 D4 40
-30 4D 00 00 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 0E 47
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F 10 47
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 40 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D B8 47 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 40 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D C6 44 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D DA 44 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 40 74 48 8C 45 30 48
-9C 26 3D 40 38 48 DE 3E 3A 48 0A 4E 3E 4F 3D 40
-54 48 36 27 3D 40 2A 48 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 56 48 3E 4F 3D 40 2A 48 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 F6 49
-CC 3F 5E 48 86 12 20 00 46 44 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 EE 43
-BC 40 24 48 24 44 56 44 14 40 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 41 0A 40 40 FF 28 40
-5E 44 14 40 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 41 3A 40 9E 48 7A 48 86 41 42 4F 52 54 22 00
-0D 12 84 12 44 45 0A 40 2A 41 BA 47 C0 44 EE 45
-01 27 0D 12 84 12 74 48 8C 45 F4 45 34 40 72 48
-C0 44 00 00 83 5B 27 5D 0D 12 84 12 F2 48 0A 40
-0A 40 BA 47 BA 47 C0 44 04 49 81 5B 82 43 BE 1D
-30 4D 6C 44 01 5D B2 43 BE 1D 30 4D 24 49 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 74 48 8C 45 F4 45 08 44
-34 40 72 48 56 44 34 40 66 49 0A 40 0A 40 BA 47
-BA 47 0A 40 BA 47 BA 47 C0 44 1A 49 01 3A 30 12
-B6 49 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 74 48
-8C 45 84 49 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 40 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 41 6C 49 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 40 C0 44 BA 47 C8 49 1C 49
-C0 44 1A 48 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D 04 48 06 43 52 45
-41 54 45 00 B0 12 72 49 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F FA 49 07 3A 4E 4F 4E 41 4D 45 30 12
-B6 49 2F 83 8F 4E 00 00 1A 42 C6 1D 1A B3 0A 63
-0E 4A 39 40 10 02 08 49 28 53 99 3F 2E 43 05 44
-45 46 45 52 B0 12 72 49 BA 40 30 40 FC FF BA 40
-F4 4D FE FF A8 3F BE 4F 02 00 3E 4F 30 4D 14 4A
-82 49 53 00 0D 12 82 93 BE 1D 06 24 84 12 08 49
-0A 40 86 4A BA 47 C0 44 84 12 F2 48 86 4A C0 44
-2C 4A 04 43 4F 44 45 00 B0 12 72 49 A2 82 C6 1D
-82 43 7C 5C 0D 12 84 12 5A 4D 2C 4D C0 44 90 4A
-07 48 44 4E 43 4F 44 45 B2 40 30 4D DA 1D EC 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 C8 49
-80 4D B4 4D C0 44 B2 4A 07 43 4F 44 45 4E 4E 4D
-30 12 BC 4A A6 3F 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 80 4D B4 4D C0 44
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F D0 4A 85 48 49 32 4C 4F 0D 12 84 12 28 40
-94 4C BA 47 1C 49 C0 4A C0 44 46 4A 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 5C 4B 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 40 00 00 38 44 74 48 8C 45
-0A 48 00 44 34 40 F4 4B 0E 44 14 40 06 5B 54 48
-45 4E 5D 00 66 4B CE 4B 8A 4B AC 4B C0 44 0E 44
-14 40 06 5B 45 4C 53 45 5D 00 66 4B E4 4B 8A 4B
-AA 4B C0 44 14 40 04 5B 49 46 5D 00 66 4B AC 4B
-3A 40 AA 4B E2 43 14 40 05 0D 0A 6B 6F 20 BC 43
-BC 40 AC 40 3A 40 AC 4B 9A 4B 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 0A 4C 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 74 48 8C 45
-F4 45 18 4C C0 44 1E 4C 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 28 4C 50 44 C0 44 50 4C
-B2 4E 0A 18 B2 4E 0C 18 BE 12 3E 4F 3D 41 DB 3C
-CC 47 06 4D 41 52 4B 45 52 00 B0 12 72 49 BA 40
-85 12 FC FF BA 40 4E 4C FE FF 28 83 8A 48 00 00
-9A 42 C8 1D 02 00 BA 40 AA 40 04 00 B2 50 06 00
-C6 1D 9D 3E 2E 53 30 4D 6E 4A 05 44 4F 45 53 3E
-1A 42 BA 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41
-30 4D 86 45 0A 56 4F 43 41 42 55 4C 41 52 59 00
-0D 12 84 12 34 4A 0A 40 10 00 0A 40 00 00 3E 40
-0A 40 00 00 BA 47 60 40 D0 4C 28 40 0A 40 C8 1D
-00 44 40 44 BA 47 48 44 A0 4C 0A 40 CA 1D 48 44
-C0 44 F0 48 05 46 4F 52 54 48 85 12 EA 4C 54 4D
-B0 63 E4 61 F4 4C 44 4B F8 42 FE 61 9A 4D 26 4E
-06 64 AE 67 CA 66 00 00 A2 63 2E 49 54 46 00 00
-D8 48 09 41 53 53 45 4D 42 4C 45 52 85 12 EA 4C
-48 5B E0 5A 44 5A 04 55 96 53 00 00 0C 59 00 00
-6C 5C 68 5D FA 53 AE 5D 14 5B 00 00 00 00 DE 54
-1E 4D 22 4D 04 41 4C 53 4F 00 3A 40 0C 00 39 40
-D6 1D 08 49 28 53 19 83 18 83 E8 49 00 00 1A 83
-FA 23 30 4D 3A 49 08 50 52 45 56 49 4F 55 53 00
-3A 40 0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 72 45 04 4F 4E 4C 59 00
-82 43 CC 1D 30 4D 9A 4C 0B 44 45 46 49 4E 49 54
-49 4F 4E 53 92 42 CA 1D DA 1D 30 4D FA 4C A0 4D
-B4 4D C4 4D 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 76 4D 09 50 57 52 5F 53 54 41
-54 45 85 12 BC 4D 50 4D 0C 68 40 45 09 52 53 54
-5F 53 54 41 54 45 92 42 0A 18 08 4E 92 42 0C 18
-06 4E EF 3F F8 4D 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 08 4E 92 42 C8 1D 06 4E 30 4D 0C 4E
-08 52 53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18
-92 42 C8 1D 0C 18 EC 3F 3E 90 0E 00 D2 27 2E 92
-DA 37 0E 93 CE 37 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B9 40 A8 4E FE FF 29 83 B9 40 02 42 FE FF
-39 90 AE FF F9 23 39 40 14 18 B2 49 04 42 B2 49
-FA 40 B2 49 02 40 B2 49 22 42 B2 49 F0 FF B2 49
-0A 18 B2 49 0C 18 B7 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 10 29 83 89 43 00 1C FC 23 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 B2 40 33 00 64 01
-D2 43 61 01 39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43
-08 18 1E D2 9E 01 B0 12 F8 40 20 42 38 40 C0 1D
-0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D 09 9E 03 24
-7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D
-1C 15 0E 12 12 12 C4 1D 84 12 8C 45 F4 45 50 44
-34 40 8C 4F B0 46 34 40 A6 4F A0 4F 8E 4F 3C 4E
-3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83
-21 52 1B 17 30 41 A8 4F B2 41 C4 1D 3E 41 84 12
-0A 40 2B 00 8C 45 F4 45 50 44 34 40 C4 4F B0 46
-34 40 72 48 1A 44 8C 45 B0 46 34 40 72 48 D0 4F
-3E 5F E7 3F 32 B0 00 02 01 24 3E 4F 30 41 3E 40
-28 00 B0 12 70 4F B0 12 D4 4F 19 42 C6 1D A2 53
-C6 1D 89 4E 00 00 3E 40 29 00 1C 15 92 92 C0 1D
-C4 1D 02 20 30 40 E0 49 12 12 C4 1D 92 53 C4 1D
-84 12 8C 45 B0 46 34 40 26 50 1C 50 21 53 3E 90
-10 00 84 2D BE 2B 28 50 B2 41 C4 1D BA 3F 0D 12
-84 12 74 48 4C 4F 38 50 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 70 4F B0 12 D4 4F 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 70 4F
-B0 12 D4 4F EB 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 FA 4F 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 FA 4F 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E D8 3F B0 12 FA 4F FA 23 3C 50
-10 00 B0 12 DE 4F EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 0D 12 84 12 74 48 4C 4F 0C 51 FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C5 3F B0 12
-FA 4F E0 23 3C 50 80 00 B0 12 DE 4F DB 3F 00 00
-04 52 45 54 49 00 0D 12 84 12 0A 40 00 13 BA 47
-C0 44 0A 40 2C 00 2E 50 02 51 4C 51 09 4B 2E 4E
-0E DC A0 3F 32 4B 03 4D 4F 56 85 12 42 51 00 40
-56 51 05 4D 4F 56 2E 42 85 12 42 51 40 40 00 00
-03 41 44 44 85 12 42 51 00 50 70 51 05 41 44 44
-2E 42 85 12 42 51 40 50 7C 51 04 41 44 44 43 00
-85 12 42 51 00 60 8A 51 06 41 44 44 43 2E 42 00
-85 12 42 51 40 60 30 51 04 53 55 42 43 00 85 12
-42 51 00 70 A8 51 06 53 55 42 43 2E 42 00 85 12
-42 51 40 70 B6 51 03 53 55 42 85 12 42 51 00 80
-C6 51 05 53 55 42 2E 42 85 12 42 51 40 80 08 4B
-03 43 4D 50 85 12 42 51 00 90 E0 51 05 43 4D 50
-2E 42 85 12 42 51 40 90 E2 4A 04 44 41 44 44 00
-85 12 42 51 00 A0 FA 51 06 44 41 44 44 2E 42 00
-85 12 42 51 40 A0 EC 51 03 42 49 54 85 12 42 51
-00 B0 18 52 05 42 49 54 2E 42 85 12 42 51 40 B0
-24 52 03 42 49 43 85 12 42 51 00 C0 32 52 05 42
-49 43 2E 42 85 12 42 51 40 C0 3E 52 03 42 49 53
-85 12 42 51 00 D0 4C 52 05 42 49 53 2E 42 85 12
-42 51 40 D0 00 00 03 58 4F 52 85 12 42 51 00 E0
-66 52 05 58 4F 52 2E 42 85 12 42 51 40 E0 98 51
-03 41 4E 44 85 12 42 51 00 F0 80 52 05 41 4E 44
-2E 42 85 12 42 51 40 F0 74 48 2E 50 9E 52 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F D2 51
-03 52 52 43 85 12 98 52 00 10 B0 52 05 52 52 43
-2E 42 85 12 98 52 40 10 BC 52 04 53 57 50 42 00
-85 12 98 52 80 10 CA 52 03 52 52 41 85 12 98 52
-00 11 D8 52 05 52 52 41 2E 42 85 12 98 52 40 11
-E4 52 03 53 58 54 85 12 98 52 80 11 00 00 04 50
-55 53 48 00 85 12 98 52 00 12 FE 52 06 50 55 53
-48 2E 42 00 85 12 98 52 40 12 58 52 04 43 41 4C
-4C 00 85 12 98 52 80 12 1A 53 0E 4A 0D 12 84 12
-36 45 14 40 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 36 41 F2 52 03 53 3E 3D 86 12 00 38 46 53
-02 53 3C 00 86 12 00 34 0C 53 03 30 3E 3D 86 12
-00 30 5A 53 02 30 3C 00 86 12 00 30 00 00 02 55
-3C 00 86 12 00 2C 6E 53 03 55 3E 3D 86 12 00 28
-64 53 03 30 3C 3E 86 12 00 24 82 53 02 30 3D 00
-86 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 78 53 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 B1 2F 88 DA 00 00 30 4D 08 52
-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 53 05 42
-45 47 49 4E 30 40 28 40 AC 53 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D 8C 52 05 41 47 41 49 4E 0A 4E
-38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12
-84 12 9A 53 1A 44 C0 44 50 53 06 52 45 50 45 41
-54 00 0D 12 84 12 2E 54 B2 53 C0 44 5E 54 3D 41
-08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D
-00 00 30 4D EE 53 03 42 57 31 85 12 5C 54 00 00
-76 54 03 42 57 32 85 12 5C 54 00 00 82 54 03 42
-57 33 85 12 5C 54 00 00 9A 54 3D 41 1A 42 C6 1D
-28 4E B2 92 C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12
-98 54 00 00 BA 54 03 46 57 32 85 12 98 54 00 00
-C6 54 03 46 57 33 85 12 98 54 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 0D 12 84 12 F2 48 4E 48
-C0 44 D2 54 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
-3E 40 00 3C F1 3F 74 48 4C 4F 1C 55 92 53 C4 1D
-3E 40 2C 00 84 12 8C 45 B0 46 34 40 72 48 F8 50
-32 55 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E
-5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E 4A 54
-04 52 52 43 4D 00 85 12 16 55 50 00 60 55 04 52
-52 41 4D 00 85 12 16 55 50 01 6E 55 04 52 4C 41
-4D 00 85 12 16 55 50 02 7C 55 04 52 52 55 4D 00
-85 12 16 55 50 03 8C 53 05 50 55 53 48 4D 85 12
-16 55 00 15 98 55 04 50 4F 50 4D 00 85 12 16 55
-00 17 8A 55 06 52 52 43 4D 2E 41 00 85 12 16 55
-40 00 B4 55 06 52 52 41 4D 2E 41 00 85 12 16 55
-40 01 C4 55 06 52 4C 41 4D 2E 41 00 85 12 16 55
-40 02 D4 55 06 52 52 55 4D 2E 41 00 85 12 16 55
-40 03 A6 55 07 50 55 53 48 4D 2E 41 85 12 16 55
-00 14 F4 55 06 50 4F 50 4D 2E 41 00 85 12 16 55
-00 16 8E 54 05 43 41 4C 4C 41 0D 12 84 12 74 48
-4C 4F 24 56 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 FA 4F
-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
-FA 4F 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
-70 4F BB 4F 02 00 DC 3F 7E 90 26 00 02 20 2C 53
-F4 3F 7E 40 28 00 1C 83 B0 12 70 4F BB 4F 02 00
-3E 40 29 00 CB 3F 0D 12 84 12 74 48 4C 4F B0 56
-69 4E 3E 4F 3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D
-79 90 52 00 0A 20 B0 12 FA 4F 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 70 4F
-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 FA 4F D8 23 3C D0 10 00 3E 40
-2B 00 B0 12 FA 4F 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 70 4F BB 4F 02 00 3E 40 29 00 EA 3F 0D 12
-84 12 74 48 4C 4F 58 57 3B 4F 2C 4B 69 4E 7E 40
-20 00 79 90 52 00 03 20 B0 12 FA 4F B0 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 70 4F BB 4F 02 00 A0 3F 3C D0
-70 00 3E 40 28 00 B0 12 70 4F BB 4F 02 00 3E 40
-29 00 E2 3F 0A 40 2C 00 A6 56 4E 57 E4 43 C0 44
-62 51 04 4D 4F 56 41 00 85 12 A4 57 C0 00 14 56
-04 43 4D 50 41 00 85 12 A4 57 D0 00 28 54 04 41
-44 44 41 00 85 12 A4 57 E0 00 E4 55 04 53 55 42
-41 00 85 12 A4 57 F0 00 0D 12 84 12 74 48 4C 4F
-F2 57 69 4E 3E 4F 3C 40 00 18 79 90 52 00 05 20
-B0 12 FA 4F 0E 4C 3D 41 30 4D 82 43 7C 5C 79 90
-23 00 0B 20 92 53 C4 1D B0 12 70 4F 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 FA 4F E2 23
-3E 40 2B 00 92 53 C4 1D B0 12 FA 4F 92 92 C0 1D
-C4 1D D8 27 92 53 C4 1D D5 3F 3E 40 28 00 B0 12
-70 4F 8F 4E 00 00 3E 40 29 00 B0 12 FA 4F 3E 4F
-3E F0 0F 00 0C DE EA 3F 0D 12 84 12 74 48 4C 4F
-82 58 3C 4F 69 4E 3E 40 20 00 79 90 52 00 BA 27
-82 43 7C 5C 79 90 26 00 08 20 92 53 C4 1D B0 12
-70 4F 2F 53 3E F0 0F 00 BE 3F 3E 40 28 00 B0 12
-70 4F F7 3F B2 4F C4 1D 1B 42 C6 1D A2 53 C6 1D
-0C 4E 3E 4F 1C D2 7C 5C 82 43 7C 5C 3C DE 8B 4C
-00 00 30 4D 0A 40 C4 1D 40 44 0A 40 2C 00 E8 57
-78 58 B4 58 3A 40 42 51 B2 57 04 4D 4F 56 58 00
-85 12 D4 58 40 00 00 40 EA 58 06 4D 4F 56 58 2E
-41 00 85 12 D4 58 00 00 40 40 FA 58 06 4D 4F 56
-58 2E 42 00 85 12 D4 58 40 00 40 40 CE 57 04 41
-44 44 58 00 85 12 D4 58 40 00 00 50 1E 59 06 41
-44 44 58 2E 41 00 85 12 D4 58 00 00 40 50 2E 59
-06 41 44 44 58 2E 42 00 85 12 D4 58 40 00 40 50
-40 59 05 41 44 44 43 58 85 12 D4 58 40 00 00 60
-52 59 07 41 44 44 43 58 2E 41 85 12 D4 58 00 00
-40 60 62 59 07 41 44 44 43 58 2E 42 85 12 D4 58
-40 00 40 60 DC 57 05 53 55 42 43 58 85 12 D4 58
-40 00 00 70 86 59 07 53 55 42 43 58 2E 41 85 12
-D4 58 00 00 40 70 96 59 07 53 55 42 43 58 2E 42
-85 12 D4 58 40 00 40 70 A8 59 04 53 55 42 58 00
-85 12 D4 58 40 00 00 80 BA 59 06 53 55 42 58 2E
-41 00 85 12 D4 58 00 00 40 80 CA 59 06 53 55 42
-58 2E 42 00 85 12 D4 58 40 00 40 80 C0 57 04 43
-4D 50 58 00 85 12 D4 58 40 00 00 90 EE 59 06 43
-4D 50 58 2E 41 00 85 12 D4 58 00 00 40 90 FE 59
-06 43 4D 50 58 2E 42 00 85 12 D4 58 40 00 40 90
-D0 53 05 44 41 44 44 58 85 12 D4 58 40 00 00 A0
-22 5A 07 44 41 44 44 58 2E 41 85 12 D4 58 00 00
-40 A0 32 5A 07 44 41 44 44 58 2E 42 85 12 D4 58
-40 00 40 A0 10 5A 04 42 49 54 58 00 85 12 D4 58
-40 00 00 B0 56 5A 06 42 49 54 58 2E 41 00 85 12
-D4 58 00 00 40 B0 66 5A 06 42 49 54 58 2E 42 00
-85 12 D4 58 40 00 40 B0 78 5A 04 42 49 43 58 00
-85 12 D4 58 40 00 00 C0 8A 5A 06 42 49 43 58 2E
-41 00 85 12 D4 58 00 00 40 C0 9A 5A 06 42 49 43
-58 2E 42 00 85 12 D4 58 40 00 40 C0 AC 5A 04 42
-49 53 58 00 85 12 D4 58 40 00 00 D0 BE 5A 06 42
-49 53 58 2E 41 00 85 12 D4 58 00 00 40 D0 CE 5A
-06 42 49 53 58 2E 42 00 85 12 D4 58 40 00 40 D0
-72 52 04 58 4F 52 58 00 85 12 D4 58 40 00 00 E0
-F2 5A 06 58 4F 52 58 2E 41 00 85 12 D4 58 00 00
-40 E0 02 5B 06 58 4F 52 58 2E 42 00 85 12 D4 58
-40 00 40 E0 74 59 04 41 4E 44 58 00 85 12 D4 58
-40 00 00 F0 26 5B 06 41 4E 44 58 2E 41 00 85 12
-D4 58 00 00 40 F0 36 5B 06 41 4E 44 58 2E 42 00
-85 12 D4 58 40 00 40 F0 0A 40 C4 1D 40 44 74 48
-E8 57 B4 58 3A 40 98 52 DC 59 04 52 52 43 58 00
-85 12 58 5B 40 00 00 10 6A 5B 06 52 52 43 58 2E
-41 00 85 12 58 5B 00 00 40 10 7A 5B 06 52 52 43
-58 2E 42 00 85 12 58 5B 40 00 40 10 8C 5B 04 52
-52 55 58 00 85 12 58 5B 40 01 00 10 9E 5B 06 52
-52 55 58 2E 41 00 85 12 58 5B 00 01 40 10 AE 5B
-06 52 52 55 58 2E 42 00 85 12 58 5B 40 01 40 10
-C0 5B 05 53 57 50 42 58 85 12 58 5B 40 00 80 10
-D2 5B 07 53 57 50 42 58 2E 41 85 12 58 5B 00 00
-80 10 E2 5B 04 52 52 41 58 00 85 12 58 5B 40 00
-00 11 F4 5B 06 52 52 41 58 2E 41 00 85 12 58 5B
-00 00 40 11 04 5C 06 52 52 41 58 2E 42 00 85 12
-58 5B 40 00 40 11 16 5C 04 53 58 54 58 00 85 12
-58 5B 40 00 80 11 28 5C 06 53 58 54 58 2E 41 00
-85 12 58 5B 00 00 80 11 04 56 05 50 55 53 48 58
-85 12 58 5B 40 00 00 12 4A 5C 07 50 55 53 48 58
-2E 41 85 12 58 5B 00 00 40 12 5A 5C 07 50 55 53
-48 58 2E 42 85 12 58 5B 40 00 40 12 00 00 38 5C
-03 52 50 54 0D 12 84 12 74 48 4C 4F 8E 5C 29 4E
-7E 40 20 00 79 90 52 00 06 20 B0 12 FA 4F 03 24
-3E D0 80 00 05 3C B0 12 70 4F 1E 83 3E F0 0F 00
-82 4E 7C 5C 3E 4F 3D 41 30 4D D2 C3 23 02 E2 B2
-60 02 02 24 30 40 02 42 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 42 5D
-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 1A 43
-E1 3F 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 80 5C 08 52 45 41 44 5F 53 57
-58 00 1C D3 F2 40 51 00 19 20 B0 12 BA 5C 38 20
-B0 12 42 5D 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 38 54 09 57
-52 49 54 45 5F 53 57 58 2C D3 F0 40 58 00 5B C2
-B0 12 BA 5C 15 20 3A 40 FE FF 29 43 B0 12 46 5D
-D2 49 00 1E 4E 06 03 43 19 53 39 90 00 02 F8 23
-39 40 03 00 B0 12 44 5D 7A C0 E1 00 6A 92 D9 27
-8C 10 1C 52 4C 06 D2 D3 23 02 0D 12 84 12 34 43
-14 40 0B 3C 20 53 44 20 45 72 72 6F 72 21 10 5E
-2F 83 8F 4E 00 00 B2 40 10 00 DC 1D 0E 4C 84 12
-00 45 36 41 B0 12 9C 41 0E 93 9C 24 E2 B2 60 02
-99 20 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 39 42 B0 12
-44 5D D2 C3 23 02 2C 42 B2 40 95 00 14 20 B2 40
-00 40 18 20 B0 12 3E 5D 02 24 30 40 F0 5D B0 12
-42 5D 7A 93 FC 23 B2 40 87 AA 14 20 92 43 16 20
-B2 40 00 48 18 20 B0 12 3E 5D 29 42 B0 12 44 5D
-92 43 14 20 82 43 16 20 78 43 3C 42 B2 40 00 77
-18 20 B0 12 3E 5D B2 40 40 69 18 20 B0 12 FC 5C
-03 24 58 83 F3 23 D9 3F 0C 5C A2 43 16 20 B2 40
-00 50 18 20 B0 12 FC 5C D0 23 92 D3 40 06 82 43
-46 06 92 C3 40 06 09 43 B0 12 72 5D 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 F6 5D 09 43 B0 12 72 5D 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 30 41 B0 12 AA 40 39 40 E0 00 29 83
-89 43 38 20 FC 23 82 43 32 20 30 41 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 AA 5F 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 AB 20 BB 80 00 02
-12 00 8B 73 14 00 DB 53 03 00 DB 92 12 20 03 00
-14 28 CB 43 03 00 B0 12 7C 5F 1A 52 08 20 09 43
-B0 12 72 5D 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 EA 5F
-1A 42 1A 20 19 42 1C 20 6C 3E 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
-5C 27 C9 37 8B 43 16 00 7A 93 02 24 07 38 95 3F
-B2 40 1C 21 CA 40 B2 40 56 43 7A 42 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 6A 60 22 C3
-30 41 1B 42 32 20 0B 93 FB 27 EB 93 02 00 04 20
-B0 12 46 66 B0 12 0E 66 CB 93 02 00 E4 37 1E 4B
-18 00 9F 4B 1A 00 00 00 31 50 06 00 3D 41 B0 12
-66 61 02 24 30 40 4A 43 B2 40 3C 1D CA 40 B2 40
-7C 42 7A 42 30 40 34 43 40 4E 85 52 45 41 44 22
-5A 43 19 3C B4 4C 86 57 52 49 54 45 22 00 6A 43
-12 3C A8 4D 84 44 45 4C 22 00 6A 42 0C 3C F8 4A
-05 43 4C 4F 53 45 B0 12 82 61 30 4D 62 4C 85 4C
-4F 41 44 22 7A 43 2F 83 8F 4E 00 00 0E 4A 82 93
-BE 1D 0B 24 0D 12 84 12 0A 40 0A 40 BA 47 BA 47
-44 45 0A 40 3A 62 BA 47 C0 44 0D 12 84 12 0A 40
-22 00 8C 45 0A 48 38 62 3D 41 36 4F 0E 56 82 4E
-36 20 1C 43 92 42 2C 20 22 20 92 42 2E 20 24 20
-0E 96 8D 24 F6 90 3A 00 01 00 01 20 26 53 F6 90
-5C 00 00 00 08 20 16 53 92 42 02 20 22 20 82 43
-24 20 0E 96 70 24 82 46 34 20 B0 12 AA 5F 35 40
-20 00 A2 93 02 20 04 24 92 92 22 20 02 20 02 24
-15 42 12 20 B0 12 90 60 2C 43 0A 43 08 4A 58 0E
-08 58 82 48 30 20 C8 93 00 1E 61 24 39 42 F8 96
-00 1E 04 20 18 53 19 83 FA 23 16 53 F6 90 2E 00
-FF FF 19 24 39 50 03 00 B0 12 08 60 06 20 F6 90
-5C 00 FF FF 29 24 0E 96 27 28 16 42 34 20 1A 53
-3A 90 10 00 DB 23 92 53 1A 20 82 63 1C 20 15 83
-D1 23 2C 42 3C 3C F6 90 2E 00 FE FF EE 27 B0 12
-08 60 EB 23 39 40 03 00 F8 96 00 1E 04 20 18 53
-19 83 FA 23 09 3C 0E 96 E0 2F F6 90 5C 00 FF FF
-DC 23 B0 12 08 60 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 96 8E 2F 92 42 22 20 2C 20 92 42 24 20
-2E 20 8F 43 00 00 03 3C 2A 4F B0 12 9A 60 35 40
-D4 40 36 40 E2 40 3A 4F 3E 4F 0A 93 04 24 7A 93
-3C 20 0C 93 01 20 30 4D 0D 12 84 12 34 43 14 40
-0B 3C 20 4F 70 65 6E 45 72 72 6F 72 3A 40 0E 5E
-38 4C 05 5B 50 46 41 5D 2E 53 2E 4E 30 4D F0 61
-04 42 4F 4F 54 00 39 40 24 5E 2E 93 01 2C 30 41
-E2 B2 60 02 02 24 10 49 02 00 89 12 3F 40 7E 1C
-8F 43 00 00 82 43 BE 1D B2 40 00 1C 00 1C 31 40
-E0 1C 84 12 14 40 0F 4C 4F 41 44 22 20 42 4F 4F
-54 2E 34 54 48 22 3A 40 A2 48 1A 93 BB 20 0C 93
-C3 23 30 4D CA 61 04 52 45 41 44 00 2F 83 8F 4E
-00 00 1E 42 32 20 B0 12 1C 60 1E 82 32 20 30 4D
-2C 43 12 12 2A 20 18 42 02 20 08 58 2A 41 82 9A
-0A 20 A6 24 1A 52 08 20 09 43 B0 12 72 5D 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 E7 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 09 43 B0 12 B8 5D 3A 41 1A 52 0C 20
-09 43 B0 12 B8 5D 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 62 65 39 40
-03 00 7A 4B C8 4A 00 1E 82 9B 36 20 12 28 0D 12
-3D 40 0F 00 3C 40 12 65 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 DC 20 2C 93 0E 24 0C 93 AB 24
-0D 12 84 12 14 40 0C 3C 20 57 72 69 74 65 45 72
-72 6F 72 00 3A 40 0E 5E B0 12 20 64 92 42 26 20
-22 20 92 42 28 20 24 20 B0 12 9E 64 B0 12 90 60
-18 42 30 20 F8 40 20 00 0B 1E B0 12 B6 64 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 C9 27 FB 90
-2E 00 00 00 C5 27 39 40 0B 00 B0 12 32 65 B0 12
-50 66 2A 43 B0 12 9A 60 0C 93 BA 23 30 4D 1A 4B
-04 00 19 4B 06 00 B0 12 72 5D B0 12 B6 64 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 B8 5D 9B 52 1E 20 12 00 8B 63 14 00
-1A 42 1A 20 19 42 1C 20 30 40 B8 5D B2 40 00 02
-1E 20 1B 42 32 20 B0 12 46 66 82 43 1E 20 DB 53
-03 00 DB 92 12 20 03 00 25 20 CB 43 03 00 B0 12
-7C 5F 08 12 0A 12 B0 12 20 64 2A 91 08 24 B0 12
-9E 64 2A 41 1A 52 08 20 09 43 B0 12 72 5D 3A 41
-38 41 98 42 26 20 00 1E 92 93 02 20 03 24 98 42
-28 20 02 1E B0 12 9E 64 9B 42 26 20 0E 00 9B 42
-28 20 10 00 30 40 EA 5F D6 61 05 57 52 49 54 45
-B0 12 5C 66 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 8C 60 30 4D
-0C 93 3B 20 38 90 E0 01 03 2C C8 93 20 1E 02 24
-7C 40 E5 00 C8 4C 00 1E B0 12 50 66 B0 12 88 5F
-82 4A 2A 20 0B 4A 1A 52 08 20 09 43 B0 12 72 5D
-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 88 5F
-0B 9A E6 27 0A 12 0A 4B B0 12 9E 64 3A 41 DA 3F
-0A 4B B0 12 9E 64 B0 12 82 61 30 4D FC 44 08 54
-45 52 4D 32 53 44 22 00 0D 12 84 12 EA 61 0A 40
-02 00 28 40 0A 48 3A 62 CA 67 3D 41 0A 43 B0 12
-DA 41 92 B3 DC 05 FD 27 59 42 CC 05 C2 49 CE 05
-69 92 0D 24 CA 49 00 1E 1A 53 3A 90 FF 01 F1 2B
-03 24 B0 12 5C 66 EA 3F B0 12 C8 41 EA 3F B0 12
-C8 41 82 4A 1E 20 B0 12 82 61 30 4D
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-96 42 02 42 02 42 02 42 02 42 02 42 02 42 A8 4E
-q
diff --git a/binaries/MSP_EXP430FR5994_8MHz_115200.txt b/binaries/MSP_EXP430FR5994_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..579c6fc
--- /dev/null
@@ -0,0 +1,504 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A1 59
+D6 42 7E 41 06 56 E6 54 46 43 5E 5E 4A 4C 04 4C
+04 4C BC 42 7A 43 42 43 3C 1D E0 1C F8 45 B6 40
+C4 40 14 45 20 00 0A 00 00 1C 7E 41 06 56 E6 54
+46 43 5E 5E 4A 4C 04 4C 04 4C 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4000
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 06 3D 0E 93 3E 4F
+CA 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 BA 42 B2 49
+78 43 B2 49 40 43 B2 49 A0 40 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 BE 4C 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 46 43 92 C3 DC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 DC 05 F3 23
+B0 12 D0 40 1E 45 AC 40 52 41 88 43 1E 40 04 1B
+5B 37 6D 00 08 44 08 44 1E 40 04 1B 5B 30 6D 00
+08 44 54 49 B0 12 7E 41 B2 40 81 00 C0 05 92 42
+02 18 C6 05 92 42 04 18 C8 05 F2 D0 03 00 0D 02
+92 C3 C0 05 92 D3 DA 05 92 C3 30 01 30 41 92 B3
+CA 05 FD 23 30 41 92 12 3E 18 84 12 88 43 1E 40
+07 0D 0A 1B 5B 37 6D 23 08 44 6C 46 1E 40 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 08 44 0A 40 40 FF 32 40
+34 45 38 46 1E 40 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 40 46 41 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 41 01 12 71 3F 82 4E
+08 18 92 12 3A 18 F2 B0 40 00 40 02 02 20 B2 43
+08 18 B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0
+10 00 00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40
+E0 1C 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 B2 40 33 00 64 01
+D2 43 61 01 39 40 40 00 18 42 00 18 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 19 42 9E 01 1E 42 08 18 82 43
+08 18 3E F3 01 20 0E 49 B0 12 D0 40 86 41 00 00
+0C 41 43 43 45 50 54 00 30 40 BC 42 08 4E 2E 4F
+08 5E 39 40 0D 00 3A 40 20 00 3B 40 1A 43 3C 40
+26 43 5D 15 95 3E 21 52 3A 17 58 42 CC 05 48 9B
+09 20 A2 B3 DC 05 FD 27 B2 40 13 00 CE 05 E2 D2
+23 02 30 41 48 9C 06 2C 78 92 11 20 2E 9F 0F 24
+1E 83 05 3C 0E 9A 03 2C CE 48 00 00 1E 53 A2 B3
+DC 05 FD 27 C2 48 CE 05 30 4D 1C 43 2D 83 92 B3
+DC 05 DB 23 FC 3F 3E 8F 3D 41 92 B3 DC 05 FD 27
+58 42 CC 05 08 4C EB 3F 00 00 06 4B 45 59 30 40
+42 43 30 12 58 43 A2 B3 DC 05 FD 27 B2 40 11 00
+CE 05 E2 C2 23 02 30 41 2F 83 8F 4E 00 00 92 B3
+DC 05 FD 27 B0 12 E2 42 1E 42 CC 05 30 4D 00 00
+08 45 4D 49 54 00 30 40 7A 43 08 4E 3E 4F C7 3F
+70 43 08 45 43 48 4F 00 B2 40 C2 48 14 43 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 14 43
+30 4D 0D 12 3D 40 C2 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 C4 43 2D 83 0C 9B 16 2C 58 4C 00 1E 1C 53
+78 90 20 00 09 2C 78 90 0A 00 F5 23 82 4C 1E 20
+3D 41 3C 40 20 00 A6 3F 0E 99 91 27 CA 48 00 00
+1A 53 1E 53 8C 3F 1A 15 B0 12 54 57 19 17 DC 3F
+00 00 08 54 59 50 45 00 0D 12 3D 40 18 44 29 4F
+8F 4E 00 00 7E 49 AF 3F 1A 44 2D 83 2F 83 5E 83
+F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E
+38 4F 3C 9F 39 4F 3E 4F 3C 22 F9 98 00 00 39 22
+19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83
+30 22 9B 24 3A 43 0D 5B 45 4C 53 45 5D 00 0D 12
+84 12 0A 40 00 00 38 45 2A 44 7C 46 36 49 B0 40
+A6 44 14 40 06 5B 54 48 45 4E 5D 00 2E 44 84 44
+4A 44 68 44 14 40 06 5B 45 4C 53 45 5D 00 2E 44
+96 44 4A 44 66 44 1E 40 04 5B 49 46 5D 00 2E 44
+68 44 B2 40 66 44 1E 40 05 0D 6B 6F 20 0A 08 44
+9A 40 84 40 B2 40 68 44 56 44 0D 5B 54 48 45 4E
+5D 00 30 4D BA 44 09 5B 49 46 5D 00 0E 93 3E 4F
+C6 27 30 4D C6 44 13 5B 44 45 46 49 4E 45 44 5D
+0D 12 84 12 2A 44 7C 46 E4 46 88 48 F8 45 D6 44
+17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
+2A 44 7C 46 E4 46 08 45 3D 41 2F 53 1E 83 0E 7E
+30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E
+FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F
+0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40
+2E 4E 30 4D B0 42 02 21 BE 4F 00 00 3E 4F 30 4D
+0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D
+D8 41 05 53 22 00 82 43 C0 1D 0D 12 84 12 0A 40
+1E 40 E6 48 0A 40 22 00 7C 46 7C 45 B2 40 20 00
+C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D
+92 43 05 2E 22 00 0D 12 84 12 66 45 0A 40 08 44
+E6 48 F8 45 00 00 04 3C 23 00 B2 40 B2 1D B2 1D
+30 4D 62 45 02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12
+46 40 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 B4 45 04 23 53 00 0D 12 84 12 B6 45 F0 45
+2D 83 09 DE 09 93 E1 23 3D 41 30 4D E4 45 04 23
+3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D
+00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F FE 45
+08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33
+30 4D 82 43 04 55 2E 00 0C 43 2F 83 8F 4E 00 00
+0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 84 12 AA 45 2A 44 18 46 E8 45 14 45
+26 46 02 46 08 44 F8 45 92 45 02 2E 0E 93 E4 37
+3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 1D
+39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98
+FC 27 18 83 1B 42 C0 1D F8 90 27 00 00 00 04 20
+E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24
+7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90
+7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D
+1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D 00 00 08 46
+49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53
+1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C
+00 00 30 4D 6A 46 0E 3E 4E 55 4D 42 45 52 1B 42
+BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C
+7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00
+0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42
+E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23
+8F 4C 00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0
+00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 1D
+0C 4E 0E 43 1E 15 3D 40 EE 47 7E 4C 6A 4C 7A 80
+2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53
+11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90
+03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C
+B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27 F0 47
+2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02
+27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00
+09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E 40
+2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93
+1D 17 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 A6 45 03 5C
+92 42 C2 1D C6 1D 30 4D 0D 12 84 12 84 40 2A 44
+7C 46 B0 40 C0 49 E4 46 AA 48 0A 4E 3E 4F 3D 40
+C4 48 6D 27 3D 40 9E 48 1A E2 BC 1D 14 24 0E 12
+3E 4F 30 41 C6 48 3E 4F 3D 40 9E 48 19 20 DE 53
+00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 9C 4A
+2A 3C 8E 48 02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E
+FE FF 3E 4F 30 4D E4 48 0F 4C 49 54 45 52 41 4C
+82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D
+BA 40 0A 40 00 00 8A 49 02 00 3E 4F 32 B0 00 02
+32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D 20 46
+0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A
+3E F3 30 4D 46 45 0A 41 4C 4C 4F 54 82 5E C8 1D
+3E 4F 30 4D 3F 40 80 1C 0E 43 84 12 1E 40 02 0D
+0A 00 08 44 94 40 98 48 26 45 50 45 1E 40 0B 73
+74 61 63 6B 20 65 6D 70 74 79 08 41 32 40 0A 40
+40 FF 58 45 1E 40 09 46 52 41 4D 20 66 75 6C 6C
+08 41 B2 40 5C 49 46 49 0D 41 42 4F 52 54 22 00
+0D 12 84 12 66 45 0A 40 08 41 E6 48 F8 45 76 46
+02 27 0D 12 84 12 2A 44 7C 46 E4 46 B0 40 C2 49
+8A 45 CE 48 F0 44 07 5B 27 5D 0D 12 84 12 B2 49
+0A 40 0A 40 E6 48 E6 48 F8 45 C6 49 03 5B 82 43
+BC 1D 30 4D 00 00 02 5D B2 43 BC 1D 30 4D 3E 45
+11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12 2A 44
+7C 46 E4 46 B0 40 C2 49 50 45 AC 40 1A 4A 0A 40
+0A 40 E6 48 E6 48 0A 40 E6 48 E6 48 F8 45 00 00
+02 3A 30 12 70 4A 92 B3 C8 1D A2 63 C8 1D 0D 12
+84 12 2A 44 7C 46 38 4A 3D 41 5A D3 5A 53 0A 5E
+19 42 CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E
+09 5E 3E 4F E8 58 00 00 82 48 B4 1D 82 49 B6 1D
+82 4A B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D 30 41
+BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 1D
+30 4D 82 9F BA 1D 66 25 84 12 1E 40 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 12 41 DC 49
+03 3B 82 93 BC 1D F4 26 0D 12 84 12 0A 40 F8 45
+E6 48 82 4A DE 49 F8 45 00 00 12 49 4D 4D 45 44
+49 41 54 45 18 42 B4 1D D8 D3 00 00 30 4D 30 49
+0C 43 52 45 41 54 45 00 B0 12 26 4A BA 40 86 12
+FC FF 8A 4A FE FF 3A 3D 02 44 0A 44 4F 45 53 3E
+1A 42 B8 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41
+30 4D 20 4A 0E 3A 4E 4F 4E 41 4D 45 30 12 70 4A
+2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A
+39 40 12 02 08 49 98 3F BA 4A 05 49 53 00 0D 12
+82 93 BC 1D 08 20 84 12 B2 49 3C 4B 3D 41 BE 4F
+02 00 3E 4F 30 4D 84 12 CA 49 0A 40 3E 4B E6 48
+F8 45 D0 4A 08 43 4F 44 45 00 B0 12 26 4A A2 82
+C8 1D 61 3C 12 46 0E 48 44 4E 43 4F 44 45 B2 40
+2A 4C CC 1D F2 3F 00 00 0E 45 4E 44 43 4F 44 45
+0D 12 84 12 82 4A 88 4B 3D 41 92 42 D0 1D CC 1D
+5D 3C 54 4B 0E 43 4F 44 45 4E 4E 4D 30 12 5E 4B
+B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40
+0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 1D B2 43
+BC 1D E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 1D
+1A 42 C8 1D EF 3F 66 4B 0B 48 49 32 4C 4F A2 53
+C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F
+F2 4B B2 40 04 4C D0 1D 82 4E CE 1D 30 40 8A 45
+85 12 F0 4B F0 49 64 58 60 5A 72 58 FA 5D 34 46
+DE 46 DA 5C D8 4B 2A 4B 04 4B A0 4A 80 58 0C 4D
+44 5A 00 00 00 00 85 12 F0 4B 86 53 0A 52 2C 54
+32 51 8E 51 DC 51 B8 52 72 54 54 50 78 51 00 00
+00 00 C6 4B 44 4F 00 00 E0 52 24 4C B2 40 04 4C
+CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00 BA 49 00 00
+2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53
+45 54 39 40 C8 1D 3A 40 42 18 B0 12 58 4C 30 4D
+6A 4C 0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49
+3A 40 C8 1D B0 12 58 4C 1A 42 CA 1D 3B 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48
+00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93
+E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40
+08 42 FE FF 29 83 B9 40 F2 41 FE FF 39 90 AE FF
+F9 23 39 40 10 18 B2 49 F0 FF 3B 40 10 00 3A 40
+3A 18 B0 12 5C 4C 82 43 4A 18 C7 3F FE 4C B2 4E
+42 18 BE 12 3E 4F 3D 41 C0 3F E6 49 0C 4D 41 52
+4B 45 52 00 12 12 C6 1D 0D 12 84 12 2A 44 7C 46
+E4 46 AC 40 2A 4D 1E 45 BE 48 2C 4D 3E 4F 3D 41
+B2 41 C6 1D B0 12 26 4A BA 40 85 12 FC FF BA 40
+FC 4C FE FF 28 83 8A 48 00 00 BA 40 82 40 02 00
+A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D A8 49 FE FF
+89 48 00 00 30 4D 12 12 C6 1D 84 12 7C 46 E4 46
+AC 40 96 4D 76 4D 3C 4E 3C 80 87 12 0A 24 1C 53
+02 20 2E 4E 06 3C BE 90 FC 4C 00 00 01 20 3E 52
+2E 83 21 53 30 41 8E 47 AC 40 9E 4D 92 4D A0 4D
+B2 41 C6 1D 30 41 92 83 C6 1D 3E 40 28 00 0A 4E
+3D 15 B0 12 66 4D 15 20 3E 40 2B 00 B0 12 66 4D
+06 20 3E 40 2D 00 B0 12 66 4D 92 83 C6 1D 0E 12
+1E 41 02 00 84 12 7C 46 8E 47 AC 40 C2 49 E0 4D
+3E 51 3A 17 30 41 B0 12 A6 4D 19 42 C8 1D 89 4E
+00 00 A2 53 C8 1D 3E 40 29 00 92 53 C6 1D 1A 42
+C6 1D 3D 15 84 12 7C 46 8E 47 AC 40 18 4E 10 4E
+3E 90 10 00 E6 2B 7C 2D 1A 4E A2 41 C6 1D E1 3F
+03 20 B0 12 FE 4D 43 3C 7A 90 23 00 24 20 B0 12
+AE 4D 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 C8 1D A2 53 C8 1D 89 4E
+00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02
+B0 12 AE 4D F0 3F 7A 90 40 00 14 20 3C 40 20 00
+B0 12 FA 4D 0C 20 3C D0 10 00 3E 40 2B 00 B0 12
+FE 4D 92 92 C2 1D C6 1D 02 24 92 53 C6 1D 8E 10
+0C 5E DF 3F 3C D0 10 00 B0 12 E6 4D F2 3F 03 20
+B0 12 FE 4D F5 3F 7A 90 26 00 03 20 3C D0 82 00
+D7 3F 3C D0 80 00 B0 12 E6 4D EA 3F 0C 43 1B 42
+C8 1D A2 53 C8 1D 3A 40 20 00 19 42 C6 1D 19 52
+C4 1D 7A 99 FE 27 5A 49 FF FF 19 82 C4 1D 82 49
+C6 1D 7A 90 52 00 30 4D 00 00 08 52 45 54 49 00
+0D 12 84 12 0A 40 00 13 E6 48 F8 45 0A 40 2C 00
+DC 4E 20 4E 2A 44 E6 4E BE 4E 2C 4F 3D 41 2C DE
+8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12 1C 4F
+00 40 38 4F 0A 4D 4F 56 2E 42 85 12 1C 4F 40 40
+00 00 06 41 44 44 85 12 1C 4F 00 50 52 4F 0A 41
+44 44 2E 42 85 12 1C 4F 40 50 5E 4F 08 41 44 44
+43 00 85 12 1C 4F 00 60 6C 4F 0C 41 44 44 43 2E
+42 00 85 12 1C 4F 40 60 A4 4B 08 53 55 42 43 00
+85 12 1C 4F 00 70 8A 4F 0C 53 55 42 43 2E 42 00
+85 12 1C 4F 40 70 98 4F 06 53 55 42 85 12 1C 4F
+00 80 A8 4F 0A 53 55 42 2E 42 85 12 1C 4F 40 80
+B4 4F 06 43 4D 50 85 12 1C 4F 00 90 C2 4F 0A 43
+4D 50 2E 42 85 12 1C 4F 40 90 00 00 08 44 41 44
+44 00 85 12 1C 4F 00 A0 DC 4F 0C 44 41 44 44 2E
+42 00 85 12 1C 4F 40 A0 0A 4F 06 42 49 54 85 12
+1C 4F 00 B0 FA 4F 0A 42 49 54 2E 42 85 12 1C 4F
+40 B0 06 50 06 42 49 43 85 12 1C 4F 00 C0 14 50
+0A 42 49 43 2E 42 85 12 1C 4F 40 C0 20 50 06 42
+49 53 85 12 1C 4F 00 D0 2E 50 0A 42 49 53 2E 42
+85 12 1C 4F 40 D0 00 00 06 58 4F 52 85 12 1C 4F
+00 E0 48 50 0A 58 4F 52 2E 42 85 12 1C 4F 40 E0
+7A 4F 06 41 4E 44 85 12 1C 4F 00 F0 62 50 0A 41
+4E 44 2E 42 85 12 1C 4F 40 F0 2A 44 DC 4E 20 4E
+82 50 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4D 3F 3A 50 06 52 52 43 85 12 7A 50 00 10 94 50
+0A 52 52 43 2E 42 85 12 7A 50 40 10 CE 4F 08 53
+57 50 42 00 85 12 7A 50 80 10 A0 50 06 52 52 41
+85 12 7A 50 00 11 BC 50 0A 52 52 41 2E 42 85 12
+7A 50 40 11 AE 50 06 53 58 54 85 12 7A 50 80 11
+00 00 08 50 55 53 48 00 85 12 7A 50 00 12 E2 50
+0C 50 55 53 48 2E 42 00 85 12 7A 50 40 12 D6 50
+08 43 41 4C 4C 00 85 12 7A 50 80 12 1A 53 0E 4A
+84 12 6C 46 1E 40 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 12 41 00 51 06 53 3E 3D 86 12 00 38
+28 51 04 53 3C 00 86 12 00 34 F0 50 06 30 3E 3D
+86 12 00 30 3C 51 04 30 3C 00 86 12 00 30 78 4B
+04 55 3C 00 86 12 00 2C 50 51 06 55 3E 3D 86 12
+00 28 46 51 06 30 3C 3E 86 12 00 24 64 51 04 30
+3D 00 86 12 00 20 00 00 04 49 46 00 1A 42 C8 1D
+8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D EA 4F 08 54
+48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48 29 53
+0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D
+5A 51 08 45 4C 53 45 00 1A 42 C8 1D BA 40 00 3C
+00 00 A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F C8 50
+0A 42 45 47 49 4E 30 40 32 40 B2 51 0A 55 4E 54
+49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89
+0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48
+00 00 A2 53 C8 1D 30 4D 6E 50 0A 41 47 41 49 4E
+0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45
+0D 12 84 12 7C 51 12 45 F8 45 D0 51 0C 52 45 50
+45 41 54 00 0D 12 84 12 10 52 94 51 F8 45 40 52
+3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42
+C8 1D 00 00 30 4D 2C 52 06 42 57 31 85 12 3E 52
+00 00 58 52 06 42 57 32 85 12 3E 52 00 00 64 52
+06 42 57 33 85 12 3E 52 00 00 7C 52 3D 41 1A 42
+C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D 86 2B BA 4F
+00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00
+06 46 57 31 85 12 7A 52 00 00 A0 52 06 46 57 32
+85 12 7A 52 00 00 AC 52 06 46 57 33 85 12 7A 52
+00 00 1A 52 08 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C 0D 12 84 12 B2 49 BE 48 F8 45 00 00
+0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
+3E B0 00 10 EF 27 3E E0 00 08 EC 3F E6 4E 0A 40
+2C 00 7C 46 8E 47 AC 40 C2 49 2A 44 DC 4E BE 4E
+12 53 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28
+08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E
+5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E 70 52
+08 52 52 43 4D 00 85 12 FC 52 50 00 40 53 08 52
+52 41 4D 00 85 12 FC 52 50 01 4E 53 08 52 4C 41
+4D 00 85 12 FC 52 50 02 5C 53 08 52 52 55 4D 00
+85 12 FC 52 50 03 6E 51 0A 50 55 53 48 4D 85 12
+FC 52 00 15 78 53 08 50 4F 50 4D 00 85 12 FC 52
+00 17 D2 C3 23 02 E2 B2 60 02 02 24 30 40 F2 41
+1A 52 04 20 19 62 06 20 92 43 14 20 C2 4A 15 20
+8A 10 C2 4A 16 20 C2 49 17 20 89 10 C2 49 18 20
+B0 12 06 54 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 1A 43 E1 3F 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 6A 53 12 52 5F 53
+45 43 54 5F 57 58 1C D3 F2 40 51 00 19 20 B0 12
+92 53 38 20 B0 12 06 54 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
+C4 52 12 57 5F 53 45 43 54 5F 57 58 2C D3 F0 40
+58 00 97 CB B0 12 92 53 15 20 3A 40 FE FF 29 43
+B0 12 0A 54 D2 49 00 1E 4E 06 03 43 19 53 39 90
+00 02 F8 23 39 40 03 00 B0 12 08 54 7A C0 E1 00
+6A 82 D9 27 8C 10 1C 52 4C 06 D2 D3 23 02 84 12
+88 43 1E 40 0B 3C 20 53 44 20 45 72 72 6F 72 21
+D2 54 2F 83 8F 4E 00 00 B2 40 10 00 BE 1D 0E 4C
+84 12 38 46 12 41 B0 12 54 41 E2 B2 60 02 8A 20
+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 39 40 6E 01 29 83
+89 43 02 20 FC 23 39 42 B0 12 08 54 D2 C3 23 02
+2C 42 B2 40 95 00 14 20 B2 40 00 40 18 20 B0 12
+02 54 02 24 30 40 B4 54 B0 12 06 54 7A 93 FC 23
+B2 40 87 AA 14 20 92 43 16 20 B2 40 00 48 18 20
+B0 12 02 54 29 42 B0 12 08 54 92 43 14 20 82 43
+16 20 78 43 3C 42 B2 40 00 77 18 20 B0 12 02 54
+B2 40 40 69 18 20 B0 12 C0 53 03 24 58 83 F3 23
+D9 3F 0C 5C A2 43 16 20 B2 40 00 50 18 20 B0 12
+C0 53 D0 23 92 D3 40 06 82 43 46 06 92 C3 40 06
+0A 43 09 43 B0 12 36 54 38 40 00 1E 92 48 C6 01
+04 20 92 48 C8 01 06 20 5C 48 C2 01 7C 80 0C 00
+08 24 5C 53 06 24 6C 52 04 24 3C 50 07 20 30 40
+BA 54 09 43 B0 12 36 54 A2 43 2C 20 19 48 0E 00
+82 49 08 20 1A 48 24 00 82 4A 0A 20 09 5A 82 49
+0C 20 09 5A 58 48 0D 00 82 48 12 20 09 88 09 88
+82 49 10 20 30 41 82 43 32 20 30 40 84 41 92 4B
+0E 00 22 20 92 4B 10 00 24 20 5A 42 23 20 58 42
+22 20 59 42 24 20 89 10 0A D9 88 10 08 58 0A 6A
+88 10 08 58 30 41 1A 52 08 20 09 43 FC 3E 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 3E 56 5A 4B 03 00 82 5A 1A 20
+82 63 1C 20 30 41 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 A3 25 09 4B 3B 50 1C 00 3B 90 18 21 EF 23
+0C 5C 9B 3D 0C 43 82 4B 32 20 8B 49 00 00 09 93
+0A 24 99 52 C6 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 1A 24 A4 37
+8B 43 16 00 7A 93 02 24 07 38 35 3C B2 40 1C 21
+A0 40 B2 40 A2 43 BA 42 9B 42 C2 1D 18 00 9B 82
+C6 1D 18 00 9B 42 C4 1D 1A 00 9B 52 C6 1D 1A 00
+22 3C 30 41 1B 42 32 20 82 43 1E 20 B2 90 00 02
+20 20 3F 20 BB 80 00 02 12 00 8B 73 14 00 DB 53
+03 00 DB 92 12 20 03 00 0E 28 CB 43 03 00 B0 12
+0E 56 B0 12 36 56 8B 43 10 00 9B 48 00 1E 0E 00
+9B 48 02 1E 10 00 B2 40 00 02 20 20 8B 93 14 00
+0B 20 92 9B 12 00 1E 20 1C 2C BB 90 00 02 12 00
+03 2C 92 4B 12 00 20 20 B0 12 68 56 1A 42 1A 20
+19 42 1C 20 38 3E CB 43 02 00 2B 4B 82 4B 32 20
+0B 93 06 24 92 4B 16 00 1E 20 B0 12 96 57 22 C3
+30 41 1B 42 32 20 0B 93 FB 27 EB 92 02 00 04 20
+B0 12 54 5B B0 12 44 5C CB 93 02 00 E4 37 1E 4B
+18 00 9F 4B 1A 00 00 00 31 50 06 00 3D 41 B0 12
+C6 57 02 24 30 40 9A 43 B2 40 3C 1D A0 40 B2 40
+BC 42 BA 42 30 40 88 43 09 93 07 24 F8 90 20 00
+00 1E 03 20 18 53 19 83 F9 23 30 41 82 4C 0B 52
+45 41 44 22 5A 43 20 3C EA 4A 09 44 45 4C 22 00
+6A 43 1A 3C B0 49 0D 57 52 49 54 45 22 00 6A 42
+13 3C 98 49 0F 41 50 50 45 4E 44 22 7A 42 0C 3C
+94 4B 0A 43 4C 4F 53 45 B0 12 E2 57 30 4D F8 48
+0B 4C 4F 41 44 22 7A 43 2F 83 8F 4E 00 00 0E 4A
+82 93 BC 1D 0B 24 0D 12 84 12 0A 40 0A 40 E6 48
+E6 48 66 45 0A 40 BC 58 E6 48 F8 45 0D 12 84 12
+0A 40 22 00 7C 46 36 49 BA 58 3D 41 36 4F 0E 56
+82 4E 36 20 A2 43 22 20 82 43 24 20 1C 43 0E 96
+8C 24 F6 90 3A 00 01 00 01 20 26 53 F6 90 5C 00
+00 00 03 20 16 53 0E 96 66 24 82 46 34 20 B0 12
+3E 56 15 42 12 20 B0 12 BC 57 2C 43 0A 43 08 4A
+58 0E 08 58 82 48 30 20 C8 93 00 1E 60 24 39 42
+F8 96 00 1E 04 20 18 53 19 83 FA 23 16 53 F6 90
+2E 00 FF FF 19 24 39 50 03 00 B0 12 28 58 06 20
+F6 90 5C 00 FF FF 29 24 0E 96 27 28 16 42 34 20
+1A 53 3A 90 10 00 DB 23 92 53 1A 20 82 63 1C 20
+15 83 D1 23 2C 42 49 3C F6 90 2E 00 FE FF EE 27
+B0 12 28 58 EB 23 39 40 03 00 F8 96 00 1E 04 20
+18 53 19 83 FA 23 09 3C 0E 96 E0 2F F6 90 5C 00
+FF FF DC 23 B0 12 28 58 D9 23 18 42 30 20 92 48
+1A 1E 22 20 92 48 14 1E 24 20 F8 B0 10 00 0B 1E
+13 24 82 93 24 20 05 20 82 93 22 20 02 20 A2 43
+22 20 0E 96 9A 23 92 42 22 20 2C 20 92 42 24 20
+2E 20 8F 43 00 00 03 3C 2A 4F B0 12 86 56 35 40
+B6 40 36 40 C4 40 3A 4F 3E 4F 0A 93 04 24 7A 93
+39 20 0C 93 02 20 30 40 9A 43 0D 12 84 12 88 43
+1E 40 0B 3C 20 4F 70 65 6E 45 72 72 6F 72 B2 40
+D0 54 E2 B2 60 02 02 24 30 40 86 41 92 12 3E 18
+3F 40 7E 1C 8F 43 00 00 0D 12 84 12 1E 40 0F 4C
+4F 41 44 22 20 42 4F 4F 54 2E 34 54 48 22 B2 40
+66 49 3E 58 08 42 4F 4F 54 00 B2 40 02 5A AC 42
+30 4D 36 47 0C 4E 4F 42 4F 4F 54 00 B2 40 86 41
+AC 42 30 4D 1A 93 89 20 0C 93 C7 23 30 4D 34 5A
+08 52 45 41 44 00 2F 83 8F 4E 00 00 1E 42 32 20
+B0 12 54 57 1E 82 32 20 30 4D 08 4A 1A 52 08 20
+B0 12 8A 5A 0A 48 1A 52 0C 20 09 43 30 40 7C 54
+3C 42 0A 12 2A 41 82 9A 0A 20 2B 25 B0 12 36 56
+88 93 02 1E 03 20 88 93 00 1E 08 24 28 52 38 90
+00 02 F6 2B 91 53 00 00 08 43 EC 3F A2 41 26 20
+82 48 28 20 0C 43 B8 43 00 1E 6A 41 B8 40 FF 0F
+02 1E 08 11 8A 10 08 5A 5A 41 01 00 0A 11 08 10
+82 4A 24 20 82 48 22 20 2A 41 B0 12 7A 5A 3A 41
+30 41 90 4B 0A 00 2C C5 90 4B 0C 00 28 C5 B0 12
+1A 56 82 4A 26 20 82 48 28 20 0A 12 B0 12 36 56
+1A 48 00 1E 88 43 00 1E 19 48 02 1E 88 43 02 1E
+39 F0 FF 0F 39 90 FF 0F 02 20 3A 93 10 24 82 4A
+22 20 82 49 24 20 B0 12 1A 56 2A 91 E9 27 09 4A
+2A 41 81 49 00 00 B0 12 7A 5A 2A 41 DF 3F 3A 41
+30 40 7A 5A 9B 52 1E 20 12 00 8B 63 14 00 1A 42
+1A 20 19 42 1C 20 30 40 7C 54 2A 93 BC 20 0C 93
+09 20 F8 40 E5 00 00 1E B0 12 5E 5B B0 12 F2 5A
+B0 12 E2 57 30 4D 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 28 39 80 03 00 B0 12 32 5C 39 40
+03 00 7A 4B C8 4A 00 1E 82 9B 36 20 12 28 0D 12
+3D 40 0F 00 3C 40 E2 5B 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 1A 4B 04 00 19 4B 06 00 B0 12 36 54
+18 4B 08 00 B0 12 86 5B 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 7C 54 B2 40 00 02
+1E 20 1B 42 32 20 B0 12 54 5B 82 43 1E 20 DB 53
+03 00 DB 92 12 20 03 00 1D 28 B0 12 0E 56 08 12
+0A 12 B0 12 90 5A 2A 91 03 24 2A 41 B0 12 36 56
+3A 41 38 41 98 42 22 20 00 1E 98 42 24 20 02 1E
+B0 12 7A 5A AB 42 02 00 9B 42 22 20 0E 00 9B 42
+24 20 10 00 30 40 74 56 56 58 0A 57 52 49 54 45
+B0 12 7C 5C 30 4D 2A 92 54 20 2C 93 0E 24 0C 93
+3D 24 0D 12 84 12 1E 40 0C 3C 20 57 72 69 74 65
+45 72 72 6F 72 00 B2 40 D0 54 0A 43 08 43 B0 12
+90 5A B0 12 BC 57 18 42 30 20 F8 40 20 00 0B 1E
+B0 12 86 5B 88 43 0C 1E 88 4A 0E 1E 88 49 10 1E
+98 42 24 20 14 1E 98 42 22 20 1A 1E 88 43 1C 1E
+88 43 1E 1E 2C 42 1B 42 34 20 82 9B 36 20 D1 27
+FB 90 2E 00 00 00 CD 27 39 40 0B 00 B0 12 02 5C
+B0 12 5E 5B 2A 42 B0 12 86 56 30 4D B0 12 F2 5A
+8B 43 12 00 8B 43 14 00 90 4B 0A 00 A6 C2 90 4B
+0C 00 A2 C2 B0 12 1A 56 B0 12 90 5A B0 12 C4 5C
+30 4D 2C 93 BA 27 0C 93 AC 23 EB 42 02 00 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
+B0 12 B8 57 1A 4B 12 00 BB C0 FF 01 12 00 3A F0
+FF 01 82 4A 1E 20 30 4D 4A 58 10 54 45 52 4D 32
+53 44 22 00 0D 12 84 12 5E 58 0C 5E 0A 43 B0 12
+46 43 92 B3 DC 05 FD 27 59 42 CC 05 C2 49 CE 05
+69 92 0D 24 CA 49 00 1E 1A 53 3A 90 FF 01 04 24
+F0 2B B0 12 7C 5C EA 3F B0 12 E2 42 EA 3F F2 90
+0D 00 CC 05 FC 27 B0 12 E2 42 F2 90 0A 00 CC 05
+FC 27 82 4A 1E 20 B0 12 E2 57 3D 41 30 4D
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41
+D6 42 F2 41 F2 41 F2 41 F2 41 F2 41 F2 41 08 42
+q
index e362bd2..0380c4c 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF 00 68 3E 4D 34 01
-10 00 C1 87 B6 41 4C 5F B8 41 0A 5E 84 42 00 68
-3E 4D 72 42 E0 43 00 43 DC 42 3C 1D AE 44 D4 40
-E2 40 EE 40 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+D0 42 56 41 E2 55 C2 54 44 41 40 5E 26 4C E0 4B
+E0 4B BE 42 42 43 1A 43 3C 1D E0 1C D4 45 B6 40
+C4 40 F0 44 20 00 0A 00 00 1C 56 41 E2 55 C2 54
+44 41 40 5E 26 4C E0 4B E0 4B 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4000
-B0 12 B8 41 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 40
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CD 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 4C 5F 39 40 22 18
-B2 49 70 42 B2 49 DE 43 B2 49 FE 42 B2 49 DA 42
-B2 49 CA 40 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 46 4E 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 41 0E 12 B0 12
-F8 40 0A 40 DE 1D 2E 44 18 43 EE 40 34 40 8A 41
-14 40 05 1B 5B 37 6D 40 AA 43 0A 40 02 18 2E 44
-24 45 F6 43 34 40 7E 41 14 40 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 AA 43 EE 44 AA 43
-14 40 04 1B 5B 30 6D 00 AA 43 76 48 2E 93 13 28
-B2 D0 C0 07 C0 06 18 42 02 18 08 11 38 D0 00 04
-82 48 D4 06 F2 D0 03 00 6A 02 92 C3 C0 06 A2 D2
-EA 06 92 C3 30 01 30 41 48 43 A2 B3 EC 06 FD 27
-C2 48 CE 06 A2 B2 EC 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 41 F2 B0 40 00 40 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 CE 41 04 57 41 52 4D 00
-B0 12 0A 5E 78 40 03 00 B0 12 BA 41 84 12 14 40
-07 0D 0A 1B 5B 37 6D 40 AA 43 0A 40 02 18 2E 44
-24 45 0A 40 23 00 FC 42 24 45 14 40 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 AA 43 0A 40 40 FF 28 40 22 44
-EE 44 14 40 0A 62 79 74 65 73 20 66 72 65 65 00
-3A 40 7E 41 00 00 06 41 43 43 45 50 54 00 30 40
-72 42 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00
-3D 15 BE 3E 21 52 A2 C2 EC 06 B2 B0 10 00 C0 06
-B7 22 3A 17 92 B3 EC 06 FD 27 58 42 CC 06 48 9B
-0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83
-F1 3F 0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F
-B0 12 C4 41 82 93 DE 1D 02 24 92 53 DE 1D 08 4C
-19 3C 00 00 03 4B 45 59 30 40 DC 42 2F 83 8F 4E
-00 00 58 43 B0 12 BA 41 92 B3 EC 06 FD 27 1E 42
-CC 06 30 4D 00 00 04 45 4D 49 54 00 30 40 00 43
-08 4E 3E 4F A2 B3 EC 06 FD 27 C2 48 CE 06 30 4D
-F6 42 04 45 43 48 4F 00 B2 40 C2 48 0A 43 82 43
-DE 1D 38 40 05 00 B0 12 BA 41 30 4D 00 00 06 4E
-4F 45 43 48 4F 00 B2 40 30 4D 0A 43 92 43 DE 1D
-28 42 F1 3F 0D 12 3D 40 64 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 66 43 2D 83 0C 9B 16 2C 58 4C 00 1E
-1C 53 78 90 20 00 09 2C 78 90 0A 00 F5 23 3D 41
-82 4C 1E 20 3C 40 20 00 9D 3F 0E 99 BB 27 CA 48
-00 00 1A 53 1E 53 B6 3F 1A 15 B0 12 02 60 19 17
-DC 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 C6 43 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FE 42 C8 43 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 41 02 43 52 00 30 40 E0 43
-0D 12 84 12 14 40 02 0D 0A 00 AA 43 AE 44 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 66 42 01 40 2E 4E
-30 4D 2C 44 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D D8 43 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E 40 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 68 44 02 23 53 00 0D 12 84 12
-6A 44 A4 44 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 98 44 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D A4 43 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 5E 44
-9C 44 EE 40 DC 44 B8 44 AA 43 62 48 FC 42 AE 44
-2E 43 01 2E 0E 93 E3 37 38 43 E2 3F D6 44 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A 40 14 40 A8 47
-0A 40 22 00 7A 45 48 45 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D 22 45
-82 2E 22 00 0D 12 84 12 32 45 0A 40 AA 43 A8 47
-AE 44 FA 41 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 40 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 40 35 40 D4 40 30 4D
-00 00 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 FC 46 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F FE 46 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 40 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D A6 47 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A 40 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-B4 44 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D C8 44 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 40 62 48 7A 45 1E 48 9C 26
-3D 40 26 48 DE 3E 28 48 0A 4E 3E 4F 3D 40 42 48
-36 27 3D 40 18 48 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 44 48 3E 4F 3D 40 18 48 BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 E4 49 CC 3F
-4C 48 86 12 20 00 34 44 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 DC 43 BC 40
-12 48 12 44 44 44 14 40 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 41 0A 40 40 FF 28 40 4C 44
-14 40 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 41
-3A 40 8C 48 68 48 86 41 42 4F 52 54 22 00 0D 12
-84 12 32 45 0A 40 2A 41 A8 47 AE 44 DC 45 01 27
-0D 12 84 12 62 48 7A 45 E2 45 34 40 60 48 AE 44
-00 00 83 5B 27 5D 0D 12 84 12 E0 48 0A 40 0A 40
-A8 47 A8 47 AE 44 F2 48 81 5B 82 43 BE 1D 30 4D
-5A 44 01 5D B2 43 BE 1D 30 4D 12 49 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 62 48 7A 45 E2 45 F6 43 34 40
-60 48 44 44 34 40 54 49 0A 40 0A 40 A8 47 A8 47
-0A 40 A8 47 A8 47 AE 44 08 49 01 3A 30 12 A4 49
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 62 48 7A 45
-72 49 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 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 40 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 41 5A 49 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A 40 AE 44 A8 47 B6 49 0A 49 AE 44
-08 48 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D F2 47 06 43 52 45 41 54
-45 00 B0 12 60 49 BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F E8 49 07 3A 4E 4F 4E 41 4D 45 30 12 A4 49
-2F 83 8F 4E 00 00 1A 42 C6 1D 1A B3 0A 63 0E 4A
-39 40 10 02 08 49 28 53 99 3F 12 43 05 44 45 46
-45 52 B0 12 60 49 BA 40 30 40 FC FF BA 40 E2 4D
-FE FF A8 3F BE 4F 02 00 3E 4F 30 4D 02 4A 82 49
-53 00 0D 12 82 93 BE 1D 06 24 84 12 F6 48 0A 40
-74 4A A8 47 AE 44 84 12 E0 48 74 4A AE 44 1A 4A
-04 43 4F 44 45 00 B0 12 60 49 A2 82 C6 1D 82 43
-62 5C 0D 12 84 12 48 4D 1A 4D AE 44 7E 4A 07 48
-44 4E 43 4F 44 45 B2 40 1E 4D DA 1D EC 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 B6 49 6E 4D
-A2 4D AE 44 A0 4A 07 43 4F 44 45 4E 4E 4D 30 12
-AA 4A A6 3F 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 6E 4D A2 4D AE 44 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-BE 4A 85 48 49 32 4C 4F 0D 12 84 12 28 40 82 4C
-A8 47 0A 49 AE 4A AE 44 34 4A 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 4A 4B 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 40 00 00 26 44 62 48 7A 45 F8 47
-EE 43 34 40 E2 4B FC 43 14 40 06 5B 54 48 45 4E
-5D 00 54 4B BC 4B 78 4B 9A 4B AE 44 FC 43 14 40
-06 5B 45 4C 53 45 5D 00 54 4B D2 4B 78 4B 98 4B
-AE 44 14 40 04 5B 49 46 5D 00 54 4B 9A 4B 3A 40
-98 4B D0 43 14 40 05 0D 0A 6B 6F 20 AA 43 BC 40
-AC 40 3A 40 9A 4B 88 4B 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D F8 4B 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 62 48 7A 45 E2 45
-06 4C AE 44 0C 4C 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 16 4C 3E 44 AE 44 3E 4C B2 4E
-0A 18 B2 4E 0C 18 BE 12 3E 4F 3D 41 DB 3C BA 47
-06 4D 41 52 4B 45 52 00 B0 12 60 49 BA 40 85 12
-FC FF BA 40 3C 4C FE FF 28 83 8A 48 00 00 9A 42
-C8 1D 02 00 BA 40 AA 40 04 00 B2 50 06 00 C6 1D
-9D 3E 2E 53 30 4D 5C 4A 05 44 4F 45 53 3E 1A 42
-BA 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D
-74 45 0A 56 4F 43 41 42 55 4C 41 52 59 00 0D 12
-84 12 22 4A 0A 40 10 00 0A 40 00 00 3E 40 0A 40
-00 00 A8 47 60 40 BE 4C 28 40 0A 40 C8 1D EE 43
-2E 44 A8 47 36 44 8E 4C 0A 40 CA 1D 36 44 AE 44
-DE 48 05 46 4F 52 54 48 85 12 D8 4C 42 4D 96 63
-CA 61 E2 4C 32 4B D4 42 E4 61 88 4D 14 4E EC 63
-94 67 B0 66 00 00 88 63 1C 49 42 46 00 00 C6 48
-09 41 53 53 45 4D 42 4C 45 52 85 12 D8 4C 2E 5B
-C6 5A 2A 5A EA 54 7C 53 00 00 F2 58 00 00 52 5C
-4E 5D E0 53 94 5D FA 5A 00 00 00 00 C4 54 0C 4D
-10 4D 04 41 4C 53 4F 00 3A 40 0C 00 39 40 D6 1D
-08 49 28 53 19 83 18 83 E8 49 00 00 1A 83 FA 23
-30 4D 28 49 08 50 52 45 56 49 4F 55 53 00 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 60 45 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 E8 4C 8E 4D A2 4D
-B2 4D 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 64 4D 09 50 57 52 5F 53 54 41 54 45
-85 12 AA 4D 3E 4D 00 68 2E 45 09 52 53 54 5F 53
-54 41 54 45 92 42 0A 18 F6 4D 92 42 0C 18 F4 4D
-EF 3F E6 4D 08 50 57 52 5F 48 45 52 45 00 92 42
-C6 1D F6 4D 92 42 C8 1D F4 4D 30 4D FA 4D 08 52
-53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18 92 42
-C8 1D 0C 18 EC 3F 3E 90 0E 00 D2 27 2E 92 DA 37
-0E 93 CE 37 39 40 10 00 29 83 B9 43 80 FF FC 23
-B9 40 96 4E FE FF 29 83 B9 40 E2 41 FE FF 39 90
-AE FF F9 23 39 40 14 18 B2 49 E4 41 B2 49 FA 40
-B2 49 02 40 B2 49 02 42 B2 49 BC FF B2 49 0A 18
-B2 49 0C 18 B7 3F B2 D0 03 00 04 01 B2 D0 10 00
-00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40 80 1C
-39 40 00 10 29 83 89 43 00 1C FC 23 B2 D3 06 02
-B2 40 FC FF 02 02 B2 43 26 02 B2 D3 22 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
-B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
-00 18 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
-1E 42 08 18 82 43 08 18 1E D2 9E 01 B0 12 F8 40
-00 42 38 40 C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52
-C4 1D 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88
-82 4A C4 1D 30 4D 1C 15 0E 12 12 12 C4 1D 84 12
-7A 45 E2 45 3E 44 34 40 72 4F 9E 46 34 40 8C 4F
-86 4F 74 4F 3C 4E 3C 80 87 12 05 24 1C 53 02 20
-2E 4E 01 3C 2E 83 21 52 1B 17 30 41 8E 4F B2 41
-C4 1D 3E 41 84 12 0A 40 2B 00 7A 45 E2 45 3E 44
-34 40 AA 4F 9E 46 34 40 60 48 08 44 7A 45 9E 46
-34 40 60 48 B6 4F 3E 5F E7 3F 32 B0 00 02 01 24
-3E 4F 30 41 3E 40 28 00 B0 12 56 4F B0 12 BA 4F
-19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00
-1C 15 92 92 C0 1D C4 1D 02 20 30 40 CE 49 12 12
-C4 1D 92 53 C4 1D 84 12 7A 45 9E 46 34 40 0C 50
-02 50 21 53 3E 90 10 00 84 2D BE 2B 0E 50 B2 41
-C4 1D BA 3F 0D 12 84 12 62 48 32 4F 1E 50 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 56 4F B0 12 BA 4F 3C 40
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 40 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 07 3D 0E 93 3E 4F
+B8 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 BC 42 B2 49
+40 43 B2 49 18 43 B2 49 A0 40 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 9A 4C 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 41 B0 12 D0 40 FA 44 AC 40
+42 41 5A 43 1E 40 05 1B 5B 37 6D 40 E4 43 0A 40
+02 18 1C 45 48 46 E4 43 1E 40 04 1B 5B 30 6D 00
+E4 43 30 49 48 43 A2 B3 EC 06 FD 27 C2 48 CE 06
+A2 B2 EC 06 FD 27 30 41 B2 D0 C0 07 C0 06 18 42
+02 18 08 11 38 D0 00 04 82 48 D4 06 F2 D0 03 00
+6A 02 92 C3 C0 06 A2 D2 EA 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 5A 43 1E 40 07 0D 0A 1B 5B 37
+6D 40 E4 43 0A 40 02 18 1C 45 48 46 0A 40 23 00
+3E 43 48 46 1E 40 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+E4 43 0A 40 40 FF 32 40 10 45 14 46 1E 40 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 40 36 41 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 41 01 12 6D 3F 82 4E 08 18 92 12 3A 18 F2 B0
+40 00 40 02 02 20 B2 43 08 18 B2 40 04 A5 20 01
+B2 D0 03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A
+5C 01 31 40 E0 1C 3F 40 80 1C B2 D3 06 02 B2 40
+FC FF 02 02 B2 43 26 02 B2 D3 22 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 B2 40
+33 00 64 01 D2 43 61 01 39 40 40 00 18 42 00 18
+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 1E 42 08 18 82 43
+08 18 3E F3 02 20 1E 42 9E 01 B0 12 D0 40 80 41
+00 00 0C 41 43 43 45 50 54 00 30 40 BE 42 0A 4E
+2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15 98 3E
+21 52 A2 C2 EC 06 B2 B0 10 00 C0 06 91 22 3A 17
+92 B3 EC 06 FD 27 58 42 CC 06 48 9B 0E 24 48 9C
+06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A
+EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F 08 4C 1B 3C
+00 00 06 4B 45 59 30 40 1A 43 58 43 B0 12 46 41
+2F 83 8F 4E 00 00 92 B3 EC 06 FD 27 1E 42 CC 06
+B0 12 44 41 30 4D 00 00 08 45 4D 49 54 00 30 40
+42 43 08 4E 3E 4F A2 B3 EC 06 FD 27 C2 48 CE 06
+30 4D 38 43 08 45 43 48 4F 00 B2 40 C2 48 4C 43
+38 40 05 00 B0 12 46 41 30 4D 00 00 0C 4E 4F 45
+43 48 4F 00 B2 40 30 4D 4C 43 28 42 F3 3F 0D 12
+3D 40 9E 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 A0 43
+2D 83 0C 9B 16 2C 58 4C 00 1E 1C 53 78 90 20 00
+09 2C 78 90 0A 00 F5 23 82 4C 1E 20 3D 41 3C 40
+20 00 A4 3F 0E 99 BF 27 CA 48 00 00 1A 53 1E 53
+BA 3F 1A 15 B0 12 30 57 19 17 DC 3F 00 00 08 54
+59 50 45 00 0D 12 3D 40 F4 43 29 4F 8F 4E 00 00
+7E 49 A5 3F F6 43 2D 83 2F 83 5E 83 F7 23 3D 41
+2F 53 3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F
+39 4F 3E 4F 4E 22 F9 98 00 00 4B 22 19 53 1C 83
+FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83 42 22 9B 24
+12 43 0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A 40
+00 00 14 45 06 44 58 46 12 49 B0 40 82 44 14 40
+06 5B 54 48 45 4E 5D 00 0A 44 60 44 26 44 44 44
+14 40 06 5B 45 4C 53 45 5D 00 0A 44 72 44 26 44
+42 44 1E 40 04 5B 49 46 5D 00 0A 44 44 44 B2 40
+42 44 1E 40 05 0D 6B 6F 20 0A E4 43 9A 40 84 40
+B2 40 44 44 32 44 0D 5B 54 48 45 4E 5D 00 30 4D
+96 44 09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D
+A2 44 13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12
+06 44 58 46 C0 46 64 48 D4 45 B2 44 17 5B 55 4E
+44 45 46 49 4E 45 44 5D 0D 12 84 12 06 44 58 46
+C0 46 E4 44 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12
+2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83
+30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F
+3E 8F 3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D
+B2 42 02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E
+3E E3 30 4D 3E 8F 01 28 0E F3 30 4D E0 41 05 53
+22 00 82 43 C0 1D 0D 12 84 12 0A 40 1E 40 C2 48
+0A 40 22 00 58 46 58 45 B2 40 20 00 C0 1D 1A 53
+1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D 6C 43 05 2E
+22 00 0D 12 84 12 42 45 0A 40 E4 43 C2 48 D4 45
+00 00 04 3C 23 00 B2 40 B2 1D B2 1D 30 4D 3E 45
+02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12 46 40 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 90 45
+04 23 53 00 0D 12 84 12 92 45 CC 45 2D 83 09 DE
+09 93 E1 23 3D 41 30 4D C0 45 04 23 3E 00 9F 42
+B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48
+4F 4C 44 00 4A 4E 3E 4F DB 3F DA 45 08 53 49 47
+4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 54 43
+04 55 2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15
+3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63
+84 12 86 45 06 44 F4 45 C4 45 F0 44 02 46 DE 45
+E4 43 D4 45 6E 45 02 2E 0E 93 E4 37 3C 43 E3 3F
+00 00 08 57 4F 52 44 00 3C 40 C2 1D 39 4C 38 4C
+09 58 38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83
+1B 42 C0 1D F8 90 27 00 00 00 04 20 E8 98 02 00
+01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C
+09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F
+4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D
+0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00
+2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C
+01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF
+0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C
+FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63
+0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D
+46 46 0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F
+38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00
+03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3
+0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42
+E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00
+8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82
+8F 4E 06 00 08 43 09 43 1B 42 BE 1D 0C 4E 0E 43
+1E 15 3D 40 CA 47 7E 4C 6A 4C 7A 80 2D 00 16 24
+CA 2F 2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40
+10 00 5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20
+FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00
+1E 83 FC 9C 00 00 E0 23 AE 27 CC 47 2F 24 2D 83
+6A 4C 7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0
+00 02 7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43
+8F 49 02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00
+03 28 79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C
+8F 49 00 00 0E 4B 2C 15 B0 12 3E 40 2A 17 E8 3F
+9F 4F 04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 82 45 03 5C 92 42 C2 1D
+C6 1D 30 4D 0D 12 84 12 84 40 06 44 58 46 B0 40
+9C 49 C0 46 86 48 0A 4E 3E 4F 3D 40 A0 48 6D 27
+3D 40 7A 48 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41
+A2 48 3E 4F 3D 40 7A 48 19 20 DE 53 00 00 68 4E
+08 5E F8 40 3F 00 00 00 3D 40 78 4A 2A 3C 6A 48
+02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F
+30 4D C0 48 0F 4C 49 54 45 52 41 4C 82 93 BC 1D
+0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A 40
+00 00 8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02
+03 24 8A 4E 02 00 EE 3F 30 4D FC 45 0A 43 4F 55
+4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D
+22 45 0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D
+3F 40 80 1C 0E 43 84 12 1E 40 02 0D 0A 00 E4 43
+94 40 74 48 02 45 2C 45 1E 40 0B 73 74 61 63 6B
+20 65 6D 70 74 79 08 41 32 40 0A 40 40 FF 34 45
+1E 40 09 46 52 41 4D 20 66 75 6C 6C 08 41 B2 40
+38 49 22 49 0D 41 42 4F 52 54 22 00 0D 12 84 12
+42 45 0A 40 08 41 C2 48 D4 45 52 46 02 27 0D 12
+84 12 06 44 58 46 C0 46 B0 40 9E 49 66 45 AA 48
+CC 44 07 5B 27 5D 0D 12 84 12 8E 49 0A 40 0A 40
+C2 48 C2 48 D4 45 A2 49 03 5B 82 43 BC 1D 30 4D
+00 00 02 5D B2 43 BC 1D 30 4D 1A 45 11 50 4F 53
+54 50 4F 4E 45 00 0D 12 84 12 06 44 58 46 C0 46
+B0 40 9E 49 2C 45 AC 40 F6 49 0A 40 0A 40 C2 48
+C2 48 0A 40 C2 48 C2 48 D4 45 00 00 02 3A 30 12
+4C 4A 92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 06 44
+58 46 14 4A 3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D
+08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F
+E8 58 00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D
+82 4F BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12
+FC FF BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F
+BA 1D 66 25 84 12 1E 40 0F 73 74 61 63 6B 20 6D
+69 73 6D 61 74 63 68 21 12 41 B8 49 03 3B 82 93
+BC 1D F4 26 0D 12 84 12 0A 40 D4 45 C2 48 5E 4A
+BA 49 D4 45 00 00 12 49 4D 4D 45 44 49 41 54 45
+18 42 B4 1D D8 D3 00 00 30 4D 0C 49 0C 43 52 45
+41 54 45 00 B0 12 02 4A BA 40 86 12 FC FF 8A 4A
+FE FF 3A 3D DE 43 0A 44 4F 45 53 3E 1A 42 B8 1D
+BA 40 85 12 00 00 8A 4D 02 00 3D 41 30 4D FC 49
+0E 3A 4E 4F 4E 41 4D 45 30 12 4C 4A 2F 83 8F 4E
+00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02
+08 49 98 3F 96 4A 05 49 53 00 0D 12 82 93 BC 1D
+08 20 84 12 8E 49 18 4B 3D 41 BE 4F 02 00 3E 4F
+30 4D 84 12 A6 49 0A 40 1A 4B C2 48 D4 45 AC 4A
+08 43 4F 44 45 00 B0 12 02 4A A2 82 C8 1D 61 3C
+EE 45 0E 48 44 4E 43 4F 44 45 B2 40 06 4C CC 1D
+F2 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12
+5E 4A 64 4B 3D 41 92 42 D0 1D CC 1D 5D 3C 30 4B
+0E 43 4F 44 45 4E 4E 4D 30 12 3A 4B B7 3F 00 00
+0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12 00 00
+BA 40 84 12 02 00 A2 52 C8 1D B2 43 BC 1D E3 3F
+00 00 0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D
+EF 3F 42 4B 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42
+C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F CE 4B B2 40
+E0 4B D0 1D 82 4E CE 1D 30 40 66 45 85 12 CC 4B
+CC 49 40 58 3C 5A 4E 58 D6 5D 10 46 BA 46 B6 5C
+B4 4B 06 4B E0 4A 7C 4A 5C 58 E8 4C 20 5A 00 00
+00 00 85 12 CC 4B 62 53 E6 51 08 54 0E 51 6A 51
+B8 51 94 52 4E 54 30 50 54 51 00 00 00 00 A2 4B
+20 4F 00 00 BC 52 00 4C B2 40 E0 4B CE 1D 82 43
+D0 1D 30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83
+FB 23 30 41 00 00 0E 52 53 54 5F 53 45 54 39 40
+C8 1D 3A 40 42 18 B0 12 34 4C 30 4D 46 4C 0E 52
+53 54 5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 1D
+B0 12 34 4C 1A 42 CA 1D 3B 40 10 00 09 4A 08 49
+29 83 18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83
+F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40
+10 00 29 83 B9 43 80 FF FC 23 B9 40 10 42 FE FF
+29 83 B9 40 FA 41 FE FF 39 90 AE FF F9 23 39 40
+10 18 B2 49 BC FF 3B 40 10 00 3A 40 3A 18 B0 12
+38 4C 82 43 4A 18 C7 3F DA 4C B2 4E 42 18 BE 12
+3E 4F 3D 41 C0 3F C2 49 0C 4D 41 52 4B 45 52 00
+12 12 C6 1D 0D 12 84 12 06 44 58 46 C0 46 AC 40
+06 4D FA 44 9A 48 08 4D 3E 4F 3D 41 B2 41 C6 1D
+B0 12 02 4A BA 40 85 12 FC FF BA 40 D8 4C FE FF
+28 83 8A 48 00 00 BA 40 82 40 02 00 A2 52 C8 1D
+18 42 B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00
+30 4D 12 12 C6 1D 84 12 58 46 C0 46 AC 40 72 4D
+52 4D 3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E
+06 3C BE 90 D8 4C 00 00 01 20 3E 52 2E 83 21 53
+30 41 6A 47 AC 40 7A 4D 6E 4D 7C 4D B2 41 C6 1D
+30 41 92 83 C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12
+42 4D 15 20 3E 40 2B 00 B0 12 42 4D 06 20 3E 40
+2D 00 B0 12 42 4D 92 83 C6 1D 0E 12 1E 41 02 00
+84 12 58 46 6A 47 AC 40 9E 49 BC 4D 3E 51 3A 17
+30 41 B0 12 82 4D 19 42 C8 1D 89 4E 00 00 A2 53
+C8 1D 3E 40 29 00 92 53 C6 1D 1A 42 C6 1D 3D 15
+84 12 58 46 6A 47 AC 40 F4 4D EC 4D 3E 90 10 00
+E6 2B 7C 2D F6 4D A2 41 C6 1D E1 3F 03 20 B0 12
+DA 4D 43 3C 7A 90 23 00 24 20 B0 12 8A 4D 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 56 4F B0 12 BA 4F EB 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 1D B0 12 E0 4F 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 E0 4F 92 92 C0 1D
-C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E D8 3F B0 12
-E0 4F FA 23 3C 50 10 00 B0 12 C4 4F EF 3F 0C 43
-1B 42 C6 1D A2 53 C6 1D 0D 12 84 12 62 48 32 4F
-F2 50 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
-82 00 C5 3F B0 12 E0 4F E0 23 3C 50 80 00 B0 12
-C4 4F DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12
-0A 40 00 13 A8 47 AE 44 0A 40 2C 00 14 50 E8 50
-32 51 09 4B 2E 4E 0E DC A0 3F 20 4B 03 4D 4F 56
-85 12 28 51 00 40 3C 51 05 4D 4F 56 2E 42 85 12
-28 51 40 40 00 00 03 41 44 44 85 12 28 51 00 50
-56 51 05 41 44 44 2E 42 85 12 28 51 40 50 62 51
-04 41 44 44 43 00 85 12 28 51 00 60 70 51 06 41
-44 44 43 2E 42 00 85 12 28 51 40 60 16 51 04 53
-55 42 43 00 85 12 28 51 00 70 8E 51 06 53 55 42
-43 2E 42 00 85 12 28 51 40 70 9C 51 03 53 55 42
-85 12 28 51 00 80 AC 51 05 53 55 42 2E 42 85 12
-28 51 40 80 F6 4A 03 43 4D 50 85 12 28 51 00 90
-C6 51 05 43 4D 50 2E 42 85 12 28 51 40 90 D0 4A
-04 44 41 44 44 00 85 12 28 51 00 A0 E0 51 06 44
-41 44 44 2E 42 00 85 12 28 51 40 A0 D2 51 03 42
-49 54 85 12 28 51 00 B0 FE 51 05 42 49 54 2E 42
-85 12 28 51 40 B0 0A 52 03 42 49 43 85 12 28 51
-00 C0 18 52 05 42 49 43 2E 42 85 12 28 51 40 C0
-24 52 03 42 49 53 85 12 28 51 00 D0 32 52 05 42
-49 53 2E 42 85 12 28 51 40 D0 00 00 03 58 4F 52
-85 12 28 51 00 E0 4C 52 05 58 4F 52 2E 42 85 12
-28 51 40 E0 7E 51 03 41 4E 44 85 12 28 51 00 F0
-66 52 05 41 4E 44 2E 42 85 12 28 51 40 F0 62 48
-14 50 84 52 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F B8 51 03 52 52 43 85 12 7E 52 00 10
-96 52 05 52 52 43 2E 42 85 12 7E 52 40 10 A2 52
-04 53 57 50 42 00 85 12 7E 52 80 10 B0 52 03 52
-52 41 85 12 7E 52 00 11 BE 52 05 52 52 41 2E 42
-85 12 7E 52 40 11 CA 52 03 53 58 54 85 12 7E 52
-80 11 00 00 04 50 55 53 48 00 85 12 7E 52 00 12
-E4 52 06 50 55 53 48 2E 42 00 85 12 7E 52 40 12
-3E 52 04 43 41 4C 4C 00 85 12 7E 52 80 12 1A 53
-0E 4A 0D 12 84 12 24 45 14 40 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 36 41 D8 52 03 53 3E 3D
-86 12 00 38 2C 53 02 53 3C 00 86 12 00 34 F2 52
-03 30 3E 3D 86 12 00 30 40 53 02 30 3C 00 86 12
-00 30 00 00 02 55 3C 00 86 12 00 2C 54 53 03 55
-3E 3D 86 12 00 28 4A 53 03 30 3C 3E 86 12 00 24
-68 53 02 30 3D 00 86 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
-5E 53 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 B1 2F 88 DA
-00 00 30 4D EE 51 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 02 53 05 42 45 47 49 4E 30 40 28 40 92 53
-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 8A 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 1D 30 4D 72 52 05 41
-47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
-48 49 4C 45 0D 12 84 12 80 53 08 44 AE 44 36 53
-06 52 45 50 45 41 54 00 0D 12 84 12 14 54 98 53
-AE 44 44 54 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D
-CB 2F 98 42 C6 1D 00 00 30 4D D4 53 03 42 57 31
-85 12 42 54 00 00 5C 54 03 42 57 32 85 12 42 54
-00 00 68 54 03 42 57 33 85 12 42 54 00 00 80 54
-3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 85 12 7E 54 00 00 A0 54 03 46 57 32
-85 12 7E 54 00 00 AC 54 03 46 57 33 85 12 7E 54
-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 0D 12
-84 12 E0 48 3C 48 AE 44 B8 54 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C F1 3F 62 48 32 4F
-02 55 92 53 C4 1D 3E 40 2C 00 84 12 7A 45 9E 46
-34 40 60 48 DE 50 18 55 0A 4E 3E 4F 1A 83 F7 32
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10
-5A 06 A6 3E 30 54 04 52 52 43 4D 00 85 12 FC 54
-50 00 46 55 04 52 52 41 4D 00 85 12 FC 54 50 01
-54 55 04 52 4C 41 4D 00 85 12 FC 54 50 02 62 55
-04 52 52 55 4D 00 85 12 FC 54 50 03 72 53 05 50
-55 53 48 4D 85 12 FC 54 00 15 7E 55 04 50 4F 50
-4D 00 85 12 FC 54 00 17 70 55 06 52 52 43 4D 2E
-41 00 85 12 FC 54 40 00 9A 55 06 52 52 41 4D 2E
-41 00 85 12 FC 54 40 01 AA 55 06 52 4C 41 4D 2E
-41 00 85 12 FC 54 40 02 BA 55 06 52 52 55 4D 2E
-41 00 85 12 FC 54 40 03 8C 55 07 50 55 53 48 4D
-2E 41 85 12 FC 54 00 14 DA 55 06 50 4F 50 4D 2E
-41 00 85 12 FC 54 00 16 74 54 05 43 41 4C 4C 41
-0D 12 84 12 62 48 32 4F 0A 56 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 E0 4F 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 E0 4F 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 56 4F BB 4F 02 00 DC 3F 7E 90
-26 00 02 20 2C 53 F4 3F 7E 40 28 00 1C 83 B0 12
-56 4F BB 4F 02 00 3E 40 29 00 CB 3F 0D 12 84 12
-62 48 32 4F 96 56 69 4E 3E 4F 3C 4F 2C 4C 1B 42
-C6 1D A2 53 C6 1D 79 90 52 00 0A 20 B0 12 E0 4F
-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 56 4F 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 E0 4F D8 23
-3C D0 10 00 3E 40 2B 00 B0 12 E0 4F 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 56 4F BB 4F 02 00 3E 40
-29 00 EA 3F 0D 12 84 12 62 48 32 4F 3E 57 3B 4F
-2C 4B 69 4E 7E 40 20 00 79 90 52 00 03 20 B0 12
-E0 4F B0 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 56 4F BB 4F
-02 00 A0 3F 3C D0 70 00 3E 40 28 00 B0 12 56 4F
-BB 4F 02 00 3E 40 29 00 E2 3F 0A 40 2C 00 8C 56
-34 57 D2 43 AE 44 48 51 04 4D 4F 56 41 00 85 12
-8A 57 C0 00 FA 55 04 43 4D 50 41 00 85 12 8A 57
-D0 00 0E 54 04 41 44 44 41 00 85 12 8A 57 E0 00
-CA 55 04 53 55 42 41 00 85 12 8A 57 F0 00 0D 12
-84 12 62 48 32 4F D8 57 69 4E 3E 4F 3C 40 00 18
-79 90 52 00 05 20 B0 12 E0 4F 0E 4C 3D 41 30 4D
-82 43 62 5C 79 90 23 00 0B 20 92 53 C4 1D B0 12
-56 4F 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 E0 4F E2 23 3E 40 2B 00 92 53 C4 1D B0 12
-E0 4F 92 92 C0 1D C4 1D D8 27 92 53 C4 1D D5 3F
-3E 40 28 00 B0 12 56 4F 8F 4E 00 00 3E 40 29 00
-B0 12 E0 4F 3E 4F 3E F0 0F 00 0C DE EA 3F 0D 12
-84 12 62 48 32 4F 68 58 3C 4F 69 4E 3E 40 20 00
-79 90 52 00 BA 27 82 43 62 5C 79 90 26 00 08 20
-92 53 C4 1D B0 12 56 4F 2F 53 3E F0 0F 00 BE 3F
-3E 40 28 00 B0 12 56 4F F7 3F B2 4F C4 1D 1B 42
-C6 1D A2 53 C6 1D 0C 4E 3E 4F 1C D2 62 5C 82 43
-62 5C 3C DE 8B 4C 00 00 30 4D 0A 40 C4 1D 2E 44
-0A 40 2C 00 CE 57 5E 58 9A 58 3A 40 28 51 98 57
-04 4D 4F 56 58 00 85 12 BA 58 40 00 00 40 D0 58
-06 4D 4F 56 58 2E 41 00 85 12 BA 58 00 00 40 40
-E0 58 06 4D 4F 56 58 2E 42 00 85 12 BA 58 40 00
-40 40 B4 57 04 41 44 44 58 00 85 12 BA 58 40 00
-00 50 04 59 06 41 44 44 58 2E 41 00 85 12 BA 58
-00 00 40 50 14 59 06 41 44 44 58 2E 42 00 85 12
-BA 58 40 00 40 50 26 59 05 41 44 44 43 58 85 12
-BA 58 40 00 00 60 38 59 07 41 44 44 43 58 2E 41
-85 12 BA 58 00 00 40 60 48 59 07 41 44 44 43 58
-2E 42 85 12 BA 58 40 00 40 60 C2 57 05 53 55 42
-43 58 85 12 BA 58 40 00 00 70 6C 59 07 53 55 42
-43 58 2E 41 85 12 BA 58 00 00 40 70 7C 59 07 53
-55 42 43 58 2E 42 85 12 BA 58 40 00 40 70 8E 59
-04 53 55 42 58 00 85 12 BA 58 40 00 00 80 A0 59
-06 53 55 42 58 2E 41 00 85 12 BA 58 00 00 40 80
-B0 59 06 53 55 42 58 2E 42 00 85 12 BA 58 40 00
-40 80 A6 57 04 43 4D 50 58 00 85 12 BA 58 40 00
-00 90 D4 59 06 43 4D 50 58 2E 41 00 85 12 BA 58
-00 00 40 90 E4 59 06 43 4D 50 58 2E 42 00 85 12
-BA 58 40 00 40 90 B6 53 05 44 41 44 44 58 85 12
-BA 58 40 00 00 A0 08 5A 07 44 41 44 44 58 2E 41
-85 12 BA 58 00 00 40 A0 18 5A 07 44 41 44 44 58
-2E 42 85 12 BA 58 40 00 40 A0 F6 59 04 42 49 54
-58 00 85 12 BA 58 40 00 00 B0 3C 5A 06 42 49 54
-58 2E 41 00 85 12 BA 58 00 00 40 B0 4C 5A 06 42
-49 54 58 2E 42 00 85 12 BA 58 40 00 40 B0 5E 5A
-04 42 49 43 58 00 85 12 BA 58 40 00 00 C0 70 5A
-06 42 49 43 58 2E 41 00 85 12 BA 58 00 00 40 C0
-80 5A 06 42 49 43 58 2E 42 00 85 12 BA 58 40 00
-40 C0 92 5A 04 42 49 53 58 00 85 12 BA 58 40 00
-00 D0 A4 5A 06 42 49 53 58 2E 41 00 85 12 BA 58
-00 00 40 D0 B4 5A 06 42 49 53 58 2E 42 00 85 12
-BA 58 40 00 40 D0 58 52 04 58 4F 52 58 00 85 12
-BA 58 40 00 00 E0 D8 5A 06 58 4F 52 58 2E 41 00
-85 12 BA 58 00 00 40 E0 E8 5A 06 58 4F 52 58 2E
-42 00 85 12 BA 58 40 00 40 E0 5A 59 04 41 4E 44
-58 00 85 12 BA 58 40 00 00 F0 0C 5B 06 41 4E 44
-58 2E 41 00 85 12 BA 58 00 00 40 F0 1C 5B 06 41
-4E 44 58 2E 42 00 85 12 BA 58 40 00 40 F0 0A 40
-C4 1D 2E 44 62 48 CE 57 9A 58 3A 40 7E 52 C2 59
-04 52 52 43 58 00 85 12 3E 5B 40 00 00 10 50 5B
-06 52 52 43 58 2E 41 00 85 12 3E 5B 00 00 40 10
-60 5B 06 52 52 43 58 2E 42 00 85 12 3E 5B 40 00
-40 10 72 5B 04 52 52 55 58 00 85 12 3E 5B 40 01
-00 10 84 5B 06 52 52 55 58 2E 41 00 85 12 3E 5B
-00 01 40 10 94 5B 06 52 52 55 58 2E 42 00 85 12
-3E 5B 40 01 40 10 A6 5B 05 53 57 50 42 58 85 12
-3E 5B 40 00 80 10 B8 5B 07 53 57 50 42 58 2E 41
-85 12 3E 5B 00 00 80 10 C8 5B 04 52 52 41 58 00
-85 12 3E 5B 40 00 00 11 DA 5B 06 52 52 41 58 2E
-41 00 85 12 3E 5B 00 00 40 11 EA 5B 06 52 52 41
-58 2E 42 00 85 12 3E 5B 40 00 40 11 FC 5B 04 53
-58 54 58 00 85 12 3E 5B 40 00 80 11 0E 5C 06 53
-58 54 58 2E 41 00 85 12 3E 5B 00 00 80 11 EA 55
-05 50 55 53 48 58 85 12 3E 5B 40 00 00 12 30 5C
-07 50 55 53 48 58 2E 41 85 12 3E 5B 00 00 40 12
-40 5C 07 50 55 53 48 58 2E 42 85 12 3E 5B 40 00
-40 12 00 00 1E 5C 03 52 50 54 0D 12 84 12 62 48
-32 4F 74 5C 29 4E 7E 40 20 00 79 90 52 00 06 20
-B0 12 E0 4F 03 24 3E D0 80 00 05 3C B0 12 56 4F
-1E 83 3E F0 0F 00 82 4E 62 5C 3E 4F 3D 41 30 4D
-D2 C3 23 02 E2 B2 60 02 02 24 30 40 E2 41 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 28 5D 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 1A 43 E1 3F 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 66 5C 08 52
-45 41 44 5F 53 57 58 00 1C D3 F2 40 51 00 19 20
-B0 12 A0 5C 38 20 B0 12 28 5D 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 1E 54 09 57 52 49 54 45 5F 53 57 58 2C D3
-F0 40 58 00 75 C2 B0 12 A0 5C 15 20 3A 40 FE FF
-29 43 B0 12 2C 5D D2 49 00 1E 4E 06 03 43 19 53
-39 90 00 02 F8 23 39 40 03 00 B0 12 2A 5D 7A C0
-E1 00 6A 92 D9 27 8C 10 1C 52 4C 06 D2 D3 23 02
-0D 12 84 12 18 43 14 40 0B 3C 20 53 44 20 45 72
-72 6F 72 21 F6 5D 2F 83 8F 4E 00 00 B2 40 10 00
-DC 1D 0E 4C 84 12 EE 44 36 41 B0 12 8C 41 0E 93
-9C 24 E2 B2 60 02 99 20 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 39 42 B0 12 2A 5D D2 C3 23 02 2C 42 B2 40
-95 00 14 20 B2 40 00 40 18 20 B0 12 24 5D 02 24
-30 40 D6 5D B0 12 28 5D 7A 93 FC 23 B2 40 87 AA
-14 20 92 43 16 20 B2 40 00 48 18 20 B0 12 24 5D
-29 42 B0 12 2A 5D 92 43 14 20 82 43 16 20 78 43
-3C 42 B2 40 00 77 18 20 B0 12 24 5D B2 40 40 69
-18 20 B0 12 E2 5C 03 24 58 83 F3 23 D9 3F 0C 5C
-A2 43 16 20 B2 40 00 50 18 20 B0 12 E2 5C D0 23
-92 D3 40 06 82 43 46 06 92 C3 40 06 09 43 B0 12
-58 5D 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 DC 5D 09 43
-B0 12 58 5D 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 30 41 B0 12 AA 40
-39 40 E0 00 29 83 89 43 38 20 FC 23 82 43 32 20
-30 41 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 90 5F
-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
-AB 20 BB 80 00 02 12 00 8B 73 14 00 DB 53 03 00
-DB 92 12 20 03 00 14 28 CB 43 03 00 B0 12 62 5F
-1A 52 08 20 09 43 B0 12 58 5D 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 D0 5F 1A 42 1A 20 19 42 1C 20 6C 3E
-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 5C 27 C9 37 8B 43 16 00 7A 93
-02 24 07 38 95 3F B2 40 1C 21 CA 40 B2 40 44 43
-70 42 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 50 60 22 C3 30 41 1B 42 32 20 0B 93 FB 27
-EB 93 02 00 04 20 B0 12 2C 66 B0 12 F4 65 CB 93
-02 00 E4 37 1E 4B 18 00 9F 4B 1A 00 00 00 31 50
-06 00 3D 41 B0 12 4C 61 02 24 30 40 36 43 B2 40
-3C 1D CA 40 B2 40 72 42 70 42 30 40 18 43 2E 4E
-85 52 45 41 44 22 5A 43 19 3C A2 4C 86 57 52 49
-54 45 22 00 6A 43 12 3C 96 4D 84 44 45 4C 22 00
-6A 42 0C 3C E6 4A 05 43 4C 4F 53 45 B0 12 68 61
-30 4D 50 4C 85 4C 4F 41 44 22 7A 43 2F 83 8F 4E
-00 00 0E 4A 82 93 BE 1D 0B 24 0D 12 84 12 0A 40
-0A 40 A8 47 A8 47 32 45 0A 40 20 62 A8 47 AE 44
-0D 12 84 12 0A 40 22 00 7A 45 F8 47 1E 62 3D 41
-36 4F 0E 56 82 4E 36 20 1C 43 92 42 2C 20 22 20
-92 42 2E 20 24 20 0E 96 8D 24 F6 90 3A 00 01 00
-01 20 26 53 F6 90 5C 00 00 00 08 20 16 53 92 42
-02 20 22 20 82 43 24 20 0E 96 70 24 82 46 34 20
-B0 12 90 5F 35 40 20 00 A2 93 02 20 04 24 92 92
-22 20 02 20 02 24 15 42 12 20 B0 12 76 60 2C 43
-0A 43 08 4A 58 0E 08 58 82 48 30 20 C8 93 00 1E
-61 24 39 42 F8 96 00 1E 04 20 18 53 19 83 FA 23
-16 53 F6 90 2E 00 FF FF 19 24 39 50 03 00 B0 12
-EE 5F 06 20 F6 90 5C 00 FF FF 29 24 0E 96 27 28
-16 42 34 20 1A 53 3A 90 10 00 DB 23 92 53 1A 20
-82 63 1C 20 15 83 D1 23 2C 42 3C 3C F6 90 2E 00
-FE FF EE 27 B0 12 EE 5F EB 23 39 40 03 00 F8 96
-00 1E 04 20 18 53 19 83 FA 23 09 3C 0E 96 E0 2F
-F6 90 5C 00 FF FF DC 23 B0 12 EE 5F 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 96 8E 2F 92 42 22 20
-2C 20 92 42 24 20 2E 20 8F 43 00 00 03 3C 2A 4F
-B0 12 80 60 35 40 D4 40 36 40 E2 40 3A 4F 3E 4F
-0A 93 04 24 7A 93 3C 20 0C 93 01 20 30 4D 0D 12
-84 12 18 43 14 40 0B 3C 20 4F 70 65 6E 45 72 72
-6F 72 3A 40 F4 5D 26 4C 05 5B 50 46 41 5D 2E 53
-2E 4E 30 4D D6 61 04 42 4F 4F 54 00 39 40 0A 5E
-2E 93 01 2C 30 41 E2 B2 60 02 02 24 10 49 02 00
-89 12 3F 40 7E 1C 8F 43 00 00 82 43 BE 1D B2 40
-00 1C 00 1C 31 40 E0 1C 84 12 14 40 0F 4C 4F 41
-44 22 20 42 4F 4F 54 2E 34 54 48 22 3A 40 90 48
-1A 93 BB 20 0C 93 C3 23 30 4D B0 61 04 52 45 41
-44 00 2F 83 8F 4E 00 00 1E 42 32 20 B0 12 02 60
-1E 82 32 20 30 4D 2C 43 12 12 2A 20 18 42 02 20
-08 58 2A 41 82 9A 0A 20 A6 24 1A 52 08 20 09 43
-B0 12 58 5D 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 E7 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 09 43 B0 12 9E 5D
-3A 41 1A 52 0C 20 09 43 B0 12 9E 5D 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 48 65 39 40 03 00 7A 4B C8 4A 00 1E 82 9B
-36 20 12 28 0D 12 3D 40 0F 00 3C 40 F8 64 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 DC 20 2C 93
-0E 24 0C 93 AB 24 0D 12 84 12 14 40 0C 3C 20 57
-72 69 74 65 45 72 72 6F 72 00 3A 40 F4 5D B0 12
-06 64 92 42 26 20 22 20 92 42 28 20 24 20 B0 12
-84 64 B0 12 76 60 18 42 30 20 F8 40 20 00 0B 1E
-B0 12 9C 64 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 C9 27 FB 90 2E 00 00 00 C5 27 39 40 0B 00
-B0 12 18 65 B0 12 36 66 2A 43 B0 12 80 60 0C 93
-BA 23 30 4D 1A 4B 04 00 19 4B 06 00 B0 12 58 5D
-B0 12 9C 64 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 9E 5D 9B 52 1E 20
-12 00 8B 63 14 00 1A 42 1A 20 19 42 1C 20 30 40
-9E 5D B2 40 00 02 1E 20 1B 42 32 20 B0 12 2C 66
-82 43 1E 20 DB 53 03 00 DB 92 12 20 03 00 25 20
-CB 43 03 00 B0 12 62 5F 08 12 0A 12 B0 12 06 64
-2A 91 08 24 B0 12 84 64 2A 41 1A 52 08 20 09 43
-B0 12 58 5D 3A 41 38 41 98 42 26 20 00 1E 92 93
-02 20 03 24 98 42 28 20 02 1E B0 12 84 64 9B 42
-26 20 0E 00 9B 42 28 20 10 00 30 40 D0 5F BC 61
-05 57 52 49 54 45 B0 12 42 66 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 72 60 30 4D 0C 93 3B 20 38 90 E0 01 03 2C
-C8 93 20 1E 02 24 7C 40 E5 00 C8 4C 00 1E B0 12
-36 66 B0 12 6E 5F 82 4A 2A 20 0B 4A 1A 52 08 20
-09 43 B0 12 58 5D 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 6E 5F 0B 9A E6 27 0A 12 0A 4B B0 12
-84 64 3A 41 DA 3F 0A 4B B0 12 84 64 B0 12 68 61
-30 4D EA 44 08 54 45 52 4D 32 53 44 22 00 0D 12
-84 12 D0 61 0A 40 02 00 28 40 F8 47 20 62 B0 67
-B0 12 B8 41 0A 43 92 B3 EC 06 FD 27 59 42 CC 06
-69 92 11 24 CA 49 00 1E 1A 53 79 90 0A 00 05 20
-84 12 DC 43 D6 67 B0 12 B8 41 3A 90 00 02 EB 2B
-B0 12 42 66 E7 3F 92 B3 EC 06 FD 27 F2 90 0A 00
-CC 06 F9 23 82 4A 1E 20 B0 12 68 61 3D 41 30 4D
+30 00 19 42 C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F
+30 4D 7A 90 26 00 05 20 3C 40 10 02 B0 12 8A 4D
+F0 3F 7A 90 40 00 14 20 3C 40 20 00 B0 12 D6 4D
+0C 20 3C D0 10 00 3E 40 2B 00 B0 12 DA 4D 92 92
+C2 1D C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E DF 3F
+3C D0 10 00 B0 12 C2 4D F2 3F 03 20 B0 12 DA 4D
+F5 3F 7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0
+80 00 B0 12 C2 4D EA 3F 0C 43 1B 42 C8 1D A2 53
+C8 1D 3A 40 20 00 19 42 C6 1D 19 52 C4 1D 7A 99
+FE 27 5A 49 FF FF 19 82 C4 1D 82 49 C6 1D 7A 90
+52 00 30 4D 00 00 08 52 45 54 49 00 0D 12 84 12
+0A 40 00 13 C2 48 D4 45 0A 40 2C 00 B8 4E FC 4D
+06 44 C2 4E 9A 4E 08 4F 3D 41 2C DE 8B 4C 00 00
+9E 3F 00 00 06 4D 4F 56 85 12 F8 4E 00 40 14 4F
+0A 4D 4F 56 2E 42 85 12 F8 4E 40 40 00 00 06 41
+44 44 85 12 F8 4E 00 50 2E 4F 0A 41 44 44 2E 42
+85 12 F8 4E 40 50 3A 4F 08 41 44 44 43 00 85 12
+F8 4E 00 60 48 4F 0C 41 44 44 43 2E 42 00 85 12
+F8 4E 40 60 80 4B 08 53 55 42 43 00 85 12 F8 4E
+00 70 66 4F 0C 53 55 42 43 2E 42 00 85 12 F8 4E
+40 70 74 4F 06 53 55 42 85 12 F8 4E 00 80 84 4F
+0A 53 55 42 2E 42 85 12 F8 4E 40 80 90 4F 06 43
+4D 50 85 12 F8 4E 00 90 9E 4F 0A 43 4D 50 2E 42
+85 12 F8 4E 40 90 00 00 08 44 41 44 44 00 85 12
+F8 4E 00 A0 B8 4F 0C 44 41 44 44 2E 42 00 85 12
+F8 4E 40 A0 E6 4E 06 42 49 54 85 12 F8 4E 00 B0
+D6 4F 0A 42 49 54 2E 42 85 12 F8 4E 40 B0 E2 4F
+06 42 49 43 85 12 F8 4E 00 C0 F0 4F 0A 42 49 43
+2E 42 85 12 F8 4E 40 C0 FC 4F 06 42 49 53 85 12
+F8 4E 00 D0 0A 50 0A 42 49 53 2E 42 85 12 F8 4E
+40 D0 00 00 06 58 4F 52 85 12 F8 4E 00 E0 24 50
+0A 58 4F 52 2E 42 85 12 F8 4E 40 E0 56 4F 06 41
+4E 44 85 12 F8 4E 00 F0 3E 50 0A 41 4E 44 2E 42
+85 12 F8 4E 40 F0 06 44 B8 4E FC 4D 5E 50 0A 4C
+3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4D 3F 16 50
+06 52 52 43 85 12 56 50 00 10 70 50 0A 52 52 43
+2E 42 85 12 56 50 40 10 AA 4F 08 53 57 50 42 00
+85 12 56 50 80 10 7C 50 06 52 52 41 85 12 56 50
+00 11 98 50 0A 52 52 41 2E 42 85 12 56 50 40 11
+8A 50 06 53 58 54 85 12 56 50 80 11 00 00 08 50
+55 53 48 00 85 12 56 50 00 12 BE 50 0C 50 55 53
+48 2E 42 00 85 12 56 50 40 12 B2 50 08 43 41 4C
+4C 00 85 12 56 50 80 12 1A 53 0E 4A 84 12 48 46
+1E 40 0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73
+12 41 DC 50 06 53 3E 3D 86 12 00 38 04 51 04 53
+3C 00 86 12 00 34 CC 50 06 30 3E 3D 86 12 00 30
+18 51 04 30 3C 00 86 12 00 30 54 4B 04 55 3C 00
+86 12 00 2C 2C 51 06 55 3E 3D 86 12 00 28 22 51
+06 30 3C 3E 86 12 00 24 40 51 04 30 3D 00 86 12
+00 20 00 00 04 49 46 00 1A 42 C8 1D 8A 4E 00 00
+A2 53 C8 1D 0E 4A 30 4D C6 4F 08 54 48 45 4E 00
+1A 42 C8 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11
+3A 90 00 02 B2 2F 88 DA 00 00 30 4D 36 51 08 45
+4C 53 45 00 1A 42 C8 1D BA 40 00 3C 00 00 A2 53
+C8 1D 2F 83 8F 4A 00 00 E3 3F A4 50 0A 42 45 47
+49 4E 30 40 32 40 8E 51 0A 55 4E 54 49 4C 3A 4F
+08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11 3A 90
+00 FE 8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53
+C8 1D 30 4D 4A 50 0A 41 47 41 49 4E 0A 4E 38 40
+00 3C E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12
+58 51 EE 44 D4 45 AC 51 0C 52 45 50 45 41 54 00
+0D 12 84 12 EC 51 70 51 D4 45 1C 52 3D 41 08 4E
+3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D 00 00
+30 4D 08 52 06 42 57 31 85 12 1A 52 00 00 34 52
+06 42 57 32 85 12 1A 52 00 00 40 52 06 42 57 33
+85 12 1A 52 00 00 58 52 3D 41 1A 42 C8 1D 28 4E
+8E 43 00 00 B2 92 C6 1D 86 2B BA 4F 00 00 A2 53
+C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31
+85 12 56 52 00 00 7C 52 06 46 57 32 85 12 56 52
+00 00 88 52 06 46 57 33 85 12 56 52 00 00 F6 51
+08 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
+0D 12 84 12 8E 49 9A 48 D4 45 00 00 0A 3F 47 4F
+54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
+EF 27 3E E0 00 08 EC 3F C2 4E 0A 40 2C 00 58 46
+6A 47 AC 40 9E 49 06 44 B8 4E 9A 4E EE 52 0A 4E
+3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A
+01 28 0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E
+2A 92 EA 2E 8A 10 5A 06 A8 3E 4C 52 08 52 52 43
+4D 00 85 12 D8 52 50 00 1C 53 08 52 52 41 4D 00
+85 12 D8 52 50 01 2A 53 08 52 4C 41 4D 00 85 12
+D8 52 50 02 38 53 08 52 52 55 4D 00 85 12 D8 52
+50 03 4A 51 0A 50 55 53 48 4D 85 12 D8 52 00 15
+54 53 08 50 4F 50 4D 00 85 12 D8 52 00 17 D2 C3
+23 02 E2 B2 60 02 02 24 30 40 FA 41 1A 52 04 20
+19 62 06 20 92 43 14 20 C2 4A 15 20 8A 10 C2 4A
+16 20 C2 49 17 20 89 10 C2 49 18 20 B0 12 E2 53
+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 1A 43
+E1 3F 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 46 53 12 52 5F 53 45 43 54 5F
+57 58 1C D3 F2 40 51 00 19 20 B0 12 6E 53 38 20
+B0 12 E2 53 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 A0 52 12 57
+5F 53 45 43 54 5F 57 58 2C D3 F0 40 58 00 BB CB
+B0 12 6E 53 15 20 3A 40 FE FF 29 43 B0 12 E6 53
+D2 49 00 1E 4E 06 03 43 19 53 39 90 00 02 F8 23
+39 40 03 00 B0 12 E4 53 7A C0 E1 00 6A 82 D9 27
+8C 10 1C 52 4C 06 D2 D3 23 02 84 12 5A 43 1E 40
+0B 3C 20 53 44 20 45 72 72 6F 72 21 AE 54 2F 83
+8F 4E 00 00 B2 40 10 00 BE 1D 0E 4C 84 12 14 46
+12 41 B0 12 58 41 E2 B2 60 02 8A 20 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 39 40 6E 01 29 83 89 43 02 20
+FC 23 39 42 B0 12 E4 53 D2 C3 23 02 2C 42 B2 40
+95 00 14 20 B2 40 00 40 18 20 B0 12 DE 53 02 24
+30 40 90 54 B0 12 E2 53 7A 93 FC 23 B2 40 87 AA
+14 20 92 43 16 20 B2 40 00 48 18 20 B0 12 DE 53
+29 42 B0 12 E4 53 92 43 14 20 82 43 16 20 78 43
+3C 42 B2 40 00 77 18 20 B0 12 DE 53 B2 40 40 69
+18 20 B0 12 9C 53 03 24 58 83 F3 23 D9 3F 0C 5C
+A2 43 16 20 B2 40 00 50 18 20 B0 12 9C 53 D0 23
+92 D3 40 06 82 43 46 06 92 C3 40 06 0A 43 09 43
+B0 12 12 54 38 40 00 1E 92 48 C6 01 04 20 92 48
+C8 01 06 20 5C 48 C2 01 7C 80 0C 00 08 24 5C 53
+06 24 6C 52 04 24 3C 50 07 20 30 40 96 54 09 43
+B0 12 12 54 A2 43 2C 20 19 48 0E 00 82 49 08 20
+1A 48 24 00 82 4A 0A 20 09 5A 82 49 0C 20 09 5A
+58 48 0D 00 82 48 12 20 09 88 09 88 82 49 10 20
+30 41 82 43 32 20 30 40 56 41 92 4B 0E 00 22 20
+92 4B 10 00 24 20 5A 42 23 20 58 42 22 20 59 42
+24 20 89 10 0A D9 88 10 08 58 0A 6A 88 10 08 58
+30 41 1A 52 08 20 09 43 FC 3E 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 1A 56 5A 4B 03 00 82 5A 1A 20 82 63 1C 20
+30 41 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 A3 25
+09 4B 3B 50 1C 00 3B 90 18 21 EF 23 0C 5C 9B 3D
+0C 43 82 4B 32 20 8B 49 00 00 09 93 0A 24 99 52
+C6 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 1A 24 A4 37 8B 43 16 00
+7A 93 02 24 07 38 35 3C B2 40 1C 21 A0 40 B2 40
+7E 43 BC 42 9B 42 C2 1D 18 00 9B 82 C6 1D 18 00
+9B 42 C4 1D 1A 00 9B 52 C6 1D 1A 00 22 3C 30 41
+1B 42 32 20 82 43 1E 20 B2 90 00 02 20 20 3F 20
+BB 80 00 02 12 00 8B 73 14 00 DB 53 03 00 DB 92
+12 20 03 00 0E 28 CB 43 03 00 B0 12 EA 55 B0 12
+12 56 8B 43 10 00 9B 48 00 1E 0E 00 9B 48 02 1E
+10 00 B2 40 00 02 20 20 8B 93 14 00 0B 20 92 9B
+12 00 1E 20 1C 2C BB 90 00 02 12 00 03 2C 92 4B
+12 00 20 20 B0 12 44 56 1A 42 1A 20 19 42 1C 20
+38 3E CB 43 02 00 2B 4B 82 4B 32 20 0B 93 06 24
+92 4B 16 00 1E 20 B0 12 72 57 22 C3 30 41 1B 42
+32 20 0B 93 FB 27 EB 92 02 00 04 20 B0 12 30 5B
+B0 12 20 5C CB 93 02 00 E4 37 1E 4B 18 00 9F 4B
+1A 00 00 00 31 50 06 00 3D 41 B0 12 A2 57 02 24
+30 40 74 43 B2 40 3C 1D A0 40 B2 40 BE 42 BC 42
+30 40 5A 43 09 93 07 24 F8 90 20 00 00 1E 03 20
+18 53 19 83 F9 23 30 41 5E 4C 0B 52 45 41 44 22
+5A 43 20 3C C6 4A 09 44 45 4C 22 00 6A 43 1A 3C
+8C 49 0D 57 52 49 54 45 22 00 6A 42 13 3C 74 49
+0F 41 50 50 45 4E 44 22 7A 42 0C 3C 70 4B 0A 43
+4C 4F 53 45 B0 12 BE 57 30 4D D4 48 0B 4C 4F 41
+44 22 7A 43 2F 83 8F 4E 00 00 0E 4A 82 93 BC 1D
+0B 24 0D 12 84 12 0A 40 0A 40 C2 48 C2 48 42 45
+0A 40 98 58 C2 48 D4 45 0D 12 84 12 0A 40 22 00
+58 46 12 49 96 58 3D 41 36 4F 0E 56 82 4E 36 20
+A2 43 22 20 82 43 24 20 1C 43 0E 96 8C 24 F6 90
+3A 00 01 00 01 20 26 53 F6 90 5C 00 00 00 03 20
+16 53 0E 96 66 24 82 46 34 20 B0 12 1A 56 15 42
+12 20 B0 12 98 57 2C 43 0A 43 08 4A 58 0E 08 58
+82 48 30 20 C8 93 00 1E 60 24 39 42 F8 96 00 1E
+04 20 18 53 19 83 FA 23 16 53 F6 90 2E 00 FF FF
+19 24 39 50 03 00 B0 12 04 58 06 20 F6 90 5C 00
+FF FF 29 24 0E 96 27 28 16 42 34 20 1A 53 3A 90
+10 00 DB 23 92 53 1A 20 82 63 1C 20 15 83 D1 23
+2C 42 49 3C F6 90 2E 00 FE FF EE 27 B0 12 04 58
+EB 23 39 40 03 00 F8 96 00 1E 04 20 18 53 19 83
+FA 23 09 3C 0E 96 E0 2F F6 90 5C 00 FF FF DC 23
+B0 12 04 58 D9 23 18 42 30 20 92 48 1A 1E 22 20
+92 48 14 1E 24 20 F8 B0 10 00 0B 1E 13 24 82 93
+24 20 05 20 82 93 22 20 02 20 A2 43 22 20 0E 96
+9A 23 92 42 22 20 2C 20 92 42 24 20 2E 20 8F 43
+00 00 03 3C 2A 4F B0 12 62 56 35 40 B6 40 36 40
+C4 40 3A 4F 3E 4F 0A 93 04 24 7A 93 39 20 0C 93
+02 20 30 40 74 43 0D 12 84 12 5A 43 1E 40 0B 3C
+20 4F 70 65 6E 45 72 72 6F 72 B2 40 AC 54 E2 B2
+60 02 02 24 30 40 80 41 92 12 3E 18 3F 40 7E 1C
+8F 43 00 00 0D 12 84 12 1E 40 0F 4C 4F 41 44 22
+20 42 4F 4F 54 2E 34 54 48 22 B2 40 42 49 1A 58
+08 42 4F 4F 54 00 B2 40 DE 59 AE 42 30 4D 12 47
+0C 4E 4F 42 4F 4F 54 00 B2 40 80 41 AE 42 30 4D
+1A 93 89 20 0C 93 C7 23 30 4D 10 5A 08 52 45 41
+44 00 2F 83 8F 4E 00 00 1E 42 32 20 B0 12 30 57
+1E 82 32 20 30 4D 08 4A 1A 52 08 20 B0 12 66 5A
+0A 48 1A 52 0C 20 09 43 30 40 58 54 3C 42 0A 12
+2A 41 82 9A 0A 20 2B 25 B0 12 12 56 88 93 02 1E
+03 20 88 93 00 1E 08 24 28 52 38 90 00 02 F6 2B
+91 53 00 00 08 43 EC 3F A2 41 26 20 82 48 28 20
+0C 43 B8 43 00 1E 6A 41 B8 40 FF 0F 02 1E 08 11
+8A 10 08 5A 5A 41 01 00 0A 11 08 10 82 4A 24 20
+82 48 22 20 2A 41 B0 12 56 5A 3A 41 30 41 90 4B
+0A 00 50 C5 90 4B 0C 00 4C C5 B0 12 F6 55 82 4A
+26 20 82 48 28 20 0A 12 B0 12 12 56 1A 48 00 1E
+88 43 00 1E 19 48 02 1E 88 43 02 1E 39 F0 FF 0F
+39 90 FF 0F 02 20 3A 93 10 24 82 4A 22 20 82 49
+24 20 B0 12 F6 55 2A 91 E9 27 09 4A 2A 41 81 49
+00 00 B0 12 56 5A 2A 41 DF 3F 3A 41 30 40 56 5A
+9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20 19 42
+1C 20 30 40 58 54 2A 93 BC 20 0C 93 09 20 F8 40
+E5 00 00 1E B0 12 3A 5B B0 12 CE 5A B0 12 BE 57
+30 4D 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 28 39 80 03 00 B0 12 0E 5C 39 40 03 00 7A 4B
+C8 4A 00 1E 82 9B 36 20 12 28 0D 12 3D 40 0F 00
+3C 40 BE 5B 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
+1A 4B 04 00 19 4B 06 00 B0 12 12 54 18 4B 08 00
+B0 12 62 5B 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 58 54 B2 40 00 02 1E 20 1B 42
+32 20 B0 12 30 5B 82 43 1E 20 DB 53 03 00 DB 92
+12 20 03 00 1D 28 B0 12 EA 55 08 12 0A 12 B0 12
+6C 5A 2A 91 03 24 2A 41 B0 12 12 56 3A 41 38 41
+98 42 22 20 00 1E 98 42 24 20 02 1E B0 12 56 5A
+AB 42 02 00 9B 42 22 20 0E 00 9B 42 24 20 10 00
+30 40 50 56 32 58 0A 57 52 49 54 45 B0 12 58 5C
+30 4D 2A 92 54 20 2C 93 0E 24 0C 93 3D 24 0D 12
+84 12 1E 40 0C 3C 20 57 72 69 74 65 45 72 72 6F
+72 00 B2 40 AC 54 0A 43 08 43 B0 12 6C 5A B0 12
+98 57 18 42 30 20 F8 40 20 00 0B 1E B0 12 62 5B
+88 43 0C 1E 88 4A 0E 1E 88 49 10 1E 98 42 24 20
+14 1E 98 42 22 20 1A 1E 88 43 1C 1E 88 43 1E 1E
+2C 42 1B 42 34 20 82 9B 36 20 D1 27 FB 90 2E 00
+00 00 CD 27 39 40 0B 00 B0 12 DE 5B B0 12 3A 5B
+2A 42 B0 12 62 56 30 4D B0 12 CE 5A 8B 43 12 00
+8B 43 14 00 90 4B 0A 00 CA C2 90 4B 0C 00 C6 C2
+B0 12 F6 55 B0 12 6C 5A B0 12 A0 5C 30 4D 2C 93
+BA 27 0C 93 AC 23 EB 42 02 00 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 B0 12 94 57
+1A 4B 12 00 BB C0 FF 01 12 00 3A F0 FF 01 82 4A
+1E 20 30 4D 26 58 10 54 45 52 4D 32 53 44 22 00
+0D 12 84 12 3A 58 E8 5D 0A 43 7D 40 0A 00 B0 12
+44 41 3A 90 00 02 03 28 B0 12 58 5C 0A 43 92 B3
+EC 06 FD 27 59 42 CC 06 69 92 11 24 CA 49 00 1E
+1A 53 49 9D EE 23 A2 B3 EC 06 FD 27 F2 40 0D 00
+CE 06 A2 B3 EC 06 FD 27 C2 4D CE 06 E0 3F C2 9D
+CC 06 FD 23 82 4A 1E 20 B0 12 BE 57 3D 41 30 4D
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 84 42 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41
-E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 E2 41 96 4E
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 D0 42 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41
+FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 FA 41 10 42
 q
diff --git a/binaries/MSP_EXP430FR5994_8MHz_UART.txt b/binaries/MSP_EXP430FR5994_8MHz_UART.txt
deleted file mode 100644 (file)
index 24cd7dd..0000000
+++ /dev/null
@@ -1,657 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF 08 68 50 4D 34 01
-10 00 C1 B3 94 41 62 5F DA 41 20 5E 96 42 08 68
-50 4D 7C 42 F2 43 26 43 00 43 3C 1D C0 44 D4 40
-E2 40 EE 40 20 00 0A 00 00 00 00 00 00 00 00 00
-@4000
-B0 12 DA 41 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 40
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D2 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 62 5F 39 40 22 18
-B2 49 7A 42 B2 49 F0 43 B2 49 24 43 B2 49 FE 42
-B2 49 CA 40 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 58 4E 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 41 92 C3 DC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-DC 05 F3 23 B0 12 F8 40 0A 40 DE 1D 40 44 34 43
-14 40 04 1B 5B 37 6D 00 BC 43 08 44 34 40 86 41
-14 40 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 BC 43 00 45 BC 43 14 40 04 1B 5B 30 6D 00
-BC 43 88 48 92 B3 CA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 C0 05 92 42 02 18 C6 05 92 42 04 18
-C8 05 F2 D0 03 00 0D 02 92 C3 C0 05 92 D3 DA 05
-92 C3 30 01 30 41 09 3C A2 B3 DC 05 FD 27 B2 40
-13 00 CE 05 E2 D2 23 02 30 41 A2 B3 DC 05 FD 27
-B2 40 11 00 CE 05 E2 C2 23 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 41 F2 B0 40 00 40 02 02 20 B2 43
-08 18 B2 40 04 A5 20 01 EE 41 04 57 41 52 4D 00
-B0 12 20 5E 84 12 14 40 07 0D 0A 1B 5B 37 6D 23
-BC 43 36 45 14 40 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
-BC 43 0A 40 40 FF 28 40 34 44 00 45 14 40 0A 62
-79 74 65 73 20 66 72 65 65 00 3A 40 86 41 00 00
-06 41 43 43 45 50 54 00 30 40 7C 42 08 4E 2E 4F
-08 5E 39 40 0D 00 3A 40 20 00 3B 40 C8 42 3C 40
-D4 42 5D 15 B5 3E 21 52 3A 17 58 42 CC 05 48 9B
-93 27 48 9C 06 2C 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 C2 48 CE 05 30 4D CA 42 2D 83 92 B3 DC 05
-E4 23 FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3
-DC 05 FD 27 58 42 CC 05 82 93 DE 1D 02 24 92 53
-DE 1D 08 4C E3 3F 00 00 03 4B 45 59 30 40 00 43
-2F 83 8F 4E 00 00 B0 12 DA 41 92 B3 DC 05 FD 27
-1E 42 CC 05 B0 12 C8 41 30 4D 00 00 04 45 4D 49
-54 00 30 40 26 43 08 4E 3E 4F C8 3F 1C 43 04 45
-43 48 4F 00 B2 40 C2 48 C2 42 82 43 DE 1D 30 4D
-00 00 06 4E 4F 45 43 48 4F 00 B2 40 30 4D C2 42
-92 43 DE 1D 30 4D 0D 12 3D 40 76 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 78 43 2D 83 0C 9B 16 2C 58 4C
-00 1E 1C 53 78 90 20 00 09 2C 78 90 0A 00 F5 23
-3D 41 82 4C 1E 20 3C 40 20 00 A6 3F 0E 99 8E 27
-CA 48 00 00 1A 53 1E 53 89 3F 1A 15 B0 12 18 60
-19 17 DC 3F 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 D8 43 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 24 43 DA 43 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 41 02 43 52 00 30 40
-F2 43 0D 12 84 12 14 40 02 0D 0A 00 BC 43 C0 44
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 70 42 01 40
-2E 4E 30 4D 3E 44 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D EA 43 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 40 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 7A 44 02 23 53 00 0D 12
-84 12 7C 44 B6 44 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D AA 44 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D B6 43 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-70 44 AE 44 EE 40 EE 44 CA 44 BC 43 74 48 22 43
-C0 44 42 43 01 2E 0E 93 E3 37 38 43 E2 3F E8 44
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 40 14 40
-BA 47 0A 40 22 00 8C 45 5A 45 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-34 45 82 2E 22 00 0D 12 84 12 44 45 0A 40 BC 43
-BA 47 C0 44 1A 42 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 40 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 40 35 40 D4 40
-30 4D 00 00 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 0E 47
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F 10 47
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 40 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D B8 47 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 40 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D C6 44 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D DA 44 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 40 74 48 8C 45 30 48
-9C 26 3D 40 38 48 DE 3E 3A 48 0A 4E 3E 4F 3D 40
-54 48 36 27 3D 40 2A 48 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 56 48 3E 4F 3D 40 2A 48 BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 F6 49
-CC 3F 5E 48 86 12 20 00 46 44 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 EE 43
-BC 40 24 48 24 44 56 44 14 40 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 41 0A 40 40 FF 28 40
-5E 44 14 40 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 41 3A 40 9E 48 7A 48 86 41 42 4F 52 54 22 00
-0D 12 84 12 44 45 0A 40 2A 41 BA 47 C0 44 EE 45
-01 27 0D 12 84 12 74 48 8C 45 F4 45 34 40 72 48
-C0 44 00 00 83 5B 27 5D 0D 12 84 12 F2 48 0A 40
-0A 40 BA 47 BA 47 C0 44 04 49 81 5B 82 43 BE 1D
-30 4D 6C 44 01 5D B2 43 BE 1D 30 4D 24 49 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 74 48 8C 45 F4 45 08 44
-34 40 72 48 56 44 34 40 66 49 0A 40 0A 40 BA 47
-BA 47 0A 40 BA 47 BA 47 C0 44 1A 49 01 3A 30 12
-B6 49 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 74 48
-8C 45 84 49 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 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 40 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 41 6C 49 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 40 C0 44 BA 47 C8 49 1C 49
-C0 44 1A 48 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D 04 48 06 43 52 45
-41 54 45 00 B0 12 72 49 BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F FA 49 07 3A 4E 4F 4E 41 4D 45 30 12
-B6 49 2F 83 8F 4E 00 00 1A 42 C6 1D 1A B3 0A 63
-0E 4A 39 40 10 02 08 49 28 53 99 3F 2E 43 05 44
-45 46 45 52 B0 12 72 49 BA 40 30 40 FC FF BA 40
-F4 4D FE FF A8 3F BE 4F 02 00 3E 4F 30 4D 14 4A
-82 49 53 00 0D 12 82 93 BE 1D 06 24 84 12 08 49
-0A 40 86 4A BA 47 C0 44 84 12 F2 48 86 4A C0 44
-2C 4A 04 43 4F 44 45 00 B0 12 72 49 A2 82 C6 1D
-82 43 78 5C 0D 12 84 12 5A 4D 2C 4D C0 44 90 4A
-07 48 44 4E 43 4F 44 45 B2 40 30 4D DA 1D EC 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 C8 49
-80 4D B4 4D C0 44 B2 4A 07 43 4F 44 45 4E 4E 4D
-30 12 BC 4A A6 3F 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 80 4D B4 4D C0 44
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F D0 4A 85 48 49 32 4C 4F 0D 12 84 12 28 40
-94 4C BA 47 1C 49 C0 4A C0 44 46 4A 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 5C 4B 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 40 00 00 38 44 74 48 8C 45
-0A 48 00 44 34 40 F4 4B 0E 44 14 40 06 5B 54 48
-45 4E 5D 00 66 4B CE 4B 8A 4B AC 4B C0 44 0E 44
-14 40 06 5B 45 4C 53 45 5D 00 66 4B E4 4B 8A 4B
-AA 4B C0 44 14 40 04 5B 49 46 5D 00 66 4B AC 4B
-3A 40 AA 4B E2 43 14 40 05 0D 0A 6B 6F 20 BC 43
-BC 40 AC 40 3A 40 AC 4B 9A 4B 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 0A 4C 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 74 48 8C 45
-F4 45 18 4C C0 44 1E 4C 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 28 4C 50 44 C0 44 50 4C
-B2 4E 0A 18 B2 4E 0C 18 BE 12 3E 4F 3D 41 DB 3C
-CC 47 06 4D 41 52 4B 45 52 00 B0 12 72 49 BA 40
-85 12 FC FF BA 40 4E 4C FE FF 28 83 8A 48 00 00
-9A 42 C8 1D 02 00 BA 40 AA 40 04 00 B2 50 06 00
-C6 1D 9D 3E 2E 53 30 4D 6E 4A 05 44 4F 45 53 3E
-1A 42 BA 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41
-30 4D 86 45 0A 56 4F 43 41 42 55 4C 41 52 59 00
-0D 12 84 12 34 4A 0A 40 10 00 0A 40 00 00 3E 40
-0A 40 00 00 BA 47 60 40 D0 4C 28 40 0A 40 C8 1D
-00 44 40 44 BA 47 48 44 A0 4C 0A 40 CA 1D 48 44
-C0 44 F0 48 05 46 4F 52 54 48 85 12 EA 4C 54 4D
-AC 63 E0 61 F4 4C 44 4B F8 42 FA 61 9A 4D 26 4E
-02 64 AA 67 C6 66 00 00 9E 63 2E 49 54 46 00 00
-D8 48 09 41 53 53 45 4D 42 4C 45 52 85 12 EA 4C
-44 5B DC 5A 40 5A 00 55 92 53 00 00 08 59 00 00
-68 5C 64 5D F6 53 AA 5D 10 5B 00 00 00 00 DA 54
-1E 4D 22 4D 04 41 4C 53 4F 00 3A 40 0C 00 39 40
-D6 1D 08 49 28 53 19 83 18 83 E8 49 00 00 1A 83
-FA 23 30 4D 3A 49 08 50 52 45 56 49 4F 55 53 00
-3A 40 0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00
-18 53 1A 83 FB 23 30 4D 72 45 04 4F 4E 4C 59 00
-82 43 CC 1D 30 4D 9A 4C 0B 44 45 46 49 4E 49 54
-49 4F 4E 53 92 42 CA 1D DA 1D 30 4D FA 4C A0 4D
-B4 4D C4 4D 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 76 4D 09 50 57 52 5F 53 54 41
-54 45 85 12 BC 4D 50 4D 08 68 40 45 09 52 53 54
-5F 53 54 41 54 45 92 42 0A 18 08 4E 92 42 0C 18
-06 4E EF 3F F8 4D 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 08 4E 92 42 C8 1D 06 4E 30 4D 0C 4E
-08 52 53 54 5F 48 45 52 45 00 92 42 C6 1D 0A 18
-92 42 C8 1D 0C 18 EC 3F 3E 90 0E 00 D2 27 2E 92
-DA 37 0E 93 CE 37 39 40 10 00 29 83 B9 43 80 FF
-FC 23 B9 40 A8 4E FE FF 29 83 B9 40 02 42 FE FF
-39 90 AE FF F9 23 39 40 14 18 B2 49 04 42 B2 49
-FA 40 B2 49 02 40 B2 49 22 42 B2 49 F0 FF B2 49
-0A 18 B2 49 0C 18 B7 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 10 29 83 89 43 00 1C FC 23 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 B2 40 33 00 64 01 D2 43 61 01
-39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18 1E D2
-9E 01 B0 12 F8 40 20 42 38 40 C0 1D 0A 4E 39 48
-2E 48 09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27
-1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12
-12 12 C4 1D 84 12 8C 45 F4 45 50 44 34 40 88 4F
-B0 46 34 40 A2 4F 9C 4F 8A 4F 3C 4E 3C 80 87 12
-05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17
-30 41 A4 4F B2 41 C4 1D 3E 41 84 12 0A 40 2B 00
-8C 45 F4 45 50 44 34 40 C0 4F B0 46 34 40 72 48
-1A 44 8C 45 B0 46 34 40 72 48 CC 4F 3E 5F E7 3F
-32 B0 00 02 01 24 3E 4F 30 41 3E 40 28 00 B0 12
-6C 4F B0 12 D0 4F 19 42 C6 1D A2 53 C6 1D 89 4E
-00 00 3E 40 29 00 1C 15 92 92 C0 1D C4 1D 02 20
-30 40 E0 49 12 12 C4 1D 92 53 C4 1D 84 12 8C 45
-B0 46 34 40 22 50 18 50 21 53 3E 90 10 00 84 2D
-BE 2B 24 50 B2 41 C4 1D BA 3F 0D 12 84 12 74 48
-48 4F 34 50 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 6C 4F
-B0 12 D0 4F 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 6C 4F B0 12 D0 4F
-EB 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 F6 4F 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-F6 4F 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E D8 3F B0 12 F6 4F FA 23 3C 50 10 00 B0 12
-DA 4F EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12
-84 12 74 48 48 4F 08 51 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C5 3F B0 12 F6 4F E0 23
-3C 50 80 00 B0 12 DA 4F DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 40 00 13 BA 47 C0 44 0A 40
-2C 00 2A 50 FE 50 48 51 09 4B 2E 4E 0E DC A0 3F
-32 4B 03 4D 4F 56 85 12 3E 51 00 40 52 51 05 4D
-4F 56 2E 42 85 12 3E 51 40 40 00 00 03 41 44 44
-85 12 3E 51 00 50 6C 51 05 41 44 44 2E 42 85 12
-3E 51 40 50 78 51 04 41 44 44 43 00 85 12 3E 51
-00 60 86 51 06 41 44 44 43 2E 42 00 85 12 3E 51
-40 60 2C 51 04 53 55 42 43 00 85 12 3E 51 00 70
-A4 51 06 53 55 42 43 2E 42 00 85 12 3E 51 40 70
-B2 51 03 53 55 42 85 12 3E 51 00 80 C2 51 05 53
-55 42 2E 42 85 12 3E 51 40 80 08 4B 03 43 4D 50
-85 12 3E 51 00 90 DC 51 05 43 4D 50 2E 42 85 12
-3E 51 40 90 E2 4A 04 44 41 44 44 00 85 12 3E 51
-00 A0 F6 51 06 44 41 44 44 2E 42 00 85 12 3E 51
-40 A0 E8 51 03 42 49 54 85 12 3E 51 00 B0 14 52
-05 42 49 54 2E 42 85 12 3E 51 40 B0 20 52 03 42
-49 43 85 12 3E 51 00 C0 2E 52 05 42 49 43 2E 42
-85 12 3E 51 40 C0 3A 52 03 42 49 53 85 12 3E 51
-00 D0 48 52 05 42 49 53 2E 42 85 12 3E 51 40 D0
-00 00 03 58 4F 52 85 12 3E 51 00 E0 62 52 05 58
-4F 52 2E 42 85 12 3E 51 40 E0 94 51 03 41 4E 44
-85 12 3E 51 00 F0 7C 52 05 41 4E 44 2E 42 85 12
-3E 51 40 F0 74 48 2A 50 9A 52 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F CE 51 03 52 52 43
-85 12 94 52 00 10 AC 52 05 52 52 43 2E 42 85 12
-94 52 40 10 B8 52 04 53 57 50 42 00 85 12 94 52
-80 10 C6 52 03 52 52 41 85 12 94 52 00 11 D4 52
-05 52 52 41 2E 42 85 12 94 52 40 11 E0 52 03 53
-58 54 85 12 94 52 80 11 00 00 04 50 55 53 48 00
-85 12 94 52 00 12 FA 52 06 50 55 53 48 2E 42 00
-85 12 94 52 40 12 54 52 04 43 41 4C 4C 00 85 12
-94 52 80 12 1A 53 0E 4A 0D 12 84 12 36 45 14 40
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 41
-EE 52 03 53 3E 3D 86 12 00 38 42 53 02 53 3C 00
-86 12 00 34 08 53 03 30 3E 3D 86 12 00 30 56 53
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C 6A 53 03 55 3E 3D 86 12 00 28 60 53 03 30
-3C 3E 86 12 00 24 7E 53 02 30 3D 00 86 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 74 53 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 B1 2F 88 DA 00 00 30 4D 04 52 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 18 53 05 42 45 47 49 4E
-30 40 28 40 A8 53 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D 88 52 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 96 53
-1A 44 C0 44 4C 53 06 52 45 50 45 41 54 00 0D 12
-84 12 2A 54 AE 53 C0 44 5A 54 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D
-EA 53 03 42 57 31 85 12 58 54 00 00 72 54 03 42
-57 32 85 12 58 54 00 00 7E 54 03 42 57 33 85 12
-58 54 00 00 96 54 3D 41 1A 42 C6 1D 28 4E B2 92
-C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 94 54 00 00
-B6 54 03 46 57 32 85 12 94 54 00 00 C2 54 03 46
-57 33 85 12 94 54 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 0D 12 84 12 F2 48 4E 48 C0 44 CE 54
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-F1 3F 74 48 48 4F 18 55 92 53 C4 1D 3E 40 2C 00
-84 12 8C 45 B0 46 34 40 72 48 F4 50 2E 55 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E 46 54 04 52 52 43
-4D 00 85 12 12 55 50 00 5C 55 04 52 52 41 4D 00
-85 12 12 55 50 01 6A 55 04 52 4C 41 4D 00 85 12
-12 55 50 02 78 55 04 52 52 55 4D 00 85 12 12 55
-50 03 88 53 05 50 55 53 48 4D 85 12 12 55 00 15
-94 55 04 50 4F 50 4D 00 85 12 12 55 00 17 86 55
-06 52 52 43 4D 2E 41 00 85 12 12 55 40 00 B0 55
-06 52 52 41 4D 2E 41 00 85 12 12 55 40 01 C0 55
-06 52 4C 41 4D 2E 41 00 85 12 12 55 40 02 D0 55
-06 52 52 55 4D 2E 41 00 85 12 12 55 40 03 A2 55
-07 50 55 53 48 4D 2E 41 85 12 12 55 00 14 F0 55
-06 50 4F 50 4D 2E 41 00 85 12 12 55 00 16 8A 54
-05 43 41 4C 4C 41 0D 12 84 12 74 48 48 4F 20 56
-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 F6 4F 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 F6 4F 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 6C 4F BB 4F
-02 00 DC 3F 7E 90 26 00 02 20 2C 53 F4 3F 7E 40
-28 00 1C 83 B0 12 6C 4F BB 4F 02 00 3E 40 29 00
-CB 3F 0D 12 84 12 74 48 48 4F AC 56 69 4E 3E 4F
-3C 4F 2C 4C 1B 42 C6 1D A2 53 C6 1D 79 90 52 00
-0A 20 B0 12 F6 4F 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 6C 4F 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 F6 4F D8 23 3C D0 10 00 3E 40 2B 00 B0 12
-F6 4F 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 6C 4F
-BB 4F 02 00 3E 40 29 00 EA 3F 0D 12 84 12 74 48
-48 4F 54 57 3B 4F 2C 4B 69 4E 7E 40 20 00 79 90
-52 00 03 20 B0 12 F6 4F B0 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 6C 4F BB 4F 02 00 A0 3F 3C D0 70 00 3E 40
-28 00 B0 12 6C 4F BB 4F 02 00 3E 40 29 00 E2 3F
-0A 40 2C 00 A2 56 4A 57 E4 43 C0 44 5E 51 04 4D
-4F 56 41 00 85 12 A0 57 C0 00 10 56 04 43 4D 50
-41 00 85 12 A0 57 D0 00 24 54 04 41 44 44 41 00
-85 12 A0 57 E0 00 E0 55 04 53 55 42 41 00 85 12
-A0 57 F0 00 0D 12 84 12 74 48 48 4F EE 57 69 4E
-3E 4F 3C 40 00 18 79 90 52 00 05 20 B0 12 F6 4F
-0E 4C 3D 41 30 4D 82 43 78 5C 79 90 23 00 0B 20
-92 53 C4 1D B0 12 6C 4F 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 F6 4F E2 23 3E 40 2B 00
-92 53 C4 1D B0 12 F6 4F 92 92 C0 1D C4 1D D8 27
-92 53 C4 1D D5 3F 3E 40 28 00 B0 12 6C 4F 8F 4E
-00 00 3E 40 29 00 B0 12 F6 4F 3E 4F 3E F0 0F 00
-0C DE EA 3F 0D 12 84 12 74 48 48 4F 7E 58 3C 4F
-69 4E 3E 40 20 00 79 90 52 00 BA 27 82 43 78 5C
-79 90 26 00 08 20 92 53 C4 1D B0 12 6C 4F 2F 53
-3E F0 0F 00 BE 3F 3E 40 28 00 B0 12 6C 4F F7 3F
-B2 4F C4 1D 1B 42 C6 1D A2 53 C6 1D 0C 4E 3E 4F
-1C D2 78 5C 82 43 78 5C 3C DE 8B 4C 00 00 30 4D
-0A 40 C4 1D 40 44 0A 40 2C 00 E4 57 74 58 B0 58
-3A 40 3E 51 AE 57 04 4D 4F 56 58 00 85 12 D0 58
-40 00 00 40 E6 58 06 4D 4F 56 58 2E 41 00 85 12
-D0 58 00 00 40 40 F6 58 06 4D 4F 56 58 2E 42 00
-85 12 D0 58 40 00 40 40 CA 57 04 41 44 44 58 00
-85 12 D0 58 40 00 00 50 1A 59 06 41 44 44 58 2E
-41 00 85 12 D0 58 00 00 40 50 2A 59 06 41 44 44
-58 2E 42 00 85 12 D0 58 40 00 40 50 3C 59 05 41
-44 44 43 58 85 12 D0 58 40 00 00 60 4E 59 07 41
-44 44 43 58 2E 41 85 12 D0 58 00 00 40 60 5E 59
-07 41 44 44 43 58 2E 42 85 12 D0 58 40 00 40 60
-D8 57 05 53 55 42 43 58 85 12 D0 58 40 00 00 70
-82 59 07 53 55 42 43 58 2E 41 85 12 D0 58 00 00
-40 70 92 59 07 53 55 42 43 58 2E 42 85 12 D0 58
-40 00 40 70 A4 59 04 53 55 42 58 00 85 12 D0 58
-40 00 00 80 B6 59 06 53 55 42 58 2E 41 00 85 12
-D0 58 00 00 40 80 C6 59 06 53 55 42 58 2E 42 00
-85 12 D0 58 40 00 40 80 BC 57 04 43 4D 50 58 00
-85 12 D0 58 40 00 00 90 EA 59 06 43 4D 50 58 2E
-41 00 85 12 D0 58 00 00 40 90 FA 59 06 43 4D 50
-58 2E 42 00 85 12 D0 58 40 00 40 90 CC 53 05 44
-41 44 44 58 85 12 D0 58 40 00 00 A0 1E 5A 07 44
-41 44 44 58 2E 41 85 12 D0 58 00 00 40 A0 2E 5A
-07 44 41 44 44 58 2E 42 85 12 D0 58 40 00 40 A0
-0C 5A 04 42 49 54 58 00 85 12 D0 58 40 00 00 B0
-52 5A 06 42 49 54 58 2E 41 00 85 12 D0 58 00 00
-40 B0 62 5A 06 42 49 54 58 2E 42 00 85 12 D0 58
-40 00 40 B0 74 5A 04 42 49 43 58 00 85 12 D0 58
-40 00 00 C0 86 5A 06 42 49 43 58 2E 41 00 85 12
-D0 58 00 00 40 C0 96 5A 06 42 49 43 58 2E 42 00
-85 12 D0 58 40 00 40 C0 A8 5A 04 42 49 53 58 00
-85 12 D0 58 40 00 00 D0 BA 5A 06 42 49 53 58 2E
-41 00 85 12 D0 58 00 00 40 D0 CA 5A 06 42 49 53
-58 2E 42 00 85 12 D0 58 40 00 40 D0 6E 52 04 58
-4F 52 58 00 85 12 D0 58 40 00 00 E0 EE 5A 06 58
-4F 52 58 2E 41 00 85 12 D0 58 00 00 40 E0 FE 5A
-06 58 4F 52 58 2E 42 00 85 12 D0 58 40 00 40 E0
-70 59 04 41 4E 44 58 00 85 12 D0 58 40 00 00 F0
-22 5B 06 41 4E 44 58 2E 41 00 85 12 D0 58 00 00
-40 F0 32 5B 06 41 4E 44 58 2E 42 00 85 12 D0 58
-40 00 40 F0 0A 40 C4 1D 40 44 74 48 E4 57 B0 58
-3A 40 94 52 D8 59 04 52 52 43 58 00 85 12 54 5B
-40 00 00 10 66 5B 06 52 52 43 58 2E 41 00 85 12
-54 5B 00 00 40 10 76 5B 06 52 52 43 58 2E 42 00
-85 12 54 5B 40 00 40 10 88 5B 04 52 52 55 58 00
-85 12 54 5B 40 01 00 10 9A 5B 06 52 52 55 58 2E
-41 00 85 12 54 5B 00 01 40 10 AA 5B 06 52 52 55
-58 2E 42 00 85 12 54 5B 40 01 40 10 BC 5B 05 53
-57 50 42 58 85 12 54 5B 40 00 80 10 CE 5B 07 53
-57 50 42 58 2E 41 85 12 54 5B 00 00 80 10 DE 5B
-04 52 52 41 58 00 85 12 54 5B 40 00 00 11 F0 5B
-06 52 52 41 58 2E 41 00 85 12 54 5B 00 00 40 11
-00 5C 06 52 52 41 58 2E 42 00 85 12 54 5B 40 00
-40 11 12 5C 04 53 58 54 58 00 85 12 54 5B 40 00
-80 11 24 5C 06 53 58 54 58 2E 41 00 85 12 54 5B
-00 00 80 11 00 56 05 50 55 53 48 58 85 12 54 5B
-40 00 00 12 46 5C 07 50 55 53 48 58 2E 41 85 12
-54 5B 00 00 40 12 56 5C 07 50 55 53 48 58 2E 42
-85 12 54 5B 40 00 40 12 00 00 34 5C 03 52 50 54
-0D 12 84 12 74 48 48 4F 8A 5C 29 4E 7E 40 20 00
-79 90 52 00 06 20 B0 12 F6 4F 03 24 3E D0 80 00
-05 3C B0 12 6C 4F 1E 83 3E F0 0F 00 82 4E 78 5C
-3E 4F 3D 41 30 4D D2 C3 23 02 E2 B2 60 02 02 24
-30 40 02 42 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 3E 5D 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 1A 43 E1 3F 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 7C 5C 08 52 45 41 44 5F 53 57 58 00 1C D3
-F2 40 51 00 19 20 B0 12 B6 5C 38 20 B0 12 3E 5D
-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 34 54 09 57 52 49 54 45
-5F 53 57 58 2C D3 F0 40 58 00 5F C2 B0 12 B6 5C
-15 20 3A 40 FE FF 29 43 B0 12 42 5D D2 49 00 1E
-4E 06 03 43 19 53 39 90 00 02 F8 23 39 40 03 00
-B0 12 40 5D 7A C0 E1 00 6A 92 D9 27 8C 10 1C 52
-4C 06 D2 D3 23 02 0D 12 84 12 34 43 14 40 0B 3C
-20 53 44 20 45 72 72 6F 72 21 0C 5E 2F 83 8F 4E
-00 00 B2 40 10 00 DC 1D 0E 4C 84 12 00 45 36 41
-B0 12 9C 41 0E 93 9C 24 E2 B2 60 02 99 20 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 39 42 B0 12 40 5D D2 C3
-23 02 2C 42 B2 40 95 00 14 20 B2 40 00 40 18 20
-B0 12 3A 5D 02 24 30 40 EC 5D B0 12 3E 5D 7A 93
-FC 23 B2 40 87 AA 14 20 92 43 16 20 B2 40 00 48
-18 20 B0 12 3A 5D 29 42 B0 12 40 5D 92 43 14 20
-82 43 16 20 78 43 3C 42 B2 40 00 77 18 20 B0 12
-3A 5D B2 40 40 69 18 20 B0 12 F8 5C 03 24 58 83
-F3 23 D9 3F 0C 5C A2 43 16 20 B2 40 00 50 18 20
-B0 12 F8 5C D0 23 92 D3 40 06 82 43 46 06 92 C3
-40 06 09 43 B0 12 6E 5D 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 F2 5D 09 43 B0 12 6E 5D 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
-30 41 B0 12 AA 40 39 40 E0 00 29 83 89 43 38 20
-FC 23 82 43 32 20 30 41 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 A6 5F 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 AB 20 BB 80 00 02 12 00 8B 73
-14 00 DB 53 03 00 DB 92 12 20 03 00 14 28 CB 43
-03 00 B0 12 78 5F 1A 52 08 20 09 43 B0 12 6E 5D
-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 E6 5F 1A 42 1A 20
-19 42 1C 20 6C 3E 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 5C 27 C9 37
-8B 43 16 00 7A 93 02 24 07 38 95 3F B2 40 1C 21
-CA 40 B2 40 56 43 7A 42 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 66 60 22 C3 30 41 1B 42
-32 20 0B 93 FB 27 EB 93 02 00 04 20 B0 12 42 66
-B0 12 0A 66 CB 93 02 00 E4 37 1E 4B 18 00 9F 4B
-1A 00 00 00 31 50 06 00 3D 41 B0 12 62 61 02 24
-30 40 4A 43 B2 40 3C 1D CA 40 B2 40 7C 42 7A 42
-30 40 34 43 40 4E 85 52 45 41 44 22 5A 43 19 3C
-B4 4C 86 57 52 49 54 45 22 00 6A 43 12 3C A8 4D
-84 44 45 4C 22 00 6A 42 0C 3C F8 4A 05 43 4C 4F
-53 45 B0 12 7E 61 30 4D 62 4C 85 4C 4F 41 44 22
-7A 43 2F 83 8F 4E 00 00 0E 4A 82 93 BE 1D 0B 24
-0D 12 84 12 0A 40 0A 40 BA 47 BA 47 44 45 0A 40
-36 62 BA 47 C0 44 0D 12 84 12 0A 40 22 00 8C 45
-0A 48 34 62 3D 41 36 4F 0E 56 82 4E 36 20 1C 43
-92 42 2C 20 22 20 92 42 2E 20 24 20 0E 96 8D 24
-F6 90 3A 00 01 00 01 20 26 53 F6 90 5C 00 00 00
-08 20 16 53 92 42 02 20 22 20 82 43 24 20 0E 96
-70 24 82 46 34 20 B0 12 A6 5F 35 40 20 00 A2 93
-02 20 04 24 92 92 22 20 02 20 02 24 15 42 12 20
-B0 12 8C 60 2C 43 0A 43 08 4A 58 0E 08 58 82 48
-30 20 C8 93 00 1E 61 24 39 42 F8 96 00 1E 04 20
-18 53 19 83 FA 23 16 53 F6 90 2E 00 FF FF 19 24
-39 50 03 00 B0 12 04 60 06 20 F6 90 5C 00 FF FF
-29 24 0E 96 27 28 16 42 34 20 1A 53 3A 90 10 00
-DB 23 92 53 1A 20 82 63 1C 20 15 83 D1 23 2C 42
-3C 3C F6 90 2E 00 FE FF EE 27 B0 12 04 60 EB 23
-39 40 03 00 F8 96 00 1E 04 20 18 53 19 83 FA 23
-09 3C 0E 96 E0 2F F6 90 5C 00 FF FF DC 23 B0 12
-04 60 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 96
-8E 2F 92 42 22 20 2C 20 92 42 24 20 2E 20 8F 43
-00 00 03 3C 2A 4F B0 12 96 60 35 40 D4 40 36 40
-E2 40 3A 4F 3E 4F 0A 93 04 24 7A 93 3C 20 0C 93
-01 20 30 4D 0D 12 84 12 34 43 14 40 0B 3C 20 4F
-70 65 6E 45 72 72 6F 72 3A 40 0A 5E 38 4C 05 5B
-50 46 41 5D 2E 53 2E 4E 30 4D EC 61 04 42 4F 4F
-54 00 39 40 20 5E 2E 93 01 2C 30 41 E2 B2 60 02
-02 24 10 49 02 00 89 12 3F 40 7E 1C 8F 43 00 00
-82 43 BE 1D B2 40 00 1C 00 1C 31 40 E0 1C 84 12
-14 40 0F 4C 4F 41 44 22 20 42 4F 4F 54 2E 34 54
-48 22 3A 40 A2 48 1A 93 BB 20 0C 93 C3 23 30 4D
-C6 61 04 52 45 41 44 00 2F 83 8F 4E 00 00 1E 42
-32 20 B0 12 18 60 1E 82 32 20 30 4D 2C 43 12 12
-2A 20 18 42 02 20 08 58 2A 41 82 9A 0A 20 A6 24
-1A 52 08 20 09 43 B0 12 6E 5D 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 E7 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
-09 43 B0 12 B4 5D 3A 41 1A 52 0C 20 09 43 B0 12
-B4 5D 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 5E 65 39 40 03 00 7A 4B
-C8 4A 00 1E 82 9B 36 20 12 28 0D 12 3D 40 0F 00
-3C 40 0E 65 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 DC 20 2C 93 0E 24 0C 93 AB 24 0D 12 84 12
-14 40 0C 3C 20 57 72 69 74 65 45 72 72 6F 72 00
-3A 40 0A 5E B0 12 1C 64 92 42 26 20 22 20 92 42
-28 20 24 20 B0 12 9A 64 B0 12 8C 60 18 42 30 20
-F8 40 20 00 0B 1E B0 12 B2 64 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 C9 27 FB 90 2E 00 00 00
-C5 27 39 40 0B 00 B0 12 2E 65 B0 12 4C 66 2A 43
-B0 12 96 60 0C 93 BA 23 30 4D 1A 4B 04 00 19 4B
-06 00 B0 12 6E 5D B0 12 B2 64 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
-B4 5D 9B 52 1E 20 12 00 8B 63 14 00 1A 42 1A 20
-19 42 1C 20 30 40 B4 5D B2 40 00 02 1E 20 1B 42
-32 20 B0 12 42 66 82 43 1E 20 DB 53 03 00 DB 92
-12 20 03 00 25 20 CB 43 03 00 B0 12 78 5F 08 12
-0A 12 B0 12 1C 64 2A 91 08 24 B0 12 9A 64 2A 41
-1A 52 08 20 09 43 B0 12 6E 5D 3A 41 38 41 98 42
-26 20 00 1E 92 93 02 20 03 24 98 42 28 20 02 1E
-B0 12 9A 64 9B 42 26 20 0E 00 9B 42 28 20 10 00
-30 40 E6 5F D2 61 05 57 52 49 54 45 B0 12 58 66
-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 88 60 30 4D 0C 93 3B 20
-38 90 E0 01 03 2C C8 93 20 1E 02 24 7C 40 E5 00
-C8 4C 00 1E B0 12 4C 66 B0 12 84 5F 82 4A 2A 20
-0B 4A 1A 52 08 20 09 43 B0 12 6E 5D 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 84 5F 0B 9A E6 27
-0A 12 0A 4B B0 12 9A 64 3A 41 DA 3F 0A 4B B0 12
-9A 64 B0 12 7E 61 30 4D FC 44 08 54 45 52 4D 32
-53 44 22 00 0D 12 84 12 E6 61 0A 40 02 00 28 40
-0A 48 36 62 C6 67 3D 41 0A 43 B0 12 DA 41 92 B3
-DC 05 FD 27 59 42 CC 05 C2 49 CE 05 69 92 0D 24
-CA 49 00 1E 1A 53 3A 90 FF 01 F1 2B 03 24 B0 12
-58 66 EA 3F B0 12 C8 41 EA 3F B0 12 C8 41 82 4A
-1E 20 B0 12 7E 61 30 4D
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-02 42 02 42 02 42 02 42 02 42 02 42 02 42 02 42
-96 42 02 42 02 42 02 42 02 42 02 42 02 42 A8 4E
-q
diff --git a/binaries/MSP_EXP430FR6989_16MHz_115200.txt b/binaries/MSP_EXP430FR6989_16MHz_115200.txt
new file mode 100644 (file)
index 0000000..5843d58
--- /dev/null
@@ -0,0 +1,327 @@
+@1800
+80 3E 08 00 A1 F7 18 00 FD FF 35 01 10 00 A1 59
+EE 46 7E 45 84 45 54 45 5E 47 4C 57 04 50 BE 4F
+BE 4F D4 46 92 47 5A 47 3C 1D E0 1C B2 49 B6 44
+C4 44 CE 48 20 00 0A 00 00 1C 7E 45 84 45 54 45
+5E 47 4C 57 04 50 BE 4F BE 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 12 3D 0E 93 3E 4F
+A7 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 D2 46 B2 49
+90 47 B2 49 58 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 78 50 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 5E 47 92 C3 FC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 FC 05 F3 23
+B0 12 D0 44 D8 48 AC 44 52 45 A0 47 1E 44 04 1B
+5B 37 6D 00 C2 47 C2 47 1E 44 04 1B 5B 30 6D 00
+C2 47 0E 4D B0 12 7E 45 B2 40 81 00 E0 05 92 42
+02 18 E6 05 92 42 04 18 E8 05 F2 D0 30 00 2A 02
+92 C3 E0 05 92 D3 FA 05 92 C3 30 01 30 41 92 B3
+EA 05 FD 23 30 41 92 12 3E 18 84 12 A0 47 1E 44
+07 0D 0A 1B 5B 37 6D 23 C2 47 26 4A 1E 44 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 C2 47 0A 44 40 FF 32 44
+EE 48 F2 49 1E 44 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 44 46 45 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 45 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 00 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+B2 D3 06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43
+22 02 D2 D3 24 02 B2 43 46 02 B2 43 42 02 B2 43
+66 02 B2 43 62 02 B2 43 86 02 B2 40 7F FF 82 02
+F2 43 26 03 F2 43 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 B2 40 33 00 64 01 D2 43
+61 01 39 40 40 00 18 42 00 18 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 19 42
+9E 01 1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49
+B0 12 D0 44 86 45 00 00 0C 41 43 43 45 50 54 00
+30 40 D4 46 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40
+20 00 3B 40 32 47 3C 40 3E 47 5D 15 89 3E 21 52
+3A 17 58 42 EC 05 48 9B 09 20 A2 B3 FC 05 FD 27
+B2 40 13 00 EE 05 D2 D3 22 02 30 41 48 9C 06 2C
+78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C
+CE 48 00 00 1E 53 A2 B3 FC 05 FD 27 C2 48 EE 05
+30 4D 34 47 2D 83 92 B3 FC 05 DB 23 FC 3F 3E 8F
+3D 41 92 B3 FC 05 FD 27 58 42 EC 05 08 4C EB 3F
+00 00 06 4B 45 59 30 40 5A 47 30 12 70 47 A2 B3
+FC 05 FD 27 B2 40 11 00 EE 05 D2 C3 22 02 30 41
+2F 83 8F 4E 00 00 92 B3 FC 05 FD 27 B0 12 FA 46
+1E 42 EC 05 30 4D 00 00 08 45 4D 49 54 00 30 40
+92 47 08 4E 3E 4F C7 3F 88 47 08 45 43 48 4F 00
+B2 40 C2 48 2C 47 30 4D 00 00 0C 4E 4F 45 43 48
+4F 00 B2 40 30 4D 2C 47 30 4D 00 00 08 54 59 50
+45 00 0D 12 3D 40 D2 47 29 4F 8F 4E 00 00 7E 49
+DE 3F D4 47 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53
+3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F
+3E 4F 5F 22 F9 98 00 00 5C 22 19 53 1C 83 FA 23
+2D 53 30 4D 2F 53 3E 4F 1E 83 53 22 9B 24 52 47
+0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A 44 00 00
+F2 48 E4 47 36 4A F0 4C B0 44 60 48 14 44 06 5B
+54 48 45 4E 5D 00 E8 47 3E 48 04 48 22 48 14 44
+06 5B 45 4C 53 45 5D 00 E8 47 50 48 04 48 20 48
+1E 44 04 5B 49 46 5D 00 E8 47 22 48 B2 44 20 48
+1E 44 05 0D 6B 6F 20 0A C2 47 9A 44 84 44 B2 44
+22 48 10 48 0D 5B 54 48 45 4E 5D 00 30 4D 74 48
+09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D 80 48
+13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 E4 47
+36 4A 9E 4A 42 4C B2 49 90 48 17 5B 55 4E 44 45
+46 49 4E 45 44 5D 0D 12 84 12 E4 47 36 4A 9E 4A
+C2 48 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83
+8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D
+8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F
+3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D C8 46
+02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3
+30 4D 3E 8F 01 28 0E F3 30 4D D8 45 05 53 22 00
+82 43 C0 1D 0D 12 84 12 0A 44 1E 44 A0 4C 0A 44
+22 00 36 4A 36 49 B2 40 20 00 C0 1D 1A 53 1A B3
+82 6A C8 1D 3E 4F 3D 41 30 4D AA 47 05 2E 22 00
+0D 12 84 12 20 49 0A 44 C2 47 A0 4C B2 49 00 00
+04 3C 23 00 B2 40 B2 1D B2 1D 30 4D 1C 49 02 23
+1B 42 BE 1D 2C 4F 2F 83 B0 12 46 44 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 6E 49 04 23
+53 00 0D 12 84 12 70 49 AA 49 2D 83 09 DE 09 93
+E1 23 3D 41 30 4D 9E 49 04 23 3E 00 9F 42 B2 1D
+00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C
+44 00 4A 4E 3E 4F DB 3F B8 49 08 53 49 47 4E 00
+0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 9A 47 04 55
+2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3
+06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
+64 49 E4 47 D2 49 A2 49 CE 48 E0 49 BC 49 C2 47
+B2 49 4C 49 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00
+08 57 4F 52 44 00 3C 40 C2 1D 39 4C 38 4C 09 58
+38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42
+C0 1D F8 90 27 00 00 00 04 20 E8 98 02 00 01 20
+0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24
+1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B
+F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E
+CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83
+0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00
+78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93
+F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99
+01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49
+6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D 24 4A
+0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F
+29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28
+7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C
+82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04
+09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48
+02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E
+06 00 08 43 09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15
+3D 40 A8 4B 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F
+2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00
+5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C
+01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83
+FC 9C 00 00 E0 23 AE 27 AA 4B 2F 24 2D 83 6A 4C
+7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02
+7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49
+02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28
+79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49
+00 00 0E 4B 2C 15 B0 12 3E 44 2A 17 E8 3F 9F 4F
+04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 60 49 03 5C 92 42 C2 1D C6 1D
+30 4D 0D 12 84 12 84 44 E4 47 36 4A B0 44 7A 4D
+9E 4A 64 4C 0A 4E 3E 4F 3D 40 7E 4C 6D 27 3D 40
+58 4C 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41 80 4C
+3E 4F 3D 40 58 4C 19 20 DE 53 00 00 68 4E 08 5E
+F8 40 3F 00 00 00 3D 40 56 4E 2A 3C 48 4C 02 2C
+A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D
+9E 4C 0F 4C 49 54 45 52 41 4C 82 93 BC 1D 0D 24
+09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A 44 00 00
+8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24
+8A 4E 02 00 EE 3F 30 4D DA 49 0A 43 4F 55 4E 54
+2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D 00 49
+0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40
+80 1C 0E 43 84 12 1E 44 02 0D 0A 00 C2 47 94 44
+52 4C E0 48 0A 49 1E 44 0B 73 74 61 63 6B 20 65
+6D 70 74 79 08 45 32 44 0A 44 40 FF 12 49 1E 44
+09 46 52 41 4D 20 66 75 6C 6C 08 45 B2 44 16 4D
+00 4D 0D 41 42 4F 52 54 22 00 0D 12 84 12 20 49
+0A 44 08 45 A0 4C B2 49 30 4A 02 27 0D 12 84 12
+E4 47 36 4A 9E 4A B0 44 7C 4D 44 49 88 4C AA 48
+07 5B 27 5D 0D 12 84 12 6C 4D 0A 44 0A 44 A0 4C
+A0 4C B2 49 80 4D 03 5B 82 43 BC 1D 30 4D 00 00
+02 5D B2 43 BC 1D 30 4D F8 48 11 50 4F 53 54 50
+4F 4E 45 00 0D 12 84 12 E4 47 36 4A 9E 4A B0 44
+7C 4D 0A 49 AC 44 D4 4D 0A 44 0A 44 A0 4C A0 4C
+0A 44 A0 4C A0 4C B2 49 00 00 02 3A 30 12 2A 4E
+92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 E4 47 36 4A
+F2 4D 3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E
+5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58
+00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F
+BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12 FC FF
+BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F BA 1D
+66 25 84 12 1E 44 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 12 45 96 4D 03 3B 82 93 BC 1D
+F4 26 0D 12 84 12 0A 44 B2 49 A0 4C 3C 4E 98 4D
+B2 49 00 00 12 49 4D 4D 45 44 49 41 54 45 18 42
+B4 1D D8 D3 00 00 30 4D EA 4C 0C 43 52 45 41 54
+45 00 B0 12 E0 4D BA 40 86 12 FC FF 8A 4A FE FF
+3A 3D BC 47 0A 44 4F 45 53 3E 1A 42 B8 1D BA 40
+85 12 00 00 8A 4D 02 00 3D 41 30 4D DA 4D 0E 3A
+4E 4F 4E 41 4D 45 30 12 2A 4E 2F 83 8F 4E 00 00
+1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02 08 49
+98 3F 74 4E 05 49 53 00 0D 12 82 93 BC 1D 08 20
+84 12 6C 4D F6 4E 3D 41 BE 4F 02 00 3E 4F 30 4D
+84 12 84 4D 0A 44 F8 4E A0 4C B2 49 8A 4E 08 43
+4F 44 45 00 B0 12 E0 4D A2 82 C8 1D 61 3C CC 49
+0E 48 44 4E 43 4F 44 45 B2 40 E4 4F CC 1D F2 3F
+00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12 3C 4E
+42 4F 3D 41 92 42 D0 1D CC 1D 5D 3C 0E 4F 0E 43
+4F 44 45 4E 4E 4D 30 12 18 4F B7 3F 00 00 0A 43
+4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12 00 00 BA 40
+84 12 02 00 A2 52 C8 1D B2 43 BC 1D E3 3F 00 00
+0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F
+20 4F 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D
+8A 4A FE FF 82 43 BC 1D B9 3F AC 4F B2 40 BE 4F
+D0 1D 82 4E CE 1D 30 40 44 49 85 12 AA 4F AA 4D
+52 4D 3C 50 4E 4F A4 4E EE 49 98 4A 6A 4D 92 4F
+E4 4E BE 4E 5A 4E B2 4C C6 50 F0 4A 00 00 00 00
+85 12 AA 4F 40 57 C4 55 24 57 EC 54 48 55 96 55
+72 56 7E 56 0E 54 32 55 00 00 00 00 80 4F FE 52
+00 00 9A 56 DE 4F B2 40 BE 4F CE 1D 82 43 D0 1D
+30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23
+30 41 00 00 0E 52 53 54 5F 53 45 54 39 40 C8 1D
+3A 40 42 18 B0 12 12 50 30 4D 24 50 0E 52 53 54
+5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 1D B0 12
+12 50 1A 42 CA 1D 3B 40 10 00 09 4A 08 49 29 83
+18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23
+2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00
+29 83 B9 43 80 FF FC 23 B9 40 06 46 FE FF 29 83
+B9 40 F2 45 FE FF 39 90 AE FF F9 23 39 40 10 18
+B2 49 E4 FF 3B 40 10 00 3A 40 3A 18 B0 12 16 50
+82 43 4A 18 C7 3F B8 50 B2 4E 42 18 BE 12 3E 4F
+3D 41 C0 3F A0 4D 0C 4D 41 52 4B 45 52 00 12 12
+C6 1D 0D 12 84 12 E4 47 36 4A 9E 4A AC 44 E4 50
+D8 48 78 4C E6 50 3E 4F 3D 41 B2 41 C6 1D B0 12
+E0 4D BA 40 85 12 FC FF BA 40 B6 50 FE FF 28 83
+8A 48 00 00 BA 40 82 44 02 00 A2 52 C8 1D 18 42
+B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00 30 4D
+12 12 C6 1D 84 12 36 4A 9E 4A AC 44 50 51 30 51
+3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C
+BE 90 B6 50 00 00 01 20 3E 52 2E 83 21 53 30 41
+48 4B AC 44 58 51 4C 51 5A 51 B2 41 C6 1D 30 41
+92 83 C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12 20 51
+15 20 3E 40 2B 00 B0 12 20 51 06 20 3E 40 2D 00
+B0 12 20 51 92 83 C6 1D 0E 12 1E 41 02 00 84 12
+36 4A 48 4B AC 44 7C 4D 9A 51 3E 51 3A 17 30 41
+B0 12 60 51 19 42 C8 1D 89 4E 00 00 A2 53 C8 1D
+3E 40 29 00 92 53 C6 1D 1A 42 C6 1D 3D 15 84 12
+36 4A 48 4B AC 44 D2 51 CA 51 3E 90 10 00 E6 2B
+7C 2D D4 51 A2 41 C6 1D E1 3F 03 20 B0 12 B8 51
+43 3C 7A 90 23 00 24 20 B0 12 68 51 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 C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D
+7A 90 26 00 05 20 3C 40 10 02 B0 12 68 51 F0 3F
+7A 90 40 00 14 20 3C 40 20 00 B0 12 B4 51 0C 20
+3C D0 10 00 3E 40 2B 00 B0 12 B8 51 92 92 C2 1D
+C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0
+10 00 B0 12 A0 51 F2 3F 03 20 B0 12 B8 51 F5 3F
+7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00
+B0 12 A0 51 EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D
+3A 40 20 00 19 42 C6 1D 19 52 C4 1D 7A 99 FE 27
+5A 49 FF FF 19 82 C4 1D 82 49 C6 1D 7A 90 52 00
+30 4D 00 00 08 52 45 54 49 00 0D 12 84 12 0A 44
+00 13 A0 4C B2 49 0A 44 2C 00 96 52 DA 51 E4 47
+A0 52 78 52 E6 52 3D 41 2C DE 8B 4C 00 00 9E 3F
+00 00 06 4D 4F 56 85 12 D6 52 00 40 F2 52 0A 4D
+4F 56 2E 42 85 12 D6 52 40 40 00 00 06 41 44 44
+85 12 D6 52 00 50 0C 53 0A 41 44 44 2E 42 85 12
+D6 52 40 50 18 53 08 41 44 44 43 00 85 12 D6 52
+00 60 26 53 0C 41 44 44 43 2E 42 00 85 12 D6 52
+40 60 5E 4F 08 53 55 42 43 00 85 12 D6 52 00 70
+44 53 0C 53 55 42 43 2E 42 00 85 12 D6 52 40 70
+52 53 06 53 55 42 85 12 D6 52 00 80 62 53 0A 53
+55 42 2E 42 85 12 D6 52 40 80 6E 53 06 43 4D 50
+85 12 D6 52 00 90 7C 53 0A 43 4D 50 2E 42 85 12
+D6 52 40 90 00 00 08 44 41 44 44 00 85 12 D6 52
+00 A0 96 53 0C 44 41 44 44 2E 42 00 85 12 D6 52
+40 A0 C4 52 06 42 49 54 85 12 D6 52 00 B0 B4 53
+0A 42 49 54 2E 42 85 12 D6 52 40 B0 C0 53 06 42
+49 43 85 12 D6 52 00 C0 CE 53 0A 42 49 43 2E 42
+85 12 D6 52 40 C0 DA 53 06 42 49 53 85 12 D6 52
+00 D0 E8 53 0A 42 49 53 2E 42 85 12 D6 52 40 D0
+00 00 06 58 4F 52 85 12 D6 52 00 E0 02 54 0A 58
+4F 52 2E 42 85 12 D6 52 40 E0 34 53 06 41 4E 44
+85 12 D6 52 00 F0 1C 54 0A 41 4E 44 2E 42 85 12
+D6 52 40 F0 E4 47 96 52 DA 51 3C 54 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4D 3F F4 53 06 52
+52 43 85 12 34 54 00 10 4E 54 0A 52 52 43 2E 42
+85 12 34 54 40 10 88 53 08 53 57 50 42 00 85 12
+34 54 80 10 5A 54 06 52 52 41 85 12 34 54 00 11
+76 54 0A 52 52 41 2E 42 85 12 34 54 40 11 68 54
+06 53 58 54 85 12 34 54 80 11 00 00 08 50 55 53
+48 00 85 12 34 54 00 12 9C 54 0C 50 55 53 48 2E
+42 00 85 12 34 54 40 12 90 54 08 43 41 4C 4C 00
+85 12 34 54 80 12 1A 53 0E 4A 84 12 26 4A 1E 44
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 12 45
+BA 54 06 53 3E 3D 86 12 00 38 E2 54 04 53 3C 00
+86 12 00 34 AA 54 06 30 3E 3D 86 12 00 30 F6 54
+04 30 3C 00 86 12 00 30 32 4F 04 55 3C 00 86 12
+00 2C 0A 55 06 55 3E 3D 86 12 00 28 00 55 06 30
+3C 3E 86 12 00 24 1E 55 04 30 3D 00 86 12 00 20
+00 00 04 49 46 00 1A 42 C8 1D 8A 4E 00 00 A2 53
+C8 1D 0E 4A 30 4D A4 53 08 54 48 45 4E 00 1A 42
+C8 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 B2 2F 88 DA 00 00 30 4D 14 55 08 45 4C 53
+45 00 1A 42 C8 1D BA 40 00 3C 00 00 A2 53 C8 1D
+2F 83 8F 4A 00 00 E3 3F 82 54 0A 42 45 47 49 4E
+30 40 32 44 6C 55 0A 55 4E 54 49 4C 3A 4F 08 4E
+3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE
+8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 1D
+30 4D 28 54 0A 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12 36 55
+CC 48 B2 49 8A 55 0C 52 45 50 45 41 54 00 0D 12
+84 12 CA 55 4E 55 B2 49 FA 55 3D 41 08 4E 3E 4F
+2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D 00 00 30 4D
+E6 55 06 42 57 31 85 12 F8 55 00 00 12 56 06 42
+57 32 85 12 F8 55 00 00 1E 56 06 42 57 33 85 12
+F8 55 00 00 36 56 3D 41 1A 42 C8 1D 28 4E 8E 43
+00 00 B2 92 C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D
+8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12
+34 56 00 00 5A 56 06 46 57 32 85 12 34 56 00 00
+66 56 06 46 57 33 85 12 34 56 00 00 D4 55 08 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
+84 12 6C 4D 78 4C B2 49 00 00 0A 3F 47 4F 54 4F
+3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
+3E E0 00 08 EC 3F A0 52 0A 44 2C 00 36 4A 48 4B
+AC 44 7C 4D E4 47 96 52 78 52 CC 56 0A 4E 3E 4F
+1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92
+EA 2E 8A 10 5A 06 A8 3E 2A 56 08 52 52 43 4D 00
+85 12 B6 56 50 00 FA 56 08 52 52 41 4D 00 85 12
+B6 56 50 01 08 57 08 52 4C 41 4D 00 85 12 B6 56
+50 02 16 57 08 52 52 55 4D 00 85 12 B6 56 50 03
+28 55 0A 50 55 53 48 4D 85 12 B6 56 00 15 32 57
+08 50 4F 50 4D 00 85 12 B6 56 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 EE 46 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 06 46
+q
diff --git a/binaries/MSP_EXP430FR6989_16MHz_4MBds.txt b/binaries/MSP_EXP430FR6989_16MHz_4MBds.txt
new file mode 100644 (file)
index 0000000..5ba8482
--- /dev/null
@@ -0,0 +1,327 @@
+@1800
+80 3E 04 00 00 00 18 00 FD FF 35 01 10 00 A1 59
+EE 46 7E 45 84 45 54 45 5E 47 4C 57 04 50 BE 4F
+BE 4F D4 46 92 47 5A 47 3C 1D E0 1C B2 49 B6 44
+C4 44 CE 48 20 00 0A 00 00 1C 7E 45 84 45 54 45
+5E 47 4C 57 04 50 BE 4F BE 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 12 3D 0E 93 3E 4F
+A7 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 D2 46 B2 49
+90 47 B2 49 58 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 78 50 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 5E 47 92 C3 FC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 FC 05 F3 23
+B0 12 D0 44 D8 48 AC 44 52 45 A0 47 1E 44 04 1B
+5B 37 6D 00 C2 47 C2 47 1E 44 04 1B 5B 30 6D 00
+C2 47 0E 4D B0 12 7E 45 B2 40 81 00 E0 05 92 42
+02 18 E6 05 92 42 04 18 E8 05 F2 D0 30 00 2A 02
+92 C3 E0 05 92 D3 FA 05 92 C3 30 01 30 41 92 B3
+EA 05 FD 23 30 41 92 12 3E 18 84 12 A0 47 1E 44
+07 0D 0A 1B 5B 37 6D 23 C2 47 26 4A 1E 44 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 C2 47 0A 44 40 FF 32 44
+EE 48 F2 49 1E 44 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 44 46 45 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 45 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 00 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+B2 D3 06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43
+22 02 D2 D3 24 02 B2 43 46 02 B2 43 42 02 B2 43
+66 02 B2 43 62 02 B2 43 86 02 B2 40 7F FF 82 02
+F2 43 26 03 F2 43 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 B2 40 33 00 64 01 D2 43
+61 01 39 40 40 00 18 42 00 18 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 19 42
+9E 01 1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49
+B0 12 D0 44 86 45 00 00 0C 41 43 43 45 50 54 00
+30 40 D4 46 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40
+20 00 3B 40 32 47 3C 40 3E 47 5D 15 89 3E 21 52
+3A 17 58 42 EC 05 48 9B 09 20 A2 B3 FC 05 FD 27
+B2 40 13 00 EE 05 D2 D3 22 02 30 41 48 9C 06 2C
+78 92 11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C
+CE 48 00 00 1E 53 A2 B3 FC 05 FD 27 C2 48 EE 05
+30 4D 34 47 2D 83 92 B3 FC 05 DB 23 FC 3F 3E 8F
+3D 41 92 B3 FC 05 FD 27 58 42 EC 05 08 4C EB 3F
+00 00 06 4B 45 59 30 40 5A 47 30 12 70 47 A2 B3
+FC 05 FD 27 B2 40 11 00 EE 05 D2 C3 22 02 30 41
+2F 83 8F 4E 00 00 92 B3 FC 05 FD 27 B0 12 FA 46
+1E 42 EC 05 30 4D 00 00 08 45 4D 49 54 00 30 40
+92 47 08 4E 3E 4F C7 3F 88 47 08 45 43 48 4F 00
+B2 40 C2 48 2C 47 30 4D 00 00 0C 4E 4F 45 43 48
+4F 00 B2 40 30 4D 2C 47 30 4D 00 00 08 54 59 50
+45 00 0D 12 3D 40 D2 47 29 4F 8F 4E 00 00 7E 49
+DE 3F D4 47 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53
+3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F
+3E 4F 5F 22 F9 98 00 00 5C 22 19 53 1C 83 FA 23
+2D 53 30 4D 2F 53 3E 4F 1E 83 53 22 9B 24 52 47
+0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A 44 00 00
+F2 48 E4 47 36 4A F0 4C B0 44 60 48 14 44 06 5B
+54 48 45 4E 5D 00 E8 47 3E 48 04 48 22 48 14 44
+06 5B 45 4C 53 45 5D 00 E8 47 50 48 04 48 20 48
+1E 44 04 5B 49 46 5D 00 E8 47 22 48 B2 44 20 48
+1E 44 05 0D 6B 6F 20 0A C2 47 9A 44 84 44 B2 44
+22 48 10 48 0D 5B 54 48 45 4E 5D 00 30 4D 74 48
+09 5B 49 46 5D 00 0E 93 3E 4F C6 27 30 4D 80 48
+13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12 E4 47
+36 4A 9E 4A 42 4C B2 49 90 48 17 5B 55 4E 44 45
+46 49 4E 45 44 5D 0D 12 84 12 E4 47 36 4A 9E 4A
+C2 48 3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83
+8F 4E 00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D
+8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F
+3E E3 1E 53 30 4D 00 00 02 40 2E 4E 30 4D C8 46
+02 21 BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3
+30 4D 3E 8F 01 28 0E F3 30 4D D8 45 05 53 22 00
+82 43 C0 1D 0D 12 84 12 0A 44 1E 44 A0 4C 0A 44
+22 00 36 4A 36 49 B2 40 20 00 C0 1D 1A 53 1A B3
+82 6A C8 1D 3E 4F 3D 41 30 4D AA 47 05 2E 22 00
+0D 12 84 12 20 49 0A 44 C2 47 A0 4C B2 49 00 00
+04 3C 23 00 B2 40 B2 1D B2 1D 30 4D 1C 49 02 23
+1B 42 BE 1D 2C 4F 2F 83 B0 12 46 44 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 6E 49 04 23
+53 00 0D 12 84 12 70 49 AA 49 2D 83 09 DE 09 93
+E1 23 3D 41 30 4D 9E 49 04 23 3E 00 9F 42 B2 1D
+00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C
+44 00 4A 4E 3E 4F DB 3F B8 49 08 53 49 47 4E 00
+0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 9A 47 04 55
+2E 00 0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3
+06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
+64 49 E4 47 D2 49 A2 49 CE 48 E0 49 BC 49 C2 47
+B2 49 4C 49 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00
+08 57 4F 52 44 00 3C 40 C2 1D 39 4C 38 4C 09 58
+38 5C 2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42
+C0 1D F8 90 27 00 00 00 04 20 E8 98 02 00 01 20
+0B 43 CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24
+1A 53 7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B
+F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E
+CE 4A 00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83
+0C 4E 3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00
+78 F0 0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93
+F2 27 09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99
+01 00 F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49
+6E 4E 1E F3 01 20 1E 83 8F 4C 00 00 30 4D 24 4A
+0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F
+29 4F 2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28
+7A 80 07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C
+82 49 E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04
+09 5A 08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48
+02 00 8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E
+06 00 08 43 09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15
+3D 40 A8 4B 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F
+2B 43 7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00
+5A 93 0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C
+01 00 6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83
+FC 9C 00 00 E0 23 AE 27 AA 4B 2F 24 2D 83 6A 4C
+7A 90 5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02
+7A 80 2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49
+02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28
+79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49
+00 00 0E 4B 2C 15 B0 12 3E 44 2A 17 E8 3F 9F 4F
+04 00 02 00 AF 4F 04 00 4A 93 1D 17 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 60 49 03 5C 92 42 C2 1D C6 1D
+30 4D 0D 12 84 12 84 44 E4 47 36 4A B0 44 7A 4D
+9E 4A 64 4C 0A 4E 3E 4F 3D 40 7E 4C 6D 27 3D 40
+58 4C 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41 80 4C
+3E 4F 3D 40 58 4C 19 20 DE 53 00 00 68 4E 08 5E
+F8 40 3F 00 00 00 3D 40 56 4E 2A 3C 48 4C 02 2C
+A2 53 C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D
+9E 4C 0F 4C 49 54 45 52 41 4C 82 93 BC 1D 0D 24
+09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A 44 00 00
+8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24
+8A 4E 02 00 EE 3F 30 4D DA 49 0A 43 4F 55 4E 54
+2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D 00 49
+0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40
+80 1C 0E 43 84 12 1E 44 02 0D 0A 00 C2 47 94 44
+52 4C E0 48 0A 49 1E 44 0B 73 74 61 63 6B 20 65
+6D 70 74 79 08 45 32 44 0A 44 40 FF 12 49 1E 44
+09 46 52 41 4D 20 66 75 6C 6C 08 45 B2 44 16 4D
+00 4D 0D 41 42 4F 52 54 22 00 0D 12 84 12 20 49
+0A 44 08 45 A0 4C B2 49 30 4A 02 27 0D 12 84 12
+E4 47 36 4A 9E 4A B0 44 7C 4D 44 49 88 4C AA 48
+07 5B 27 5D 0D 12 84 12 6C 4D 0A 44 0A 44 A0 4C
+A0 4C B2 49 80 4D 03 5B 82 43 BC 1D 30 4D 00 00
+02 5D B2 43 BC 1D 30 4D F8 48 11 50 4F 53 54 50
+4F 4E 45 00 0D 12 84 12 E4 47 36 4A 9E 4A B0 44
+7C 4D 0A 49 AC 44 D4 4D 0A 44 0A 44 A0 4C A0 4C
+0A 44 A0 4C A0 4C B2 49 00 00 02 3A 30 12 2A 4E
+92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 E4 47 36 4A
+F2 4D 3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E
+5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58
+00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F
+BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12 FC FF
+BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F BA 1D
+66 25 84 12 1E 44 0F 73 74 61 63 6B 20 6D 69 73
+6D 61 74 63 68 21 12 45 96 4D 03 3B 82 93 BC 1D
+F4 26 0D 12 84 12 0A 44 B2 49 A0 4C 3C 4E 98 4D
+B2 49 00 00 12 49 4D 4D 45 44 49 41 54 45 18 42
+B4 1D D8 D3 00 00 30 4D EA 4C 0C 43 52 45 41 54
+45 00 B0 12 E0 4D BA 40 86 12 FC FF 8A 4A FE FF
+3A 3D BC 47 0A 44 4F 45 53 3E 1A 42 B8 1D BA 40
+85 12 00 00 8A 4D 02 00 3D 41 30 4D DA 4D 0E 3A
+4E 4F 4E 41 4D 45 30 12 2A 4E 2F 83 8F 4E 00 00
+1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02 08 49
+98 3F 74 4E 05 49 53 00 0D 12 82 93 BC 1D 08 20
+84 12 6C 4D F6 4E 3D 41 BE 4F 02 00 3E 4F 30 4D
+84 12 84 4D 0A 44 F8 4E A0 4C B2 49 8A 4E 08 43
+4F 44 45 00 B0 12 E0 4D A2 82 C8 1D 61 3C CC 49
+0E 48 44 4E 43 4F 44 45 B2 40 E4 4F CC 1D F2 3F
+00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12 3C 4E
+42 4F 3D 41 92 42 D0 1D CC 1D 5D 3C 0E 4F 0E 43
+4F 44 45 4E 4E 4D 30 12 18 4F B7 3F 00 00 0A 43
+4F 4C 4F 4E 1A 42 C8 1D BA 40 0D 12 00 00 BA 40
+84 12 02 00 A2 52 C8 1D B2 43 BC 1D E3 3F 00 00
+0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F
+20 4F 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D
+8A 4A FE FF 82 43 BC 1D B9 3F AC 4F B2 40 BE 4F
+D0 1D 82 4E CE 1D 30 40 44 49 85 12 AA 4F AA 4D
+52 4D 3C 50 4E 4F A4 4E EE 49 98 4A 6A 4D 92 4F
+E4 4E BE 4E 5A 4E B2 4C C6 50 F0 4A 00 00 00 00
+85 12 AA 4F 40 57 C4 55 24 57 EC 54 48 55 96 55
+72 56 7E 56 0E 54 32 55 00 00 00 00 80 4F FE 52
+00 00 9A 56 DE 4F B2 40 BE 4F CE 1D 82 43 D0 1D
+30 4D 3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23
+30 41 00 00 0E 52 53 54 5F 53 45 54 39 40 C8 1D
+3A 40 42 18 B0 12 12 50 30 4D 24 50 0E 52 53 54
+5F 52 45 54 39 40 42 18 2C 49 3A 40 C8 1D B0 12
+12 50 1A 42 CA 1D 3B 40 10 00 09 4A 08 49 29 83
+18 48 FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23
+2A 4A 0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00
+29 83 B9 43 80 FF FC 23 B9 40 06 46 FE FF 29 83
+B9 40 F2 45 FE FF 39 90 AE FF F9 23 39 40 10 18
+B2 49 E4 FF 3B 40 10 00 3A 40 3A 18 B0 12 16 50
+82 43 4A 18 C7 3F B8 50 B2 4E 42 18 BE 12 3E 4F
+3D 41 C0 3F A0 4D 0C 4D 41 52 4B 45 52 00 12 12
+C6 1D 0D 12 84 12 E4 47 36 4A 9E 4A AC 44 E4 50
+D8 48 78 4C E6 50 3E 4F 3D 41 B2 41 C6 1D B0 12
+E0 4D BA 40 85 12 FC FF BA 40 B6 50 FE FF 28 83
+8A 48 00 00 BA 40 82 44 02 00 A2 52 C8 1D 18 42
+B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00 30 4D
+12 12 C6 1D 84 12 36 4A 9E 4A AC 44 50 51 30 51
+3C 4E 3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C
+BE 90 B6 50 00 00 01 20 3E 52 2E 83 21 53 30 41
+48 4B AC 44 58 51 4C 51 5A 51 B2 41 C6 1D 30 41
+92 83 C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12 20 51
+15 20 3E 40 2B 00 B0 12 20 51 06 20 3E 40 2D 00
+B0 12 20 51 92 83 C6 1D 0E 12 1E 41 02 00 84 12
+36 4A 48 4B AC 44 7C 4D 9A 51 3E 51 3A 17 30 41
+B0 12 60 51 19 42 C8 1D 89 4E 00 00 A2 53 C8 1D
+3E 40 29 00 92 53 C6 1D 1A 42 C6 1D 3D 15 84 12
+36 4A 48 4B AC 44 D2 51 CA 51 3E 90 10 00 E6 2B
+7C 2D D4 51 A2 41 C6 1D E1 3F 03 20 B0 12 B8 51
+43 3C 7A 90 23 00 24 20 B0 12 68 51 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 C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D
+7A 90 26 00 05 20 3C 40 10 02 B0 12 68 51 F0 3F
+7A 90 40 00 14 20 3C 40 20 00 B0 12 B4 51 0C 20
+3C D0 10 00 3E 40 2B 00 B0 12 B8 51 92 92 C2 1D
+C6 1D 02 24 92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0
+10 00 B0 12 A0 51 F2 3F 03 20 B0 12 B8 51 F5 3F
+7A 90 26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00
+B0 12 A0 51 EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D
+3A 40 20 00 19 42 C6 1D 19 52 C4 1D 7A 99 FE 27
+5A 49 FF FF 19 82 C4 1D 82 49 C6 1D 7A 90 52 00
+30 4D 00 00 08 52 45 54 49 00 0D 12 84 12 0A 44
+00 13 A0 4C B2 49 0A 44 2C 00 96 52 DA 51 E4 47
+A0 52 78 52 E6 52 3D 41 2C DE 8B 4C 00 00 9E 3F
+00 00 06 4D 4F 56 85 12 D6 52 00 40 F2 52 0A 4D
+4F 56 2E 42 85 12 D6 52 40 40 00 00 06 41 44 44
+85 12 D6 52 00 50 0C 53 0A 41 44 44 2E 42 85 12
+D6 52 40 50 18 53 08 41 44 44 43 00 85 12 D6 52
+00 60 26 53 0C 41 44 44 43 2E 42 00 85 12 D6 52
+40 60 5E 4F 08 53 55 42 43 00 85 12 D6 52 00 70
+44 53 0C 53 55 42 43 2E 42 00 85 12 D6 52 40 70
+52 53 06 53 55 42 85 12 D6 52 00 80 62 53 0A 53
+55 42 2E 42 85 12 D6 52 40 80 6E 53 06 43 4D 50
+85 12 D6 52 00 90 7C 53 0A 43 4D 50 2E 42 85 12
+D6 52 40 90 00 00 08 44 41 44 44 00 85 12 D6 52
+00 A0 96 53 0C 44 41 44 44 2E 42 00 85 12 D6 52
+40 A0 C4 52 06 42 49 54 85 12 D6 52 00 B0 B4 53
+0A 42 49 54 2E 42 85 12 D6 52 40 B0 C0 53 06 42
+49 43 85 12 D6 52 00 C0 CE 53 0A 42 49 43 2E 42
+85 12 D6 52 40 C0 DA 53 06 42 49 53 85 12 D6 52
+00 D0 E8 53 0A 42 49 53 2E 42 85 12 D6 52 40 D0
+00 00 06 58 4F 52 85 12 D6 52 00 E0 02 54 0A 58
+4F 52 2E 42 85 12 D6 52 40 E0 34 53 06 41 4E 44
+85 12 D6 52 00 F0 1C 54 0A 41 4E 44 2E 42 85 12
+D6 52 40 F0 E4 47 96 52 DA 51 3C 54 0A 4C 3C F0
+70 00 8A 10 3A F0 0F 00 0C DA 4D 3F F4 53 06 52
+52 43 85 12 34 54 00 10 4E 54 0A 52 52 43 2E 42
+85 12 34 54 40 10 88 53 08 53 57 50 42 00 85 12
+34 54 80 10 5A 54 06 52 52 41 85 12 34 54 00 11
+76 54 0A 52 52 41 2E 42 85 12 34 54 40 11 68 54
+06 53 58 54 85 12 34 54 80 11 00 00 08 50 55 53
+48 00 85 12 34 54 00 12 9C 54 0C 50 55 53 48 2E
+42 00 85 12 34 54 40 12 90 54 08 43 41 4C 4C 00
+85 12 34 54 80 12 1A 53 0E 4A 84 12 26 4A 1E 44
+0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 12 45
+BA 54 06 53 3E 3D 86 12 00 38 E2 54 04 53 3C 00
+86 12 00 34 AA 54 06 30 3E 3D 86 12 00 30 F6 54
+04 30 3C 00 86 12 00 30 32 4F 04 55 3C 00 86 12
+00 2C 0A 55 06 55 3E 3D 86 12 00 28 00 55 06 30
+3C 3E 86 12 00 24 1E 55 04 30 3D 00 86 12 00 20
+00 00 04 49 46 00 1A 42 C8 1D 8A 4E 00 00 A2 53
+C8 1D 0E 4A 30 4D A4 53 08 54 48 45 4E 00 1A 42
+C8 1D 08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90
+00 02 B2 2F 88 DA 00 00 30 4D 14 55 08 45 4C 53
+45 00 1A 42 C8 1D BA 40 00 3C 00 00 A2 53 C8 1D
+2F 83 8F 4A 00 00 E3 3F 82 54 0A 42 45 47 49 4E
+30 40 32 44 6C 55 0A 55 4E 54 49 4C 3A 4F 08 4E
+3E 4F 19 42 C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE
+8B 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 1D
+30 4D 28 54 0A 41 47 41 49 4E 0A 4E 38 40 00 3C
+E7 3F 00 00 0A 57 48 49 4C 45 0D 12 84 12 36 55
+CC 48 B2 49 8A 55 0C 52 45 50 45 41 54 00 0D 12
+84 12 CA 55 4E 55 B2 49 FA 55 3D 41 08 4E 3E 4F
+2A 48 B2 92 C6 1D CB 2F 98 42 C8 1D 00 00 30 4D
+E6 55 06 42 57 31 85 12 F8 55 00 00 12 56 06 42
+57 32 85 12 F8 55 00 00 1E 56 06 42 57 33 85 12
+F8 55 00 00 36 56 3D 41 1A 42 C8 1D 28 4E 8E 43
+00 00 B2 92 C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D
+8E 4A 00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12
+34 56 00 00 5A 56 06 46 57 32 85 12 34 56 00 00
+66 56 06 46 57 33 85 12 34 56 00 00 D4 55 08 47
+4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
+84 12 6C 4D 78 4C B2 49 00 00 0A 3F 47 4F 54 4F
+3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
+3E E0 00 08 EC 3F A0 52 0A 44 2C 00 36 4A 48 4B
+AC 44 7C 4D E4 47 96 52 78 52 CC 56 0A 4E 3E 4F
+1A 83 F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
+0C 8A 08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92
+EA 2E 8A 10 5A 06 A8 3E 2A 56 08 52 52 43 4D 00
+85 12 B6 56 50 00 FA 56 08 52 52 41 4D 00 85 12
+B6 56 50 01 08 57 08 52 4C 41 4D 00 85 12 B6 56
+50 02 16 57 08 52 52 55 4D 00 85 12 B6 56 50 03
+28 55 0A 50 55 53 48 4D 85 12 B6 56 00 15 32 57
+08 50 4F 50 4D 00 85 12 B6 56 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 EE 46 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 06 46
+q
index 37c93ab..d5ffa6b 100644 (file)
 @1800
-80 3E 12 00 00 00 F8 00 F9 FF 0E 58 F0 4F 34 01
-10 00 41 87 B6 45 AA 44 B8 45 8C 45 82 46 0E 58
-F0 4F 70 46 80 47 FE 46 DA 46 3C 1D 4E 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
+80 3E 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+E8 46 56 45 56 45 58 45 44 45 28 57 E0 4F 9A 4F
+9A 4F D6 46 5A 47 32 47 3C 1D E0 1C 8E 49 B6 44
+C4 44 AA 48 20 00 0A 00 00 1C 56 45 56 45 58 45
+44 45 28 57 E0 4F 9A 4F 9A 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4400
-B0 12 B8 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 6E 46 B2 49 7E 47 B2 49 FC 46 B2 49 D8 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BC 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 45 0E 12 B0 12
-F8 44 0A 44 DE 1D CE 47 16 47 EE 44 34 44 8A 45
-14 44 05 1B 5B 37 6D 40 4A 47 0A 44 02 18 CE 47
-C4 48 96 47 34 44 7E 45 14 44 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 47 8E 48 4A 47
-14 44 04 1B 5B 30 6D 00 4A 47 16 4C 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 45 E2 B3 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 45 04 57 41 52 4D 00 B0 12
-8C 45 78 40 03 00 B0 12 BA 45 84 12 14 44 07 0D
-0A 1B 5B 37 6D 40 4A 47 0A 44 02 18 CE 47 C4 48
-0A 44 23 00 FA 46 C4 48 14 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 4A 47 0A 44 40 FF 28 44 C2 47 8E 48
-14 44 0A 62 79 74 65 73 20 66 72 65 65 00 3A 44
-7E 45 00 00 06 41 43 43 45 50 54 00 30 40 70 46
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 B8 22
-3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 45 82 93 DE 1D 02 24 92 53 DE 1D 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 46 2F 83 8F 4E 00 00
-58 43 B0 12 BA 45 92 B3 6C 06 FD 27 1E 42 4C 06
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 46 08 4E
-3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D F4 46
-04 45 43 48 4F 00 B2 40 C2 48 08 47 82 43 DE 1D
-38 40 05 00 B0 12 BA 45 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 47 92 43 DE 1D 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 47 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 46 68 47 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 45 02 43 52 00 30 40 80 47
-0D 12 84 12 14 44 02 0D 0A 00 4A 47 4E 48 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 46 01 40 2E 4E
-30 4D CC 47 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D 78 47 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E 44 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 08 48 02 23 53 00 0D 12 84 12
-0A 48 44 48 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 48 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 47 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 47
-3C 48 EE 44 7C 48 58 48 4A 47 02 4C FA 46 4E 48
-2C 47 01 2E 0E 93 E3 37 38 43 E2 3F 76 48 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44 48 4B
-0A 44 22 00 1A 49 E8 48 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D C2 48
-82 2E 22 00 0D 12 84 12 D2 48 0A 44 4A 47 48 4B
-4E 48 F8 45 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 44 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44 30 4D
-00 00 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 9C 4A 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 4A 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D 46 4B 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 48 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 44 02 4C 1A 49 BE 4B 9C 26
-3D 40 C6 4B DE 3E C8 4B 0A 4E 3E 4F 3D 40 E2 4B
-36 27 3D 40 B8 4B 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 E4 4B 3E 4F 3D 40 B8 4B BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 4D CC 3F
-EC 4B 86 12 20 00 D4 47 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7C 47 BC 44
-B2 4B B2 47 E4 47 14 44 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44 EC 47
-14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 45
-3A 44 2C 4C 08 4C 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 48 0A 44 2A 45 48 4B 4E 48 7C 49 01 27
-0D 12 84 12 02 4C 1A 49 82 49 34 44 00 4C 4E 48
-00 00 83 5B 27 5D 0D 12 84 12 80 4C 0A 44 0A 44
-48 4B 48 4B 4E 48 92 4C 81 5B 82 43 BE 1D 30 4D
-FA 47 01 5D B2 43 BE 1D 30 4D B2 4C 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 4C 1A 49 82 49 96 47 34 44
-00 4C E4 47 34 44 F4 4C 0A 44 0A 44 48 4B 48 4B
-0A 44 48 4B 48 4B 4E 48 A8 4C 01 3A 30 12 44 4D
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 02 4C 1A 49
-12 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 82 48 B6 1D
-82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52 82 4A
-C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 45 FA 4C 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A 44 4E 48 48 4B 56 4D AA 4C 4E 48
-A8 4B 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D 92 4B 06 43 52 45 41 54
-45 00 B0 12 00 4D BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 4D 04 43 4F 44 45 00 B0 12 00 4D A2 82
-C6 1D 0D 12 84 12 F2 4F CC 4F 4E 48 A2 4D 07 48
-44 4E 43 4F 44 45 B2 40 D0 4F DA 1D EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 4D 0C 50
-2A 50 4E 48 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 0C 50 2A 50 4E 48 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-EE 4D 85 48 49 32 4C 4F 0D 12 84 12 28 44 9A 4F
-48 4B AA 4C E2 4D 4E 48 88 4D 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 4E 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 44 00 00 C6 47 02 4C 1A 49 98 4B
-8E 47 34 44 02 4F 9C 47 14 44 06 5B 54 48 45 4E
-5D 00 74 4E DC 4E 98 4E BA 4E 4E 48 9C 47 14 44
-06 5B 45 4C 53 45 5D 00 74 4E F2 4E 98 4E B8 4E
-4E 48 14 44 04 5B 49 46 5D 00 74 4E BA 4E 3A 44
-B8 4E 70 47 14 44 05 0D 0A 6B 6F 20 4A 47 BC 44
-AC 44 3A 44 BA 4E A8 4E 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 4F 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 4C 1A 49 82 49
-26 4F 4E 48 2C 4F 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 4F DE 47 4E 48 5E 4F B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 4B 06 4D
-41 52 4B 45 52 00 B0 12 00 4D BA 40 85 12 FC FF
-BA 40 5C 4F FE FF 28 83 8A 48 00 00 BA 40 AA 44
-04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D 0A 44
-CA 1D D6 47 4E 48 85 12 9E 4F 66 4C D4 4D 10 47
-7E 4C 52 4E D2 46 6E 4F 00 49 96 50 AA 50 8A 48
-14 49 00 00 46 4F BC 4C E2 49 00 00 85 12 9E 4F
-84 56 EA 56 2C 56 3A 57 F2 55 00 00 BE 53 00 00
-02 58 E6 57 56 56 94 56 CE 54 00 00 00 00 56 57
-CA 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D
-30 4D A6 4F 24 50 2A 50 3A 50 1A 42 20 18 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 C8 4C
-09 50 57 52 5F 53 54 41 54 45 85 12 32 50 0E 58
-CE 48 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 50 F3 3F 70 50 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 7E 50 30 4D 82 50 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 51 FE FF 29 83 B9 40
-E2 45 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 45 B2 49 FA 44 B2 49 02 44 B2 49 00 46 B2 49
-EC FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 08 29 83 89 43 00 1C FC 23 B2 D3
-06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43 22 02
-B2 43 46 02 B2 43 42 02 B2 43 66 02 B2 43 62 02
-B2 43 86 02 B2 40 7F FF 82 02 F2 43 26 03 F2 43
-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 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 B2 42 B0 01
-F2 D0 10 00 2A 03 F2 C0 40 00 A2 04 1E 42 08 18
-82 43 08 18 1E D2 9E 01 B0 12 F8 44 FE 45 38 40
-C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D
-30 4D 1C 15 0E 12 12 12 C4 1D 84 12 1A 49 82 49
-DE 47 34 44 FE 51 3E 4A 34 44 18 52 12 52 00 52
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 1A 52 B2 41 C4 1D 3E 41
-84 12 0A 44 2B 00 1A 49 82 49 DE 47 34 44 36 52
-3E 4A 34 44 00 4C A8 47 1A 49 3E 4A 34 44 00 4C
-42 52 3E 5F E7 3F 3E 40 28 00 B0 12 E2 51 19 42
-C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00 92 92
-C0 1D C4 1D 02 20 30 40 6E 4D 1C 15 12 12 C4 1D
-92 53 C4 1D 84 12 1A 49 3E 4A 34 44 8A 52 80 52
-21 53 3E 90 10 00 C6 2B 7F 2D 8C 52 B2 41 C4 1D
-C1 3F 0D 12 84 12 02 4C BE 51 9C 52 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 E2 51 3C 40 00 03 0E 93 1C 24
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 13 3D 0E 93 3E 4F
+95 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 D4 46 B2 49
+58 47 B2 49 30 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 54 50 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 45 B0 12 D0 44 B4 48 AC 44
+42 45 72 47 1E 44 05 1B 5B 37 6D 40 9E 47 0A 44
+02 18 D6 48 02 4A 9E 47 1E 44 04 1B 5B 30 6D 00
+9E 47 EA 4C 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 72 47 1E 44 07 0D 0A 1B 5B 37
+6D 40 9E 47 0A 44 02 18 D6 48 02 4A 0A 44 23 00
+56 47 02 4A 1E 44 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+9E 47 0A 44 40 FF 32 44 CA 48 CE 49 1E 44 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 44 36 45 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 45 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B3
+00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01
+31 40 E0 1C 3F 40 80 1C B2 D3 06 02 B2 40 FE FF
+02 02 B2 43 26 02 B2 43 22 02 B2 43 46 02 B2 43
+42 02 B2 43 66 02 B2 43 62 02 B2 43 86 02 B2 40
+7F FF 82 02 F2 43 26 03 F2 43 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 B2 40 33 00
+64 01 D2 43 61 01 39 40 40 00 18 42 00 18 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 1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42
+9E 01 B0 12 D0 44 80 45 00 00 0C 41 43 43 45 50
+54 00 30 40 D6 46 0A 4E 2E 4F 0A 5E 3B 40 0A 00
+3C 40 20 00 3D 15 8C 3E 21 52 A2 C2 6C 06 B2 B0
+10 00 40 06 85 22 3A 17 92 B3 6C 06 FD 27 58 42
+4C 06 48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F
+F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53
+EB 3F 3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40
+32 47 58 43 B0 12 46 45 2F 83 8F 4E 00 00 92 B3
+6C 06 FD 27 1E 42 4C 06 B0 12 44 45 30 4D 00 00
+08 45 4D 49 54 00 30 40 5A 47 08 4E 3E 4F A2 B3
+6C 06 FD 27 C2 48 4E 06 30 4D 50 47 08 45 43 48
+4F 00 B2 40 C2 48 64 47 38 40 05 00 B0 12 46 45
+30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D
+64 47 28 42 F3 3F 00 00 08 54 59 50 45 00 0D 12
+3D 40 AE 47 29 4F 8F 4E 00 00 7E 49 D4 3F B0 47
+2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D
+86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 71 22
+F9 98 00 00 6E 22 19 53 1C 83 FA 23 2D 53 30 4D
+2F 53 3E 4F 1E 83 65 22 9B 24 2A 47 0D 5B 45 4C
+53 45 5D 00 0D 12 84 12 0A 44 00 00 CE 48 C0 47
+12 4A CC 4C B0 44 3C 48 14 44 06 5B 54 48 45 4E
+5D 00 C4 47 1A 48 E0 47 FE 47 14 44 06 5B 45 4C
+53 45 5D 00 C4 47 2C 48 E0 47 FC 47 1E 44 04 5B
+49 46 5D 00 C4 47 FE 47 B2 44 FC 47 1E 44 05 0D
+6B 6F 20 0A 9E 47 9A 44 84 44 B2 44 FE 47 EC 47
+0D 5B 54 48 45 4E 5D 00 30 4D 50 48 09 5B 49 46
+5D 00 0E 93 3E 4F C6 27 30 4D 5C 48 13 5B 44 45
+46 49 4E 45 44 5D 0D 12 84 12 C0 47 12 4A 7A 4A
+1E 4C 8E 49 6C 48 17 5B 55 4E 44 45 46 49 4E 45
+44 5D 0D 12 84 12 C0 47 12 4A 7A 4A 9E 48 3D 41
+2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00
+3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+30 4D 00 00 02 40 2E 4E 30 4D CA 46 02 21 BE 4F
+00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
+01 28 0E F3 30 4D E0 45 05 53 22 00 82 43 C0 1D
+0D 12 84 12 0A 44 1E 44 7C 4C 0A 44 22 00 12 4A
+12 49 B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D
+3E 4F 3D 41 30 4D 84 47 05 2E 22 00 0D 12 84 12
+FC 48 0A 44 9E 47 7C 4C 8E 49 00 00 04 3C 23 00
+B2 40 B2 1D B2 1D 30 4D F8 48 02 23 1B 42 BE 1D
+2C 4F 2F 83 B0 12 46 44 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 4A 49 04 23 53 00 0D 12
+84 12 4C 49 86 49 2D 83 09 DE 09 93 E1 23 3D 41
+30 4D 7A 49 04 23 3E 00 9F 42 B2 1D 00 00 3E 40
+B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E
+3E 4F DB 3F 94 49 08 53 49 47 4E 00 0E 93 3E 4F
+7A 40 2D 00 D2 33 30 4D 6C 47 04 55 2E 00 0C 43
+2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3
+00 00 3E E3 9F 53 00 00 0E 63 84 12 40 49 C0 47
+AE 49 7E 49 AA 48 BC 49 98 49 9E 47 8E 49 28 49
+02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52
+44 00 3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C
+09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90
+27 00 00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C
+00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90
+61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82
+C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00
+30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40
+CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00
+08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E
+78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23
+1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3
+01 20 1E 83 8F 4C 00 00 30 4D 00 4A 0E 3E 4E 55
+4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82
+82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00
+12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04
+82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63
+1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49
+04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43
+09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 84 4B
+7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52
+14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24
+6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C
+8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00
+E0 23 AE 27 86 4B 2F 24 2D 83 6A 4C 7A 90 5F 00
+BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00
+B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83
+09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80 07 00
+0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B
+2C 15 B0 12 3E 44 2A 17 E8 3F 9F 4F 04 00 02 00
+AF 4F 04 00 4A 93 1D 17 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 3C 49 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12
+84 12 84 44 C0 47 12 4A B0 44 56 4D 7A 4A 40 4C
+0A 4E 3E 4F 3D 40 5A 4C 6D 27 3D 40 34 4C 1A E2
+BC 1D 14 24 0E 12 3E 4F 30 41 5C 4C 3E 4F 3D 40
+34 4C 19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00
+00 00 3D 40 32 4E 2A 3C 24 4C 02 2C A2 53 C8 1D
+1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D 7A 4C 0F 4C
+49 54 45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42
+C8 1D A2 52 C8 1D BA 40 0A 44 00 00 8A 49 02 00
+3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00
+EE 3F 30 4D B6 49 0A 43 4F 55 4E 54 2F 83 7A 4E
+8F 4E 00 00 0E 4A 3E F3 30 4D DC 48 0A 41 4C 4C
+4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43
+84 12 1E 44 02 0D 0A 00 9E 47 94 44 2E 4C BC 48
+E6 48 1E 44 0B 73 74 61 63 6B 20 65 6D 70 74 79
+08 45 32 44 0A 44 40 FF EE 48 1E 44 09 46 52 41
+4D 20 66 75 6C 6C 08 45 B2 44 F2 4C DC 4C 0D 41
+42 4F 52 54 22 00 0D 12 84 12 FC 48 0A 44 08 45
+7C 4C 8E 49 0C 4A 02 27 0D 12 84 12 C0 47 12 4A
+7A 4A B0 44 58 4D 20 49 64 4C 86 48 07 5B 27 5D
+0D 12 84 12 48 4D 0A 44 0A 44 7C 4C 7C 4C 8E 49
+5C 4D 03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43
+BC 1D 30 4D D4 48 11 50 4F 53 54 50 4F 4E 45 00
+0D 12 84 12 C0 47 12 4A 7A 4A B0 44 58 4D E6 48
+AC 44 B0 4D 0A 44 0A 44 7C 4C 7C 4C 0A 44 7C 4C
+7C 4C 8E 49 00 00 02 3A 30 12 06 4E 92 B3 C8 1D
+A2 63 C8 1D 0D 12 84 12 C0 47 12 4A CE 4D 3D 41
+5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00
+3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48
+B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52
+82 4A C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
+FE FF B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12
+1E 44 0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63
+68 21 12 45 72 4D 03 3B 82 93 BC 1D F4 26 0D 12
+84 12 0A 44 8E 49 7C 4C 18 4E 74 4D 8E 49 00 00
+12 49 4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3
+00 00 30 4D C6 4C 0C 43 52 45 41 54 45 00 B0 12
+BC 4D BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 98 47
+0A 44 4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00
+8A 4D 02 00 3D 41 30 4D B6 4D 0E 3A 4E 4F 4E 41
+4D 45 30 12 06 4E 2F 83 8F 4E 00 00 1A 42 C8 1D
+1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F 50 4E
+05 49 53 00 0D 12 82 93 BC 1D 08 20 84 12 48 4D
+D2 4E 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 60 4D
+0A 44 D4 4E 7C 4C 8E 49 66 4E 08 43 4F 44 45 00
+B0 12 BC 4D A2 82 C8 1D 61 3C A8 49 0E 48 44 4E
+43 4F 44 45 B2 40 C0 4F CC 1D F2 3F 00 00 0E 45
+4E 44 43 4F 44 45 0D 12 84 12 18 4E 1E 4F 3D 41
+92 42 D0 1D CC 1D 5D 3C EA 4E 0E 43 4F 44 45 4E
+4E 4D 30 12 F4 4E B7 3F 00 00 0A 43 4F 4C 4F 4E
+1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00
+A2 52 C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32
+48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F FC 4E 0B 48
+49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF
+82 43 BC 1D B9 3F 88 4F B2 40 9A 4F D0 1D 82 4E
+CE 1D 30 40 20 49 85 12 86 4F 86 4D 2E 4D 18 50
+2A 4F 80 4E CA 49 74 4A 46 4D 6E 4F C0 4E 9A 4E
+36 4E 8E 4C A2 50 CC 4A 00 00 00 00 85 12 86 4F
+1C 57 A0 55 00 57 C8 54 24 55 72 55 4E 56 5A 56
+EA 53 0E 55 00 00 00 00 5C 4F DA 52 00 00 76 56
+BA 4F B2 40 9A 4F CE 1D 82 43 D0 1D 30 4D 3B 40
+0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00
+0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18
+B0 12 EE 4F 30 4D 00 50 0E 52 53 54 5F 52 45 54
+39 40 42 18 2C 49 3A 40 C8 1D B0 12 EE 4F 1A 42
+CA 1D 3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF
+0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93
+F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43
+80 FF FC 23 B9 40 0E 46 FE FF 29 83 B9 40 FA 45
+FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49 EC FF
+3B 40 10 00 3A 40 3A 18 B0 12 F2 4F 82 43 4A 18
+C7 3F 94 50 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F
+7C 4D 0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12
+84 12 C0 47 12 4A 7A 4A AC 44 C0 50 B4 48 54 4C
+C2 50 3E 4F 3D 41 B2 41 C6 1D B0 12 BC 4D BA 40
+85 12 FC FF BA 40 92 50 FE FF 28 83 8A 48 00 00
+BA 40 82 44 02 00 A2 52 C8 1D 18 42 B4 1D 19 42
+B6 1D A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D
+84 12 12 4A 7A 4A AC 44 2C 51 0C 51 3C 4E 3C 80
+87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90 92 50
+00 00 01 20 3E 52 2E 83 21 53 30 41 24 4B AC 44
+34 51 28 51 36 51 B2 41 C6 1D 30 41 92 83 C6 1D
+3E 40 28 00 0A 4E 3D 15 B0 12 FC 50 15 20 3E 40
+2B 00 B0 12 FC 50 06 20 3E 40 2D 00 B0 12 FC 50
+92 83 C6 1D 0E 12 1E 41 02 00 84 12 12 4A 24 4B
+AC 44 58 4D 76 51 3E 51 3A 17 30 41 B0 12 3C 51
+19 42 C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00
+92 53 C6 1D 1A 42 C6 1D 3D 15 84 12 12 4A 24 4B
+AC 44 AE 51 A6 51 3E 90 10 00 E6 2B 7C 2D B0 51
+A2 41 C6 1D E1 3F 03 20 B0 12 94 51 43 3C 7A 90
+23 00 24 20 B0 12 44 51 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 E2 51
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 6A 52 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-6A 52 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E DA 3F B0 12 6A 52 FA 23 3C 50 10 00 B0 12
-46 52 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12
-84 12 02 4C BE 51 68 53 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 6A 52 E0 23
-3C 50 80 00 B0 12 46 52 DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 44 00 13 48 4B 4E 48 0A 44
-2C 00 92 52 5E 53 A8 53 09 4B 2E 4E 0E DC A2 3F
-40 4E 03 4D 4F 56 85 12 9E 53 00 40 B2 53 05 4D
-4F 56 2E 42 85 12 9E 53 40 40 00 00 03 41 44 44
-85 12 9E 53 00 50 CC 53 05 41 44 44 2E 42 85 12
-9E 53 40 50 D8 53 04 41 44 44 43 00 85 12 9E 53
-00 60 E6 53 06 41 44 44 43 2E 42 00 85 12 9E 53
-40 60 8C 53 04 53 55 42 43 00 85 12 9E 53 00 70
-04 54 06 53 55 42 43 2E 42 00 85 12 9E 53 40 70
-12 54 03 53 55 42 85 12 9E 53 00 80 22 54 05 53
-55 42 2E 42 85 12 9E 53 40 80 16 4E 03 43 4D 50
-85 12 9E 53 00 90 3C 54 05 43 4D 50 2E 42 85 12
-9E 53 40 90 00 4E 04 44 41 44 44 00 85 12 9E 53
-00 A0 56 54 06 44 41 44 44 2E 42 00 85 12 9E 53
-40 A0 48 54 03 42 49 54 85 12 9E 53 00 B0 74 54
-05 42 49 54 2E 42 85 12 9E 53 40 B0 80 54 03 42
-49 43 85 12 9E 53 00 C0 8E 54 05 42 49 43 2E 42
-85 12 9E 53 40 C0 9A 54 03 42 49 53 85 12 9E 53
-00 D0 A8 54 05 42 49 53 2E 42 85 12 9E 53 40 D0
-00 00 03 58 4F 52 85 12 9E 53 00 E0 C2 54 05 58
-4F 52 2E 42 85 12 9E 53 40 E0 F4 53 03 41 4E 44
-85 12 9E 53 00 F0 DC 54 05 41 4E 44 2E 42 85 12
-9E 53 40 F0 02 4C 92 52 FA 54 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 2E 54 03 52 52 43
-85 12 F4 54 00 10 0C 55 05 52 52 43 2E 42 85 12
-F4 54 40 10 18 55 04 53 57 50 42 00 85 12 F4 54
-80 10 26 55 03 52 52 41 85 12 F4 54 00 11 34 55
-05 52 52 41 2E 42 85 12 F4 54 40 11 40 55 03 53
-58 54 85 12 F4 54 80 11 00 00 04 50 55 53 48 00
-85 12 F4 54 00 12 5A 55 06 50 55 53 48 2E 42 00
-85 12 F4 54 40 12 B4 54 04 43 41 4C 4C 00 85 12
-F4 54 80 12 1A 53 0E 4A 0D 12 84 12 C4 48 14 44
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 45
-4E 55 03 53 3E 3D 86 12 00 38 A2 55 02 53 3C 00
-86 12 00 34 68 55 03 30 3E 3D 86 12 00 30 B6 55
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C CA 55 03 55 3E 3D 86 12 00 28 C0 55 03 30
-3C 3E 86 12 00 24 DE 55 02 30 3D 00 86 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 55 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 B1 2F 88 DA 00 00 30 4D 64 54 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 78 55 05 42 45 47 49 4E
-30 40 28 44 08 56 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D E8 54 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 F6 55
-A8 47 4E 48 AC 55 06 52 45 50 45 41 54 00 0D 12
-84 12 8A 56 0E 56 4E 48 BA 56 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D
-4A 56 03 42 57 31 85 12 B8 56 00 00 D2 56 03 42
-57 32 85 12 B8 56 00 00 DE 56 03 42 57 33 85 12
-B8 56 00 00 F6 56 3D 41 1A 42 C6 1D 28 4E B2 92
-C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 F4 56 00 00
-16 57 03 46 57 32 85 12 F4 56 00 00 22 57 03 46
-57 33 85 12 F4 56 00 00 2E 57 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 80 4C
-DC 4B 4E 48 00 00 05 3F 47 4F 54 4F 3E 90 00 30
+3C 40 30 03 3E 93 08 24 3C 40 30 00 19 42 C8 1D
+A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+05 20 3C 40 10 02 B0 12 44 51 F0 3F 7A 90 40 00
+14 20 3C 40 20 00 B0 12 90 51 0C 20 3C D0 10 00
+3E 40 2B 00 B0 12 94 51 92 92 C2 1D C6 1D 02 24
+92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+7C 51 F2 3F 03 20 B0 12 94 51 F5 3F 7A 90 26 00
+03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 7C 51
+EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00
+19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF
+19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00
+08 52 45 54 49 00 0D 12 84 12 0A 44 00 13 7C 4C
+8E 49 0A 44 2C 00 72 52 B6 51 C0 47 7C 52 54 52
+C2 52 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+4F 56 85 12 B2 52 00 40 CE 52 0A 4D 4F 56 2E 42
+85 12 B2 52 40 40 00 00 06 41 44 44 85 12 B2 52
+00 50 E8 52 0A 41 44 44 2E 42 85 12 B2 52 40 50
+F4 52 08 41 44 44 43 00 85 12 B2 52 00 60 02 53
+0C 41 44 44 43 2E 42 00 85 12 B2 52 40 60 3A 4F
+08 53 55 42 43 00 85 12 B2 52 00 70 20 53 0C 53
+55 42 43 2E 42 00 85 12 B2 52 40 70 2E 53 06 53
+55 42 85 12 B2 52 00 80 3E 53 0A 53 55 42 2E 42
+85 12 B2 52 40 80 4A 53 06 43 4D 50 85 12 B2 52
+00 90 58 53 0A 43 4D 50 2E 42 85 12 B2 52 40 90
+00 00 08 44 41 44 44 00 85 12 B2 52 00 A0 72 53
+0C 44 41 44 44 2E 42 00 85 12 B2 52 40 A0 A0 52
+06 42 49 54 85 12 B2 52 00 B0 90 53 0A 42 49 54
+2E 42 85 12 B2 52 40 B0 9C 53 06 42 49 43 85 12
+B2 52 00 C0 AA 53 0A 42 49 43 2E 42 85 12 B2 52
+40 C0 B6 53 06 42 49 53 85 12 B2 52 00 D0 C4 53
+0A 42 49 53 2E 42 85 12 B2 52 40 D0 00 00 06 58
+4F 52 85 12 B2 52 00 E0 DE 53 0A 58 4F 52 2E 42
+85 12 B2 52 40 E0 10 53 06 41 4E 44 85 12 B2 52
+00 F0 F8 53 0A 41 4E 44 2E 42 85 12 B2 52 40 F0
+C0 47 72 52 B6 51 18 54 0A 4C 3C F0 70 00 8A 10
+3A F0 0F 00 0C DA 4D 3F D0 53 06 52 52 43 85 12
+10 54 00 10 2A 54 0A 52 52 43 2E 42 85 12 10 54
+40 10 64 53 08 53 57 50 42 00 85 12 10 54 80 10
+36 54 06 52 52 41 85 12 10 54 00 11 52 54 0A 52
+52 41 2E 42 85 12 10 54 40 11 44 54 06 53 58 54
+85 12 10 54 80 11 00 00 08 50 55 53 48 00 85 12
+10 54 00 12 78 54 0C 50 55 53 48 2E 42 00 85 12
+10 54 40 12 6C 54 08 43 41 4C 4C 00 85 12 10 54
+80 12 1A 53 0E 4A 84 12 02 4A 1E 44 0D 6F 75 74
+20 6F 66 20 62 6F 75 6E 64 73 12 45 96 54 06 53
+3E 3D 86 12 00 38 BE 54 04 53 3C 00 86 12 00 34
+86 54 06 30 3E 3D 86 12 00 30 D2 54 04 30 3C 00
+86 12 00 30 0E 4F 04 55 3C 00 86 12 00 2C E6 54
+06 55 3E 3D 86 12 00 28 DC 54 06 30 3C 3E 86 12
+00 24 FA 54 04 30 3D 00 86 12 00 20 00 00 04 49
+46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A
+30 4D 80 53 08 54 48 45 4E 00 1A 42 C8 1D 08 4E
+3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+88 DA 00 00 30 4D F0 54 08 45 4C 53 45 00 1A 42
+C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A
+00 00 E3 3F 5E 54 0A 42 45 47 49 4E 30 40 32 44
+48 55 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D 04 54
+0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+0A 57 48 49 4C 45 0D 12 84 12 12 55 A8 48 8E 49
+66 55 0C 52 45 50 45 41 54 00 0D 12 84 12 A6 55
+2A 55 8E 49 D6 55 3D 41 08 4E 3E 4F 2A 48 B2 92
+C6 1D CB 2F 98 42 C8 1D 00 00 30 4D C2 55 06 42
+57 31 85 12 D4 55 00 00 EE 55 06 42 57 32 85 12
+D4 55 00 00 FA 55 06 42 57 33 85 12 D4 55 00 00
+12 56 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92
+C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00
+3E 4F 30 4D 00 00 06 46 57 31 85 12 10 56 00 00
+36 56 06 46 57 32 85 12 10 56 00 00 42 56 06 46
+57 33 85 12 10 56 00 00 B0 55 08 47 4F 54 4F 00
+2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 48 4D
+54 4C 8E 49 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 02 4C BE 51 78 57 92 53 C4 1D 3E 40 2C 00
-84 12 1A 49 3E 4A 34 44 00 4C 54 53 8E 57 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E A6 56 04 52 52 43
-4D 00 85 12 72 57 50 00 BC 57 04 52 52 41 4D 00
-85 12 72 57 50 01 CA 57 04 52 4C 41 4D 00 85 12
-72 57 50 02 D8 57 04 52 52 55 4D 00 85 12 72 57
-50 03 E8 55 05 50 55 53 48 4D 85 12 72 57 00 15
-F4 57 04 50 4F 50 4D 00 85 12 72 57 00 17
+EC 3F 7C 52 0A 44 2C 00 12 4A 24 4B AC 44 58 4D
+C0 47 72 52 54 52 A8 56 0A 4E 3E 4F 1A 83 F9 32
+29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+5A 06 A8 3E 06 56 08 52 52 43 4D 00 85 12 92 56
+50 00 D6 56 08 52 52 41 4D 00 85 12 92 56 50 01
+E4 56 08 52 4C 41 4D 00 85 12 92 56 50 02 F2 56
+08 52 52 55 4D 00 85 12 92 56 50 03 04 55 0A 50
+55 53 48 4D 85 12 92 56 00 15 0E 57 08 50 4F 50
+4D 00 85 12 92 56 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 82 46 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 08 51
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 E8 46 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 0E 46
 q
diff --git a/binaries/MSP_EXP430FR6989_16MHz_UART.txt b/binaries/MSP_EXP430FR6989_16MHz_UART.txt
deleted file mode 100644 (file)
index 39ce9ca..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-@1800
-80 3E 08 00 A1 F7 18 00 F9 FF 24 58 02 50 34 01
-10 00 41 B3 94 45 AA 44 DA 45 9C 45 94 46 24 58
-02 50 7A 46 92 47 24 47 FE 46 3C 1D 60 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
-@4400
-B0 12 DA 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 78 46 B2 49 90 47 B2 49 22 47 B2 49 FC 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 CE 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 45 92 C3 FC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-FC 05 F3 23 B0 12 F8 44 0A 44 DE 1D E0 47 32 47
-14 44 04 1B 5B 37 6D 00 5C 47 A8 47 34 44 86 45
-14 44 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 47 A0 48 5C 47 14 44 04 1B 5B 30 6D 00
-5C 47 28 4C 92 B3 EA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 E0 05 92 42 02 18 E6 05 92 42 04 18
-E8 05 F2 D0 30 00 2A 02 92 C3 E0 05 92 D3 FA 05
-92 C3 30 01 30 41 09 3C A2 B3 FC 05 FD 27 B2 40
-13 00 EE 05 D2 D3 22 02 30 41 A2 B3 FC 05 FD 27
-B2 40 11 00 EE 05 D2 C3 22 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 45 E2 B3 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 45 04 57 41 52 4D 00 B0 12
-9C 45 84 12 14 44 07 0D 0A 1B 5B 37 6D 23 5C 47
-D6 48 14 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 5C 47
-0A 44 40 FF 28 44 D4 47 A0 48 14 44 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 44 86 45 00 00 06 41
-43 43 45 50 54 00 30 40 7A 46 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 46 3C 40 D2 46
-5D 15 B6 3E 21 52 3A 17 58 42 EC 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 EE 05 30 4D C8 46 2D 83 92 B3 FC 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 FC 05
-FD 27 58 42 EC 05 82 93 DE 1D 02 24 92 53 DE 1D
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 46 2F 83
-8F 4E 00 00 B0 12 DA 45 92 B3 FC 05 FD 27 1E 42
-EC 05 B0 12 C8 45 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 47 08 4E 3E 4F C8 3F 1A 47 04 45 43 48
-4F 00 B2 40 C2 48 C0 46 82 43 DE 1D 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 46 92 43
-DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 47 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 47 7A 47 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 45 02 43 52 00 30 40
-92 47 0D 12 84 12 14 44 02 0D 0A 00 5C 47 60 48
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 46 01 40
-2E 4E 30 4D DE 47 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 8A 47 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 44 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 1A 48 02 23 53 00 0D 12
-84 12 1C 48 56 48 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 48 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 47 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 48 4E 48 EE 44 8E 48 6A 48 5C 47 14 4C 20 47
-60 48 40 47 01 2E 0E 93 E3 37 38 43 E2 3F 88 48
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44
-5A 4B 0A 44 22 00 2C 49 FA 48 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-D4 48 82 2E 22 00 0D 12 84 12 E4 48 0A 44 5C 47
-5A 4B 60 48 18 46 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44
-30 4D 00 00 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 AE 4A
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 4A
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 58 4B 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 48 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 44 14 4C 2C 49 D0 4B
-9C 26 3D 40 D8 4B DE 3E DA 4B 0A 4E 3E 4F 3D 40
-F4 4B 36 27 3D 40 CA 4B 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 F6 4B 3E 4F 3D 40 CA 4B BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 4D
-CC 3F FE 4B 86 12 20 00 E6 47 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 8E 47
-BC 44 C4 4B C4 47 F6 47 14 44 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44
-FE 47 14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 45 3A 44 3E 4C 1A 4C 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 48 0A 44 2A 45 5A 4B 60 48 8E 49
-01 27 0D 12 84 12 14 4C 2C 49 94 49 34 44 12 4C
-60 48 00 00 83 5B 27 5D 0D 12 84 12 92 4C 0A 44
-0A 44 5A 4B 5A 4B 60 48 A4 4C 81 5B 82 43 BE 1D
-30 4D 0C 48 01 5D B2 43 BE 1D 30 4D C4 4C 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 4C 2C 49 94 49 A8 47
-34 44 12 4C F6 47 34 44 06 4D 0A 44 0A 44 5A 4B
-5A 4B 0A 44 5A 4B 5A 4B 60 48 BA 4C 01 3A 30 12
-56 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 14 4C
-2C 49 24 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 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52
-82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 45 0C 4D 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 44 60 48 5A 4B 68 4D BC 4C
-60 48 BA 4B 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D A4 4B 06 43 52 45
-41 54 45 00 B0 12 12 4D BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 4D 04 43 4F 44 45 00 B0 12 12 4D
-A2 82 C6 1D 0D 12 84 12 04 50 DE 4F 60 48 B4 4D
-07 48 44 4E 43 4F 44 45 B2 40 E2 4F DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 4D
-1E 50 3C 50 60 48 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 1E 50 3C 50 60 48
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F 00 4E 85 48 49 32 4C 4F 0D 12 84 12 28 44
-AC 4F 5A 4B BC 4C F4 4D 60 48 9A 4D 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 4E 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 44 00 00 D8 47 14 4C 2C 49
-AA 4B A0 47 34 44 14 4F AE 47 14 44 06 5B 54 48
-45 4E 5D 00 86 4E EE 4E AA 4E CC 4E 60 48 AE 47
-14 44 06 5B 45 4C 53 45 5D 00 86 4E 04 4F AA 4E
-CA 4E 60 48 14 44 04 5B 49 46 5D 00 86 4E CC 4E
-3A 44 CA 4E 82 47 14 44 05 0D 0A 6B 6F 20 5C 47
-BC 44 AC 44 3A 44 CC 4E BA 4E 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 4F 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 4C 2C 49
-94 49 38 4F 60 48 3E 4F 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 4F F0 47 60 48 70 4F
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 4B
-06 4D 41 52 4B 45 52 00 B0 12 12 4D BA 40 85 12
-FC FF BA 40 6E 4F FE FF 28 83 8A 48 00 00 BA 40
-AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A 44 CA 1D E8 47 60 48 85 12 B0 4F 78 4C E6 4D
-2C 47 90 4C 64 4E F6 46 80 4F 12 49 A8 50 BC 50
-9C 48 26 49 00 00 58 4F CE 4C F4 49 00 00 85 12
-B0 4F 9A 56 00 57 42 56 50 57 08 56 00 00 D4 53
-00 00 18 58 FC 57 6C 56 AA 56 E4 54 00 00 00 00
-6C 57 DC 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D B8 4F 36 50 3C 50 4C 50 1A 42 20 18
-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
-DA 4C 09 50 57 52 5F 53 54 41 54 45 85 12 44 50
-24 58 E0 48 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 50 F3 3F 82 50 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 90 50 30 4D 94 50 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 51 FE FF 29 83
-B9 40 02 46 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 46 B2 49 FA 44 B2 49 02 44 B2 49 20 46
-B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C FC 23
-B2 D3 06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43
-22 02 D2 D3 24 02 B2 43 46 02 B2 43 42 02 B2 43
-66 02 B2 43 62 02 B2 43 86 02 B2 40 7F FF 82 02
-F2 43 26 03 F2 43 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 B2 40 33 00 64 01 D2 43
-61 01 39 40 40 00 18 42 00 18 18 83 FE 23 19 83
-FA 23 B2 42 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00
-A2 04 1E 42 08 18 82 43 08 18 1E D2 9E 01 B0 12
-F8 44 1E 46 38 40 C0 1D 0A 4E 39 48 2E 48 09 5E
-1E 52 C4 1D 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E
-2A 88 82 4A C4 1D 30 4D 1C 15 0E 12 12 12 C4 1D
-84 12 2C 49 94 49 F0 47 34 44 14 52 50 4A 34 44
-2E 52 28 52 16 52 3C 4E 3C 80 87 12 05 24 1C 53
-02 20 2E 4E 01 3C 2E 83 21 52 1B 17 30 41 30 52
-B2 41 C4 1D 3E 41 84 12 0A 44 2B 00 2C 49 94 49
-F0 47 34 44 4C 52 50 4A 34 44 12 4C BA 47 2C 49
-50 4A 34 44 12 4C 58 52 3E 5F E7 3F 3E 40 28 00
-B0 12 F8 51 19 42 C6 1D A2 53 C6 1D 89 4E 00 00
-3E 40 29 00 92 92 C0 1D C4 1D 02 20 30 40 80 4D
-1C 15 12 12 C4 1D 92 53 C4 1D 84 12 2C 49 50 4A
-34 44 A0 52 96 52 21 53 3E 90 10 00 C6 2B 7F 2D
-A2 52 B2 41 C4 1D C1 3F 0D 12 84 12 14 4C D4 51
-B2 52 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 F8 51 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 F8 51 ED 3F 7A 90 40 00 16 20 3C 40
-20 00 92 53 C4 1D B0 12 80 52 0C 20 3C 50 10 00
-3E 40 2B 00 B0 12 80 52 92 92 C0 1D C4 1D 02 24
-92 53 C4 1D 8E 10 0C 5E DA 3F B0 12 80 52 FA 23
-3C 50 10 00 B0 12 5C 52 EF 3F 0C 43 1B 42 C6 1D
-A2 53 C6 1D 0D 12 84 12 14 4C D4 51 7E 53 FE 90
-26 00 00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F
-B0 12 80 52 E0 23 3C 50 80 00 B0 12 5C 52 DB 3F
-00 00 04 52 45 54 49 00 0D 12 84 12 0A 44 00 13
-5A 4B 60 48 0A 44 2C 00 A8 52 74 53 BE 53 09 4B
-2E 4E 0E DC A2 3F 52 4E 03 4D 4F 56 85 12 B4 53
-00 40 C8 53 05 4D 4F 56 2E 42 85 12 B4 53 40 40
-00 00 03 41 44 44 85 12 B4 53 00 50 E2 53 05 41
-44 44 2E 42 85 12 B4 53 40 50 EE 53 04 41 44 44
-43 00 85 12 B4 53 00 60 FC 53 06 41 44 44 43 2E
-42 00 85 12 B4 53 40 60 A2 53 04 53 55 42 43 00
-85 12 B4 53 00 70 1A 54 06 53 55 42 43 2E 42 00
-85 12 B4 53 40 70 28 54 03 53 55 42 85 12 B4 53
-00 80 38 54 05 53 55 42 2E 42 85 12 B4 53 40 80
-28 4E 03 43 4D 50 85 12 B4 53 00 90 52 54 05 43
-4D 50 2E 42 85 12 B4 53 40 90 12 4E 04 44 41 44
-44 00 85 12 B4 53 00 A0 6C 54 06 44 41 44 44 2E
-42 00 85 12 B4 53 40 A0 5E 54 03 42 49 54 85 12
-B4 53 00 B0 8A 54 05 42 49 54 2E 42 85 12 B4 53
-40 B0 96 54 03 42 49 43 85 12 B4 53 00 C0 A4 54
-05 42 49 43 2E 42 85 12 B4 53 40 C0 B0 54 03 42
-49 53 85 12 B4 53 00 D0 BE 54 05 42 49 53 2E 42
-85 12 B4 53 40 D0 00 00 03 58 4F 52 85 12 B4 53
-00 E0 D8 54 05 58 4F 52 2E 42 85 12 B4 53 40 E0
-0A 54 03 41 4E 44 85 12 B4 53 00 F0 F2 54 05 41
-4E 44 2E 42 85 12 B4 53 40 F0 14 4C A8 52 10 55
-0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F
-44 54 03 52 52 43 85 12 0A 55 00 10 22 55 05 52
-52 43 2E 42 85 12 0A 55 40 10 2E 55 04 53 57 50
-42 00 85 12 0A 55 80 10 3C 55 03 52 52 41 85 12
-0A 55 00 11 4A 55 05 52 52 41 2E 42 85 12 0A 55
-40 11 56 55 03 53 58 54 85 12 0A 55 80 11 00 00
-04 50 55 53 48 00 85 12 0A 55 00 12 70 55 06 50
-55 53 48 2E 42 00 85 12 0A 55 40 12 CA 54 04 43
-41 4C 4C 00 85 12 0A 55 80 12 1A 53 0E 4A 0D 12
-84 12 D6 48 14 44 0D 6F 75 74 20 6F 66 20 62 6F
-75 6E 64 73 36 45 64 55 03 53 3E 3D 86 12 00 38
-B8 55 02 53 3C 00 86 12 00 34 7E 55 03 30 3E 3D
-86 12 00 30 CC 55 02 30 3C 00 86 12 00 30 00 00
-02 55 3C 00 86 12 00 2C E0 55 03 55 3E 3D 86 12
-00 28 D6 55 03 30 3C 3E 86 12 00 24 F4 55 02 30
-3D 00 86 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 55 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 B1 2F 88 DA 00 00 30 4D
-7A 54 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 8E 55
-05 42 45 47 49 4E 30 40 28 44 1E 56 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 8A 3B 3A F0 FF 03 08 DA 89 48
-00 00 A2 53 C6 1D 30 4D FE 54 05 41 47 41 49 4E
-0A 4E 38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45
-0D 12 84 12 0C 56 BA 47 60 48 C2 55 06 52 45 50
-45 41 54 00 0D 12 84 12 A0 56 24 56 60 48 D0 56
-3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42
-C6 1D 00 00 30 4D 60 56 03 42 57 31 85 12 CE 56
-00 00 E8 56 03 42 57 32 85 12 CE 56 00 00 F4 56
-03 42 57 33 85 12 CE 56 00 00 0C 57 3D 41 1A 42
-C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F 00 00 A2 53
-C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31
-85 12 0A 57 00 00 2C 57 03 46 57 32 85 12 0A 57
-00 00 38 57 03 46 57 33 85 12 0A 57 00 00 44 57
-04 47 4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C
-0D 12 84 12 92 4C EE 4B 60 48 00 00 05 3F 47 4F
-54 4F 3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10
-EF 27 3E E0 00 08 EC 3F 14 4C D4 51 8E 57 92 53
-C4 1D 3E 40 2C 00 84 12 2C 49 50 4A 34 44 12 4C
-6A 53 A4 57 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E
-0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00
-EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E
-BC 56 04 52 52 43 4D 00 85 12 88 57 50 00 D2 57
-04 52 52 41 4D 00 85 12 88 57 50 01 E0 57 04 52
-4C 41 4D 00 85 12 88 57 50 02 EE 57 04 52 52 55
-4D 00 85 12 88 57 50 03 FE 55 05 50 55 53 48 4D
-85 12 88 57 00 15 0A 58 04 50 4F 50 4D 00 85 12
-88 57 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 94 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 1A 51
-q
diff --git a/binaries/MSP_EXP430FR6989_1MHz_115200.txt b/binaries/MSP_EXP430FR6989_1MHz_115200.txt
new file mode 100644 (file)
index 0000000..83ef249
--- /dev/null
@@ -0,0 +1,326 @@
+@1800
+E8 03 08 00 00 D6 18 00 FD FF 35 01 10 00 A1 59
+DC 46 7E 45 84 45 54 45 4C 47 3A 57 F2 4F AC 4F
+AC 4F C2 46 80 47 48 47 3C 1D E0 1C A0 49 B6 44
+C4 44 BC 48 20 00 0A 00 00 1C 7E 45 84 45 54 45
+4C 47 3A 57 F2 4F AC 4F AC 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 09 3D 0E 93 3E 4F
+9E 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 C0 46 B2 49
+7E 47 B2 49 46 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 66 50 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 4C 47 92 C3 FC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 FC 05 F3 23
+B0 12 D0 44 C6 48 AC 44 52 45 8E 47 1E 44 04 1B
+5B 37 6D 00 B0 47 B0 47 1E 44 04 1B 5B 30 6D 00
+B0 47 FC 4C B0 12 7E 45 B2 40 81 00 E0 05 92 42
+02 18 E6 05 92 42 04 18 E8 05 F2 D0 30 00 2A 02
+92 C3 E0 05 92 D3 FA 05 92 C3 30 01 30 41 92 B3
+EA 05 FD 23 30 41 92 12 3E 18 84 12 8E 47 1E 44
+07 0D 0A 1B 5B 37 6D 23 B0 47 14 4A 1E 44 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 B0 47 0A 44 40 FF 32 44
+DC 48 E0 49 1E 44 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 44 46 45 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 45 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 00 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+B2 D3 06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43
+22 02 D2 D3 24 02 B2 43 46 02 B2 43 42 02 B2 43
+66 02 B2 43 62 02 B2 43 86 02 B2 40 7F FF 82 02
+F2 43 26 03 F2 43 22 03 F2 40 A5 00 61 01 82 43
+62 01 82 43 66 01 B2 40 33 00 64 01 D2 43 61 01
+39 40 40 00 18 42 00 18 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 19 42 9E 01
+1E 42 08 18 82 43 08 18 3E F3 01 20 0E 49 B0 12
+D0 44 86 45 00 00 0C 41 43 43 45 50 54 00 30 40
+C2 46 08 4E 2E 4F 08 5E 39 40 0D 00 3A 40 20 00
+3B 40 20 47 3C 40 2C 47 5D 15 92 3E 21 52 3A 17
+58 42 EC 05 48 9B 09 20 A2 B3 FC 05 FD 27 B2 40
+13 00 EE 05 D2 D3 22 02 30 41 48 9C 06 2C 78 92
+11 20 2E 9F 0F 24 1E 83 05 3C 0E 9A 03 2C CE 48
+00 00 1E 53 A2 B3 FC 05 FD 27 C2 48 EE 05 30 4D
+22 47 2D 83 92 B3 FC 05 DB 23 FC 3F 3E 8F 3D 41
+92 B3 FC 05 FD 27 58 42 EC 05 08 4C EB 3F 00 00
+06 4B 45 59 30 40 48 47 30 12 5E 47 A2 B3 FC 05
+FD 27 B2 40 11 00 EE 05 D2 C3 22 02 30 41 2F 83
+8F 4E 00 00 92 B3 FC 05 FD 27 B0 12 E8 46 1E 42
+EC 05 30 4D 00 00 08 45 4D 49 54 00 30 40 80 47
+08 4E 3E 4F C7 3F 76 47 08 45 43 48 4F 00 B2 40
+C2 48 1A 47 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+B2 40 30 4D 1A 47 30 4D 00 00 08 54 59 50 45 00
+0D 12 3D 40 C0 47 29 4F 8F 4E 00 00 7E 49 DE 3F
+C2 47 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F
+30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F
+68 22 F9 98 00 00 65 22 19 53 1C 83 FA 23 2D 53
+30 4D 2F 53 3E 4F 1E 83 5C 22 9B 24 40 47 0D 5B
+45 4C 53 45 5D 00 0D 12 84 12 0A 44 00 00 E0 48
+D2 47 24 4A DE 4C B0 44 4E 48 14 44 06 5B 54 48
+45 4E 5D 00 D6 47 2C 48 F2 47 10 48 14 44 06 5B
+45 4C 53 45 5D 00 D6 47 3E 48 F2 47 0E 48 1E 44
+04 5B 49 46 5D 00 D6 47 10 48 B2 44 0E 48 1E 44
+05 0D 6B 6F 20 0A B0 47 9A 44 84 44 B2 44 10 48
+FE 47 0D 5B 54 48 45 4E 5D 00 30 4D 62 48 09 5B
+49 46 5D 00 0E 93 3E 4F C6 27 30 4D 6E 48 13 5B
+44 45 46 49 4E 45 44 5D 0D 12 84 12 D2 47 24 4A
+8C 4A 30 4C A0 49 7E 48 17 5B 55 4E 44 45 46 49
+4E 45 44 5D 0D 12 84 12 D2 47 24 4A 8C 4A B0 48
+3D 41 2F 53 1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E
+00 00 3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E
+FE FF 3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3
+1E 53 30 4D 00 00 02 40 2E 4E 30 4D B6 46 02 21
+BE 4F 00 00 3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D
+3E 8F 01 28 0E F3 30 4D D8 45 05 53 22 00 82 43
+C0 1D 0D 12 84 12 0A 44 1E 44 8E 4C 0A 44 22 00
+24 4A 24 49 B2 40 20 00 C0 1D 1A 53 1A B3 82 6A
+C8 1D 3E 4F 3D 41 30 4D 98 47 05 2E 22 00 0D 12
+84 12 0E 49 0A 44 B0 47 8E 4C A0 49 00 00 04 3C
+23 00 B2 40 B2 1D B2 1D 30 4D 0A 49 02 23 1B 42
+BE 1D 2C 4F 2F 83 B0 12 46 44 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 5C 49 04 23 53 00
+0D 12 84 12 5E 49 98 49 2D 83 09 DE 09 93 E1 23
+3D 41 30 4D 8C 49 04 23 3E 00 9F 42 B2 1D 00 00
+3E 40 B2 1D 2E 8F 30 4D 00 00 08 48 4F 4C 44 00
+4A 4E 3E 4F DB 3F A6 49 08 53 49 47 4E 00 0E 93
+3E 4F 7A 40 2D 00 D2 33 30 4D 88 47 04 55 2E 00
+0C 43 2F 83 8F 4E 00 00 0E 4C 1D 15 3E F3 06 34
+BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 52 49
+D2 47 C0 49 90 49 BC 48 CE 49 AA 49 B0 47 A0 49
+3A 49 02 2E 0E 93 E4 37 3C 43 E3 3F 00 00 08 57
+4F 52 44 00 3C 40 C2 1D 39 4C 38 4C 09 58 38 5C
+2A 4C 09 98 1D 24 7E 98 FC 27 18 83 1B 42 C0 1D
+F8 90 27 00 00 00 04 20 E8 98 02 00 01 20 0B 43
+CA 4C 00 00 09 98 0C 24 7C 48 4E 9C 09 24 1A 53
+7C 90 61 00 F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F
+18 82 C4 1D 82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A
+00 00 30 4D 00 00 08 46 49 4E 44 00 2F 83 0C 4E
+3B 40 CE 1D 3E 4B 0E 93 1E 24 58 4C 01 00 78 F0
+0F 00 08 58 0E 58 2E 53 1E 4E FE FF 0E 93 F2 27
+09 4E 78 49 48 11 68 9C F7 23 0A 4C FA 99 01 00
+F3 23 1A 53 58 83 FA 23 19 B3 09 63 0C 49 6E 4E
+1E F3 01 20 1E 83 8F 4C 00 00 30 4D 12 4A 0E 3E
+4E 55 4D 42 45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F
+2F 82 82 4B C0 04 6A 4C 7A 80 3A 00 03 28 7A 80
+07 00 12 28 7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49
+E0 04 82 48 E2 04 19 42 E4 04 18 42 E6 04 09 5A
+08 63 1C 53 1E 83 E7 23 8F 4C 00 00 8F 48 02 00
+8F 49 04 00 30 4D 32 C0 00 02 3F 82 8F 4E 06 00
+08 43 09 43 1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40
+96 4B 7E 4C 6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43
+7A 52 14 24 3B 52 6A 53 11 24 3B 40 10 00 5A 93
+0D 24 6A 92 41 20 3E 90 03 00 3E 20 FC 9C 01 00
+6C 4C 8F 4C 04 00 38 3C B1 43 02 00 1E 83 FC 9C
+00 00 E0 23 AE 27 98 4B 2F 24 2D 83 6A 4C 7A 90
+5F 00 BF 27 32 B0 00 02 27 20 32 D0 00 02 7A 80
+2E 00 B7 27 6A 53 20 20 0A 4E 09 43 8F 49 02 00
+5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28 79 80
+07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49 00 00
+0E 4B 2C 15 B0 12 3E 44 2A 17 E8 3F 9F 4F 04 00
+02 00 AF 4F 04 00 4A 93 1D 17 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 4E 49 03 5C 92 42 C2 1D C6 1D 30 4D
+0D 12 84 12 84 44 D2 47 24 4A B0 44 68 4D 8C 4A
+52 4C 0A 4E 3E 4F 3D 40 6C 4C 6D 27 3D 40 46 4C
+1A E2 BC 1D 14 24 0E 12 3E 4F 30 41 6E 4C 3E 4F
+3D 40 46 4C 19 20 DE 53 00 00 68 4E 08 5E F8 40
+3F 00 00 00 3D 40 44 4E 2A 3C 36 4C 02 2C A2 53
+C8 1D 1A 42 C8 1D 8A 4E FE FF 3E 4F 30 4D 8C 4C
+0F 4C 49 54 45 52 41 4C 82 93 BC 1D 0D 24 09 4E
+1A 42 C8 1D A2 52 C8 1D BA 40 0A 44 00 00 8A 49
+02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24 8A 4E
+02 00 EE 3F 30 4D C8 49 0A 43 4F 55 4E 54 2F 83
+7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D EE 48 0A 41
+4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C
+0E 43 84 12 1E 44 02 0D 0A 00 B0 47 94 44 40 4C
+CE 48 F8 48 1E 44 0B 73 74 61 63 6B 20 65 6D 70
+74 79 08 45 32 44 0A 44 40 FF 00 49 1E 44 09 46
+52 41 4D 20 66 75 6C 6C 08 45 B2 44 04 4D EE 4C
+0D 41 42 4F 52 54 22 00 0D 12 84 12 0E 49 0A 44
+08 45 8E 4C A0 49 1E 4A 02 27 0D 12 84 12 D2 47
+24 4A 8C 4A B0 44 6A 4D 32 49 76 4C 98 48 07 5B
+27 5D 0D 12 84 12 5A 4D 0A 44 0A 44 8E 4C 8E 4C
+A0 49 6E 4D 03 5B 82 43 BC 1D 30 4D 00 00 02 5D
+B2 43 BC 1D 30 4D E6 48 11 50 4F 53 54 50 4F 4E
+45 00 0D 12 84 12 D2 47 24 4A 8C 4A B0 44 6A 4D
+F8 48 AC 44 C2 4D 0A 44 0A 44 8E 4C 8E 4C 0A 44
+8E 4C 8E 4C A0 49 00 00 02 3A 30 12 18 4E 92 B3
+C8 1D A2 63 C8 1D 0D 12 84 12 D2 47 24 4A E0 4D
+3D 41 5A D3 5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E
+01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58 00 00
+82 48 B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F BA 1D
+2A 52 82 4A C8 1D 30 41 BA 40 0D 12 FC FF BA 40
+84 12 FE FF B2 43 BC 1D 30 4D 82 9F BA 1D 66 25
+84 12 1E 44 0F 73 74 61 63 6B 20 6D 69 73 6D 61
+74 63 68 21 12 45 84 4D 03 3B 82 93 BC 1D F4 26
+0D 12 84 12 0A 44 A0 49 8E 4C 2A 4E 86 4D A0 49
+00 00 12 49 4D 4D 45 44 49 41 54 45 18 42 B4 1D
+D8 D3 00 00 30 4D D8 4C 0C 43 52 45 41 54 45 00
+B0 12 CE 4D BA 40 86 12 FC FF 8A 4A FE FF 3A 3D
+AA 47 0A 44 4F 45 53 3E 1A 42 B8 1D BA 40 85 12
+00 00 8A 4D 02 00 3D 41 30 4D C8 4D 0E 3A 4E 4F
+4E 41 4D 45 30 12 18 4E 2F 83 8F 4E 00 00 1A 42
+C8 1D 1A B3 0A 63 0E 4A 39 40 12 02 08 49 98 3F
+62 4E 05 49 53 00 0D 12 82 93 BC 1D 08 20 84 12
+5A 4D E4 4E 3D 41 BE 4F 02 00 3E 4F 30 4D 84 12
+72 4D 0A 44 E6 4E 8E 4C A0 49 78 4E 08 43 4F 44
+45 00 B0 12 CE 4D A2 82 C8 1D 61 3C BA 49 0E 48
+44 4E 43 4F 44 45 B2 40 D2 4F CC 1D F2 3F 00 00
+0E 45 4E 44 43 4F 44 45 0D 12 84 12 2A 4E 30 4F
+3D 41 92 42 D0 1D CC 1D 5D 3C FC 4E 0E 43 4F 44
+45 4E 4E 4D 30 12 06 4F B7 3F 00 00 0A 43 4F 4C
+4F 4E 1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12
+02 00 A2 52 C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C
+4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D EF 3F 0E 4F
+0B 48 49 32 4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A
+FE FF 82 43 BC 1D B9 3F 9A 4F B2 40 AC 4F D0 1D
+82 4E CE 1D 30 40 32 49 85 12 98 4F 98 4D 40 4D
+2A 50 3C 4F 92 4E DC 49 86 4A 58 4D 80 4F D2 4E
+AC 4E 48 4E A0 4C B4 50 DE 4A 00 00 00 00 85 12
+98 4F 2E 57 B2 55 12 57 DA 54 36 55 84 55 60 56
+6C 56 FC 53 20 55 00 00 00 00 6E 4F EC 52 00 00
+88 56 CC 4F B2 40 AC 4F CE 1D 82 43 D0 1D 30 4D
+3B 40 0A 00 BA 49 00 00 2A 53 2B 83 FB 23 30 41
+00 00 0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40
+42 18 B0 12 00 50 30 4D 12 50 0E 52 53 54 5F 52
+45 54 39 40 42 18 2C 49 3A 40 C8 1D B0 12 00 50
+1A 42 CA 1D 3B 40 10 00 09 4A 08 49 29 83 18 48
+FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+0A 93 F0 23 30 4D 0E 93 E4 37 39 40 10 00 29 83
+B9 43 80 FF FC 23 B9 40 06 46 FE FF 29 83 B9 40
+F2 45 FE FF 39 90 AE FF F9 23 39 40 10 18 B2 49
+E4 FF 3B 40 10 00 3A 40 3A 18 B0 12 04 50 82 43
+4A 18 C7 3F A6 50 B2 4E 42 18 BE 12 3E 4F 3D 41
+C0 3F 8E 4D 0C 4D 41 52 4B 45 52 00 12 12 C6 1D
+0D 12 84 12 D2 47 24 4A 8C 4A AC 44 D2 50 C6 48
+66 4C D4 50 3E 4F 3D 41 B2 41 C6 1D B0 12 CE 4D
+BA 40 85 12 FC FF BA 40 A4 50 FE FF 28 83 8A 48
+00 00 BA 40 82 44 02 00 A2 52 C8 1D 18 42 B4 1D
+19 42 B6 1D A8 49 FE FF 89 48 00 00 30 4D 12 12
+C6 1D 84 12 24 4A 8C 4A AC 44 3E 51 1E 51 3C 4E
+3C 80 87 12 0A 24 1C 53 02 20 2E 4E 06 3C BE 90
+A4 50 00 00 01 20 3E 52 2E 83 21 53 30 41 36 4B
+AC 44 46 51 3A 51 48 51 B2 41 C6 1D 30 41 92 83
+C6 1D 3E 40 28 00 0A 4E 3D 15 B0 12 0E 51 15 20
+3E 40 2B 00 B0 12 0E 51 06 20 3E 40 2D 00 B0 12
+0E 51 92 83 C6 1D 0E 12 1E 41 02 00 84 12 24 4A
+36 4B AC 44 6A 4D 88 51 3E 51 3A 17 30 41 B0 12
+4E 51 19 42 C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40
+29 00 92 53 C6 1D 1A 42 C6 1D 3D 15 84 12 24 4A
+36 4B AC 44 C0 51 B8 51 3E 90 10 00 E6 2B 7C 2D
+C2 51 A2 41 C6 1D E1 3F 03 20 B0 12 A6 51 43 3C
+7A 90 23 00 24 20 B0 12 56 51 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
+C8 1D A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90
+26 00 05 20 3C 40 10 02 B0 12 56 51 F0 3F 7A 90
+40 00 14 20 3C 40 20 00 B0 12 A2 51 0C 20 3C D0
+10 00 3E 40 2B 00 B0 12 A6 51 92 92 C2 1D C6 1D
+02 24 92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00
+B0 12 8E 51 F2 3F 03 20 B0 12 A6 51 F5 3F 7A 90
+26 00 03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12
+8E 51 EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40
+20 00 19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49
+FF FF 19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D
+00 00 08 52 45 54 49 00 0D 12 84 12 0A 44 00 13
+8E 4C A0 49 0A 44 2C 00 84 52 C8 51 D2 47 8E 52
+66 52 D4 52 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00
+06 4D 4F 56 85 12 C4 52 00 40 E0 52 0A 4D 4F 56
+2E 42 85 12 C4 52 40 40 00 00 06 41 44 44 85 12
+C4 52 00 50 FA 52 0A 41 44 44 2E 42 85 12 C4 52
+40 50 06 53 08 41 44 44 43 00 85 12 C4 52 00 60
+14 53 0C 41 44 44 43 2E 42 00 85 12 C4 52 40 60
+4C 4F 08 53 55 42 43 00 85 12 C4 52 00 70 32 53
+0C 53 55 42 43 2E 42 00 85 12 C4 52 40 70 40 53
+06 53 55 42 85 12 C4 52 00 80 50 53 0A 53 55 42
+2E 42 85 12 C4 52 40 80 5C 53 06 43 4D 50 85 12
+C4 52 00 90 6A 53 0A 43 4D 50 2E 42 85 12 C4 52
+40 90 00 00 08 44 41 44 44 00 85 12 C4 52 00 A0
+84 53 0C 44 41 44 44 2E 42 00 85 12 C4 52 40 A0
+B2 52 06 42 49 54 85 12 C4 52 00 B0 A2 53 0A 42
+49 54 2E 42 85 12 C4 52 40 B0 AE 53 06 42 49 43
+85 12 C4 52 00 C0 BC 53 0A 42 49 43 2E 42 85 12
+C4 52 40 C0 C8 53 06 42 49 53 85 12 C4 52 00 D0
+D6 53 0A 42 49 53 2E 42 85 12 C4 52 40 D0 00 00
+06 58 4F 52 85 12 C4 52 00 E0 F0 53 0A 58 4F 52
+2E 42 85 12 C4 52 40 E0 22 53 06 41 4E 44 85 12
+C4 52 00 F0 0A 54 0A 41 4E 44 2E 42 85 12 C4 52
+40 F0 D2 47 84 52 C8 51 2A 54 0A 4C 3C F0 70 00
+8A 10 3A F0 0F 00 0C DA 4D 3F E2 53 06 52 52 43
+85 12 22 54 00 10 3C 54 0A 52 52 43 2E 42 85 12
+22 54 40 10 76 53 08 53 57 50 42 00 85 12 22 54
+80 10 48 54 06 52 52 41 85 12 22 54 00 11 64 54
+0A 52 52 41 2E 42 85 12 22 54 40 11 56 54 06 53
+58 54 85 12 22 54 80 11 00 00 08 50 55 53 48 00
+85 12 22 54 00 12 8A 54 0C 50 55 53 48 2E 42 00
+85 12 22 54 40 12 7E 54 08 43 41 4C 4C 00 85 12
+22 54 80 12 1A 53 0E 4A 84 12 14 4A 1E 44 0D 6F
+75 74 20 6F 66 20 62 6F 75 6E 64 73 12 45 A8 54
+06 53 3E 3D 86 12 00 38 D0 54 04 53 3C 00 86 12
+00 34 98 54 06 30 3E 3D 86 12 00 30 E4 54 04 30
+3C 00 86 12 00 30 20 4F 04 55 3C 00 86 12 00 2C
+F8 54 06 55 3E 3D 86 12 00 28 EE 54 06 30 3C 3E
+86 12 00 24 0C 55 04 30 3D 00 86 12 00 20 00 00
+04 49 46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D
+0E 4A 30 4D 92 53 08 54 48 45 4E 00 1A 42 C8 1D
+08 4E 3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02
+B2 2F 88 DA 00 00 30 4D 02 55 08 45 4C 53 45 00
+1A 42 C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83
+8F 4A 00 00 E3 3F 70 54 0A 42 45 47 49 4E 30 40
+32 44 5A 55 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F
+19 42 C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B
+3A F0 FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D
+16 54 0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
+00 00 0A 57 48 49 4C 45 0D 12 84 12 24 55 BA 48
+A0 49 78 55 0C 52 45 50 45 41 54 00 0D 12 84 12
+B8 55 3C 55 A0 49 E8 55 3D 41 08 4E 3E 4F 2A 48
+B2 92 C6 1D CB 2F 98 42 C8 1D 00 00 30 4D D4 55
+06 42 57 31 85 12 E6 55 00 00 00 56 06 42 57 32
+85 12 E6 55 00 00 0C 56 06 42 57 33 85 12 E6 55
+00 00 24 56 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00
+B2 92 C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A
+00 00 3E 4F 30 4D 00 00 06 46 57 31 85 12 22 56
+00 00 48 56 06 46 57 32 85 12 22 56 00 00 54 56
+06 46 57 33 85 12 22 56 00 00 C2 55 08 47 4F 54
+4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12
+5A 4D 66 4C A0 49 00 00 0A 3F 47 4F 54 4F 3E 90
+00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0
+00 08 EC 3F 8E 52 0A 44 2C 00 24 4A 36 4B AC 44
+6A 4D D2 47 84 52 66 52 BA 56 0A 4E 3E 4F 1A 83
+F9 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A
+08 8A 38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E
+8A 10 5A 06 A8 3E 18 56 08 52 52 43 4D 00 85 12
+A4 56 50 00 E8 56 08 52 52 41 4D 00 85 12 A4 56
+50 01 F6 56 08 52 4C 41 4D 00 85 12 A4 56 50 02
+04 57 08 52 52 55 4D 00 85 12 A4 56 50 03 16 55
+0A 50 55 53 48 4D 85 12 A4 56 00 15 20 57 08 50
+4F 50 4D 00 85 12 A4 56 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 DC 46 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 06 46
+q
index 3d509b8..5daea6e 100644 (file)
 @1800
-E8 03 12 00 00 00 F8 00 F9 FF FC 57 F0 4F 34 01
-10 00 41 87 B6 45 AA 44 B8 45 8C 45 82 46 FC 57
-F0 4F 70 46 80 47 FE 46 DA 46 3C 1D 4E 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
+E8 03 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+D6 46 56 45 56 45 58 45 44 45 16 57 CE 4F 88 4F
+88 4F C4 46 48 47 20 47 3C 1D E0 1C 7C 49 B6 44
+C4 44 98 48 20 00 0A 00 00 1C 56 45 56 45 58 45
+44 45 16 57 CE 4F 88 4F 88 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4400
-B0 12 B8 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 6E 46 B2 49 7E 47 B2 49 FC 46 B2 49 D8 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BC 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 45 0E 12 B0 12
-F8 44 0A 44 DE 1D CE 47 16 47 EE 44 34 44 8A 45
-14 44 05 1B 5B 37 6D 40 4A 47 0A 44 02 18 CE 47
-C4 48 96 47 34 44 7E 45 14 44 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 47 8E 48 4A 47
-14 44 04 1B 5B 30 6D 00 4A 47 16 4C 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 45 E2 B3 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 45 04 57 41 52 4D 00 B0 12
-8C 45 78 40 03 00 B0 12 BA 45 84 12 14 44 07 0D
-0A 1B 5B 37 6D 40 4A 47 0A 44 02 18 CE 47 C4 48
-0A 44 23 00 FA 46 C4 48 14 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 4A 47 0A 44 40 FF 28 44 C2 47 8E 48
-14 44 0A 62 79 74 65 73 20 66 72 65 65 00 3A 44
-7E 45 00 00 06 41 43 43 45 50 54 00 30 40 70 46
-0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 B8 22
-3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24
-48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 45 82 93 DE 1D 02 24 92 53 DE 1D 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 46 2F 83 8F 4E 00 00
-58 43 B0 12 BA 45 92 B3 6C 06 FD 27 1E 42 4C 06
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 46 08 4E
-3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D F4 46
-04 45 43 48 4F 00 B2 40 C2 48 08 47 82 43 DE 1D
-38 40 05 00 B0 12 BA 45 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 47 92 43 DE 1D 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 47 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 46 68 47 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 45 02 43 52 00 30 40 80 47
-0D 12 84 12 14 44 02 0D 0A 00 4A 47 4E 48 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 46 01 40 2E 4E
-30 4D CC 47 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D 78 47 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E 44 BF 4F 00 00 7A 90 0A 00 02 28
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 0A 3D 0E 93 3E 4F
+8C 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 C2 46 B2 49
+46 47 B2 49 1E 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 42 50 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 45 B0 12 D0 44 A2 48 AC 44
+42 45 60 47 1E 44 05 1B 5B 37 6D 40 8C 47 0A 44
+02 18 C4 48 F0 49 8C 47 1E 44 04 1B 5B 30 6D 00
+8C 47 D8 4C 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 60 47 1E 44 07 0D 0A 1B 5B 37
+6D 40 8C 47 0A 44 02 18 C4 48 F0 49 0A 44 23 00
+44 47 F0 49 1E 44 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+8C 47 0A 44 40 FF 32 44 B8 48 BC 49 1E 44 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 44 36 45 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 45 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B3
+00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01
+31 40 E0 1C 3F 40 80 1C B2 D3 06 02 B2 40 FE FF
+02 02 B2 43 26 02 B2 43 22 02 B2 43 46 02 B2 43
+42 02 B2 43 66 02 B2 43 62 02 B2 43 86 02 B2 40
+7F FF 82 02 F2 43 26 03 F2 43 22 03 F2 40 A5 00
+61 01 82 43 62 01 82 43 66 01 B2 40 33 00 64 01
+D2 43 61 01 39 40 40 00 18 42 00 18 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
+1E 42 08 18 82 43 08 18 3E F3 02 20 1E 42 9E 01
+B0 12 D0 44 80 45 00 00 0C 41 43 43 45 50 54 00
+30 40 C4 46 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40
+20 00 3D 15 95 3E 21 52 A2 C2 6C 06 B2 B0 10 00
+40 06 8E 22 3A 17 92 B3 6C 06 FD 27 58 42 4C 06
+48 9B 0E 24 48 9C 06 2C 78 92 F5 23 2E 9F F3 27
+1E 83 F1 3F 0E 9A EF 2F CE 48 00 00 1E 53 EB 3F
+3E 8F 08 4C 1B 3C 00 00 06 4B 45 59 30 40 20 47
+58 43 B0 12 46 45 2F 83 8F 4E 00 00 92 B3 6C 06
+FD 27 1E 42 4C 06 B0 12 44 45 30 4D 00 00 08 45
+4D 49 54 00 30 40 48 47 08 4E 3E 4F A2 B3 6C 06
+FD 27 C2 48 4E 06 30 4D 3E 47 08 45 43 48 4F 00
+B2 40 C2 48 52 47 38 40 05 00 B0 12 46 45 30 4D
+00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D 52 47
+28 42 F3 3F 00 00 08 54 59 50 45 00 0D 12 3D 40
+9C 47 29 4F 8F 4E 00 00 7E 49 D4 3F 9E 47 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 7A 22 F9 98
+00 00 77 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 6E 22 9B 24 18 47 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A 44 00 00 BC 48 AE 47 00 4A
+BA 4C B0 44 2A 48 14 44 06 5B 54 48 45 4E 5D 00
+B2 47 08 48 CE 47 EC 47 14 44 06 5B 45 4C 53 45
+5D 00 B2 47 1A 48 CE 47 EA 47 1E 44 04 5B 49 46
+5D 00 B2 47 EC 47 B2 44 EA 47 1E 44 05 0D 6B 6F
+20 0A 8C 47 9A 44 84 44 B2 44 EC 47 DA 47 0D 5B
+54 48 45 4E 5D 00 30 4D 3E 48 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 4A 48 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 AE 47 00 4A 68 4A 0C 4C
+7C 49 5A 48 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 AE 47 00 4A 68 4A 8C 48 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D B8 46 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D E0 45 05 53 22 00 82 43 C0 1D 0D 12
+84 12 0A 44 1E 44 6A 4C 0A 44 22 00 00 4A 00 49
+B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F
+3D 41 30 4D 72 47 05 2E 22 00 0D 12 84 12 EA 48
+0A 44 8C 47 6A 4C 7C 49 00 00 04 3C 23 00 B2 40
+B2 1D B2 1D 30 4D E6 48 02 23 1B 42 BE 1D 2C 4F
+2F 83 B0 12 46 44 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 08 48 02 23 53 00 0D 12 84 12
-0A 48 44 48 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 48 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 47 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 47
-3C 48 EE 44 7C 48 58 48 4A 47 02 4C FA 46 4E 48
-2C 47 01 2E 0E 93 E3 37 38 43 E2 3F 76 48 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44 48 4B
-0A 44 22 00 1A 49 E8 48 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D C2 48
-82 2E 22 00 0D 12 84 12 D2 48 0A 44 4A 47 48 4B
-4E 48 F8 45 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 44 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44 30 4D
-00 00 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 9C 4A 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 4A 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D 46 4B 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 48 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 44 02 4C 1A 49 BE 4B 9C 26
-3D 40 C6 4B DE 3E C8 4B 0A 4E 3E 4F 3D 40 E2 4B
-36 27 3D 40 B8 4B 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 E4 4B 3E 4F 3D 40 B8 4B BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 4D CC 3F
-EC 4B 86 12 20 00 D4 47 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7C 47 BC 44
-B2 4B B2 47 E4 47 14 44 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44 EC 47
-14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 45
-3A 44 2C 4C 08 4C 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 48 0A 44 2A 45 48 4B 4E 48 7C 49 01 27
-0D 12 84 12 02 4C 1A 49 82 49 34 44 00 4C 4E 48
-00 00 83 5B 27 5D 0D 12 84 12 80 4C 0A 44 0A 44
-48 4B 48 4B 4E 48 92 4C 81 5B 82 43 BE 1D 30 4D
-FA 47 01 5D B2 43 BE 1D 30 4D B2 4C 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 4C 1A 49 82 49 96 47 34 44
-00 4C E4 47 34 44 F4 4C 0A 44 0A 44 48 4B 48 4B
-0A 44 48 4B 48 4B 4E 48 A8 4C 01 3A 30 12 44 4D
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 02 4C 1A 49
-12 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 82 48 B6 1D
-82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52 82 4A
-C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 45 FA 4C 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A 44 4E 48 48 4B 56 4D AA 4C 4E 48
-A8 4B 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D 92 4B 06 43 52 45 41 54
-45 00 B0 12 00 4D BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 4D 04 43 4F 44 45 00 B0 12 00 4D A2 82
-C6 1D 0D 12 84 12 F2 4F CC 4F 4E 48 A2 4D 07 48
-44 4E 43 4F 44 45 B2 40 D0 4F DA 1D EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 4D 0C 50
-2A 50 4E 48 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 0C 50 2A 50 4E 48 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-EE 4D 85 48 49 32 4C 4F 0D 12 84 12 28 44 9A 4F
-48 4B AA 4C E2 4D 4E 48 88 4D 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 4E 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 44 00 00 C6 47 02 4C 1A 49 98 4B
-8E 47 34 44 02 4F 9C 47 14 44 06 5B 54 48 45 4E
-5D 00 74 4E DC 4E 98 4E BA 4E 4E 48 9C 47 14 44
-06 5B 45 4C 53 45 5D 00 74 4E F2 4E 98 4E B8 4E
-4E 48 14 44 04 5B 49 46 5D 00 74 4E BA 4E 3A 44
-B8 4E 70 47 14 44 05 0D 0A 6B 6F 20 4A 47 BC 44
-AC 44 3A 44 BA 4E A8 4E 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 4F 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 4C 1A 49 82 49
-26 4F 4E 48 2C 4F 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 4F DE 47 4E 48 5E 4F B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 4B 06 4D
-41 52 4B 45 52 00 B0 12 00 4D BA 40 85 12 FC FF
-BA 40 5C 4F FE FF 28 83 8A 48 00 00 BA 40 AA 44
-04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D 0A 44
-CA 1D D6 47 4E 48 85 12 9E 4F 66 4C D4 4D 10 47
-7E 4C 52 4E D2 46 6E 4F 00 49 96 50 AA 50 8A 48
-14 49 00 00 46 4F BC 4C E2 49 00 00 85 12 9E 4F
-72 56 D8 56 1A 56 28 57 E0 55 00 00 AC 53 00 00
-F0 57 D4 57 44 56 82 56 BC 54 00 00 00 00 44 57
-CA 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D
-30 4D A6 4F 24 50 2A 50 3A 50 1A 42 20 18 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 C8 4C
-09 50 57 52 5F 53 54 41 54 45 85 12 32 50 FC 57
-CE 48 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 50 F3 3F 70 50 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 7E 50 30 4D 82 50 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 51 FE FF 29 83 B9 40
-E2 45 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 45 B2 49 FA 44 B2 49 02 44 B2 49 00 46 B2 49
-EC FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 08 29 83 89 43 00 1C FC 23 B2 D3
-06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43 22 02
-B2 43 46 02 B2 43 42 02 B2 43 66 02 B2 43 62 02
-B2 43 86 02 B2 40 7F FF 82 02 F2 43 26 03 F2 43
-22 03 F2 40 A5 00 61 01 82 43 62 01 82 43 66 01
-B2 40 33 00 64 01 D2 43 61 01 39 40 40 00 18 42
-00 18 18 83 FE 23 19 83 FA 23 B2 42 B0 01 F2 D0
-10 00 2A 03 F2 C0 40 00 A2 04 1E 42 08 18 82 43
-08 18 1E D2 9E 01 B0 12 F8 44 FE 45 38 40 C0 1D
-0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D 09 9E 03 24
-7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D
-1C 15 0E 12 12 12 C4 1D 84 12 1A 49 82 49 DE 47
-34 44 EC 51 3E 4A 34 44 06 52 00 52 EE 51 3C 4E
-3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C 2E 83
-21 52 1B 17 30 41 08 52 B2 41 C4 1D 3E 41 84 12
-0A 44 2B 00 1A 49 82 49 DE 47 34 44 24 52 3E 4A
-34 44 00 4C A8 47 1A 49 3E 4A 34 44 00 4C 30 52
-3E 5F E7 3F 3E 40 28 00 B0 12 D0 51 19 42 C6 1D
-A2 53 C6 1D 89 4E 00 00 3E 40 29 00 92 92 C0 1D
-C4 1D 02 20 30 40 6E 4D 1C 15 12 12 C4 1D 92 53
-C4 1D 84 12 1A 49 3E 4A 34 44 78 52 6E 52 21 53
-3E 90 10 00 C6 2B 7F 2D 7A 52 B2 41 C4 1D C1 3F
-0D 12 84 12 02 4C AC 51 8A 52 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 D0 51 3C 40 00 03 0E 93 1C 24 3C 40
+C8 4A 00 00 30 4D 38 49 04 23 53 00 0D 12 84 12
+3A 49 74 49 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+68 49 04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F 82 49 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 5A 47 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 2E 49 AE 47 9C 49
+6C 49 98 48 AA 49 86 49 8C 47 7C 49 16 49 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D
+82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D EE 49 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 72 4B 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 74 4B 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 44 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+2A 49 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12
+84 44 AE 47 00 4A B0 44 44 4D 68 4A 2E 4C 0A 4E
+3E 4F 3D 40 48 4C 6D 27 3D 40 22 4C 1A E2 BC 1D
+14 24 0E 12 3E 4F 30 41 4A 4C 3E 4F 3D 40 22 4C
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 20 4E 2A 3C 12 4C 02 2C A2 53 C8 1D 1A 42
+C8 1D 8A 4E FE FF 3E 4F 30 4D 68 4C 0F 4C 49 54
+45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D
+A2 52 C8 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D A4 49 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D CA 48 0A 41 4C 4C 4F 54
+82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12
+1E 44 02 0D 0A 00 8C 47 94 44 1C 4C AA 48 D4 48
+1E 44 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 45
+32 44 0A 44 40 FF DC 48 1E 44 09 46 52 41 4D 20
+66 75 6C 6C 08 45 B2 44 E0 4C CA 4C 0D 41 42 4F
+52 54 22 00 0D 12 84 12 EA 48 0A 44 08 45 6A 4C
+7C 49 FA 49 02 27 0D 12 84 12 AE 47 00 4A 68 4A
+B0 44 46 4D 0E 49 52 4C 74 48 07 5B 27 5D 0D 12
+84 12 36 4D 0A 44 0A 44 6A 4C 6A 4C 7C 49 4A 4D
+03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D
+30 4D C2 48 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 AE 47 00 4A 68 4A B0 44 46 4D D4 48 AC 44
+9E 4D 0A 44 0A 44 6A 4C 6A 4C 0A 44 6A 4C 6A 4C
+7C 49 00 00 02 3A 30 12 F4 4D 92 B3 C8 1D A2 63
+C8 1D 0D 12 84 12 AE 47 00 4A BC 4D 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D
+82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A
+C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E 44
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 45 60 4D 03 3B 82 93 BC 1D F4 26 0D 12 84 12
+0A 44 7C 49 6A 4C 06 4E 62 4D 7C 49 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00
+30 4D B4 4C 0C 43 52 45 41 54 45 00 B0 12 AA 4D
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D 86 47 0A 44
+4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D A4 4D 0E 3A 4E 4F 4E 41 4D 45
+30 12 F4 4D 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 3E 4E 05 49
+53 00 0D 12 82 93 BC 1D 08 20 84 12 36 4D C0 4E
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 4E 4D 0A 44
+C2 4E 6A 4C 7C 49 54 4E 08 43 4F 44 45 00 B0 12
+AA 4D A2 82 C8 1D 61 3C 96 49 0E 48 44 4E 43 4F
+44 45 B2 40 AE 4F CC 1D F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 06 4E 0C 4F 3D 41 92 42
+D0 1D CC 1D 5D 3C D8 4E 0E 43 4F 44 45 4E 4E 4D
+30 12 E2 4E B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 1D 1A 42 C8 1D EF 3F EA 4E 0B 48 49 32
+4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43
+BC 1D B9 3F 76 4F B2 40 88 4F D0 1D 82 4E CE 1D
+30 40 0E 49 85 12 74 4F 74 4D 1C 4D 06 50 18 4F
+6E 4E B8 49 62 4A 34 4D 5C 4F AE 4E 88 4E 24 4E
+7C 4C 90 50 BA 4A 00 00 00 00 85 12 74 4F 0A 57
+8E 55 EE 56 B6 54 12 55 60 55 3C 56 48 56 D8 53
+FC 54 00 00 00 00 4A 4F C8 52 00 00 64 56 A8 4F
+B2 40 88 4F CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12
+DC 4F 30 4D EE 4F 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 1D B0 12 DC 4F 1A 42 CA 1D
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 0E 46 FE FF 29 83 B9 40 FA 45 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 EC FF 3B 40
+10 00 3A 40 3A 18 B0 12 E0 4F 82 43 4A 18 C7 3F
+82 50 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 6A 4D
+0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12
+AE 47 00 4A 68 4A AC 44 AE 50 A2 48 42 4C B0 50
+3E 4F 3D 41 B2 41 C6 1D B0 12 AA 4D BA 40 85 12
+FC FF BA 40 80 50 FE FF 28 83 8A 48 00 00 BA 40
+82 44 02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12
+00 4A 68 4A AC 44 1A 51 FA 50 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 80 50 00 00
+01 20 3E 52 2E 83 21 53 30 41 12 4B AC 44 22 51
+16 51 24 51 B2 41 C6 1D 30 41 92 83 C6 1D 3E 40
+28 00 0A 4E 3D 15 B0 12 EA 50 15 20 3E 40 2B 00
+B0 12 EA 50 06 20 3E 40 2D 00 B0 12 EA 50 92 83
+C6 1D 0E 12 1E 41 02 00 84 12 00 4A 12 4B AC 44
+46 4D 64 51 3E 51 3A 17 30 41 B0 12 2A 51 19 42
+C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53
+C6 1D 1A 42 C6 1D 3D 15 84 12 00 4A 12 4B AC 44
+9C 51 94 51 3E 90 10 00 E6 2B 7C 2D 9E 51 A2 41
+C6 1D E1 3F 03 20 B0 12 82 51 43 3C 7A 90 23 00
+24 20 B0 12 32 51 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 D0 51 ED 3F
-7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D B0 12
-58 52 0C 20 3C 50 10 00 3E 40 2B 00 B0 12 58 52
-92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E
-DA 3F B0 12 58 52 FA 23 3C 50 10 00 B0 12 34 52
-EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12 84 12
-02 4C AC 51 56 53 FE 90 26 00 00 00 3E 40 20 00
-03 20 3C 50 82 00 C7 3F B0 12 58 52 E0 23 3C 50
-80 00 B0 12 34 52 DB 3F 00 00 04 52 45 54 49 00
-0D 12 84 12 0A 44 00 13 48 4B 4E 48 0A 44 2C 00
-80 52 4C 53 96 53 09 4B 2E 4E 0E DC A2 3F 40 4E
-03 4D 4F 56 85 12 8C 53 00 40 A0 53 05 4D 4F 56
-2E 42 85 12 8C 53 40 40 00 00 03 41 44 44 85 12
-8C 53 00 50 BA 53 05 41 44 44 2E 42 85 12 8C 53
-40 50 C6 53 04 41 44 44 43 00 85 12 8C 53 00 60
-D4 53 06 41 44 44 43 2E 42 00 85 12 8C 53 40 60
-7A 53 04 53 55 42 43 00 85 12 8C 53 00 70 F2 53
-06 53 55 42 43 2E 42 00 85 12 8C 53 40 70 00 54
-03 53 55 42 85 12 8C 53 00 80 10 54 05 53 55 42
-2E 42 85 12 8C 53 40 80 16 4E 03 43 4D 50 85 12
-8C 53 00 90 2A 54 05 43 4D 50 2E 42 85 12 8C 53
-40 90 00 4E 04 44 41 44 44 00 85 12 8C 53 00 A0
-44 54 06 44 41 44 44 2E 42 00 85 12 8C 53 40 A0
-36 54 03 42 49 54 85 12 8C 53 00 B0 62 54 05 42
-49 54 2E 42 85 12 8C 53 40 B0 6E 54 03 42 49 43
-85 12 8C 53 00 C0 7C 54 05 42 49 43 2E 42 85 12
-8C 53 40 C0 88 54 03 42 49 53 85 12 8C 53 00 D0
-96 54 05 42 49 53 2E 42 85 12 8C 53 40 D0 00 00
-03 58 4F 52 85 12 8C 53 00 E0 B0 54 05 58 4F 52
-2E 42 85 12 8C 53 40 E0 E2 53 03 41 4E 44 85 12
-8C 53 00 F0 CA 54 05 41 4E 44 2E 42 85 12 8C 53
-40 F0 02 4C 80 52 E8 54 0A 4C 3C F0 70 00 8A 10
-3A F0 0F 00 0C DA 4F 3F 1C 54 03 52 52 43 85 12
-E2 54 00 10 FA 54 05 52 52 43 2E 42 85 12 E2 54
-40 10 06 55 04 53 57 50 42 00 85 12 E2 54 80 10
-14 55 03 52 52 41 85 12 E2 54 00 11 22 55 05 52
-52 41 2E 42 85 12 E2 54 40 11 2E 55 03 53 58 54
-85 12 E2 54 80 11 00 00 04 50 55 53 48 00 85 12
-E2 54 00 12 48 55 06 50 55 53 48 2E 42 00 85 12
-E2 54 40 12 A2 54 04 43 41 4C 4C 00 85 12 E2 54
-80 12 1A 53 0E 4A 0D 12 84 12 C4 48 14 44 0D 6F
-75 74 20 6F 66 20 62 6F 75 6E 64 73 36 45 3C 55
-03 53 3E 3D 86 12 00 38 90 55 02 53 3C 00 86 12
-00 34 56 55 03 30 3E 3D 86 12 00 30 A4 55 02 30
-3C 00 86 12 00 30 00 00 02 55 3C 00 86 12 00 2C
-B8 55 03 55 3E 3D 86 12 00 28 AE 55 03 30 3C 3E
-86 12 00 24 CC 55 02 30 3D 00 86 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 C2 55 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
-B1 2F 88 DA 00 00 30 4D 52 54 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 66 55 05 42 45 47 49 4E 30 40
-28 44 F6 55 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 8A 3B
-3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D 30 4D
-D6 54 05 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F
-00 00 05 57 48 49 4C 45 0D 12 84 12 E4 55 A8 47
-4E 48 9A 55 06 52 45 50 45 41 54 00 0D 12 84 12
-78 56 FC 55 4E 48 A8 56 3D 41 08 4E 3E 4F 2A 48
-B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D 38 56
-03 42 57 31 85 12 A6 56 00 00 C0 56 03 42 57 32
-85 12 A6 56 00 00 CC 56 03 42 57 33 85 12 A6 56
-00 00 E4 56 3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D
-88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F
-30 4D 00 00 03 46 57 31 85 12 E2 56 00 00 04 57
-03 46 57 32 85 12 E2 56 00 00 10 57 03 46 57 33
-85 12 E2 56 00 00 1C 57 04 47 4F 54 4F 00 2F 83
-8F 4E 00 00 3E 40 00 3C 0D 12 84 12 80 4C DC 4B
-4E 48 00 00 05 3F 47 4F 54 4F 3E 90 00 30 F4 27
+30 03 3E 93 08 24 3C 40 30 00 19 42 C8 1D A2 53
+C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 32 51 F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 7E 51 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 82 51 92 92 C2 1D C6 1D 02 24 92 53
+C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 6A 51
+F2 3F 03 20 B0 12 82 51 F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 6A 51 EA 3F
+0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42
+C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82
+C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A 44 00 13 6A 4C 7C 49
+0A 44 2C 00 60 52 A4 51 AE 47 6A 52 42 52 B0 52
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 A0 52 00 40 BC 52 0A 4D 4F 56 2E 42 85 12
+A0 52 40 40 00 00 06 41 44 44 85 12 A0 52 00 50
+D6 52 0A 41 44 44 2E 42 85 12 A0 52 40 50 E2 52
+08 41 44 44 43 00 85 12 A0 52 00 60 F0 52 0C 41
+44 44 43 2E 42 00 85 12 A0 52 40 60 28 4F 08 53
+55 42 43 00 85 12 A0 52 00 70 0E 53 0C 53 55 42
+43 2E 42 00 85 12 A0 52 40 70 1C 53 06 53 55 42
+85 12 A0 52 00 80 2C 53 0A 53 55 42 2E 42 85 12
+A0 52 40 80 38 53 06 43 4D 50 85 12 A0 52 00 90
+46 53 0A 43 4D 50 2E 42 85 12 A0 52 40 90 00 00
+08 44 41 44 44 00 85 12 A0 52 00 A0 60 53 0C 44
+41 44 44 2E 42 00 85 12 A0 52 40 A0 8E 52 06 42
+49 54 85 12 A0 52 00 B0 7E 53 0A 42 49 54 2E 42
+85 12 A0 52 40 B0 8A 53 06 42 49 43 85 12 A0 52
+00 C0 98 53 0A 42 49 43 2E 42 85 12 A0 52 40 C0
+A4 53 06 42 49 53 85 12 A0 52 00 D0 B2 53 0A 42
+49 53 2E 42 85 12 A0 52 40 D0 00 00 06 58 4F 52
+85 12 A0 52 00 E0 CC 53 0A 58 4F 52 2E 42 85 12
+A0 52 40 E0 FE 52 06 41 4E 44 85 12 A0 52 00 F0
+E6 53 0A 41 4E 44 2E 42 85 12 A0 52 40 F0 AE 47
+60 52 A4 51 06 54 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F BE 53 06 52 52 43 85 12 FE 53
+00 10 18 54 0A 52 52 43 2E 42 85 12 FE 53 40 10
+52 53 08 53 57 50 42 00 85 12 FE 53 80 10 24 54
+06 52 52 41 85 12 FE 53 00 11 40 54 0A 52 52 41
+2E 42 85 12 FE 53 40 11 32 54 06 53 58 54 85 12
+FE 53 80 11 00 00 08 50 55 53 48 00 85 12 FE 53
+00 12 66 54 0C 50 55 53 48 2E 42 00 85 12 FE 53
+40 12 5A 54 08 43 41 4C 4C 00 85 12 FE 53 80 12
+1A 53 0E 4A 84 12 F0 49 1E 44 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 45 84 54 06 53 3E 3D
+86 12 00 38 AC 54 04 53 3C 00 86 12 00 34 74 54
+06 30 3E 3D 86 12 00 30 C0 54 04 30 3C 00 86 12
+00 30 FC 4E 04 55 3C 00 86 12 00 2C D4 54 06 55
+3E 3D 86 12 00 28 CA 54 06 30 3C 3E 86 12 00 24
+E8 54 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D
+6E 53 08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D DE 54 08 45 4C 53 45 00 1A 42 C8 1D
+BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00
+E3 3F 4C 54 0A 42 45 47 49 4E 30 40 32 44 36 55
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 1D 30 4D F2 53 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 00 55 96 48 7C 49 54 55
+0C 52 45 50 45 41 54 00 0D 12 84 12 94 55 18 55
+7C 49 C4 55 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D
+CB 2F 98 42 C8 1D 00 00 30 4D B0 55 06 42 57 31
+85 12 C2 55 00 00 DC 55 06 42 57 32 85 12 C2 55
+00 00 E8 55 06 42 57 33 85 12 C2 55 00 00 00 56
+3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D
+86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 FE 55 00 00 24 56
+06 46 57 32 85 12 FE 55 00 00 30 56 06 46 57 33
+85 12 FE 55 00 00 9E 55 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 36 4D 42 4C
+7C 49 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
-02 4C AC 51 66 57 92 53 C4 1D 3E 40 2C 00 84 12
-1A 49 3E 4A 34 44 00 4C 42 53 7C 57 0A 4E 3E 4F
-1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A 01 28
-0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E 2A 92
-E8 2E 8A 10 5A 06 A6 3E 94 56 04 52 52 43 4D 00
-85 12 60 57 50 00 AA 57 04 52 52 41 4D 00 85 12
-60 57 50 01 B8 57 04 52 4C 41 4D 00 85 12 60 57
-50 02 C6 57 04 52 52 55 4D 00 85 12 60 57 50 03
-D6 55 05 50 55 53 48 4D 85 12 60 57 00 15 E2 57
-04 50 4F 50 4D 00 85 12 60 57 00 17
+6A 52 0A 44 2C 00 00 4A 12 4B AC 44 46 4D AE 47
+60 52 42 52 96 56 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E F4 55 08 52 52 43 4D 00 85 12 80 56 50 00
+C4 56 08 52 52 41 4D 00 85 12 80 56 50 01 D2 56
+08 52 4C 41 4D 00 85 12 80 56 50 02 E0 56 08 52
+52 55 4D 00 85 12 80 56 50 03 F2 54 0A 50 55 53
+48 4D 85 12 80 56 00 15 FC 56 08 50 4F 50 4D 00
+85 12 80 56 00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 82 46 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 08 51
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 D6 46 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 0E 46
 q
diff --git a/binaries/MSP_EXP430FR6989_1MHz_UART.txt b/binaries/MSP_EXP430FR6989_1MHz_UART.txt
deleted file mode 100644 (file)
index bdae606..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-@1800
-E8 03 08 00 00 D6 18 00 F9 FF 12 58 02 50 34 01
-10 00 41 B3 94 45 AA 44 DA 45 9C 45 94 46 12 58
-02 50 7A 46 92 47 24 47 FE 46 3C 1D 60 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
-@4400
-B0 12 DA 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 78 46 B2 49 90 47 B2 49 22 47 B2 49 FC 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 CE 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 45 92 C3 FC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-FC 05 F3 23 B0 12 F8 44 0A 44 DE 1D E0 47 32 47
-14 44 04 1B 5B 37 6D 00 5C 47 A8 47 34 44 86 45
-14 44 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 47 A0 48 5C 47 14 44 04 1B 5B 30 6D 00
-5C 47 28 4C 92 B3 EA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 E0 05 92 42 02 18 E6 05 92 42 04 18
-E8 05 F2 D0 30 00 2A 02 92 C3 E0 05 92 D3 FA 05
-92 C3 30 01 30 41 09 3C A2 B3 FC 05 FD 27 B2 40
-13 00 EE 05 D2 D3 22 02 30 41 A2 B3 FC 05 FD 27
-B2 40 11 00 EE 05 D2 C3 22 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 45 E2 B3 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 45 04 57 41 52 4D 00 B0 12
-9C 45 84 12 14 44 07 0D 0A 1B 5B 37 6D 23 5C 47
-D6 48 14 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 5C 47
-0A 44 40 FF 28 44 D4 47 A0 48 14 44 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 44 86 45 00 00 06 41
-43 43 45 50 54 00 30 40 7A 46 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 46 3C 40 D2 46
-5D 15 B6 3E 21 52 3A 17 58 42 EC 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 EE 05 30 4D C8 46 2D 83 92 B3 FC 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 FC 05
-FD 27 58 42 EC 05 82 93 DE 1D 02 24 92 53 DE 1D
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 46 2F 83
-8F 4E 00 00 B0 12 DA 45 92 B3 FC 05 FD 27 1E 42
-EC 05 B0 12 C8 45 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 47 08 4E 3E 4F C8 3F 1A 47 04 45 43 48
-4F 00 B2 40 C2 48 C0 46 82 43 DE 1D 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 46 92 43
-DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 47 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 47 7A 47 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 45 02 43 52 00 30 40
-92 47 0D 12 84 12 14 44 02 0D 0A 00 5C 47 60 48
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 46 01 40
-2E 4E 30 4D DE 47 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 8A 47 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 44 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 1A 48 02 23 53 00 0D 12
-84 12 1C 48 56 48 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 48 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 47 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 48 4E 48 EE 44 8E 48 6A 48 5C 47 14 4C 20 47
-60 48 40 47 01 2E 0E 93 E3 37 38 43 E2 3F 88 48
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44
-5A 4B 0A 44 22 00 2C 49 FA 48 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-D4 48 82 2E 22 00 0D 12 84 12 E4 48 0A 44 5C 47
-5A 4B 60 48 18 46 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44
-30 4D 00 00 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 AE 4A
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 4A
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 58 4B 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 48 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 44 14 4C 2C 49 D0 4B
-9C 26 3D 40 D8 4B DE 3E DA 4B 0A 4E 3E 4F 3D 40
-F4 4B 36 27 3D 40 CA 4B 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 F6 4B 3E 4F 3D 40 CA 4B BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 4D
-CC 3F FE 4B 86 12 20 00 E6 47 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 8E 47
-BC 44 C4 4B C4 47 F6 47 14 44 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44
-FE 47 14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 45 3A 44 3E 4C 1A 4C 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 48 0A 44 2A 45 5A 4B 60 48 8E 49
-01 27 0D 12 84 12 14 4C 2C 49 94 49 34 44 12 4C
-60 48 00 00 83 5B 27 5D 0D 12 84 12 92 4C 0A 44
-0A 44 5A 4B 5A 4B 60 48 A4 4C 81 5B 82 43 BE 1D
-30 4D 0C 48 01 5D B2 43 BE 1D 30 4D C4 4C 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 4C 2C 49 94 49 A8 47
-34 44 12 4C F6 47 34 44 06 4D 0A 44 0A 44 5A 4B
-5A 4B 0A 44 5A 4B 5A 4B 60 48 BA 4C 01 3A 30 12
-56 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 14 4C
-2C 49 24 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 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52
-82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 45 0C 4D 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 44 60 48 5A 4B 68 4D BC 4C
-60 48 BA 4B 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D A4 4B 06 43 52 45
-41 54 45 00 B0 12 12 4D BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 4D 04 43 4F 44 45 00 B0 12 12 4D
-A2 82 C6 1D 0D 12 84 12 04 50 DE 4F 60 48 B4 4D
-07 48 44 4E 43 4F 44 45 B2 40 E2 4F DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 4D
-1E 50 3C 50 60 48 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 1E 50 3C 50 60 48
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F 00 4E 85 48 49 32 4C 4F 0D 12 84 12 28 44
-AC 4F 5A 4B BC 4C F4 4D 60 48 9A 4D 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 4E 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 44 00 00 D8 47 14 4C 2C 49
-AA 4B A0 47 34 44 14 4F AE 47 14 44 06 5B 54 48
-45 4E 5D 00 86 4E EE 4E AA 4E CC 4E 60 48 AE 47
-14 44 06 5B 45 4C 53 45 5D 00 86 4E 04 4F AA 4E
-CA 4E 60 48 14 44 04 5B 49 46 5D 00 86 4E CC 4E
-3A 44 CA 4E 82 47 14 44 05 0D 0A 6B 6F 20 5C 47
-BC 44 AC 44 3A 44 CC 4E BA 4E 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 4F 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 4C 2C 49
-94 49 38 4F 60 48 3E 4F 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 4F F0 47 60 48 70 4F
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 4B
-06 4D 41 52 4B 45 52 00 B0 12 12 4D BA 40 85 12
-FC FF BA 40 6E 4F FE FF 28 83 8A 48 00 00 BA 40
-AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A 44 CA 1D E8 47 60 48 85 12 B0 4F 78 4C E6 4D
-2C 47 90 4C 64 4E F6 46 80 4F 12 49 A8 50 BC 50
-9C 48 26 49 00 00 58 4F CE 4C F4 49 00 00 85 12
-B0 4F 88 56 EE 56 30 56 3E 57 F6 55 00 00 C2 53
-00 00 06 58 EA 57 5A 56 98 56 D2 54 00 00 00 00
-5A 57 DC 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D B8 4F 36 50 3C 50 4C 50 1A 42 20 18
-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
-DA 4C 09 50 57 52 5F 53 54 41 54 45 85 12 44 50
-12 58 E0 48 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 50 F3 3F 82 50 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 90 50 30 4D 94 50 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 51 FE FF 29 83
-B9 40 02 46 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 46 B2 49 FA 44 B2 49 02 44 B2 49 20 46
-B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C FC 23
-B2 D3 06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43
-22 02 D2 D3 24 02 B2 43 46 02 B2 43 42 02 B2 43
-66 02 B2 43 62 02 B2 43 86 02 B2 40 7F FF 82 02
-F2 43 26 03 F2 43 22 03 F2 40 A5 00 61 01 82 43
-62 01 82 43 66 01 B2 40 33 00 64 01 D2 43 61 01
-39 40 40 00 18 42 00 18 18 83 FE 23 19 83 FA 23
-B2 42 B0 01 F2 D0 10 00 2A 03 F2 C0 40 00 A2 04
-1E 42 08 18 82 43 08 18 1E D2 9E 01 B0 12 F8 44
-1E 46 38 40 C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52
-C4 1D 09 9E 03 24 7A 9E FC 27 1E 83 0A 4E 2A 88
-82 4A C4 1D 30 4D 1C 15 0E 12 12 12 C4 1D 84 12
-2C 49 94 49 F0 47 34 44 02 52 50 4A 34 44 1C 52
-16 52 04 52 3C 4E 3C 80 87 12 05 24 1C 53 02 20
-2E 4E 01 3C 2E 83 21 52 1B 17 30 41 1E 52 B2 41
-C4 1D 3E 41 84 12 0A 44 2B 00 2C 49 94 49 F0 47
-34 44 3A 52 50 4A 34 44 12 4C BA 47 2C 49 50 4A
-34 44 12 4C 46 52 3E 5F E7 3F 3E 40 28 00 B0 12
-E6 51 19 42 C6 1D A2 53 C6 1D 89 4E 00 00 3E 40
-29 00 92 92 C0 1D C4 1D 02 20 30 40 80 4D 1C 15
-12 12 C4 1D 92 53 C4 1D 84 12 2C 49 50 4A 34 44
-8E 52 84 52 21 53 3E 90 10 00 C6 2B 7F 2D 90 52
-B2 41 C4 1D C1 3F 0D 12 84 12 14 4C C2 51 A0 52
-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 E6 51 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 E6 51 ED 3F 7A 90 40 00 16 20 3C 40 20 00
-92 53 C4 1D B0 12 6E 52 0C 20 3C 50 10 00 3E 40
-2B 00 B0 12 6E 52 92 92 C0 1D C4 1D 02 24 92 53
-C4 1D 8E 10 0C 5E DA 3F B0 12 6E 52 FA 23 3C 50
-10 00 B0 12 4A 52 EF 3F 0C 43 1B 42 C6 1D A2 53
-C6 1D 0D 12 84 12 14 4C C2 51 6C 53 FE 90 26 00
-00 00 3E 40 20 00 03 20 3C 50 82 00 C7 3F B0 12
-6E 52 E0 23 3C 50 80 00 B0 12 4A 52 DB 3F 00 00
-04 52 45 54 49 00 0D 12 84 12 0A 44 00 13 5A 4B
-60 48 0A 44 2C 00 96 52 62 53 AC 53 09 4B 2E 4E
-0E DC A2 3F 52 4E 03 4D 4F 56 85 12 A2 53 00 40
-B6 53 05 4D 4F 56 2E 42 85 12 A2 53 40 40 00 00
-03 41 44 44 85 12 A2 53 00 50 D0 53 05 41 44 44
-2E 42 85 12 A2 53 40 50 DC 53 04 41 44 44 43 00
-85 12 A2 53 00 60 EA 53 06 41 44 44 43 2E 42 00
-85 12 A2 53 40 60 90 53 04 53 55 42 43 00 85 12
-A2 53 00 70 08 54 06 53 55 42 43 2E 42 00 85 12
-A2 53 40 70 16 54 03 53 55 42 85 12 A2 53 00 80
-26 54 05 53 55 42 2E 42 85 12 A2 53 40 80 28 4E
-03 43 4D 50 85 12 A2 53 00 90 40 54 05 43 4D 50
-2E 42 85 12 A2 53 40 90 12 4E 04 44 41 44 44 00
-85 12 A2 53 00 A0 5A 54 06 44 41 44 44 2E 42 00
-85 12 A2 53 40 A0 4C 54 03 42 49 54 85 12 A2 53
-00 B0 78 54 05 42 49 54 2E 42 85 12 A2 53 40 B0
-84 54 03 42 49 43 85 12 A2 53 00 C0 92 54 05 42
-49 43 2E 42 85 12 A2 53 40 C0 9E 54 03 42 49 53
-85 12 A2 53 00 D0 AC 54 05 42 49 53 2E 42 85 12
-A2 53 40 D0 00 00 03 58 4F 52 85 12 A2 53 00 E0
-C6 54 05 58 4F 52 2E 42 85 12 A2 53 40 E0 F8 53
-03 41 4E 44 85 12 A2 53 00 F0 E0 54 05 41 4E 44
-2E 42 85 12 A2 53 40 F0 14 4C 96 52 FE 54 0A 4C
-3C F0 70 00 8A 10 3A F0 0F 00 0C DA 4F 3F 32 54
-03 52 52 43 85 12 F8 54 00 10 10 55 05 52 52 43
-2E 42 85 12 F8 54 40 10 1C 55 04 53 57 50 42 00
-85 12 F8 54 80 10 2A 55 03 52 52 41 85 12 F8 54
-00 11 38 55 05 52 52 41 2E 42 85 12 F8 54 40 11
-44 55 03 53 58 54 85 12 F8 54 80 11 00 00 04 50
-55 53 48 00 85 12 F8 54 00 12 5E 55 06 50 55 53
-48 2E 42 00 85 12 F8 54 40 12 B8 54 04 43 41 4C
-4C 00 85 12 F8 54 80 12 1A 53 0E 4A 0D 12 84 12
-D6 48 14 44 0D 6F 75 74 20 6F 66 20 62 6F 75 6E
-64 73 36 45 52 55 03 53 3E 3D 86 12 00 38 A6 55
-02 53 3C 00 86 12 00 34 6C 55 03 30 3E 3D 86 12
-00 30 BA 55 02 30 3C 00 86 12 00 30 00 00 02 55
-3C 00 86 12 00 2C CE 55 03 55 3E 3D 86 12 00 28
-C4 55 03 30 3C 3E 86 12 00 24 E2 55 02 30 3D 00
-86 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 55 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 B1 2F 88 DA 00 00 30 4D 68 54
-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 7C 55 05 42
-45 47 49 4E 30 40 28 44 0C 56 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 8A 3B 3A F0 FF 03 08 DA 89 48 00 00
-A2 53 C6 1D 30 4D EC 54 05 41 47 41 49 4E 0A 4E
-38 40 00 3C E7 3F 00 00 05 57 48 49 4C 45 0D 12
-84 12 FA 55 BA 47 60 48 B0 55 06 52 45 50 45 41
-54 00 0D 12 84 12 8E 56 12 56 60 48 BE 56 3D 41
-08 4E 3E 4F 2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D
-00 00 30 4D 4E 56 03 42 57 31 85 12 BC 56 00 00
-D6 56 03 42 57 32 85 12 BC 56 00 00 E2 56 03 42
-57 33 85 12 BC 56 00 00 FA 56 3D 41 1A 42 C6 1D
-28 4E B2 92 C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D
-8E 4A 00 00 3E 4F 30 4D 00 00 03 46 57 31 85 12
-F8 56 00 00 1A 57 03 46 57 32 85 12 F8 56 00 00
-26 57 03 46 57 33 85 12 F8 56 00 00 32 57 04 47
-4F 54 4F 00 2F 83 8F 4E 00 00 3E 40 00 3C 0D 12
-84 12 92 4C EE 4B 60 48 00 00 05 3F 47 4F 54 4F
-3E 90 00 30 F4 27 3E E0 00 04 3E B0 00 10 EF 27
-3E E0 00 08 EC 3F 14 4C C2 51 7C 57 92 53 C4 1D
-3E 40 2C 00 84 12 2C 49 50 4A 34 44 12 4C 58 53
-92 57 0A 4E 3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28
-08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EC 2E
-5A 0E AB 3E 2A 92 E8 2E 8A 10 5A 06 A6 3E AA 56
-04 52 52 43 4D 00 85 12 76 57 50 00 C0 57 04 52
-52 41 4D 00 85 12 76 57 50 01 CE 57 04 52 4C 41
-4D 00 85 12 76 57 50 02 DC 57 04 52 52 55 4D 00
-85 12 76 57 50 03 EC 55 05 50 55 53 48 4D 85 12
-76 57 00 15 F8 57 04 50 4F 50 4D 00 85 12 76 57
-00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 94 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 1A 51
-q
diff --git a/binaries/MSP_EXP430FR6989_8MHz_115200.txt b/binaries/MSP_EXP430FR6989_8MHz_115200.txt
new file mode 100644 (file)
index 0000000..9dbbe93
--- /dev/null
@@ -0,0 +1,326 @@
+@1800
+40 1F 04 00 51 55 18 00 FD FF 35 01 10 00 A1 59
+D8 46 7E 45 84 45 54 45 48 47 36 57 EE 4F A8 4F
+A8 4F BE 46 7C 47 44 47 3C 1D E0 1C 9C 49 B6 44
+C4 44 B8 48 20 00 0A 00 00 1C 7E 45 84 45 54 45
+48 47 36 57 EE 4F A8 4F A8 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
+@4400
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 07 3D 0E 93 3E 4F
+9C 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 BC 46 B2 49
+7A 47 B2 49 42 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 62 50 8F 93 02 00 02 20 2F 52
+BF 3F B0 12 48 47 92 C3 FC 05 18 42 00 18 39 40
+41 00 19 83 FE 23 18 83 FA 23 92 B3 FC 05 F3 23
+B0 12 D0 44 C2 48 AC 44 52 45 8A 47 1E 44 04 1B
+5B 37 6D 00 AC 47 AC 47 1E 44 04 1B 5B 30 6D 00
+AC 47 F8 4C B0 12 7E 45 B2 40 81 00 E0 05 92 42
+02 18 E6 05 92 42 04 18 E8 05 F2 D0 30 00 2A 02
+92 C3 E0 05 92 D3 FA 05 92 C3 30 01 30 41 92 B3
+EA 05 FD 23 30 41 92 12 3E 18 84 12 8A 47 1E 44
+07 0D 0A 1B 5B 37 6D 23 AC 47 10 4A 1E 44 19 46
+61 73 74 46 6F 72 74 68 20 A9 4A 2E 4D 2E 54 68
+6F 6F 72 65 6E 73 2C 20 AC 47 0A 44 40 FF 32 44
+D8 48 DC 49 1E 44 0A 62 79 74 65 73 20 66 72 65
+65 00 B2 44 46 45 00 00 06 53 59 53 0E 93 07 38
+02 24 1E B3 04 28 30 12 86 45 01 12 71 3F 82 4E
+08 18 92 12 3A 18 E2 B3 00 02 02 20 B2 43 08 18
+B2 40 04 A5 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+00 01 B2 40 80 5A 5C 01 3F 40 80 1C 31 40 E0 1C
+B2 D3 06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43
+22 02 D2 D3 24 02 B2 43 46 02 B2 43 42 02 B2 43
+66 02 B2 43 62 02 B2 43 86 02 B2 40 7F FF 82 02
+F2 43 26 03 F2 43 22 03 F2 40 A5 00 61 01 82 43
+66 01 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
+18 42 00 18 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 19 42 9E 01 1E 42 08 18
+82 43 08 18 3E F3 01 20 0E 49 B0 12 D0 44 86 45
+00 00 0C 41 43 43 45 50 54 00 30 40 BE 46 08 4E
+2E 4F 08 5E 39 40 0D 00 3A 40 20 00 3B 40 1C 47
+3C 40 28 47 5D 15 94 3E 21 52 3A 17 58 42 EC 05
+48 9B 09 20 A2 B3 FC 05 FD 27 B2 40 13 00 EE 05
+D2 D3 22 02 30 41 48 9C 06 2C 78 92 11 20 2E 9F
+0F 24 1E 83 05 3C 0E 9A 03 2C CE 48 00 00 1E 53
+A2 B3 FC 05 FD 27 C2 48 EE 05 30 4D 1E 47 2D 83
+92 B3 FC 05 DB 23 FC 3F 3E 8F 3D 41 92 B3 FC 05
+FD 27 58 42 EC 05 08 4C EB 3F 00 00 06 4B 45 59
+30 40 44 47 30 12 5A 47 A2 B3 FC 05 FD 27 B2 40
+11 00 EE 05 D2 C3 22 02 30 41 2F 83 8F 4E 00 00
+92 B3 FC 05 FD 27 B0 12 E4 46 1E 42 EC 05 30 4D
+00 00 08 45 4D 49 54 00 30 40 7C 47 08 4E 3E 4F
+C7 3F 72 47 08 45 43 48 4F 00 B2 40 C2 48 16 47
+30 4D 00 00 0C 4E 4F 45 43 48 4F 00 B2 40 30 4D
+16 47 30 4D 00 00 08 54 59 50 45 00 0D 12 3D 40
+BC 47 29 4F 8F 4E 00 00 7E 49 DE 3F BE 47 2D 83
+2F 83 5E 83 F7 23 3D 41 2F 53 3E 4F 30 4D 86 12
+20 00 0C 4E 38 4F 3C 9F 39 4F 3E 4F 6A 22 F9 98
+00 00 67 22 19 53 1C 83 FA 23 2D 53 30 4D 2F 53
+3E 4F 1E 83 5E 22 9B 24 3C 47 0D 5B 45 4C 53 45
+5D 00 0D 12 84 12 0A 44 00 00 DC 48 CE 47 20 4A
+DA 4C B0 44 4A 48 14 44 06 5B 54 48 45 4E 5D 00
+D2 47 28 48 EE 47 0C 48 14 44 06 5B 45 4C 53 45
+5D 00 D2 47 3A 48 EE 47 0A 48 1E 44 04 5B 49 46
+5D 00 D2 47 0C 48 B2 44 0A 48 1E 44 05 0D 6B 6F
+20 0A AC 47 9A 44 84 44 B2 44 0C 48 FA 47 0D 5B
+54 48 45 4E 5D 00 30 4D 5E 48 09 5B 49 46 5D 00
+0E 93 3E 4F C6 27 30 4D 6A 48 13 5B 44 45 46 49
+4E 45 44 5D 0D 12 84 12 CE 47 20 4A 88 4A 2C 4C
+9C 49 7A 48 17 5B 55 4E 44 45 46 49 4E 45 44 5D
+0D 12 84 12 CE 47 20 4A 88 4A AC 48 3D 41 2F 53
+1E 83 0E 7E 30 4D 3F 12 2F 83 8F 4E 00 00 3E 41
+30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF 3E 40
+80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D
+00 00 02 40 2E 4E 30 4D B2 46 02 21 BE 4F 00 00
+3E 4F 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28
+0E F3 30 4D D8 45 05 53 22 00 82 43 C0 1D 0D 12
+84 12 0A 44 1E 44 8A 4C 0A 44 22 00 20 4A 20 49
+B2 40 20 00 C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F
+3D 41 30 4D 94 47 05 2E 22 00 0D 12 84 12 0A 49
+0A 44 AC 47 8A 4C 9C 49 00 00 04 3C 23 00 B2 40
+B2 1D B2 1D 30 4D 06 49 02 23 1B 42 BE 1D 2C 4F
+2F 83 B0 12 46 44 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 58 49 04 23 53 00 0D 12 84 12
+5A 49 94 49 2D 83 09 DE 09 93 E1 23 3D 41 30 4D
+88 49 04 23 3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D
+2E 8F 30 4D 00 00 08 48 4F 4C 44 00 4A 4E 3E 4F
+DB 3F A2 49 08 53 49 47 4E 00 0E 93 3E 4F 7A 40
+2D 00 D2 33 30 4D 84 47 04 55 2E 00 0C 43 2F 83
+8F 4E 00 00 0E 4C 1D 15 3E F3 06 34 BF E3 00 00
+3E E3 9F 53 00 00 0E 63 84 12 4E 49 CE 47 BC 49
+8C 49 B8 48 CA 49 A6 49 AC 47 9C 49 36 49 02 2E
+0E 93 E4 37 3C 43 E3 3F 00 00 08 57 4F 52 44 00
+3C 40 C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98
+1D 24 7E 98 FC 27 18 83 1B 42 C0 1D F8 90 27 00
+00 00 04 20 E8 98 02 00 01 20 0B 43 CA 4C 00 00
+09 98 0C 24 7C 48 4E 9C 09 24 1A 53 7C 90 61 00
+F5 2B 7C 90 7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D
+82 48 C6 1D 1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D
+00 00 08 46 49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D
+3E 4B 0E 93 1E 24 58 4C 01 00 78 F0 0F 00 08 58
+0E 58 2E 53 1E 4E FE FF 0E 93 F2 27 09 4E 78 49
+48 11 68 9C F7 23 0A 4C FA 99 01 00 F3 23 1A 53
+58 83 FA 23 19 B3 09 63 0C 49 6E 4E 1E F3 01 20
+1E 83 8F 4C 00 00 30 4D 0E 4A 0E 3E 4E 55 4D 42
+45 52 1B 42 BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B
+C0 04 6A 4C 7A 80 3A 00 03 28 7A 80 07 00 12 28
+7A 50 0A 00 0A 9B 22 C3 0D 2C 82 49 E0 04 82 48
+E2 04 19 42 E4 04 18 42 E6 04 09 5A 08 63 1C 53
+1E 83 E7 23 8F 4C 00 00 8F 48 02 00 8F 49 04 00
+30 4D 32 C0 00 02 3F 82 8F 4E 06 00 08 43 09 43
+1B 42 BE 1D 0C 4E 0E 43 1E 15 3D 40 92 4B 7E 4C
+6A 4C 7A 80 2D 00 16 24 CA 2F 2B 43 7A 52 14 24
+3B 52 6A 53 11 24 3B 40 10 00 5A 93 0D 24 6A 92
+41 20 3E 90 03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C
+04 00 38 3C B1 43 02 00 1E 83 FC 9C 00 00 E0 23
+AE 27 94 4B 2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27
+32 B0 00 02 27 20 32 D0 00 02 7A 80 2E 00 B7 27
+6A 53 20 20 0A 4E 09 43 8F 49 02 00 5A 83 09 4A
+09 5C 69 49 79 80 3A 00 03 28 79 80 07 00 0C 28
+79 50 0A 00 09 9B 08 2C 8F 49 00 00 0E 4B 2C 15
+B0 12 3E 44 2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F
+04 00 4A 93 1D 17 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
+4A 49 03 5C 92 42 C2 1D C6 1D 30 4D 0D 12 84 12
+84 44 CE 47 20 4A B0 44 64 4D 88 4A 4E 4C 0A 4E
+3E 4F 3D 40 68 4C 6D 27 3D 40 42 4C 1A E2 BC 1D
+14 24 0E 12 3E 4F 30 41 6A 4C 3E 4F 3D 40 42 4C
+19 20 DE 53 00 00 68 4E 08 5E F8 40 3F 00 00 00
+3D 40 40 4E 2A 3C 32 4C 02 2C A2 53 C8 1D 1A 42
+C8 1D 8A 4E FE FF 3E 4F 30 4D 88 4C 0F 4C 49 54
+45 52 41 4C 82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D
+A2 52 C8 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
+32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
+30 4D C4 49 0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E
+00 00 0E 4A 3E F3 30 4D EA 48 0A 41 4C 4C 4F 54
+82 5E C8 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 84 12
+1E 44 02 0D 0A 00 AC 47 94 44 3C 4C CA 48 F4 48
+1E 44 0B 73 74 61 63 6B 20 65 6D 70 74 79 08 45
+32 44 0A 44 40 FF FC 48 1E 44 09 46 52 41 4D 20
+66 75 6C 6C 08 45 B2 44 00 4D EA 4C 0D 41 42 4F
+52 54 22 00 0D 12 84 12 0A 49 0A 44 08 45 8A 4C
+9C 49 1A 4A 02 27 0D 12 84 12 CE 47 20 4A 88 4A
+B0 44 66 4D 2E 49 72 4C 94 48 07 5B 27 5D 0D 12
+84 12 56 4D 0A 44 0A 44 8A 4C 8A 4C 9C 49 6A 4D
+03 5B 82 43 BC 1D 30 4D 00 00 02 5D B2 43 BC 1D
+30 4D E2 48 11 50 4F 53 54 50 4F 4E 45 00 0D 12
+84 12 CE 47 20 4A 88 4A B0 44 66 4D F4 48 AC 44
+BE 4D 0A 44 0A 44 8A 4C 8A 4C 0A 44 8A 4C 8A 4C
+9C 49 00 00 02 3A 30 12 14 4E 92 B3 C8 1D A2 63
+C8 1D 0D 12 84 12 CE 47 20 4A DC 4D 3D 41 5A D3
+5A 53 0A 5E 19 42 CC 1D 08 4E 5E 4E 01 00 3E F0
+0F 00 0E 5E 09 5E 3E 4F E8 58 00 00 82 48 B4 1D
+82 49 B6 1D 82 4A B8 1D 82 4F BA 1D 2A 52 82 4A
+C8 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
+B2 43 BC 1D 30 4D 82 9F BA 1D 66 25 84 12 1E 44
+0F 73 74 61 63 6B 20 6D 69 73 6D 61 74 63 68 21
+12 45 80 4D 03 3B 82 93 BC 1D F4 26 0D 12 84 12
+0A 44 9C 49 8A 4C 26 4E 82 4D 9C 49 00 00 12 49
+4D 4D 45 44 49 41 54 45 18 42 B4 1D D8 D3 00 00
+30 4D D4 4C 0C 43 52 45 41 54 45 00 B0 12 CA 4D
+BA 40 86 12 FC FF 8A 4A FE FF 3A 3D A6 47 0A 44
+4F 45 53 3E 1A 42 B8 1D BA 40 85 12 00 00 8A 4D
+02 00 3D 41 30 4D C4 4D 0E 3A 4E 4F 4E 41 4D 45
+30 12 14 4E 2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3
+0A 63 0E 4A 39 40 12 02 08 49 98 3F 5E 4E 05 49
+53 00 0D 12 82 93 BC 1D 08 20 84 12 56 4D E0 4E
+3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 6E 4D 0A 44
+E2 4E 8A 4C 9C 49 74 4E 08 43 4F 44 45 00 B0 12
+CA 4D A2 82 C8 1D 61 3C B6 49 0E 48 44 4E 43 4F
+44 45 B2 40 CE 4F CC 1D F2 3F 00 00 0E 45 4E 44
+43 4F 44 45 0D 12 84 12 26 4E 2C 4F 3D 41 92 42
+D0 1D CC 1D 5D 3C F8 4E 0E 43 4F 44 45 4E 4E 4D
+30 12 02 4F B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42
+C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
+C8 1D B2 43 BC 1D E3 3F 00 00 0A 4C 4F 32 48 49
+A2 83 C8 1D 1A 42 C8 1D EF 3F 0A 4F 0B 48 49 32
+4C 4F A2 53 C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43
+BC 1D B9 3F 96 4F B2 40 A8 4F D0 1D 82 4E CE 1D
+30 40 2E 49 85 12 94 4F 94 4D 3C 4D 26 50 38 4F
+8E 4E D8 49 82 4A 54 4D 7C 4F CE 4E A8 4E 44 4E
+9C 4C B0 50 DA 4A 00 00 00 00 85 12 94 4F 2A 57
+AE 55 0E 57 D6 54 32 55 80 55 5C 56 68 56 F8 53
+1C 55 00 00 00 00 6A 4F E8 52 00 00 84 56 C8 4F
+B2 40 A8 4F CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00
+BA 49 00 00 2A 53 2B 83 FB 23 30 41 00 00 0E 52
+53 54 5F 53 45 54 39 40 C8 1D 3A 40 42 18 B0 12
+FC 4F 30 4D 0E 50 0E 52 53 54 5F 52 45 54 39 40
+42 18 2C 49 3A 40 C8 1D B0 12 FC 4F 1A 42 CA 1D
+3B 40 10 00 09 4A 08 49 29 83 18 48 FE FF 0C 98
+FC 2B 89 48 00 00 1B 83 F6 23 2A 4A 0A 93 F0 23
+30 4D 0E 93 E4 37 39 40 10 00 29 83 B9 43 80 FF
+FC 23 B9 40 06 46 FE FF 29 83 B9 40 F2 45 FE FF
+39 90 AE FF F9 23 39 40 10 18 B2 49 E4 FF 3B 40
+10 00 3A 40 3A 18 B0 12 00 50 82 43 4A 18 C7 3F
+A2 50 B2 4E 42 18 BE 12 3E 4F 3D 41 C0 3F 8A 4D
+0C 4D 41 52 4B 45 52 00 12 12 C6 1D 0D 12 84 12
+CE 47 20 4A 88 4A AC 44 CE 50 C2 48 62 4C D0 50
+3E 4F 3D 41 B2 41 C6 1D B0 12 CA 4D BA 40 85 12
+FC FF BA 40 A0 50 FE FF 28 83 8A 48 00 00 BA 40
+82 44 02 00 A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D
+A8 49 FE FF 89 48 00 00 30 4D 12 12 C6 1D 84 12
+20 4A 88 4A AC 44 3A 51 1A 51 3C 4E 3C 80 87 12
+0A 24 1C 53 02 20 2E 4E 06 3C BE 90 A0 50 00 00
+01 20 3E 52 2E 83 21 53 30 41 32 4B AC 44 42 51
+36 51 44 51 B2 41 C6 1D 30 41 92 83 C6 1D 3E 40
+28 00 0A 4E 3D 15 B0 12 0A 51 15 20 3E 40 2B 00
+B0 12 0A 51 06 20 3E 40 2D 00 B0 12 0A 51 92 83
+C6 1D 0E 12 1E 41 02 00 84 12 20 4A 32 4B AC 44
+66 4D 84 51 3E 51 3A 17 30 41 B0 12 4A 51 19 42
+C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53
+C6 1D 1A 42 C6 1D 3D 15 84 12 20 4A 32 4B AC 44
+BC 51 B4 51 3E 90 10 00 E6 2B 7C 2D BE 51 A2 41
+C6 1D E1 3F 03 20 B0 12 A2 51 43 3C 7A 90 23 00
+24 20 B0 12 52 51 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 C8 1D A2 53
+C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00 05 20
+3C 40 10 02 B0 12 52 51 F0 3F 7A 90 40 00 14 20
+3C 40 20 00 B0 12 9E 51 0C 20 3C D0 10 00 3E 40
+2B 00 B0 12 A2 51 92 92 C2 1D C6 1D 02 24 92 53
+C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12 8A 51
+F2 3F 03 20 B0 12 A2 51 F5 3F 7A 90 26 00 03 20
+3C D0 82 00 D7 3F 3C D0 80 00 B0 12 8A 51 EA 3F
+0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00 19 42
+C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF 19 82
+C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00 08 52
+45 54 49 00 0D 12 84 12 0A 44 00 13 8A 4C 9C 49
+0A 44 2C 00 80 52 C4 51 CE 47 8A 52 62 52 D0 52
+3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D 4F 56
+85 12 C0 52 00 40 DC 52 0A 4D 4F 56 2E 42 85 12
+C0 52 40 40 00 00 06 41 44 44 85 12 C0 52 00 50
+F6 52 0A 41 44 44 2E 42 85 12 C0 52 40 50 02 53
+08 41 44 44 43 00 85 12 C0 52 00 60 10 53 0C 41
+44 44 43 2E 42 00 85 12 C0 52 40 60 48 4F 08 53
+55 42 43 00 85 12 C0 52 00 70 2E 53 0C 53 55 42
+43 2E 42 00 85 12 C0 52 40 70 3C 53 06 53 55 42
+85 12 C0 52 00 80 4C 53 0A 53 55 42 2E 42 85 12
+C0 52 40 80 58 53 06 43 4D 50 85 12 C0 52 00 90
+66 53 0A 43 4D 50 2E 42 85 12 C0 52 40 90 00 00
+08 44 41 44 44 00 85 12 C0 52 00 A0 80 53 0C 44
+41 44 44 2E 42 00 85 12 C0 52 40 A0 AE 52 06 42
+49 54 85 12 C0 52 00 B0 9E 53 0A 42 49 54 2E 42
+85 12 C0 52 40 B0 AA 53 06 42 49 43 85 12 C0 52
+00 C0 B8 53 0A 42 49 43 2E 42 85 12 C0 52 40 C0
+C4 53 06 42 49 53 85 12 C0 52 00 D0 D2 53 0A 42
+49 53 2E 42 85 12 C0 52 40 D0 00 00 06 58 4F 52
+85 12 C0 52 00 E0 EC 53 0A 58 4F 52 2E 42 85 12
+C0 52 40 E0 1E 53 06 41 4E 44 85 12 C0 52 00 F0
+06 54 0A 41 4E 44 2E 42 85 12 C0 52 40 F0 CE 47
+80 52 C4 51 26 54 0A 4C 3C F0 70 00 8A 10 3A F0
+0F 00 0C DA 4D 3F DE 53 06 52 52 43 85 12 1E 54
+00 10 38 54 0A 52 52 43 2E 42 85 12 1E 54 40 10
+72 53 08 53 57 50 42 00 85 12 1E 54 80 10 44 54
+06 52 52 41 85 12 1E 54 00 11 60 54 0A 52 52 41
+2E 42 85 12 1E 54 40 11 52 54 06 53 58 54 85 12
+1E 54 80 11 00 00 08 50 55 53 48 00 85 12 1E 54
+00 12 86 54 0C 50 55 53 48 2E 42 00 85 12 1E 54
+40 12 7A 54 08 43 41 4C 4C 00 85 12 1E 54 80 12
+1A 53 0E 4A 84 12 10 4A 1E 44 0D 6F 75 74 20 6F
+66 20 62 6F 75 6E 64 73 12 45 A4 54 06 53 3E 3D
+86 12 00 38 CC 54 04 53 3C 00 86 12 00 34 94 54
+06 30 3E 3D 86 12 00 30 E0 54 04 30 3C 00 86 12
+00 30 1C 4F 04 55 3C 00 86 12 00 2C F4 54 06 55
+3E 3D 86 12 00 28 EA 54 06 30 3C 3E 86 12 00 24
+08 55 04 30 3D 00 86 12 00 20 00 00 04 49 46 00
+1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D
+8E 53 08 54 48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F
+09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F 88 DA
+00 00 30 4D FE 54 08 45 4C 53 45 00 1A 42 C8 1D
+BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A 00 00
+E3 3F 6C 54 0A 42 45 47 49 4E 30 40 32 44 56 55
+0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D
+2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03
+08 DA 89 48 00 00 A2 53 C8 1D 30 4D 12 54 0A 41
+47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 0A 57
+48 49 4C 45 0D 12 84 12 20 55 B6 48 9C 49 74 55
+0C 52 45 50 45 41 54 00 0D 12 84 12 B4 55 38 55
+9C 49 E4 55 3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D
+CB 2F 98 42 C8 1D 00 00 30 4D D0 55 06 42 57 31
+85 12 E2 55 00 00 FC 55 06 42 57 32 85 12 E2 55
+00 00 08 56 06 42 57 33 85 12 E2 55 00 00 20 56
+3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D
+86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F
+30 4D 00 00 06 46 57 31 85 12 1E 56 00 00 44 56
+06 46 57 32 85 12 1E 56 00 00 50 56 06 46 57 33
+85 12 1E 56 00 00 BE 55 08 47 4F 54 4F 00 2F 83
+8F 4E 00 00 3E 40 00 3C 0D 12 84 12 56 4D 62 4C
+9C 49 00 00 0A 3F 47 4F 54 4F 3E 90 00 30 F4 27
+3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08 EC 3F
+8A 52 0A 44 2C 00 20 4A 32 4B AC 44 66 4D CE 47
+80 52 62 52 B6 56 0A 4E 3E 4F 1A 83 F9 32 29 4E
+59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A 38 90
+10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06
+A8 3E 14 56 08 52 52 43 4D 00 85 12 A0 56 50 00
+E4 56 08 52 52 41 4D 00 85 12 A0 56 50 01 F2 56
+08 52 4C 41 4D 00 85 12 A0 56 50 02 00 57 08 52
+52 55 4D 00 85 12 A0 56 50 03 12 55 0A 50 55 53
+48 4D 85 12 A0 56 00 15 1C 57 08 50 4F 50 4D 00
+85 12 A0 56 00 17
+@FF80
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 D8 46 F2 45 F2 45 F2 45 F2 45 F2 45
+F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 F2 45 06 46
+q
index 166b30f..1dbf49a 100644 (file)
 @1800
-40 1F 12 00 00 00 F8 00 F9 FF F8 57 F0 4F 34 01
-10 00 41 87 B6 45 AA 44 B8 45 8C 45 82 46 F8 57
-F0 4F 70 46 80 47 FE 46 DA 46 3C 1D 4E 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
+40 1F 12 00 00 00 F8 00 FD FF 35 01 10 00 A1 43
+D2 46 56 45 56 45 58 45 44 45 12 57 CA 4F 84 4F
+84 4F C0 46 44 47 1C 47 3C 1D E0 1C 78 49 B6 44
+C4 44 94 48 20 00 0A 00 00 1C 56 45 56 45 58 45
+44 45 12 57 CA 4F 84 4F 84 4F 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00
 @4400
-B0 12 B8 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 CC 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 6E 46 B2 49 7E 47 B2 49 FC 46 B2 49 D8 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 BC 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D 68 43 B0 12 BA 45 0E 12 B0 12
-F8 44 0A 44 DE 1D CE 47 16 47 EE 44 34 44 8A 45
-14 44 05 1B 5B 37 6D 40 4A 47 0A 44 02 18 CE 47
-C4 48 96 47 34 44 7E 45 14 44 0F 4C 41 53 54 2E
-34 54 48 2C 20 6C 69 6E 65 20 4A 47 8E 48 4A 47
-14 44 04 1B 5B 30 6D 00 4A 47 16 4C 2E 93 13 28
-B2 D0 C0 07 40 06 18 42 02 18 08 11 38 D0 00 04
-82 48 54 06 F2 D0 C0 00 0C 02 92 C3 40 06 A2 D2
-6A 06 92 C3 30 01 30 41 48 43 A2 B3 6C 06 FD 27
-C2 48 4E 06 A2 B2 6C 06 FD 27 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 B6 45 E2 B3 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 CE 45 04 57 41 52 4D 00 B0 12
-8C 45 78 40 03 00 B0 12 BA 45 84 12 14 44 07 0D
-0A 1B 5B 37 6D 40 4A 47 0A 44 02 18 CE 47 C4 48
-0A 44 23 00 FA 46 C4 48 14 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 4A 47 0A 44 40 FF 28 44 C2 47 8E 48
-14 44 0A 62 79 74 65 73 20 66 72 65 65 00 3A 44
-7E 45 00 00 06 41 43 43 45 50 54 00 30 40 70 46
+92 12 40 18 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+12 D3 F5 3F 35 40 B6 44 8F 4A 02 00 8F 49 00 00
+0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+3C 1D 00 00 AF 4F FE FF 2F 83 08 3D 0E 93 3E 4F
+8A 21 2D 4D 30 4D 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
+92 12 3C 18 3D 41 39 40 22 18 B2 49 BE 46 B2 49
+42 47 B2 49 1A 47 B2 49 A0 44 31 49 34 49 35 49
+36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+82 43 BC 1D 30 40 3E 50 8F 93 02 00 02 20 2F 52
+BF 3F 28 43 B0 12 46 45 B0 12 D0 44 9E 48 AC 44
+42 45 5C 47 1E 44 05 1B 5B 37 6D 40 88 47 0A 44
+02 18 C0 48 EC 49 88 47 1E 44 04 1B 5B 30 6D 00
+88 47 D4 4C 48 43 A2 B3 6C 06 FD 27 C2 48 4E 06
+A2 B2 6C 06 FD 27 30 41 B2 D0 C0 07 40 06 18 42
+02 18 08 11 38 D0 00 04 82 48 54 06 F2 D0 C0 00
+0C 02 92 C3 40 06 A2 D2 6A 06 92 C3 30 01 30 41
+92 12 3E 18 84 12 5C 47 1E 44 07 0D 0A 1B 5B 37
+6D 40 88 47 0A 44 02 18 C0 48 EC 49 0A 44 23 00
+40 47 EC 49 1E 44 19 46 61 73 74 46 6F 72 74 68
+20 A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 2C 20
+88 47 0A 44 40 FF 32 44 B4 48 B8 49 1E 44 0A 62
+79 74 65 73 20 66 72 65 65 00 B2 44 36 45 00 00
+06 53 59 53 0E 93 07 38 02 24 1E B3 04 28 30 12
+80 45 01 12 6D 3F 82 4E 08 18 92 12 3A 18 E2 B3
+00 02 02 20 B2 43 08 18 B2 40 04 A5 20 01 B2 D0
+03 00 04 01 B2 D0 10 00 00 01 B2 40 80 5A 5C 01
+31 40 E0 1C 3F 40 80 1C B2 D3 06 02 B2 40 FE FF
+02 02 B2 43 26 02 B2 43 22 02 B2 43 46 02 B2 43
+42 02 B2 43 66 02 B2 43 62 02 B2 43 86 02 B2 40
+7F FF 82 02 F2 43 26 03 F2 43 22 03 F2 40 A5 00
+61 01 82 43 66 01 B2 40 33 00 64 01 D2 43 61 01
+39 40 40 00 18 42 00 18 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 1E 42 08 18
+82 43 08 18 3E F3 02 20 1E 42 9E 01 B0 12 D0 44
+80 45 00 00 0C 41 43 43 45 50 54 00 30 40 C0 46
 0A 4E 2E 4F 0A 5E 3B 40 0A 00 3C 40 20 00 3D 15
-BF 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 B8 22
+97 3E 21 52 A2 C2 6C 06 B2 B0 10 00 40 06 90 22
 3A 17 92 B3 6C 06 FD 27 58 42 4C 06 48 9B 0E 24
 48 9C 06 2C 78 92 F5 23 2E 9F F3 27 1E 83 F1 3F
-0E 9A EF 27 CE 48 00 00 1E 53 EB 3F 3E 8F B0 12
-C4 45 82 93 DE 1D 02 24 92 53 DE 1D 08 4C 19 3C
-00 00 03 4B 45 59 30 40 DA 46 2F 83 8F 4E 00 00
-58 43 B0 12 BA 45 92 B3 6C 06 FD 27 1E 42 4C 06
-30 4D 00 00 04 45 4D 49 54 00 30 40 FE 46 08 4E
-3E 4F A2 B3 6C 06 FD 27 C2 48 4E 06 30 4D F4 46
-04 45 43 48 4F 00 B2 40 C2 48 08 47 82 43 DE 1D
-38 40 05 00 B0 12 BA 45 30 4D 00 00 06 4E 4F 45
-43 48 4F 00 B2 40 30 4D 08 47 92 43 DE 1D 28 42
-F1 3F 00 00 04 54 59 50 45 00 0E 93 11 24 0D 12
-3D 40 66 47 28 4F 2F 83 8F 4E 00 00 7E 48 8F 48
-02 00 10 42 FC 46 68 47 2D 83 1E 83 F3 23 3D 41
-2F 53 3E 4F 30 4D DC 45 02 43 52 00 30 40 80 47
-0D 12 84 12 14 44 02 0D 0A 00 4A 47 4E 48 2F 83
-8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E FE FF
-AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00 0E 4A
-30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11 2F 83
-30 4D 3E 8F 3E E3 1E 53 30 4D 64 46 01 40 2E 4E
-30 4D CC 47 01 21 BE 4F 00 00 3E 4F 30 4D 1E 83
-0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F 03 24
-3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00 B2 40
-B2 1D B2 1D 30 4D 78 47 01 23 1B 42 DC 1D 2C 4F
-2F 83 B0 12 6E 44 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 08 48 02 23 53 00 0D 12 84 12
-0A 48 44 48 2D 83 09 93 E2 23 0E 93 E0 23 3D 41
-30 4D 38 48 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 4A 4E
-3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93 3E 4F
-7A 40 2D 00 D1 33 30 4D 44 47 02 55 2E 00 08 43
-2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3 06 34
-BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12 FE 47
-3C 48 EE 44 7C 48 58 48 4A 47 02 4C FA 46 4E 48
-2C 47 01 2E 0E 93 E3 37 38 43 E2 3F 76 48 82 53
-22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44 48 4B
-0A 44 22 00 1A 49 E8 48 B2 40 20 00 B4 1D 6E 4E
-1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D C2 48
-82 2E 22 00 0D 12 84 12 D2 48 0A 44 4A 47 48 4B
-4E 48 F8 45 04 57 4F 52 44 00 3C 40 C0 1D 39 4C
-3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A FC 27
-1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00 00 00
-01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A 4E 9C
-08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F 4C 85
-F1 3F 35 40 D4 44 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 66 4C 75 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 C5
-48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83
-FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43 01 30
-2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44 30 4D
-00 00 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
+0E 9A EF 2F CE 48 00 00 1E 53 EB 3F 3E 8F 08 4C
+1B 3C 00 00 06 4B 45 59 30 40 1C 47 58 43 B0 12
+46 45 2F 83 8F 4E 00 00 92 B3 6C 06 FD 27 1E 42
+4C 06 B0 12 44 45 30 4D 00 00 08 45 4D 49 54 00
+30 40 44 47 08 4E 3E 4F A2 B3 6C 06 FD 27 C2 48
+4E 06 30 4D 3A 47 08 45 43 48 4F 00 B2 40 C2 48
+4E 47 38 40 05 00 B0 12 46 45 30 4D 00 00 0C 4E
+4F 45 43 48 4F 00 B2 40 30 4D 4E 47 28 42 F3 3F
+00 00 08 54 59 50 45 00 0D 12 3D 40 98 47 29 4F
+8F 4E 00 00 7E 49 D4 3F 9A 47 2D 83 2F 83 5E 83
+F7 23 3D 41 2F 53 3E 4F 30 4D 86 12 20 00 0C 4E
+38 4F 3C 9F 39 4F 3E 4F 7C 22 F9 98 00 00 79 22
+19 53 1C 83 FA 23 2D 53 30 4D 2F 53 3E 4F 1E 83
+70 22 9B 24 14 47 0D 5B 45 4C 53 45 5D 00 0D 12
+84 12 0A 44 00 00 B8 48 AA 47 FC 49 B6 4C B0 44
+26 48 14 44 06 5B 54 48 45 4E 5D 00 AE 47 04 48
+CA 47 E8 47 14 44 06 5B 45 4C 53 45 5D 00 AE 47
+16 48 CA 47 E6 47 1E 44 04 5B 49 46 5D 00 AE 47
+E8 47 B2 44 E6 47 1E 44 05 0D 6B 6F 20 0A 88 47
+9A 44 84 44 B2 44 E8 47 D6 47 0D 5B 54 48 45 4E
+5D 00 30 4D 3A 48 09 5B 49 46 5D 00 0E 93 3E 4F
+C6 27 30 4D 46 48 13 5B 44 45 46 49 4E 45 44 5D
+0D 12 84 12 AA 47 FC 49 64 4A 08 4C 78 49 56 48
+17 5B 55 4E 44 45 46 49 4E 45 44 5D 0D 12 84 12
+AA 47 FC 49 64 4A 88 48 3D 41 2F 53 1E 83 0E 7E
+30 4D 3F 12 2F 83 8F 4E 00 00 3E 41 30 4D 8F 4E
+FE FF 2F 83 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F
+0E 11 F7 3F 3E 8F 3E E3 1E 53 30 4D 00 00 02 40
+2E 4E 30 4D B4 46 02 21 BE 4F 00 00 3E 4F 30 4D
+0E 5E 0E 7E 3E E3 30 4D 3E 8F 01 28 0E F3 30 4D
+E0 45 05 53 22 00 82 43 C0 1D 0D 12 84 12 0A 44
+1E 44 66 4C 0A 44 22 00 FC 49 FC 48 B2 40 20 00
+C0 1D 1A 53 1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D
+6E 47 05 2E 22 00 0D 12 84 12 E6 48 0A 44 88 47
+66 4C 78 49 00 00 04 3C 23 00 B2 40 B2 1D B2 1D
+30 4D E2 48 02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12
+46 44 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 34 49 04 23 53 00 0D 12 84 12 36 49 70 49
+2D 83 09 DE 09 93 E1 23 3D 41 30 4D 64 49 04 23
+3E 00 9F 42 B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D
+00 00 08 48 4F 4C 44 00 4A 4E 3E 4F DB 3F 7E 49
+08 53 49 47 4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33
+30 4D 56 47 04 55 2E 00 0C 43 2F 83 8F 4E 00 00
+0E 4C 1D 15 3E F3 06 34 BF E3 00 00 3E E3 9F 53
+00 00 0E 63 84 12 2A 49 AA 47 98 49 68 49 94 48
+A6 49 82 49 88 47 78 49 12 49 02 2E 0E 93 E4 37
+3C 43 E3 3F 00 00 08 57 4F 52 44 00 3C 40 C2 1D
+39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1D 24 7E 98
+FC 27 18 83 1B 42 C0 1D F8 90 27 00 00 00 04 20
+E8 98 02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24
+7C 48 4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90
+7B 00 F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D
+1E 42 C8 1D 0A 8E CE 4A 00 00 30 4D 00 00 08 46
+49 4E 44 00 2F 83 0C 4E 3B 40 CE 1D 3E 4B 0E 93
+1E 24 58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53
+1E 4E FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C
+F7 23 0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23
+19 B3 09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C
+00 00 30 4D EA 49 0E 3E 4E 55 4D 42 45 52 1B 42
+BE 1D 3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C
+7A 80 3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00
+0A 9B 22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42
+E4 04 18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 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 9C 4A 09 43
-08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90 27 00
-00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90 03 00
-48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43 02 00
-0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24 3B 40
-10 00 7A 53 36 20 1C 53 1E 83 EB 3F 9E 4A 31 24
-2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20 32 D0
-00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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
-66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F 04 00
-4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E 00 00
-A2 53 C6 1D 3E 4F 30 4D 46 4B 87 4C 49 54 45 52
-41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D A2 52
-C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F 32 B0
-00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D
-54 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E 00 00
-5E 4E FF FF 30 4D 68 48 09 49 4E 54 45 52 50 52
-45 54 0D 12 84 12 AC 44 02 4C 1A 49 BE 4B 9C 26
-3D 40 C6 4B DE 3E C8 4B 0A 4E 3E 4F 3D 40 E2 4B
-36 27 3D 40 B8 4B 1A E2 BE 1D B6 27 0E 12 3E 4F
-30 41 E4 4B 3E 4F 3D 40 B8 4B BB 23 DE 53 00 00
-68 4E 08 5E F8 40 3F 00 00 00 3D 40 84 4D CC 3F
-EC 4B 86 12 20 00 D4 47 05 41 4C 4C 4F 54 82 5E
-C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40 E0 1C
-B2 40 00 1C 00 1C 82 43 BE 1D 84 12 7C 47 BC 44
-B2 4B B2 47 E4 47 14 44 0C 73 74 61 63 6B 20 65
-6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44 EC 47
-14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00 2A 45
-3A 44 2C 4C 08 4C 86 41 42 4F 52 54 22 00 0D 12
-84 12 D2 48 0A 44 2A 45 48 4B 4E 48 7C 49 01 27
-0D 12 84 12 02 4C 1A 49 82 49 34 44 00 4C 4E 48
-00 00 83 5B 27 5D 0D 12 84 12 80 4C 0A 44 0A 44
-48 4B 48 4B 4E 48 92 4C 81 5B 82 43 BE 1D 30 4D
-FA 47 01 5D B2 43 BE 1D 30 4D B2 4C 81 5C 92 42
-C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50 4F 4E
-45 00 0D 12 84 12 02 4C 1A 49 82 49 96 47 34 44
-00 4C E4 47 34 44 F4 4C 0A 44 0A 44 48 4B 48 4B
-0A 44 48 4B 48 4B 4E 48 A8 4C 01 3A 30 12 44 4D
-92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 02 4C 1A 49
-12 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 82 48 B6 1D
-82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52 82 4A
-C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12 FE FF
-B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42 B6 1D
-19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D 0D 12
-84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73 6D 61
-74 63 68 21 36 45 FA 4C 81 3B 82 93 BE 1D 97 27
-0D 12 84 12 0A 44 4E 48 48 4B 56 4D AA 4C 4E 48
-A8 4B 09 49 4D 4D 45 44 49 41 54 45 18 42 B6 1D
-F8 D0 80 00 00 00 30 4D 92 4B 06 43 52 45 41 54
-45 00 B0 12 00 4D BA 40 86 12 FC FF 8A 4A FE FF
-C9 3F BA 4D 04 43 4F 44 45 00 B0 12 00 4D A2 82
-C6 1D 0D 12 84 12 F2 4F CC 4F 4E 48 A2 4D 07 48
-44 4E 43 4F 44 45 B2 40 D0 4F DA 1D EE 3F 00 00
-07 45 4E 44 43 4F 44 45 0D 12 84 12 56 4D 0C 50
-2A 50 4E 48 00 00 05 43 4F 4C 4F 4E 1A 42 C6 1D
-BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52 C6 1D
-B2 43 BE 1D 0D 12 84 12 0C 50 2A 50 4E 48 00 00
-05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D EB 3F
-EE 4D 85 48 49 32 4C 4F 0D 12 84 12 28 44 9A 4F
-48 4B AA 4C E2 4D 4E 48 88 4D 86 5B 54 48 45 4E
-5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B 0E 5C
-10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98 FF FF
-F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00 F9 23
-2F 53 2D 53 F7 3F 6A 4E 86 5B 45 4C 53 45 5D 00
-0D 12 84 12 0A 44 00 00 C6 47 02 4C 1A 49 98 4B
-8E 47 34 44 02 4F 9C 47 14 44 06 5B 54 48 45 4E
-5D 00 74 4E DC 4E 98 4E BA 4E 4E 48 9C 47 14 44
-06 5B 45 4C 53 45 5D 00 74 4E F2 4E 98 4E B8 4E
-4E 48 14 44 04 5B 49 46 5D 00 74 4E BA 4E 3A 44
-B8 4E 70 47 14 44 05 0D 0A 6B 6F 20 4A 47 BC 44
-AC 44 3A 44 BA 4E A8 4E 84 5B 49 46 5D 00 0E 93
-3E 4F C6 27 30 4D 2F 53 30 4D 18 4F 89 5B 44 45
-46 49 4E 45 44 5D 0D 12 84 12 02 4C 1A 49 82 49
-26 4F 4E 48 2C 4F 8B 5B 55 4E 44 45 46 49 4E 45
-44 5D 0D 12 84 12 36 4F DE 47 4E 48 5E 4F B2 4E
-0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 5A 4B 06 4D
-41 52 4B 45 52 00 B0 12 00 4D BA 40 85 12 FC FF
-BA 40 5C 4F FE FF 28 83 8A 48 00 00 BA 40 AA 44
-04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D 0A 44
-CA 1D D6 47 4E 48 85 12 9E 4F 66 4C D4 4D 10 47
-7E 4C 52 4E D2 46 6E 4F 00 49 96 50 AA 50 8A 48
-14 49 00 00 46 4F BC 4C E2 49 00 00 85 12 9E 4F
-6E 56 D4 56 16 56 24 57 DC 55 00 00 A8 53 00 00
-EC 57 D0 57 40 56 7E 56 B8 54 00 00 00 00 40 57
-CA 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53 19 83
-18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40 0E 00
-38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53 1A 83
-FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D DA 1D
-30 4D A6 4F 24 50 2A 50 3A 50 1A 42 20 18 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 C8 4C
-09 50 57 52 5F 53 54 41 54 45 85 12 32 50 F8 57
-CE 48 09 52 53 54 5F 53 54 41 54 45 92 42 0A 18
-7E 50 F3 3F 70 50 08 50 57 52 5F 48 45 52 45 00
-92 42 C6 1D 7E 50 30 4D 82 50 08 52 53 54 5F 48
-45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90 0E 00
-DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00 29 83
-B9 43 80 FF FC 23 B9 40 08 51 FE FF 29 83 B9 40
-E2 45 FE FF 39 90 AE FF F9 23 39 40 14 18 B2 49
-E4 45 B2 49 FA 44 B2 49 02 44 B2 49 00 46 B2 49
-EC FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01 B2 D0
-10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40
-80 1C 39 40 00 08 29 83 89 43 00 1C FC 23 B2 D3
-06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43 22 02
-B2 43 46 02 B2 43 42 02 B2 43 66 02 B2 43 62 02
-B2 43 86 02 B2 40 7F FF 82 02 F2 43 26 03 F2 43
-22 03 F2 40 A5 00 61 01 82 43 66 01 B2 40 33 00
-64 01 D2 43 61 01 39 40 40 00 18 42 00 18 18 83
-FE 23 19 83 FA 23 B2 42 B0 01 F2 D0 10 00 2A 03
-F2 C0 40 00 A2 04 1E 42 08 18 82 43 08 18 1E D2
-9E 01 B0 12 F8 44 FE 45 38 40 C0 1D 0A 4E 39 48
-2E 48 09 5E 1E 52 C4 1D 09 9E 03 24 7A 9E FC 27
-1E 83 0A 4E 2A 88 82 4A C4 1D 30 4D 1C 15 0E 12
-12 12 C4 1D 84 12 1A 49 82 49 DE 47 34 44 E8 51
-3E 4A 34 44 02 52 FC 51 EA 51 3C 4E 3C 80 87 12
-05 24 1C 53 02 20 2E 4E 01 3C 2E 83 21 52 1B 17
-30 41 04 52 B2 41 C4 1D 3E 41 84 12 0A 44 2B 00
-1A 49 82 49 DE 47 34 44 20 52 3E 4A 34 44 00 4C
-A8 47 1A 49 3E 4A 34 44 00 4C 2C 52 3E 5F E7 3F
-3E 40 28 00 B0 12 CC 51 19 42 C6 1D A2 53 C6 1D
-89 4E 00 00 3E 40 29 00 92 92 C0 1D C4 1D 02 20
-30 40 6E 4D 1C 15 12 12 C4 1D 92 53 C4 1D 84 12
-1A 49 3E 4A 34 44 74 52 6A 52 21 53 3E 90 10 00
-C6 2B 7F 2D 76 52 B2 41 C4 1D C1 3F 0D 12 84 12
-02 4C A8 51 86 52 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
-CC 51 3C 40 00 03 0E 93 1C 24 3C 40 10 03 1E 93
+00 02 3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 1D
+0C 4E 0E 43 1E 15 3D 40 6E 4B 7E 4C 6A 4C 7A 80
+2D 00 16 24 CA 2F 2B 43 7A 52 14 24 3B 52 6A 53
+11 24 3B 40 10 00 5A 93 0D 24 6A 92 41 20 3E 90
+03 00 3E 20 FC 9C 01 00 6C 4C 8F 4C 04 00 38 3C
+B1 43 02 00 1E 83 FC 9C 00 00 E0 23 AE 27 70 4B
+2F 24 2D 83 6A 4C 7A 90 5F 00 BF 27 32 B0 00 02
+27 20 32 D0 00 02 7A 80 2E 00 B7 27 6A 53 20 20
+0A 4E 09 43 8F 49 02 00 5A 83 09 4A 09 5C 69 49
+79 80 3A 00 03 28 79 80 07 00 0C 28 79 50 0A 00
+09 9B 08 2C 8F 49 00 00 0E 4B 2C 15 B0 12 3E 44
+2A 17 E8 3F 9F 4F 04 00 02 00 AF 4F 04 00 4A 93
+1D 17 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 26 49 03 5C
+92 42 C2 1D C6 1D 30 4D 0D 12 84 12 84 44 AA 47
+FC 49 B0 44 40 4D 64 4A 2A 4C 0A 4E 3E 4F 3D 40
+44 4C 6D 27 3D 40 1E 4C 1A E2 BC 1D 14 24 0E 12
+3E 4F 30 41 46 4C 3E 4F 3D 40 1E 4C 19 20 DE 53
+00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 1C 4E
+2A 3C 0E 4C 02 2C A2 53 C8 1D 1A 42 C8 1D 8A 4E
+FE FF 3E 4F 30 4D 64 4C 0F 4C 49 54 45 52 41 4C
+82 93 BC 1D 0D 24 09 4E 1A 42 C8 1D A2 52 C8 1D
+BA 40 0A 44 00 00 8A 49 02 00 3E 4F 32 B0 00 02
+32 C0 00 02 03 24 8A 4E 02 00 EE 3F 30 4D A0 49
+0A 43 4F 55 4E 54 2F 83 7A 4E 8F 4E 00 00 0E 4A
+3E F3 30 4D C6 48 0A 41 4C 4C 4F 54 82 5E C8 1D
+3E 4F 30 4D 3F 40 80 1C 0E 43 84 12 1E 44 02 0D
+0A 00 88 47 94 44 18 4C A6 48 D0 48 1E 44 0B 73
+74 61 63 6B 20 65 6D 70 74 79 08 45 32 44 0A 44
+40 FF D8 48 1E 44 09 46 52 41 4D 20 66 75 6C 6C
+08 45 B2 44 DC 4C C6 4C 0D 41 42 4F 52 54 22 00
+0D 12 84 12 E6 48 0A 44 08 45 66 4C 78 49 F6 49
+02 27 0D 12 84 12 AA 47 FC 49 64 4A B0 44 42 4D
+0A 49 4E 4C 70 48 07 5B 27 5D 0D 12 84 12 32 4D
+0A 44 0A 44 66 4C 66 4C 78 49 46 4D 03 5B 82 43
+BC 1D 30 4D 00 00 02 5D B2 43 BC 1D 30 4D BE 48
+11 50 4F 53 54 50 4F 4E 45 00 0D 12 84 12 AA 47
+FC 49 64 4A B0 44 42 4D D0 48 AC 44 9A 4D 0A 44
+0A 44 66 4C 66 4C 0A 44 66 4C 66 4C 78 49 00 00
+02 3A 30 12 F0 4D 92 B3 C8 1D A2 63 C8 1D 0D 12
+84 12 AA 47 FC 49 B8 4D 3D 41 5A D3 5A 53 0A 5E
+19 42 CC 1D 08 4E 5E 4E 01 00 3E F0 0F 00 0E 5E
+09 5E 3E 4F E8 58 00 00 82 48 B4 1D 82 49 B6 1D
+82 4A B8 1D 82 4F BA 1D 2A 52 82 4A C8 1D 30 41
+BA 40 0D 12 FC FF BA 40 84 12 FE FF B2 43 BC 1D
+30 4D 82 9F BA 1D 66 25 84 12 1E 44 0F 73 74 61
+63 6B 20 6D 69 73 6D 61 74 63 68 21 12 45 5C 4D
+03 3B 82 93 BC 1D F4 26 0D 12 84 12 0A 44 78 49
+66 4C 02 4E 5E 4D 78 49 00 00 12 49 4D 4D 45 44
+49 41 54 45 18 42 B4 1D D8 D3 00 00 30 4D B0 4C
+0C 43 52 45 41 54 45 00 B0 12 A6 4D BA 40 86 12
+FC FF 8A 4A FE FF 3A 3D 82 47 0A 44 4F 45 53 3E
+1A 42 B8 1D BA 40 85 12 00 00 8A 4D 02 00 3D 41
+30 4D A0 4D 0E 3A 4E 4F 4E 41 4D 45 30 12 F0 4D
+2F 83 8F 4E 00 00 1A 42 C8 1D 1A B3 0A 63 0E 4A
+39 40 12 02 08 49 98 3F 3A 4E 05 49 53 00 0D 12
+82 93 BC 1D 08 20 84 12 32 4D BC 4E 3D 41 BE 4F
+02 00 3E 4F 30 4D 84 12 4A 4D 0A 44 BE 4E 66 4C
+78 49 50 4E 08 43 4F 44 45 00 B0 12 A6 4D A2 82
+C8 1D 61 3C 92 49 0E 48 44 4E 43 4F 44 45 B2 40
+AA 4F CC 1D F2 3F 00 00 0E 45 4E 44 43 4F 44 45
+0D 12 84 12 02 4E 08 4F 3D 41 92 42 D0 1D CC 1D
+5D 3C D4 4E 0E 43 4F 44 45 4E 4E 4D 30 12 DE 4E
+B7 3F 00 00 0A 43 4F 4C 4F 4E 1A 42 C8 1D BA 40
+0D 12 00 00 BA 40 84 12 02 00 A2 52 C8 1D B2 43
+BC 1D E3 3F 00 00 0A 4C 4F 32 48 49 A2 83 C8 1D
+1A 42 C8 1D EF 3F E6 4E 0B 48 49 32 4C 4F A2 53
+C8 1D 1A 42 C8 1D 8A 4A FE FF 82 43 BC 1D B9 3F
+72 4F B2 40 84 4F D0 1D 82 4E CE 1D 30 40 0A 49
+85 12 70 4F 70 4D 18 4D 02 50 14 4F 6A 4E B4 49
+5E 4A 30 4D 58 4F AA 4E 84 4E 20 4E 78 4C 8C 50
+B6 4A 00 00 00 00 85 12 70 4F 06 57 8A 55 EA 56
+B2 54 0E 55 5C 55 38 56 44 56 D4 53 F8 54 00 00
+00 00 46 4F C4 52 00 00 60 56 A4 4F B2 40 84 4F
+CE 1D 82 43 D0 1D 30 4D 3B 40 0A 00 BA 49 00 00
+2A 53 2B 83 FB 23 30 41 00 00 0E 52 53 54 5F 53
+45 54 39 40 C8 1D 3A 40 42 18 B0 12 D8 4F 30 4D
+EA 4F 0E 52 53 54 5F 52 45 54 39 40 42 18 2C 49
+3A 40 C8 1D B0 12 D8 4F 1A 42 CA 1D 3B 40 10 00
+09 4A 08 49 29 83 18 48 FE FF 0C 98 FC 2B 89 48
+00 00 1B 83 F6 23 2A 4A 0A 93 F0 23 30 4D 0E 93
+E4 37 39 40 10 00 29 83 B9 43 80 FF FC 23 B9 40
+0E 46 FE FF 29 83 B9 40 FA 45 FE FF 39 90 AE FF
+F9 23 39 40 10 18 B2 49 EC FF 3B 40 10 00 3A 40
+3A 18 B0 12 DC 4F 82 43 4A 18 C7 3F 7E 50 B2 4E
+42 18 BE 12 3E 4F 3D 41 C0 3F 66 4D 0C 4D 41 52
+4B 45 52 00 12 12 C6 1D 0D 12 84 12 AA 47 FC 49
+64 4A AC 44 AA 50 9E 48 3E 4C AC 50 3E 4F 3D 41
+B2 41 C6 1D B0 12 A6 4D BA 40 85 12 FC FF BA 40
+7C 50 FE FF 28 83 8A 48 00 00 BA 40 82 44 02 00
+A2 52 C8 1D 18 42 B4 1D 19 42 B6 1D A8 49 FE FF
+89 48 00 00 30 4D 12 12 C6 1D 84 12 FC 49 64 4A
+AC 44 16 51 F6 50 3C 4E 3C 80 87 12 0A 24 1C 53
+02 20 2E 4E 06 3C BE 90 7C 50 00 00 01 20 3E 52
+2E 83 21 53 30 41 0E 4B AC 44 1E 51 12 51 20 51
+B2 41 C6 1D 30 41 92 83 C6 1D 3E 40 28 00 0A 4E
+3D 15 B0 12 E6 50 15 20 3E 40 2B 00 B0 12 E6 50
+06 20 3E 40 2D 00 B0 12 E6 50 92 83 C6 1D 0E 12
+1E 41 02 00 84 12 FC 49 0E 4B AC 44 42 4D 60 51
+3E 51 3A 17 30 41 B0 12 26 51 19 42 C8 1D 89 4E
+00 00 A2 53 C8 1D 3E 40 29 00 92 53 C6 1D 1A 42
+C6 1D 3D 15 84 12 FC 49 0E 4B AC 44 98 51 90 51
+3E 90 10 00 E6 2B 7C 2D 9A 51 A2 41 C6 1D E1 3F
+03 20 B0 12 7E 51 43 3C 7A 90 23 00 24 20 B0 12
+2E 51 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 CC 51 ED 3F 7A 90 40 00
-16 20 3C 40 20 00 92 53 C4 1D B0 12 54 52 0C 20
-3C 50 10 00 3E 40 2B 00 B0 12 54 52 92 92 C0 1D
-C4 1D 02 24 92 53 C4 1D 8E 10 0C 5E DA 3F B0 12
-54 52 FA 23 3C 50 10 00 B0 12 30 52 EF 3F 0C 43
-1B 42 C6 1D A2 53 C6 1D 0D 12 84 12 02 4C A8 51
-52 53 FE 90 26 00 00 00 3E 40 20 00 03 20 3C 50
-82 00 C7 3F B0 12 54 52 E0 23 3C 50 80 00 B0 12
-30 52 DB 3F 00 00 04 52 45 54 49 00 0D 12 84 12
-0A 44 00 13 48 4B 4E 48 0A 44 2C 00 7C 52 48 53
-92 53 09 4B 2E 4E 0E DC A2 3F 40 4E 03 4D 4F 56
-85 12 88 53 00 40 9C 53 05 4D 4F 56 2E 42 85 12
-88 53 40 40 00 00 03 41 44 44 85 12 88 53 00 50
-B6 53 05 41 44 44 2E 42 85 12 88 53 40 50 C2 53
-04 41 44 44 43 00 85 12 88 53 00 60 D0 53 06 41
-44 44 43 2E 42 00 85 12 88 53 40 60 76 53 04 53
-55 42 43 00 85 12 88 53 00 70 EE 53 06 53 55 42
-43 2E 42 00 85 12 88 53 40 70 FC 53 03 53 55 42
-85 12 88 53 00 80 0C 54 05 53 55 42 2E 42 85 12
-88 53 40 80 16 4E 03 43 4D 50 85 12 88 53 00 90
-26 54 05 43 4D 50 2E 42 85 12 88 53 40 90 00 4E
-04 44 41 44 44 00 85 12 88 53 00 A0 40 54 06 44
-41 44 44 2E 42 00 85 12 88 53 40 A0 32 54 03 42
-49 54 85 12 88 53 00 B0 5E 54 05 42 49 54 2E 42
-85 12 88 53 40 B0 6A 54 03 42 49 43 85 12 88 53
-00 C0 78 54 05 42 49 43 2E 42 85 12 88 53 40 C0
-84 54 03 42 49 53 85 12 88 53 00 D0 92 54 05 42
-49 53 2E 42 85 12 88 53 40 D0 00 00 03 58 4F 52
-85 12 88 53 00 E0 AC 54 05 58 4F 52 2E 42 85 12
-88 53 40 E0 DE 53 03 41 4E 44 85 12 88 53 00 F0
-C6 54 05 41 4E 44 2E 42 85 12 88 53 40 F0 02 4C
-7C 52 E4 54 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00
-0C DA 4F 3F 18 54 03 52 52 43 85 12 DE 54 00 10
-F6 54 05 52 52 43 2E 42 85 12 DE 54 40 10 02 55
-04 53 57 50 42 00 85 12 DE 54 80 10 10 55 03 52
-52 41 85 12 DE 54 00 11 1E 55 05 52 52 41 2E 42
-85 12 DE 54 40 11 2A 55 03 53 58 54 85 12 DE 54
-80 11 00 00 04 50 55 53 48 00 85 12 DE 54 00 12
-44 55 06 50 55 53 48 2E 42 00 85 12 DE 54 40 12
-9E 54 04 43 41 4C 4C 00 85 12 DE 54 80 12 1A 53
-0E 4A 0D 12 84 12 C4 48 14 44 0D 6F 75 74 20 6F
-66 20 62 6F 75 6E 64 73 36 45 38 55 03 53 3E 3D
-86 12 00 38 8C 55 02 53 3C 00 86 12 00 34 52 55
-03 30 3E 3D 86 12 00 30 A0 55 02 30 3C 00 86 12
-00 30 00 00 02 55 3C 00 86 12 00 2C B4 55 03 55
-3E 3D 86 12 00 28 AA 55 03 30 3C 3E 86 12 00 24
-C8 55 02 30 3D 00 86 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
-BE 55 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 B1 2F 88 DA
-00 00 30 4D 4E 54 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 62 55 05 42 45 47 49 4E 30 40 28 44 F2 55
-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 8A 3B 3A F0 FF 03
-08 DA 89 48 00 00 A2 53 C6 1D 30 4D D2 54 05 41
-47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00 05 57
-48 49 4C 45 0D 12 84 12 E0 55 A8 47 4E 48 96 55
-06 52 45 50 45 41 54 00 0D 12 84 12 74 56 F8 55
-4E 48 A4 56 3D 41 08 4E 3E 4F 2A 48 B2 92 C4 1D
-CB 2F 98 42 C6 1D 00 00 30 4D 34 56 03 42 57 31
-85 12 A2 56 00 00 BC 56 03 42 57 32 85 12 A2 56
-00 00 C8 56 03 42 57 33 85 12 A2 56 00 00 E0 56
-3D 41 1A 42 C6 1D 28 4E B2 92 C4 1D 88 2B BA 4F
-00 00 A2 53 C6 1D 8E 4A 00 00 3E 4F 30 4D 00 00
-03 46 57 31 85 12 DE 56 00 00 00 57 03 46 57 32
-85 12 DE 56 00 00 0C 57 03 46 57 33 85 12 DE 56
-00 00 18 57 04 47 4F 54 4F 00 2F 83 8F 4E 00 00
-3E 40 00 3C 0D 12 84 12 80 4C DC 4B 4E 48 00 00
-05 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
-3E B0 00 10 EF 27 3E E0 00 08 EC 3F 02 4C A8 51
-62 57 92 53 C4 1D 3E 40 2C 00 84 12 1A 49 3E 4A
-34 44 00 4C 3E 53 78 57 0A 4E 3E 4F 1A 83 F7 32
-29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
-38 90 10 00 EC 2E 5A 0E AB 3E 2A 92 E8 2E 8A 10
-5A 06 A6 3E 90 56 04 52 52 43 4D 00 85 12 5C 57
-50 00 A6 57 04 52 52 41 4D 00 85 12 5C 57 50 01
-B4 57 04 52 4C 41 4D 00 85 12 5C 57 50 02 C2 57
-04 52 52 55 4D 00 85 12 5C 57 50 03 D2 55 05 50
-55 53 48 4D 85 12 5C 57 00 15 DE 57 04 50 4F 50
-4D 00 85 12 5C 57 00 17
+08 24 3C 40 30 00 19 42 C8 1D A2 53 C8 1D 89 4E
+00 00 3E 4F 30 4D 7A 90 26 00 05 20 3C 40 10 02
+B0 12 2E 51 F0 3F 7A 90 40 00 14 20 3C 40 20 00
+B0 12 7A 51 0C 20 3C D0 10 00 3E 40 2B 00 B0 12
+7E 51 92 92 C2 1D C6 1D 02 24 92 53 C6 1D 8E 10
+0C 5E DF 3F 3C D0 10 00 B0 12 66 51 F2 3F 03 20
+B0 12 7E 51 F5 3F 7A 90 26 00 03 20 3C D0 82 00
+D7 3F 3C D0 80 00 B0 12 66 51 EA 3F 0C 43 1B 42
+C8 1D A2 53 C8 1D 3A 40 20 00 19 42 C6 1D 19 52
+C4 1D 7A 99 FE 27 5A 49 FF FF 19 82 C4 1D 82 49
+C6 1D 7A 90 52 00 30 4D 00 00 08 52 45 54 49 00
+0D 12 84 12 0A 44 00 13 66 4C 78 49 0A 44 2C 00
+5C 52 A0 51 AA 47 66 52 3E 52 AC 52 3D 41 2C DE
+8B 4C 00 00 9E 3F 00 00 06 4D 4F 56 85 12 9C 52
+00 40 B8 52 0A 4D 4F 56 2E 42 85 12 9C 52 40 40
+00 00 06 41 44 44 85 12 9C 52 00 50 D2 52 0A 41
+44 44 2E 42 85 12 9C 52 40 50 DE 52 08 41 44 44
+43 00 85 12 9C 52 00 60 EC 52 0C 41 44 44 43 2E
+42 00 85 12 9C 52 40 60 24 4F 08 53 55 42 43 00
+85 12 9C 52 00 70 0A 53 0C 53 55 42 43 2E 42 00
+85 12 9C 52 40 70 18 53 06 53 55 42 85 12 9C 52
+00 80 28 53 0A 53 55 42 2E 42 85 12 9C 52 40 80
+34 53 06 43 4D 50 85 12 9C 52 00 90 42 53 0A 43
+4D 50 2E 42 85 12 9C 52 40 90 00 00 08 44 41 44
+44 00 85 12 9C 52 00 A0 5C 53 0C 44 41 44 44 2E
+42 00 85 12 9C 52 40 A0 8A 52 06 42 49 54 85 12
+9C 52 00 B0 7A 53 0A 42 49 54 2E 42 85 12 9C 52
+40 B0 86 53 06 42 49 43 85 12 9C 52 00 C0 94 53
+0A 42 49 43 2E 42 85 12 9C 52 40 C0 A0 53 06 42
+49 53 85 12 9C 52 00 D0 AE 53 0A 42 49 53 2E 42
+85 12 9C 52 40 D0 00 00 06 58 4F 52 85 12 9C 52
+00 E0 C8 53 0A 58 4F 52 2E 42 85 12 9C 52 40 E0
+FA 52 06 41 4E 44 85 12 9C 52 00 F0 E2 53 0A 41
+4E 44 2E 42 85 12 9C 52 40 F0 AA 47 5C 52 A0 51
+02 54 0A 4C 3C F0 70 00 8A 10 3A F0 0F 00 0C DA
+4D 3F BA 53 06 52 52 43 85 12 FA 53 00 10 14 54
+0A 52 52 43 2E 42 85 12 FA 53 40 10 4E 53 08 53
+57 50 42 00 85 12 FA 53 80 10 20 54 06 52 52 41
+85 12 FA 53 00 11 3C 54 0A 52 52 41 2E 42 85 12
+FA 53 40 11 2E 54 06 53 58 54 85 12 FA 53 80 11
+00 00 08 50 55 53 48 00 85 12 FA 53 00 12 62 54
+0C 50 55 53 48 2E 42 00 85 12 FA 53 40 12 56 54
+08 43 41 4C 4C 00 85 12 FA 53 80 12 1A 53 0E 4A
+84 12 EC 49 1E 44 0D 6F 75 74 20 6F 66 20 62 6F
+75 6E 64 73 12 45 80 54 06 53 3E 3D 86 12 00 38
+A8 54 04 53 3C 00 86 12 00 34 70 54 06 30 3E 3D
+86 12 00 30 BC 54 04 30 3C 00 86 12 00 30 F8 4E
+04 55 3C 00 86 12 00 2C D0 54 06 55 3E 3D 86 12
+00 28 C6 54 06 30 3C 3E 86 12 00 24 E4 54 04 30
+3D 00 86 12 00 20 00 00 04 49 46 00 1A 42 C8 1D
+8A 4E 00 00 A2 53 C8 1D 0E 4A 30 4D 6A 53 08 54
+48 45 4E 00 1A 42 C8 1D 08 4E 3E 4F 09 48 29 53
+0A 89 0A 11 3A 90 00 02 B2 2F 88 DA 00 00 30 4D
+DA 54 08 45 4C 53 45 00 1A 42 C8 1D BA 40 00 3C
+00 00 A2 53 C8 1D 2F 83 8F 4A 00 00 E3 3F 48 54
+0A 42 45 47 49 4E 30 40 32 44 32 55 0A 55 4E 54
+49 4C 3A 4F 08 4E 3E 4F 19 42 C8 1D 2A 83 0A 89
+0A 11 3A 90 00 FE 8B 3B 3A F0 FF 03 08 DA 89 48
+00 00 A2 53 C8 1D 30 4D EE 53 0A 41 47 41 49 4E
+0A 4E 38 40 00 3C E7 3F 00 00 0A 57 48 49 4C 45
+0D 12 84 12 FC 54 92 48 78 49 50 55 0C 52 45 50
+45 41 54 00 0D 12 84 12 90 55 14 55 78 49 C0 55
+3D 41 08 4E 3E 4F 2A 48 B2 92 C6 1D CB 2F 98 42
+C8 1D 00 00 30 4D AC 55 06 42 57 31 85 12 BE 55
+00 00 D8 55 06 42 57 32 85 12 BE 55 00 00 E4 55
+06 42 57 33 85 12 BE 55 00 00 FC 55 3D 41 1A 42
+C8 1D 28 4E 8E 43 00 00 B2 92 C6 1D 86 2B BA 4F
+00 00 A2 53 C8 1D 8E 4A 00 00 3E 4F 30 4D 00 00
+06 46 57 31 85 12 FA 55 00 00 20 56 06 46 57 32
+85 12 FA 55 00 00 2C 56 06 46 57 33 85 12 FA 55
+00 00 9A 55 08 47 4F 54 4F 00 2F 83 8F 4E 00 00
+3E 40 00 3C 0D 12 84 12 32 4D 3E 4C 78 49 00 00
+0A 3F 47 4F 54 4F 3E 90 00 30 F4 27 3E E0 00 04
+3E B0 00 10 EF 27 3E E0 00 08 EC 3F 66 52 0A 44
+2C 00 FC 49 0E 4B AC 44 42 4D AA 47 5C 52 3E 52
+92 56 0A 4E 3E 4F 1A 83 F9 32 29 4E 59 0E 0A 28
+08 4C 59 0A 01 28 0C 8A 08 8A 38 90 10 00 EE 2E
+5A 0E AD 3E 2A 92 EA 2E 8A 10 5A 06 A8 3E F0 55
+08 52 52 43 4D 00 85 12 7C 56 50 00 C0 56 08 52
+52 41 4D 00 85 12 7C 56 50 01 CE 56 08 52 4C 41
+4D 00 85 12 7C 56 50 02 DC 56 08 52 52 55 4D 00
+85 12 7C 56 50 03 EE 54 0A 50 55 53 48 4D 85 12
+7C 56 00 15 F8 56 08 50 4F 50 4D 00 85 12 7C 56
+00 17
 @FF80
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 82 46 E2 45
-E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 E2 45 08 51
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 D2 46 FA 45
+FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 FA 45 0E 46
 q
diff --git a/binaries/MSP_EXP430FR6989_8MHz_UART.txt b/binaries/MSP_EXP430FR6989_8MHz_UART.txt
deleted file mode 100644 (file)
index 868f118..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-@1800
-40 1F 04 00 51 55 18 00 F9 FF 0E 58 02 50 34 01
-10 00 41 B3 94 45 AA 44 DA 45 9C 45 94 46 0E 58
-02 50 7A 46 92 47 24 47 FE 46 3C 1D 60 48 D4 44
-E2 44 EE 44 20 00 0A 00 00 00 00 00 00 00 00 00
-@4400
-B0 12 DA 45 12 D2 06 18 FB 3F 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 2F 83 8F 4E 00 00 1E 42
-C6 1D 30 4D 0E 93 3E 4F 11 20 2D 4D 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 F0 27 21 52 2D 53 30 4D
-91 53 00 00 F7 3F 0B 4E 1C 4F 02 00 2E 4F 0A 43
-35 40 20 00 0E 93 04 20 05 11 0E 4C 0C 43 09 43
-0A 9B 01 28 0A 8B 09 69 08 68 15 83 07 30 0C 5C
-0E 6E 0A 6A F5 2B 0A 8B 12 D3 F5 3F 35 40 D4 44
-8F 4A 02 00 8F 49 00 00 0E 48 30 41 82 4E C0 1D
-B2 4F C2 1D 82 43 C4 1D 3E 4F 30 4D 3F 80 06 00
-8F 4E 04 00 3E 40 54 00 BF 40 3C 1D 00 00 AF 4F
-02 00 D1 3C 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 2F 83
-8F 4E 00 00 3E 41 30 4D B0 12 AA 44 39 40 22 18
-B2 49 78 46 B2 49 90 47 B2 49 22 47 B2 49 FC 46
-B2 49 CA 44 34 49 35 49 36 49 37 49 B2 49 B4 1D
-B2 49 DC 1D 3D 41 30 40 CE 50 8F 93 02 00 03 20
-2F 52 3E 4F 30 4D B0 12 DA 45 92 C3 FC 05 18 42
-00 18 39 40 41 00 19 83 FE 23 18 83 FA 23 92 B3
-FC 05 F3 23 B0 12 F8 44 0A 44 DE 1D E0 47 32 47
-14 44 04 1B 5B 37 6D 00 5C 47 A8 47 34 44 86 45
-14 44 0F 4C 41 53 54 2E 34 54 48 2C 20 6C 69 6E
-65 20 5C 47 A0 48 5C 47 14 44 04 1B 5B 30 6D 00
-5C 47 28 4C 92 B3 EA 05 FD 23 30 41 2E 93 12 28
-B2 40 81 00 E0 05 92 42 02 18 E6 05 92 42 04 18
-E8 05 F2 D0 30 00 2A 02 92 C3 E0 05 92 D3 FA 05
-92 C3 30 01 30 41 09 3C A2 B3 FC 05 FD 27 B2 40
-13 00 EE 05 D2 D3 22 02 30 41 A2 B3 FC 05 FD 27
-B2 40 11 00 EE 05 D2 C3 22 02 30 41 00 00 04 57
-49 50 45 00 B2 43 08 18 04 3C 00 00 04 43 4F 4C
-44 00 B0 12 94 45 E2 B3 00 02 02 20 B2 43 08 18
-B2 40 04 A5 20 01 EE 45 04 57 41 52 4D 00 B0 12
-9C 45 84 12 14 44 07 0D 0A 1B 5B 37 6D 23 5C 47
-D6 48 14 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 5C 47
-0A 44 40 FF 28 44 D4 47 A0 48 14 44 0A 62 79 74
-65 73 20 66 72 65 65 00 3A 44 86 45 00 00 06 41
-43 43 45 50 54 00 30 40 7A 46 08 4E 2E 4F 08 5E
-39 40 0D 00 3A 40 20 00 3B 40 C6 46 3C 40 D2 46
-5D 15 B6 3E 21 52 3A 17 58 42 EC 05 48 9B 94 27
-48 9C 06 2C 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
-C2 48 EE 05 30 4D C8 46 2D 83 92 B3 FC 05 E4 23
-FC 3F 3E 8F 3D 41 B2 40 18 00 06 18 92 B3 FC 05
-FD 27 58 42 EC 05 82 93 DE 1D 02 24 92 53 DE 1D
-08 4C E3 3F 00 00 03 4B 45 59 30 40 FE 46 2F 83
-8F 4E 00 00 B0 12 DA 45 92 B3 FC 05 FD 27 1E 42
-EC 05 B0 12 C8 45 30 4D 00 00 04 45 4D 49 54 00
-30 40 24 47 08 4E 3E 4F C8 3F 1A 47 04 45 43 48
-4F 00 B2 40 C2 48 C0 46 82 43 DE 1D 30 4D 00 00
-06 4E 4F 45 43 48 4F 00 B2 40 30 4D C0 46 92 43
-DE 1D 30 4D 00 00 04 54 59 50 45 00 0E 93 11 24
-0D 12 3D 40 78 47 28 4F 2F 83 8F 4E 00 00 7E 48
-8F 48 02 00 10 42 22 47 7A 47 2D 83 1E 83 F3 23
-3D 41 2F 53 3E 4F 30 4D FC 45 02 43 52 00 30 40
-92 47 0D 12 84 12 14 44 02 0D 0A 00 5C 47 60 48
-2F 83 8F 4E 00 00 30 4D 0E 93 FA 23 30 4D 8F 4E
-FE FF AF 4F FC FF 2F 82 30 4D 2A 4F 8F 4E 00 00
-0E 4A 30 4D 8F 4E FE FF 3E 40 80 1C 0E 8F 0E 11
-2F 83 30 4D 3E 8F 3E E3 1E 53 30 4D 6E 46 01 40
-2E 4E 30 4D DE 47 01 21 BE 4F 00 00 3E 4F 30 4D
-1E 83 0E 7E 30 4D 0E 5E 0E 7E 3E E3 30 4D 3E 8F
-03 24 3E 43 01 2C 0E F3 30 4D 00 00 02 3C 23 00
-B2 40 B2 1D B2 1D 30 4D 8A 47 01 23 1B 42 DC 1D
-2C 4F 2F 83 B0 12 6E 44 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 1A 48 02 23 53 00 0D 12
-84 12 1C 48 56 48 2D 83 09 93 E2 23 0E 93 E0 23
-3D 41 30 4D 4A 48 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
-4A 4E 3E 4F DA 3F 00 00 04 53 49 47 4E 00 0E 93
-3E 4F 7A 40 2D 00 D1 33 30 4D 56 47 02 55 2E 00
-08 43 2F 83 8F 4E 00 00 0E 48 0D 12 0E 12 3E F3
-06 34 BF E3 00 00 3E E3 9F 53 00 00 0E 63 84 12
-10 48 4E 48 EE 44 8E 48 6A 48 5C 47 14 4C 20 47
-60 48 40 47 01 2E 0E 93 E3 37 38 43 E2 3F 88 48
-82 53 22 00 82 43 B4 1D 0D 12 84 12 0A 44 14 44
-5A 4B 0A 44 22 00 2C 49 FA 48 B2 40 20 00 B4 1D
-6E 4E 1E 53 1E B3 82 6E C6 1D 3E 4F 3D 41 30 4D
-D4 48 82 2E 22 00 0D 12 84 12 E4 48 0A 44 5C 47
-5A 4B 60 48 18 46 04 57 4F 52 44 00 3C 40 C0 1D
-39 4C 3A 4C 09 5A 3A 5C 28 4C 09 9A 1D 24 7E 9A
-FC 27 1A 83 3B 40 60 00 15 42 B4 1D FA 90 27 00
-00 00 01 20 05 43 C8 4C 00 00 09 9A 0B 24 7C 4A
-4E 9C 08 24 18 53 4B 9C F6 2F 7C 90 7B 00 F3 2F
-4C 85 F1 3F 35 40 D4 44 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 66 4C 75 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 C5 48 96 F7 23 0A 4C FA 99 01 00 F3 23 1A 53
-58 83 FA 23 19 B3 09 63 0C 49 CE 93 00 00 1E 43
-01 30 2E 83 8F 4C 00 00 36 40 E2 44 35 40 D4 44
-30 4D 00 00 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 AE 4A
-09 43 08 43 3F 82 8F 4E 06 00 0C 4E 7E 4C FC 90
-27 00 00 00 07 20 5C 4C 01 00 8F 4C 04 00 7E 90
-03 00 48 3C 6A 4C 7A 80 2D 00 04 28 BD 23 B1 43
-02 00 0A 3C 2B 43 7A 52 07 24 3B 52 6A 53 04 24
-3B 40 10 00 7A 53 36 20 1C 53 1E 83 EB 3F B0 4A
-31 24 2D 83 7A 90 28 00 C1 27 32 B0 00 02 2A 20
-32 D0 00 02 7A 90 F7 00 B9 27 7A 90 F5 00 22 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 66 44 2A 17 E6 3F 9F 4F 04 00 02 00 AF 4F
-04 00 4A 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 00 00 01 2C 1A 42 C6 1D 8A 4E
-00 00 A2 53 C6 1D 3E 4F 30 4D 58 4B 87 4C 49 54
-45 52 41 4C 82 93 BE 1D 0D 24 09 4E 1A 42 C6 1D
-A2 52 C6 1D BA 40 0A 44 00 00 8A 49 02 00 3E 4F
-32 B0 00 02 32 C0 00 02 03 24 8A 4E 02 00 EE 3F
-30 4D 66 48 05 43 4F 55 4E 54 2F 83 1E 53 8F 4E
-00 00 5E 4E FF FF 30 4D 7A 48 09 49 4E 54 45 52
-50 52 45 54 0D 12 84 12 AC 44 14 4C 2C 49 D0 4B
-9C 26 3D 40 D8 4B DE 3E DA 4B 0A 4E 3E 4F 3D 40
-F4 4B 36 27 3D 40 CA 4B 1A E2 BE 1D B6 27 0E 12
-3E 4F 30 41 F6 4B 3E 4F 3D 40 CA 4B BB 23 DE 53
-00 00 68 4E 08 5E F8 40 3F 00 00 00 3D 40 96 4D
-CC 3F FE 4B 86 12 20 00 E6 47 05 41 4C 4C 4F 54
-82 5E C6 1D 3E 4F 30 4D 3F 40 80 1C 0E 43 31 40
-E0 1C B2 40 00 1C 00 1C 82 43 BE 1D 84 12 8E 47
-BC 44 C4 4B C4 47 F6 47 14 44 0C 73 74 61 63 6B
-20 65 6D 70 74 79 21 00 2A 45 0A 44 40 FF 28 44
-FE 47 14 44 0A 46 52 41 4D 20 66 75 6C 6C 21 00
-2A 45 3A 44 3E 4C 1A 4C 86 41 42 4F 52 54 22 00
-0D 12 84 12 E4 48 0A 44 2A 45 5A 4B 60 48 8E 49
-01 27 0D 12 84 12 14 4C 2C 49 94 49 34 44 12 4C
-60 48 00 00 83 5B 27 5D 0D 12 84 12 92 4C 0A 44
-0A 44 5A 4B 5A 4B 60 48 A4 4C 81 5B 82 43 BE 1D
-30 4D 0C 48 01 5D B2 43 BE 1D 30 4D C4 4C 81 5C
-92 42 C0 1D C4 1D 30 4D 00 00 88 50 4F 53 54 50
-4F 4E 45 00 0D 12 84 12 14 4C 2C 49 94 49 A8 47
-34 44 12 4C F6 47 34 44 06 4D 0A 44 0A 44 5A 4B
-5A 4B 0A 44 5A 4B 5A 4B 60 48 BA 4C 01 3A 30 12
-56 4D 92 B3 C6 1D A2 63 C6 1D 0D 12 84 12 14 4C
-2C 49 24 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 82 48
-B6 1D 82 49 B8 1D 82 4A BA 1D 82 4F BC 1D 2A 52
-82 4A C6 1D 30 41 BA 40 0D 12 FC FF BA 40 84 12
-FE FF B2 43 BE 1D 30 4D 82 9F BC 1D 09 20 18 42
-B6 1D 19 42 B8 1D A8 49 FE FF 89 48 00 00 30 4D
-0D 12 84 12 14 44 0F 73 74 61 63 6B 20 6D 69 73
-6D 61 74 63 68 21 36 45 0C 4D 81 3B 82 93 BE 1D
-97 27 0D 12 84 12 0A 44 60 48 5A 4B 68 4D BC 4C
-60 48 BA 4B 09 49 4D 4D 45 44 49 41 54 45 18 42
-B6 1D F8 D0 80 00 00 00 30 4D A4 4B 06 43 52 45
-41 54 45 00 B0 12 12 4D BA 40 86 12 FC FF 8A 4A
-FE FF C9 3F CC 4D 04 43 4F 44 45 00 B0 12 12 4D
-A2 82 C6 1D 0D 12 84 12 04 50 DE 4F 60 48 B4 4D
-07 48 44 4E 43 4F 44 45 B2 40 E2 4F DA 1D EE 3F
-00 00 07 45 4E 44 43 4F 44 45 0D 12 84 12 68 4D
-1E 50 3C 50 60 48 00 00 05 43 4F 4C 4F 4E 1A 42
-C6 1D BA 40 0D 12 00 00 BA 40 84 12 02 00 A2 52
-C6 1D B2 43 BE 1D 0D 12 84 12 1E 50 3C 50 60 48
-00 00 05 4C 4F 32 48 49 A2 83 C6 1D 1A 42 C6 1D
-EB 3F 00 4E 85 48 49 32 4C 4F 0D 12 84 12 28 44
-AC 4F 5A 4B BC 4C F4 4D 60 48 9A 4D 86 5B 54 48
-45 4E 5D 00 30 4D 0C 4E 38 4F 3B 4F 39 4F 0E 4B
-0E 5C 10 24 1B 83 06 30 1C 83 04 30 19 53 F9 98
-FF FF F5 27 2D 4D 3E 4F 30 4D 2F 53 9F 83 00 00
-F9 23 2F 53 2D 53 F7 3F 7C 4E 86 5B 45 4C 53 45
-5D 00 0D 12 84 12 0A 44 00 00 D8 47 14 4C 2C 49
-AA 4B A0 47 34 44 14 4F AE 47 14 44 06 5B 54 48
-45 4E 5D 00 86 4E EE 4E AA 4E CC 4E 60 48 AE 47
-14 44 06 5B 45 4C 53 45 5D 00 86 4E 04 4F AA 4E
-CA 4E 60 48 14 44 04 5B 49 46 5D 00 86 4E CC 4E
-3A 44 CA 4E 82 47 14 44 05 0D 0A 6B 6F 20 5C 47
-BC 44 AC 44 3A 44 CC 4E BA 4E 84 5B 49 46 5D 00
-0E 93 3E 4F C6 27 30 4D 2F 53 30 4D 2A 4F 89 5B
-44 45 46 49 4E 45 44 5D 0D 12 84 12 14 4C 2C 49
-94 49 38 4F 60 48 3E 4F 8B 5B 55 4E 44 45 46 49
-4E 45 44 5D 0D 12 84 12 48 4F F0 47 60 48 70 4F
-B2 4E 0A 18 2E 53 BE 12 3E 4F 3D 41 90 3C 6C 4B
-06 4D 41 52 4B 45 52 00 B0 12 12 4D BA 40 85 12
-FC FF BA 40 6E 4F FE FF 28 83 8A 48 00 00 BA 40
-AA 44 04 00 B2 50 06 00 C6 1D E1 3E 2E 53 30 4D
-0A 44 CA 1D E8 47 60 48 85 12 B0 4F 78 4C E6 4D
-2C 47 90 4C 64 4E F6 46 80 4F 12 49 A8 50 BC 50
-9C 48 26 49 00 00 58 4F CE 4C F4 49 00 00 85 12
-B0 4F 84 56 EA 56 2C 56 3A 57 F2 55 00 00 BE 53
-00 00 02 58 E6 57 56 56 94 56 CE 54 00 00 00 00
-56 57 DC 4F 3A 40 0C 00 39 40 D6 1D 08 49 28 53
-19 83 18 83 E8 49 00 00 1A 83 FA 23 30 4D 3A 40
-0E 00 38 40 CA 1D 09 48 29 53 F8 49 00 00 18 53
-1A 83 FB 23 30 4D 82 43 CC 1D 30 4D 92 42 CA 1D
-DA 1D 30 4D B8 4F 36 50 3C 50 4C 50 1A 42 20 18
-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
-DA 4C 09 50 57 52 5F 53 54 41 54 45 85 12 44 50
-0E 58 E0 48 09 52 53 54 5F 53 54 41 54 45 92 42
-0A 18 90 50 F3 3F 82 50 08 50 57 52 5F 48 45 52
-45 00 92 42 C6 1D 90 50 30 4D 94 50 08 52 53 54
-5F 48 45 52 45 00 92 42 C6 1D 0A 18 F2 3F 3E 90
-0E 00 DC 27 2E 92 E3 37 0E 93 D8 37 39 40 10 00
-29 83 B9 43 80 FF FC 23 B9 40 1A 51 FE FF 29 83
-B9 40 02 46 FE FF 39 90 AE FF F9 23 39 40 14 18
-B2 49 04 46 B2 49 FA 44 B2 49 02 44 B2 49 20 46
-B2 49 E4 FF B2 49 0A 18 C2 3F B2 D0 03 00 04 01
-B2 D0 10 00 00 01 B2 40 80 5A 5C 01 31 40 E0 1C
-3F 40 80 1C 39 40 00 08 29 83 89 43 00 1C FC 23
-B2 D3 06 02 B2 40 FE FF 02 02 B2 43 26 02 B2 43
-22 02 D2 D3 24 02 B2 43 46 02 B2 43 42 02 B2 43
-66 02 B2 43 62 02 B2 43 86 02 B2 40 7F FF 82 02
-F2 43 26 03 F2 43 22 03 F2 40 A5 00 61 01 82 43
-66 01 B2 40 33 00 64 01 D2 43 61 01 39 40 40 00
-18 42 00 18 18 83 FE 23 19 83 FA 23 B2 42 B0 01
-F2 D0 10 00 2A 03 F2 C0 40 00 A2 04 1E 42 08 18
-82 43 08 18 1E D2 9E 01 B0 12 F8 44 1E 46 38 40
-C0 1D 0A 4E 39 48 2E 48 09 5E 1E 52 C4 1D 09 9E
-03 24 7A 9E FC 27 1E 83 0A 4E 2A 88 82 4A C4 1D
-30 4D 1C 15 0E 12 12 12 C4 1D 84 12 2C 49 94 49
-F0 47 34 44 FE 51 50 4A 34 44 18 52 12 52 00 52
-3C 4E 3C 80 87 12 05 24 1C 53 02 20 2E 4E 01 3C
-2E 83 21 52 1B 17 30 41 1A 52 B2 41 C4 1D 3E 41
-84 12 0A 44 2B 00 2C 49 94 49 F0 47 34 44 36 52
-50 4A 34 44 12 4C BA 47 2C 49 50 4A 34 44 12 4C
-42 52 3E 5F E7 3F 3E 40 28 00 B0 12 E2 51 19 42
-C6 1D A2 53 C6 1D 89 4E 00 00 3E 40 29 00 92 92
-C0 1D C4 1D 02 20 30 40 80 4D 1C 15 12 12 C4 1D
-92 53 C4 1D 84 12 2C 49 50 4A 34 44 8A 52 80 52
-21 53 3E 90 10 00 C6 2B 7F 2D 8C 52 B2 41 C4 1D
-C1 3F 0D 12 84 12 14 4C BE 51 9C 52 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 E2 51 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 E2 51
-ED 3F 7A 90 40 00 16 20 3C 40 20 00 92 53 C4 1D
-B0 12 6A 52 0C 20 3C 50 10 00 3E 40 2B 00 B0 12
-6A 52 92 92 C0 1D C4 1D 02 24 92 53 C4 1D 8E 10
-0C 5E DA 3F B0 12 6A 52 FA 23 3C 50 10 00 B0 12
-46 52 EF 3F 0C 43 1B 42 C6 1D A2 53 C6 1D 0D 12
-84 12 14 4C BE 51 68 53 FE 90 26 00 00 00 3E 40
-20 00 03 20 3C 50 82 00 C7 3F B0 12 6A 52 E0 23
-3C 50 80 00 B0 12 46 52 DB 3F 00 00 04 52 45 54
-49 00 0D 12 84 12 0A 44 00 13 5A 4B 60 48 0A 44
-2C 00 92 52 5E 53 A8 53 09 4B 2E 4E 0E DC A2 3F
-52 4E 03 4D 4F 56 85 12 9E 53 00 40 B2 53 05 4D
-4F 56 2E 42 85 12 9E 53 40 40 00 00 03 41 44 44
-85 12 9E 53 00 50 CC 53 05 41 44 44 2E 42 85 12
-9E 53 40 50 D8 53 04 41 44 44 43 00 85 12 9E 53
-00 60 E6 53 06 41 44 44 43 2E 42 00 85 12 9E 53
-40 60 8C 53 04 53 55 42 43 00 85 12 9E 53 00 70
-04 54 06 53 55 42 43 2E 42 00 85 12 9E 53 40 70
-12 54 03 53 55 42 85 12 9E 53 00 80 22 54 05 53
-55 42 2E 42 85 12 9E 53 40 80 28 4E 03 43 4D 50
-85 12 9E 53 00 90 3C 54 05 43 4D 50 2E 42 85 12
-9E 53 40 90 12 4E 04 44 41 44 44 00 85 12 9E 53
-00 A0 56 54 06 44 41 44 44 2E 42 00 85 12 9E 53
-40 A0 48 54 03 42 49 54 85 12 9E 53 00 B0 74 54
-05 42 49 54 2E 42 85 12 9E 53 40 B0 80 54 03 42
-49 43 85 12 9E 53 00 C0 8E 54 05 42 49 43 2E 42
-85 12 9E 53 40 C0 9A 54 03 42 49 53 85 12 9E 53
-00 D0 A8 54 05 42 49 53 2E 42 85 12 9E 53 40 D0
-00 00 03 58 4F 52 85 12 9E 53 00 E0 C2 54 05 58
-4F 52 2E 42 85 12 9E 53 40 E0 F4 53 03 41 4E 44
-85 12 9E 53 00 F0 DC 54 05 41 4E 44 2E 42 85 12
-9E 53 40 F0 14 4C 92 52 FA 54 0A 4C 3C F0 70 00
-8A 10 3A F0 0F 00 0C DA 4F 3F 2E 54 03 52 52 43
-85 12 F4 54 00 10 0C 55 05 52 52 43 2E 42 85 12
-F4 54 40 10 18 55 04 53 57 50 42 00 85 12 F4 54
-80 10 26 55 03 52 52 41 85 12 F4 54 00 11 34 55
-05 52 52 41 2E 42 85 12 F4 54 40 11 40 55 03 53
-58 54 85 12 F4 54 80 11 00 00 04 50 55 53 48 00
-85 12 F4 54 00 12 5A 55 06 50 55 53 48 2E 42 00
-85 12 F4 54 40 12 B4 54 04 43 41 4C 4C 00 85 12
-F4 54 80 12 1A 53 0E 4A 0D 12 84 12 D6 48 14 44
-0D 6F 75 74 20 6F 66 20 62 6F 75 6E 64 73 36 45
-4E 55 03 53 3E 3D 86 12 00 38 A2 55 02 53 3C 00
-86 12 00 34 68 55 03 30 3E 3D 86 12 00 30 B6 55
-02 30 3C 00 86 12 00 30 00 00 02 55 3C 00 86 12
-00 2C CA 55 03 55 3E 3D 86 12 00 28 C0 55 03 30
-3C 3E 86 12 00 24 DE 55 02 30 3D 00 86 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 55 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 B1 2F 88 DA 00 00 30 4D 64 54 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 78 55 05 42 45 47 49 4E
-30 40 28 44 08 56 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
-8A 3B 3A F0 FF 03 08 DA 89 48 00 00 A2 53 C6 1D
-30 4D E8 54 05 41 47 41 49 4E 0A 4E 38 40 00 3C
-E7 3F 00 00 05 57 48 49 4C 45 0D 12 84 12 F6 55
-BA 47 60 48 AC 55 06 52 45 50 45 41 54 00 0D 12
-84 12 8A 56 0E 56 60 48 BA 56 3D 41 08 4E 3E 4F
-2A 48 B2 92 C4 1D CB 2F 98 42 C6 1D 00 00 30 4D
-4A 56 03 42 57 31 85 12 B8 56 00 00 D2 56 03 42
-57 32 85 12 B8 56 00 00 DE 56 03 42 57 33 85 12
-B8 56 00 00 F6 56 3D 41 1A 42 C6 1D 28 4E B2 92
-C4 1D 88 2B BA 4F 00 00 A2 53 C6 1D 8E 4A 00 00
-3E 4F 30 4D 00 00 03 46 57 31 85 12 F4 56 00 00
-16 57 03 46 57 32 85 12 F4 56 00 00 22 57 03 46
-57 33 85 12 F4 56 00 00 2E 57 04 47 4F 54 4F 00
-2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 92 4C
-EE 4B 60 48 00 00 05 3F 47 4F 54 4F 3E 90 00 30
-F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
-EC 3F 14 4C BE 51 78 57 92 53 C4 1D 3E 40 2C 00
-84 12 2C 49 50 4A 34 44 12 4C 54 53 8E 57 0A 4E
-3E 4F 1A 83 F7 32 29 4E 59 0E 0A 28 08 4C 59 0A
-01 28 0C 8A 08 8A 38 90 10 00 EC 2E 5A 0E AB 3E
-2A 92 E8 2E 8A 10 5A 06 A6 3E A6 56 04 52 52 43
-4D 00 85 12 72 57 50 00 BC 57 04 52 52 41 4D 00
-85 12 72 57 50 01 CA 57 04 52 4C 41 4D 00 85 12
-72 57 50 02 D8 57 04 52 52 55 4D 00 85 12 72 57
-50 03 E8 55 05 50 55 53 48 4D 85 12 72 57 00 15
-F4 57 04 50 4F 50 4D 00 85 12 72 57 00 17
-@FF80
-FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-77 00 10 00 12 00 14 00 16 00 00 00 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 94 46 02 46 02 46 02 46 02 46 02 46
-02 46 02 46 02 46 02 46 02 46 02 46 02 46 1A 51
-q
index 46ce45e..7050a23 100644 (file)
 :: %1 = target name without ext. of \binaries\target.txt file
 :: %2 = port COMx in use
 :: %~d1 = drive: of %1
-:: %~n1 = target name without ext. of %1
+:: %~nx1 = target name with ext. of %1
 
 
 @set PortCOM=%2
 @if 1%PortCOM% == 1 CALL %~d1\config\Select.bat SelectPortCOM
 
 @%~d1\prog\BSL-Scripter.exe --log --quiet --initComm [INVOKE,%PortCOM%,UART,9600,PARITY] --device FRxx --erase ERASE_ALL --exit [RESET]
-@%~d1\prog\BSL-Scripter.exe --log --initComm [INVOKE,%PortCOM%,UART,9600,PARITY] --device FRxx --speed FAST  --bslPwd %~d1\binaries\pass32_default.txt -w %~d1\binaries\%~n1.txt --exit [RESET]
+@%~d1\prog\BSL-Scripter.exe --log --initComm [INVOKE,%PortCOM%,UART,9600,PARITY] --device FRxx --speed FAST  --bslPwd %~dp1binaries\pass32_default.txt -w %~dp1binaries\%~nx1 --exit [RESET]
 @pause
diff --git a/config/Command Prompt.lnk b/config/Command Prompt.lnk
new file mode 100644 (file)
index 0000000..2f5d6b8
Binary files /dev/null and b/config/Command Prompt.lnk differ
index f97083b..d03c1cb 100644 (file)
@@ -14,9 +14,9 @@ exit
 
 call  %~d1\config\Select.bat SelectTemplate
 
-@start  %~d1\config\CopyTo_SD_Card.bat %1 %~d1\inc\%template% %2
+@start  %~d1\config\CopyTo_SD_Card.bat %1 %~dp1inc\%template% %2
 
 ::PAUSE > NUL
 exit
 :: %1 is file.f or file.4th to be send
-:: optionnal %2 may be used by CopyTo_SD_Card.bat
\ No newline at end of file
+:: optionnal %2 may be used by CopyTo_SD_Card.bat
index a8582d7..de5a028 100644 (file)
@@ -2,7 +2,7 @@
 ::used by CopySourceFileToTarget_SD_Card.bat or by scite editor Tools menu
 
 ::echo %2
-::echo %~d1\inc\%~n2.pat
+::echo %~dp1..\inc\%~n2.pat
 
 @ECHO OFF
 
@@ -33,8 +33,8 @@ echo %~dpn1.f not found!
 goto badend
 )
 
-IF NOT EXIST %~d1\inc\%~n2.pat (
-echo %~d1\inc\%~n2.pat not found!
+IF NOT EXIST %~dp1..\inc\%~n2.pat (
+echo %~dp1..\inc\%~n2.pat not found!
 goto badend
 )
 
@@ -51,8 +51,8 @@ exit
 
 
 :preprocessF
-@%~d1\prog\gema.exe -nobackup -line -t '-\r\n=\r\n' -f  %~d1\inc\%~n2.pat %~dpn1.f %~dpn1.4TH
-@call  %~d1\config\Select.bat SelectDeviceId %~d1\inc\%~n2.pat
+@%~d1\prog\gema.exe -nobackup -line -t '-\r\n=\r\n' -f  %~dp1..\inc\%~n2.pat %~dpn1.f %~dpn1.4TH
+@call  %~d1\config\Select.bat SelectDeviceId %~dp1..\inc\%~n2.pat
 
 :DownloadF
 @taskkill /F /IM ttermpro.exe 1> NUL 2>&1
index f1c2af6..4b98053 100644 (file)
@@ -1,14 +1,26 @@
 ::@echo off
 
-@call  %~d1\config\Select.bat SelectDevice %1
-@echo %device% programmation
-%~d1\prog\msp430flasher -s -m SBW2 -u -n %device% -v -w %~d1\binaries\%~n1.txt  -z [RESET,VCC]
+@if F%1==F (
+    @echo no file to do that! 
+) else (
+    @call  %~d1\config\Select.bat SelectDevice %1
+    @IF EXIST %~dp1binaries\%~n1.txt GOTO progtxt
+    @IF EXIST %~dp1binaries\%~n1.hex GOTO proghex
+)
+@exit
+
+:progtxt
+%~d1\prog\msp430flasher -s -m SBW2 -u -n %device% -v -w %~dp1binaries\%~n1.txt  -z [RESET,VCC]
+@exit
 
+:proghex
+%~d1\prog\msp430flasher -s -m SBW2 -u -n %device% -v -w %~dp1binaries\%~n1.hex  -z [RESET,VCC]
 @exit
 
 :: your git copy must be the root of a virtual drive
 
-:: %n1 = file filename (= target) to flash
+:: %n1 = filename of file to flash
+:: %nx1 = filename.ext of file to flash
 :: -s : force update
 :: -m : select SBW2 mode
 :: -u : Unlocks locked flash memory (INFOA) for writing.
diff --git a/config/INFO.txt b/config/INFO.txt
new file mode 100644 (file)
index 0000000..c8251e2
--- /dev/null
@@ -0,0 +1,34 @@
+@1800
+80 3E 12 00 00 00 F8 00 00 00 35 01 10 00 E0 43
+56 41 B8 5C 44 41 76 5B DC 42 1A 4C 96 65 62 4C
+CA 42 4E 43 2A 43 3C 1D E0 1C E2 45 B6 40 C4 40
+F8 44 20 00 0A 00 00 1C 1A 4C 1A 4C 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+q
index cfc1d5f..4a6c849 100644 (file)
@@ -6,7 +6,7 @@ set readfile=%2
 if "%1" == "" set howtoread=MAIN
 if "%2" == "" set readfile=MAIN_DUMP
 
-%~d1\prog\msp430flasher -m SBW2 -r [%readfile%_%howtoread%.txt,%howtoread%] -z [VCC=3000]
+%~d1\prog\msp430flasher -m SBW2 -r [%readfile%.HEX,%howtoread%] -z [VCC=3000]
 ::%~d1\prog\srec_cat %readfile%_%howtoread%.HEX -intel -output %readfile%_%howtoread%.bin -Binary
 ::%~d1\prog\HxD\HxD.exe" %readfile%_%howtoread%.bin
 
diff --git a/config/MSP430readINFO.bat b/config/MSP430readINFO.bat
new file mode 100644 (file)
index 0000000..fbf5de6
--- /dev/null
@@ -0,0 +1,13 @@
+
+:: usage: MSP430Read RAM|INFO|MAIN|BSL output
+
+::set howtoread=%1
+::set readfile=%2
+::if "%1" == "" set howtoread=MAIN
+::if "%2" == "" set readfile=MAIN_DUMP
+
+%~d1\prog\msp430flasher -m SBW2 -r [target_INFO.txt,INFO] -z [VCC=3000]
+::%~d1\prog\srec_cat %readfile%_%howtoread%.HEX -intel -output %readfile%_%howtoread%.bin -Binary
+::%~d1\prog\HxD\HxD.exe" %readfile%_%howtoread%.bin
+
+pause
diff --git a/config/MSP430readMAIN.bat b/config/MSP430readMAIN.bat
new file mode 100644 (file)
index 0000000..6e45532
--- /dev/null
@@ -0,0 +1,13 @@
+
+:: usage: MSP430Read RAM|INFO|MAIN|BSL output
+
+::set howtoread=%1
+::set readfile=%2
+::if "%1" == "" set howtoread=MAIN
+::if "%2" == "" set readfile=MAIN_DUMP
+
+%~d1\prog\msp430flasher -m SBW2 -r [target_MAIN.txt,MAIN] -z [VCC=3000]
+::%~d1\prog\srec_cat %readfile%_%howtoread%.HEX -intel -output %readfile%_%howtoread%.bin -Binary
+::%~d1\prog\HxD\HxD.exe" %readfile%_%howtoread%.bin
+
+pause
diff --git a/config/MSP430readRAM.bat b/config/MSP430readRAM.bat
new file mode 100644 (file)
index 0000000..f6e05c3
--- /dev/null
@@ -0,0 +1,13 @@
+
+:: usage: MSP430Read RAM|INFO|MAIN|BSL output
+
+::set howtoread=%1
+::set readfile=%2
+::if "%1" == "" set howtoread=MAIN
+::if "%2" == "" set readfile=MAIN_DUMP
+
+%~d1\prog\msp430flasher -m SBW2 -r [target_RAM.txt,RAM] -z [VCC=3000]
+::%~d1\prog\srec_cat %readfile%_%howtoread%.HEX -intel -output %readfile%_%howtoread%.bin -Binary
+::%~d1\prog\HxD\HxD.exe" %readfile%_%howtoread%.bin
+
+pause
index 49cc83e..0c7ae9c 100644 (file)
@@ -4,7 +4,7 @@
 @ECHO OFF
 
 ::echo %2
-::echo %~d1\inc\%~n2.pat
+::echo %~dp1..\inc\%~n2.pat
 
 IF "%2" == "" ( 
 echo no file to be preprocessed!
@@ -16,8 +16,8 @@ echo %~dpn1.f not found!
 goto badend 
 )
 
-IF NOT EXIST %~d1\inc\%~n2.pat (
-echo %~d1\inc\%~n2.pat not found!
+IF NOT EXIST %~dp1..\inc\%~n2.pat (
+echo %~dp1..\inc\%~n2.pat not found!
 goto badend 
 )
 
@@ -31,8 +31,11 @@ exit
 
 
 :preprocess
-%~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
+%~d1\prog\gema.exe -nobackup -line -t '-\r\n=\r\n' -f %~dp1..\inc\%~n2.pat  %~dpn1.f %~dp1LAST.4TH
+
+call  %~d1\config\Select.bat SelectDevice %~dp1..\inc\%~n2.pat
+if not exist  %~dp1SD_%device:~3% MD %~dp1SD_%device:~3% > NUL 
+COPY /y %~dp1LAST.4TH %~dp1SD_%device:~3%\%~n1.4TH > NUL
 exit
 
 :: %~dpn1.f is the symbolic source file
index ac0b22c..4304288 100644 (file)
@@ -2,7 +2,7 @@
 ::used as link in any folder to drag and drop file.f on it.
 ::@call  SelectTarget.bat
 @call  %~d1\config\Select.bat SelectTemplate
-@start  %~d1\config\Preprocess.bat %1 %~d1\inc\%template% %2
+@start  %~d1\config\Preprocess.bat %1 %~dp1..\inc\%template% %2
 exit
 :: %1 is file.f to be preprocessed
-:: %2 is used by Preprocess.bat as an unexpected third parameter
\ No newline at end of file
+:: %2 is used by Preprocess.bat as an unexpected third parameter
diff --git a/config/SciTEUser.properties b/config/SciTEUser.properties
new file mode 100644 (file)
index 0000000..c2c4123
--- /dev/null
@@ -0,0 +1,250 @@
+# SciTEUser.properties
+# For Windows, place in your home directory
+# Documentation at http://www.scintilla.org/SciTEDoc.html
+
+# Globals
+
+PLAT_WIN=1
+PLAT_GTK=0
+position.maximize=1
+
+save.session=1
+save.recent=1
+save.session=1
+session.bookmarks=1
+
+buffers.zorder.switching=1
+properties.directory.enable=1
+check.if.already.open=1
+
+# # Scripting
+# ext.lua.startup.script=$(SciteUserHome)/SciTEStartup.lua
+# ext.lua.auto.reload=1
+# #ext.lua.reset=1
+
+
+# Window sizes and visibility
+if PLAT_WIN
+    position.left=-1
+    position.top=0
+if PLAT_GTK
+    position.left=5
+    position.top=22
+
+position.width=1000
+position.height=768
+position.maximize=1
+#position.tile=1
+#full.screen.hides.menu=1
+minimize.to.tray=0
+split.vertical=1
+output.horizontal.size=400
+output.vertical.size=600
+output.initial.hide=1
+#horizontal.scrollbar=0
+#horizontal.scroll.width=10000
+#horizontal.scroll.width.tracking=0
+#output.horizontal.scrollbar=0
+#output.horizontal.scroll.width=10000
+#output.horizontal.scroll.width.tracking=0
+#output.scroll=0
+error.select.line=1
+#end.at.last.line=0
+tabbar.visible=1
+#tabbar.hide.one=1
+tabbar.multiline=0
+toolbar.large=1
+toolbar.visible=1
+#toolbar.detachable=1
+#toolbar.usestockicons=1
+#menubar.detachable=1
+#undo.redo.lazy=1
+statusbar.visible=1
+#fileselector.width=800
+#fileselector.height=600
+#fileselector.show.hidden=1
+magnification=0
+output.magnification=-4
+
+# Sizes and visibility in edit pane
+line.margin.visible=1
+line.margin.width=4
+margin.width=16
+fold.margin.width=0
+#fold.margin.colour=#00FF00
+#fold.margin.highlight.colour=#0000FF
+blank.margin.left=20
+#blank.margin.right=4
+buffered.draw=1
+#two.phase.draw=0
+use.palette=0
+
+#Element styles
+
+#view.eol=1
+#control.char.symbol=. 
+caret.period=500
+view.whitespace=0
+view.indentation.whitespace=1
+view.indentation.guides=0
+view.indentation.examine=3
+highlight.indentation.guides=1
+caret.fore=#FF0000
+#caret.additional.blinks=0
+caret.width=3
+caret.line.back=#222222
+calltip.back=#FFF0FE
+
+# Internationalisation
+# Japanese input code page 932 and ShiftJIS character set 128
+#code.page=932
+#character.set=128
+# Unicode
+#code.page=65001
+code.page=0
+#character.set=204
+# Required for Unicode to work on GTK+:
+#LC_CTYPE=en_US.UTF-8
+if PLAT_GTK
+       output.code.page=65001
+if PLAT_MAC
+       output.code.page=65001
+
+# Export
+#export.keep.ext=1
+export.html.wysiwyg=1
+#export.html.tabs=1
+#export.html.folding=1
+export.html.styleused=1
+export.html.title.fullpath=1
+#export.rtf.tabs=1
+#export.rtf.font.face=Arial
+#export.rtf.font.size=9
+#export.rtf.tabsize=8
+#export.rtf.wysiwyg=0
+#export.tex.title.fullpath=1
+# Magnification (added to default screen font size)
+export.pdf.magnification=0
+# Font: Courier, Helvetica or Times (Courier line-wraps)
+export.pdf.font=Courier
+# Page size (in points): width, height
+# E.g. Letter 612,792; A4 595,842; maximum 14400,14400
+export.pdf.pagesize=595,842
+# Margins (in points): left, right, top, bottom
+export.pdf.margins=56,28,28,28
+export.xml.collapse.spaces=1
+export.xml.collapse.lines=1
+
+if PLAT_WIN
+       font.base=font:Lucida Console,size:10
+       font.small=font:Lucida Console,size:10
+       font.comment=font:Lucida Console,size:10
+       font.code.comment.box=$(font.comment)
+       font.code.comment.line=$(font.comment)
+       font.code.comment.doc=$(font.comment)
+       font.code.comment.nested=$(font.comment)
+       font.text=font:Lucida Console,size:10
+       font.text.comment=font:Lucida Console,size:10
+       font.embedded.base=font:Lucida Console,size:10
+       font.embedded.comment=font:Lucida Console,size:10
+       font.monospace=font:Lucida Console,size:10
+       font.vbs=font:Lucida Sans Unicode,size:10
+if PLAT_GTK
+       font.base=font:Bitstream Vera Sans Mono,size:10
+       font.small=font:Bitstream Vera Sans Mono,size:10
+       font.comment=font:Bitstream Vera Sans Mono,size:10
+       font.code.comment.box=$(font.comment)
+       font.code.comment.line=$(font.comment)
+       font.code.comment.doc=$(font.comment)
+       font.code.comment.nested=$(font.comment)
+       font.text=font:Bitstream Vera Sans Mono,size:10
+       font.text.comment=font:Bitstream Vera Sans Mono,size:10
+       font.embedded.base=font:Bitstream Vera Sans Mono,size:10
+       font.embedded.comment=font:Bitstream Vera Sans Mono,size:10
+       font.monospace=font:Bitstream Vera Sans Mono,size:10
+       font.vbs=font:Bitstream Vera Sans Mono,size:10
+if PLAT_MAC
+       font.base=font:Verdana,size:12
+       font.small=font:Verdana,size:10
+       font.comment=font:Georgia,size:13
+       font.code.comment.box=$(font.comment)
+       font.code.comment.line=$(font.comment)
+       font.code.comment.doc=$(font.comment)
+       font.code.comment.nested=$(font.comment)
+       font.text=font:Times New Roman,size:13
+       font.text.comment=font:Verdana,size:11
+       font.embedded.base=font:Verdana,size:11
+       font.embedded.comment=font:Comic Sans MS,size:10
+       font.monospace=font:Courier New,size:12
+       font.vbs=font:Lucida Sans Unicode,size:12
+       
+font.js=$(font.comment)
+
+# Give symbolic names to the set of colours used in the standard styles.
+colour.code.comment.box=fore:#00FF00
+colour.code.comment.line=fore:#00FF00
+colour.code.comment.doc=fore:#3F703F
+colour.code.comment.nested=fore:#A0C0A0
+colour.text.comment=fore:#0000FF,back:#FFFFFF
+colour.other.comment=fore:#00FF00
+colour.embedded.comment=back:#E0EEFF
+colour.embedded.js=back:#F0F0FF
+colour.notused=back:#FF0000
+#couleur des nombres
+colour.number=fore:#FF00FF
+#couleur des instructions du langage
+colour.keyword=fore:#FF0000
+#couleur chaînes entre guillemets
+colour.string=fore:#00FFFF
+colour.char=fore:#7F7F7F
+colour.operator=fore:#00FF00
+colour.preproc=fore:#FF7F00
+colour.error=fore:#FFFF00,back:#FF0000
+
+# Global default styles for all languages
+# Default style, black background
+style.*.32=back:#000000,fore:#FFFFFF,font:Lucida Console,size:10
+# Line number
+style.*.33=back:#404040,$(font.base))
+# Brace highlight
+style.*.34=back:#222222,fore:#8080FF,bold
+# Brace incomplete highlight
+style.*.35=back:#222222,fore:#FF0000,bold
+# Control characters
+style.*.36=
+# Indentation guides
+style.*.37=fore:#C0C0C0,back:#FFFFFF
+
+
+# Error list styles
+
+style.errorlist.32=fore:#B0B000,$(font.small)
+# Default
+style.errorlist.0=fore:#FFFFFF
+# Microsoft Error
+style.errorlist.3=fore:#0080FF
+# command or return status
+style.errorlist.4=fore:#FF00FF
+
+# Text matched with find in files and message part of GCC errors
+style.errorlist.21=fore:#FF0000
+
+# Printing - only works on Windows
+if PLAT_WIN
+       #print.colour.mode=1
+       print.magnification=-1
+       # Setup: left, right, top, bottom margins, in local units:
+       # hundredths of millimeters or thousandths of inches
+       print.margins=2000,1000,1000,1000
+       # Header/footer:
+       # && = &; &p = current page
+       # &f = file name; &F = full path
+       # &d = file date; &D = current date
+       # &t = file time; &T = full time
+       print.header.format=$(FileNameExt) \97 Printed on $(CurrentDate), $(CurrentTime) \97 Page $(CurrentPage)
+       print.footer.format=$(FilePath) \97 File date: $(FileDate) \97 File time: $(FileTime)
+       # Header/footer style
+       print.header.style=font:Arial,size:12,bold
+       print.footer.style=font:Arial Narrow,size:10,italics
+
+
index 1f5416f..e058f3e 100644 (file)
@@ -19,6 +19,7 @@
 @echo 7  CHIPSTICK_FR2433
 @echo 8  MSP_EXP430FR2355
 @echo 9  LP_MSP430FR2476
+
 @set /p choice=your choice: 
 
 @if %choice% == 1    set template=MSP_EXP430FR5739
diff --git a/config/Send b/config/Send
new file mode 100644 (file)
index 0000000..ebd4361
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+echo $1
+echo $2
+echo $3
+
+#gema -nobackup -line -t '\r\n=\n'  -f  ../inc/$2.pat $1.f $FF/MSP430-FORTH/$1.4th 
+gema -nobackup -line -t '\r\n=\n'  -f  ../inc/$2.pat $1.f $1.4th 
+gema -line -t '\n=\r\n'  ../MSP430-FORTH/$1.4th ../MSP430-FORTH/LAST.4th
+#rm ../MSP430-FORTH/$1.4th
+
+
+cat LAST.4th > /dev/ttyUSB0
+#cp LAST.4th  /dev/ttyUSB0
index eb4e62e..84cf92a 100644 (file)
@@ -22,12 +22,13 @@ showtt 0            ; close teraterm windows
 ; DEVICE ID TEST
 ; ==============
 
-sendln 'CODE ?ID';                              CODE ?ID
-sendln 'CMP #0,R14 0<> IF SUB &$1A04,R14 THEN'; CMP #0,TOS 0<> IF SUB &DEVICEID,TOS THEN
-sendln 'COLON ';                                COLON
-sendln '$1B EMIT $63 EMIT';                     $1B EMIT $63 EMIT   \ send 'ESC c' (clear screen)
-sendln 'CR ABORT" Device'39's ID mismatch!" ' ; CR ABORT" Device's ID mismatch!"
-sendln 'PWR_STATE ;' ;                          PWR_STATE ; 
+sendln 'CODE ?ID'                               ; CODE ?ID
+sendln 'CMP #0,R14 0<> IF SUB &$1A04,R14 THEN'  ; CMP #0,TOS 0<> IF SUB &DEVICEID,TOS THEN
+sendln 'COLON '                                 ; COLON
+sendln '$1B EMIT $63 EMIT'                      ; $1B EMIT $63 EMIT   \ send 'ESC c' (clear screen)
+;sendln '13 EMIT $10 EMIT'                      ; CR
+sendln ' ABORT" Device'39's ID mismatch!" '     ; ABORT" Device's ID mismatch!"
+sendln 'RST_RET ;'                              ; RST_RET ; 
 
 sendln param5 ' ?ID NOECHO'    ; send: %deviceID% ?ID NOECHO
 
index 936d0a6..a5fd450 100644 (file)
@@ -1,14 +1,13 @@
-#!/bin/bash
-
 echo $1
 echo $2
 echo $3
 
-#gema -nobackup -line -t '\r\n=\n'  -f  $FF/inc/$2.pat $1.f $FF/MSP430-FORTH/$1.4th 
-gema -nobackup -line -t '\r\n=\n'  -f  $FF/inc/$2.pat $1.f $1.4th 
-gema -line -t '\n=\r\n'  $FF/MSP430-FORTH/$1.4th $FF/MSP430-FORTH/LAST.4th
-#rm $FF/MSP430-FORTH/$1.4th
+#gema -nobackup -line -t '\r\n=\n'  -f  ../inc/$2.pat $1.f $FF/MSP430-FORTH/$1.4th 
+gema -nobackup -line -t '\r\n=\n'  -f  ../inc/$2.pat $1.f ./LAST.4th 
+gema -line -t '\n=\r\n' ./LAST.4th $1.4th
+rm ./LAST.4th
 
 
-cat LAST.4th > /dev/ttyUSB0
+wine "c:\Program Files (x86)\teraterm\ttermpro.exe /V ..\config\SendFile.ttl $1.4TH /C $3 "
+#cat $1.4th > /dev/ttyUSB0
 #cp LAST.4th  /dev/ttyUSB0
index 6f711f6..9466caa 100644 (file)
@@ -2,7 +2,7 @@
 ::used by SendSourceFileToTarget.bat or by scite editor Tools menu
 
 ::echo %2
-::echo %~d1\inc\%~n2.pat
+::echo %~dp1..\inc\%~n2.pat
 
 @ECHO OFF
 
@@ -33,8 +33,8 @@ echo %~dpn1.f not found!
 goto badend
 )
 
-IF NOT EXIST %~d1\inc\%~n2.pat (
-echo %~d1\inc\%~n2.pat not found!
+IF NOT EXIST %~dp1..\inc\%~n2.pat (
+echo %~dp1..\inc\%~n2.pat not found!
 goto badend
 )
 
@@ -51,8 +51,8 @@ exit
 
 
 :preprocessF
-@%~d1\prog\gema.exe -nobackup -line -t '-\r\n=\r\n' -f  %~d1\inc\%~n2.pat %~dpn1.f %~dpn1.4TH
-@call  %~d1\config\Select.bat SelectDeviceId %~d1\inc\%~n2.pat
+@%~d1\prog\gema.exe -nobackup -line -t '-\r\n=\r\n' -f  %~dp1..\inc\%~n2.pat %~dpn1.f %~dpn1.4TH
+@call  %~d1\config\Select.bat SelectDeviceId %~dp1..\inc\%~n2.pat
 
 :DownloadF
 @taskkill /F /IM ttermpro.exe 1> NUL 2>&1
@@ -65,7 +65,10 @@ exit
 @"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V %~d1\config\SendFile.ttl %~dpn1.4TH /C %3 %deviceid%
 
 :EndF
-@MOVE "%~dpn1.4TH" "%~dp1\LAST.4TH" > NUL
+@MOVE "%~dpn1.4TH" "%~dp1LAST.4TH" > NUL
+call  %~d1\config\Select.bat SelectDevice %~dp1..\inc\%~n2.pat
+if not exist  %~dp1SD_%device:~3% MD %~dp1SD_%device:~3% > NUL 
+COPY /y %~dp1LAST.4TH %~dp1SD_%device:~3%\%~n1.4TH > NUL
 exit
 
 
@@ -110,6 +113,6 @@ goto badend
 @"C:\Program Files (x86)\teraterm\ttpmacro.exe" /V %~d1\config\SendFile.ttl %~dpn1.4TH /C %2 0
 
 :End4th
-@COPY "%~dpn1.4TH" "%~dp1\LAST.4TH" > NUL
+@COPY "%~dpn1.4TH" "%~dp1LAST.4TH" > NUL
 exit
 
index a149d20..0f61f75 100644 (file)
@@ -16,7 +16,7 @@ exit
 
 call  %~d1\config\Select.bat SelectTemplate
 
-start  %~d1\config\SendSource.bat %1 %~d1\inc\%template% ECHO
+start  %~d1\config\SendSource.bat %1 %~dp1..\inc\%template% ECHO
 
 ::PAUSE > NUL
 exit
index f270f93..9fbff3a 100644 (file)
@@ -23,16 +23,18 @@ showtt 0            ; close teraterm windows
 ; DEVICE ID TEST
 ; ==============
 
-sendln 'CODE ?ID';                              CODE ?ID
-sendln 'CMP #0,R14 0<> IF SUB &$1A04,R14 THEN'; CMP #0,TOS 0<> IF SUB &DEVICEID,TOS THEN
-sendln 'COLON ';                                COLON
-;sendln '$1B EMIT $63 EMIT';                     $1B EMIT $63 EMIT   \ send 'ESC c' (clear screen)
-sendln 'CR ABORT" Device'39's ID mismatch!" ' ; CR ABORT" Device's ID mismatch!"
-sendln 'PWR_STATE ;' ;                          PWR_STATE ;
+sendln 'CODE ?ID'                               ; CODE ?ID
+sendln 'CMP #0,R14 0<> IF SUB &$1A04,R14 THEN'  ; CMP #0,TOS 0<> IF SUB &DEVICEID,TOS THEN
+sendln 'COLON '                                 ; COLON
+sendln '$1B EMIT $63 EMIT'                      ; $1B EMIT $63 EMIT   \ send 'ESC c' (clear screen)
+;sendln '13 EMIT $10 EMIT'                       ; CR
+sendln ' ABORT" Device'39's ID mismatch!" '     ; ABORT" Device's ID mismatch!"
+sendln 'RST_RET ;'                              ; RST_RET ; 
 
 ;sendln param4 ' ?ID NOECHO'    ; send: %deviceID% ?ID
 sendln param4 ' ?ID ECHO'    ; send: %deviceID% ?ID
 
+sendln 'NOBOOT'              ; 
 sendln 'TERM2SD" ' inputstr '"'    ; send to FastForth the command TERM2SD" \file.4TH" ...with optionnal path added in inputbox
 
 uptime timestart ; starts chrono...
diff --git a/config/UNIFLASH_prog.bat b/config/UNIFLASH_prog.bat
new file mode 100644 (file)
index 0000000..59a4abf
--- /dev/null
@@ -0,0 +1,16 @@
+::@echo off
+
+@call  %~d1\config\Select.bat SelectDevice %1
+@echo %device% programmation
+C:\ti\uniflash_5.3.1\dslite.bat -c C:\ti\uniflash_5.3.1\deskdb\content\TICloudAgent\win\ccs_base\common\targetdb\devices\%device%.xml --flash --verify %~d1\binaries\%~n1.txt 
+@exit
+
+:: your git copy must be the root of a virtual drive
+
+:: %n1 = file filename (= target) to flash
+:: -s : force update
+:: -m : select SBW2 mode
+:: -n %device% : device set from %n1
+:: -v : verify device
+:: -w %~dpn1.txt : file to be flashed
+:: -z [] : end of flasher behaviour
index 9db7b78..45a4b61 100644 (file)
@@ -105,39 +105,39 @@ style.asm.13=fore:#FFFFFF,back:#000000
 # $(2) = extension, example : _8MHz
 
 if PLAT_WIN
-    command.name.0.*.asm=Assemble 1:[target]
-    command.0.*.asm=*\config\build.bat $(FileNameExt) $(1)$(2)
+        command.name.0.*.asm=Assemble 1:[target]
+        command.0.*.asm=*.\config\build.bat $(FileNameExt) $(1)$(2)
     
-    command.name.1.*.asm=FET Prog 1:[target]
-    command.1.*.asm=*\config\FET_prog.bat $(1)$(2)
+        command.name.1.*.asm=FET Prog 1:[target]
+        command.1.*.asm=*\config\FET_prog.bat $(1)$(2)
     
 # $(3) = "COMx"
-    command.name.2.*.asm=BSL Prog 1:[target] with 3:[COMx]
-    command.2.*.asm=*\config\BSL_prog.bat $(1)$(2) $(3) 
+        command.name.2.*.asm=BSL Prog 1:[target] with 3:[COMx]
+        command.2.*.asm=*\config\BSL_prog.bat $(1)$(2) $(3) 
     
     
-    command.name.3.*.asm=Assemble target CurrentSelection
-    command.3.*.asm=\config\build.bat $(FileNameExt) $(CurrentSelection)
+        command.name.3.*.asm=Assemble target CurrentSelection
+        command.3.*.asm=\config\build.bat $(FileNameExt) $(CurrentSelection)
     
-    command.name.4.*.asm=FET Prog target CurrentSelection
-    command.4.*.asm=\config\FET_prog.bat $(CurrentSelection)
+        command.name.4.*.asm=FET Prog target CurrentSelection
+        command.4.*.asm=\config\FET_prog.bat $(CurrentSelection)
 
-    command.name.5.*.asm=BSL Prog target CurrentSelection with 3:[COMx]
-    command.5.*.asm=*\config\BSL_prog.bat $(CurrentSelection) $(3)
+        command.name.5.*.asm=BSL Prog target CurrentSelection with 3:[COMx]
+        command.5.*.asm=*\config\BSL_prog.bat $(CurrentSelection) $(3)
 
 if PLAT_GTK
     # variable $FF = /home/thoorens/CloudStation/projets/msp430 is defined in my ~.profile 
     # open first scite in a terminal to import $FF
-    command.name.0.*.asm=Assemble for 1:[target]
-    command.0.*.asm=*$FF/config/build $(FileNameExt) $(1)$(2)
+        command.name.0.*.asm=Assemble for 1:[target]
+        command.0.*.asm=*./config/build $(FileNameExt) $(1)
     
-    command.name.1.*.asm=FET Prog 1:[target]
-    command.1.*.asm=*$FF/config/prog $(1)$(2)
+        command.name.1.*.asm=FET Prog 1:[target]
+        command.1.*.asm=*./config/prog $(1)$(2)
     
     
-    command.name.2.*.asm=Assemble for target CurrentSelection
-    command.2.*.asm=$FF/config/build $(FileNameExt) $(CurrentSelection)
+        command.name.2.*.asm=Assemble for target CurrentSelection
+        command.2.*.asm=./config/build $(FileNameExt) $(CurrentSelection)
     
-    command.name.3.*.asm=FET Prog target CurrentSelection
-    command.3.*.asm=$FF/config/prog $(CurrentSelection)
+        command.name.3.*.asm=FET Prog target CurrentSelection
+        command.3.*.asm=./config/prog $(CurrentSelection)
 
index d1a846e..84983f5 100644 (file)
@@ -1,9 +1,6 @@
-#asl -i $FF/inc -L  $(FilePath)$1 -o $FF/binaries/$2.p
-asl -i $FF/inc -L  $1 -o $FF/binaries/$2.p
-#p2hex -F Intel $FF/binaries/$2.p
-p2hex $FF/binaries/$2.p
-#srec_cat $FF/binaries/$2.hex -output $FF/binaries/$2.txt -Texas_Instruments_TeXT
-#srec_cat  -contradictory-bytes=warning $FF/binaries/$2.hex -intel -output  $FF/binaries/$2.txt -Texas_Instruments_TeXT 
-# rm $FF/binaries/$2.hex
-rm $FF/binaries/$2.p
-
+asl -i ./inc -L  $1 -o ./binaries/$2.p
+p2hex ./binaries/$2.p ./binaries/$2.hex
+#srec_cat  -contradictory-bytes=warning ./binaries/$2.hex -Intel -output  ./binaries/$2asm -HEX_Dump
+srec_cat  -contradictory-bytes=warning ./binaries/$2.hex -Intel -output  ./binaries/$2.txt -Texas_Instruments_TeXT 
+rm ./binaries/$2.p
+rm ./binaries/$2.hex
index 34ae2ec..eb6c323 100644 (file)
@@ -1,12 +1,12 @@
-@ECHO OFF
-%~d1\prog\asw -q -L -i %~d1\inc %1 -o %~d1\binaries\%2.p
-%~d1\prog\p2hex %~d1\binaries\%2.p -r 0x0000-0xffff
-%~d1\prog\srec_cat -contradictory-bytes=warning %~d1\binaries\%2.hex -intel  -output %~d1\binaries\%2.txt -ti-txt
-del %~d1\binaries\%2.p
-del %~d1\binaries\%2.hex
+::@ECHO OFF
+%~d1\prog\asw -x -q -L -i %~dp1inc %1 -o %~dp1binaries\%2.p
+%~d1\prog\p2hex %~dp1binaries\%2.p -r 0x0000-0xffff
+%~d1\prog\srec_cat -contradictory-bytes=warning %~dp1binaries\%2.hex -intel -output %~dp1binaries\%2.txt -ti-txt
+del %~dp1binaries\%2.p
+::del %~dp1binaries\%2.hex
 exit
 
 rem your git copy must be the root of a virtual drive
 
 rem %1 is the input file.asm
-rem %2 is the target name, plus optional infos
+rem %2 is the target name
index e804e7e..bf6994c 100644 (file)
@@ -26,8 +26,8 @@ comment.stream.end.forth=
 comment.box.start.forth=
 comment.box.middle.forth=
 comment.box.end.forth=
-block.start.forth=\
-block.end.forth=\
+block.start.forth=
+block.end.forth=
 # Forth styles
 
 # control keywords Forth
@@ -39,22 +39,21 @@ again begin case do i j else endcase endof if loop +loop leave unloop of repeat
 keywords2.$(file.patterns.forth)=\
 dup ?dup drop rot swap over @ ! 2@ 2! 2dup 2drop 2swap 2over nip r@ >r r> 2r@ 2>r 2r> \
      sp@ sp! @ ! c@ c! s>d um/mod um* m* * fm/mod sm/rem rshift lshift invert 1+ 1- negate \
-    (cr) (EMIT) (accept) (warm) is lit warm depth /mod mod \
-    space spaces bl word char fill key? key  abort */ 2* 2/ /mod cell+ cells char+ \
+     is lit depth /mod mod \
+    space spaces bl word char fill key? key abort */ 2* 2/ /mod cell+ cells char+ \
     chars move abs hex decimal hold <# # #s #> sign or \
     count type . u. dump (.") >number ' exit recurse here allot , \
     c, branch 0branch  ?branch align aligned create does> \
-    variable constant defer definitions forth forget only also previous literal \
+    variable constant defer definitions forth only also previous literal \
     source evaluate word interpret quit >body execute find state base \
     words  accept emit cr type echo noecho min max true false \
-    char [char] postpone ['] rst_here rst_state wipe pwr_here  pwr_state \
-    assembler close pad caps_on caps_off
+    char [char] postpone ['] rst_set rst_ret sys \
+    assembler close pad
 
 # defwords
 keywords3.$(file.patterns.forth)=\
-code hdncode endcode  :  ;  immediate ;noname codennm \
+code hdncode endcode  :  ;  immediate :noname codennm \
 lo2hi hi2lo colon \
-[if] [else] [then] [undefined] [defined]
 
 # MSP430 assembly words & MSP430_instructions
 keywords4.$(file.patterns.forth)=\
@@ -185,54 +184,54 @@ if PLAT_GTK
     # variable $FF = /media/jeanmi/DATA/CloudStation is defined in my ~.profile 
     # open first scite in a terminal to import $FF
     command.name.0.*.f=preprocess file.f with 1:[target].pat then download file.4th without ECHO
-    command.0.*.f=*$FF/config/SendSource $(FileDir)/$(FileName) $(1) NOECHO
+    command.0.*.f=*../config/SendSource $(FileDir)/$(FileName) $(1) NOECHO
     
     command.name.1.*.f=preprocess file.f with 1:[target].pat then download file.4th with ECHO
-    command.1.*.f=*$FF/config/SendSource $(FileDir)/$(FileName) $(1) ECHO
+    command.1.*.f=*../config/SendSource $(FileDir)/$(FileName) $(1) ECHO
     
     command.name.2.*.f=preprocess file.f with 1:[target].pat then download file.4th HALFDUPLEX
-    command.2.*.f=*$FF/config/SendSource $(FileDir)/$(FileName) $(1) HALF
+    command.2.*.f=*../config/SendSource $(FileDir)/$(FileName) $(1) HALF
     
     command.name.3.*.f=preprocess file.f with 1:[target].pat then download file.4th to target SD_CARD
-    command.3.*.f=*$FF/config/CopyTo_SD_Card $(FileDir)/$(FileName) $(1)
+    command.3.*.f=*../config/CopyTo_SD_Card $(FileDir)/$(FileName) $(1)
     
     command.name.4.*.f=preprocess file.f with 1:[target].pat to LAST.4th (for debug)
-    command.4.*.f=*$FF/config/Preprocess $(FileDir)/$(FileName) $(1)
+    command.4.*.f=*../config/Preprocess $(FileDir)/$(FileName) $(1)
     
     command.name.5.*.f=preprocess file.f with for target CurrentSelection then download
-    command.5.*.f=$FF/config/SendSource $(FileDir)/$(FileName) $(CurrentSelection)
+    command.5.*.f=../config/SendSource $(FileDir)/$(FileName) $(CurrentSelection)
     
     command.name.6.*.f=preprocess file.f with for target CurrentSelection then download with ECHO
-    command.6.*.f=$FF/config/SendSource $(FileDir)/$(FileName) $(CurrentSelection) ECHO
+    command.6.*.f=../config/SendSource $(FileDir)/$(FileName) $(CurrentSelection) ECHO
     
     command.name.7.*.f=preprocess file.f with for target CurrentSelection then download file.4th to target SD_CARD
-    command.7.*.f=$FF/config/CopyTo_SD_Card $(FileDir)/$(FileName).f  $(CurrentSelection)
+    command.7.*.f=../config/CopyTo_SD_Card $(FileDir)/$(FileName).f  $(CurrentSelection)
     
     command.name.8.*.f=preprocess file.f with for target CurrentSelection to LAST.4th (for debug)
-    command.8.*.f=$FF/config/Preprocess $(FileDir)/$(FileName)  $(CurrentSelection)
+    command.8.*.f=../config/Preprocess $(FileDir)/$(FileName)  $(CurrentSelection)
     
     command.name.9.*.f=convert FORTH registers to TI's ones
-    command.9.*.f=gema -line -t -f $FF/inc/FastForthREGtoTI.pat $(FileNameExt) $(FileNameExt)
+    command.9.*.f=gema -line -t -f ./inc/FastForthREGtoTI.pat $(FileNameExt) $(FileNameExt)
     
     command.name.10.*.f=convert TI registers to FORTH's ones
-    command.10.*.f=gema -line -t -f $FF/inc/tiREGtoFastForth.pat $(FileNameExt) $(FileNameExt)
+    command.10.*.f=gema -line -t -f ./inc/tiREGtoFastForth.pat $(FileNameExt) $(FileNameExt)
     
     command.name.0.*.4th=send file.4th to target without ECHO
-    command.0.*.4th=$FF/config/msp430/SendSource $(FileDir)/$(FileName).4th NOECHO
+    command.0.*.4th=./config/msp430/SendSource $(FileDir)/$(FileName).4th NOECHO
     
     command.name.1.*.4th=send file.4th to target with ECHO
-    command.1.*.4th=$FF/config/msp430/SendSource $(FileDir)/$(FileName).4th ECHO
+    command.1.*.4th=./config/msp430/SendSource $(FileDir)/$(FileName).4th ECHO
     
     command.name.2.*.4th=send file.4th to target with HALFDUPLEX
-    command.2.*.4th=$FF/config/msp430/SendSource $(FileDir)/$(FileName).4th HALF
+    command.2.*.4th=./config/msp430/SendSource $(FileDir)/$(FileName).4th HALF
     
     command.name.3.*.4th=send file.4th to target SD_CARD
-    command.3.*.4th=$FF/config/CopyTo_SD_Card $(FileDir)/$(FileName).4th
+    command.3.*.4th=./config/CopyTo_SD_Card $(FileDir)/$(FileName).4th
     
     command.name.4.*.4th=convert TI registers to FORTH's ones
-    command.4.*.4th=gema -line -t -f $FF/inc/TiREGtoFastForth.pat $(FileNameExt) $(FileNameExt)
+    command.4.*.4th=gema -line -t -f ./inc/TiREGtoFastForth.pat $(FileNameExt) $(FileNameExt)
     
     command.name.5.*.4th=convert FORTH registers to TI's ones
-    command.5.*.4th=gema -line -t -f $FF/inc/FastForthREGtoTI.pat $(FileNameExt) $(FileNameExt)
+    command.5.*.4th=gema -line -t -f ./inc/FastForthREGtoTI.pat $(FileNameExt) $(FileNameExt)
 
 
index abcfe9a..e7608ab 100644 (file)
@@ -134,7 +134,7 @@ style.errorlist.2=fore:#800080
 # Microsoft Error
 style.errorlist.3=fore:#808000
 # command or return status
-style.errorlist.4=fore:#0000FF
+style.errorlist.4=fore:#0000FF
 # Borland error and warning messages
 style.errorlist.5=fore:#B06000
 # perl error and warning messages
index b717595..edfb4b6 100644 (file)
@@ -3,7 +3,8 @@
 device=$1
 if   [ ${device:0:16}  == "MSP_EXP430FR5739" ]; then
     device=MSP430FR5739
-elif [ ${device:0:16}  == "MSP_EXP430FR5969" ]; then
+#elif [ ${device:0:16}  == "MSP_EXP430FR5969" ]; then
+elif [ $device  == "MSP_EXP430FR5969" ]; then
     device=MSP430FR5969
 elif [ ${device:0:16}  == "MSP_EXP430FR5994" ]; then
     device=MSP430FR5994
@@ -18,7 +19,8 @@ elif [ ${device:0:16}  == "MSP_EXP430FR2433" ]; then
 elif [ ${device:0:16}  == "MSP_EXP430FR2355" ]; then
     device=MSP430FR2355
 fi
-echo $device
-echo $1
-/usr/local/MSPFlasher/MSP430Flasher -s  -n $device -v -w "$FF/binaries/$1.hex"  -z [RESET,VCC]
+echo
+echo target: $1, device: $device
+echo
+$HOME/ti/MSPFlasher_1.3.20/MSP430Flasher -s  -n $device -v -w "./binaries/$1.txt"  -z [RESET,VCC]
 
diff --git a/config/target_MAIN.txt b/config/target_MAIN.txt
new file mode 100644 (file)
index 0000000..c5f8093
--- /dev/null
@@ -0,0 +1,16385 @@
+@4000   B0 12 44 41 12 D2 06 18 FB 3F 2F 83 8F 4E 00 00
+@4010   3E 4D 30 4D 8F 4E FE FF AF 4F FC FF 2F 82 2F 82
+@4020   8F 4E 02 00 7E 4D 8F 4D 00 00 0D 5E 1D B3 0D 63
+@4030   30 4D 2F 83 8F 4E 00 00 1E 42 C8 1D 30 4D 0B 4E
+@4040   1C 4F 02 00 2E 4F 0A 43 35 40 20 00 0E 93 04 20
+@4050   05 11 0E 4C 0C 43 09 43 0A 9B 01 28 0A 8B 09 69
+@4060   08 68 15 83 07 30 0C 5C 0E 6E 0A 6A F5 2B 0A 8B
+@4070   12 D3 F5 3F 35 40 B6 40 8F 4A 02 00 8F 49 00 00
+@4080   0E 48 30 41 82 4E C2 1D B2 4F C4 1D 82 43 C6 1D
+@4090   3E 4F 30 4D 2F 82 8F 4E 02 00 3E 40 54 00 BF 40
+@40A0   3C 1D 00 00 AF 4F FE FF 2F 83 0D 3D 0E 93 3E 4F
+@40B0   8F 21 2D 4D 30 4D 2F 83 8F 4E 00 00 3E 41 0D 12
+@40C0   3D 4E 30 4D 2F 83 8F 4E 00 00 3E 41 2E 4E 30 4D
+@40D0   B0 12 56 41 3D 41 39 40 20 18 B2 49 C8 42 B2 49
+@40E0   4C 43 B2 49 28 43 B2 49 A0 40 31 49 34 49 35 49
+@40F0   36 49 37 49 B2 49 C0 1D B2 49 BE 1D B2 49 00 1C
+@4100   82 43 BC 1D 30 40 62 4D 8F 93 02 00 02 20 2F 52
+@4110   BF 3F 28 43 B0 12 46 41 B0 12 D0 40 A4 44 AC 40
+@4120   42 41 66 43 1E 40 05 1B 5B 37 6D 40 92 43 0A 40
+@4130   02 18 C6 44 FA 45 92 43 1E 40 04 1B 5B 30 6D 00
+@4140   92 43 DE 48 48 43 A2 B3 EC 06 FD 27 C2 48 CE 06
+@4150   A2 B2 EC 06 FD 27 30 41 B2 D0 C0 07 C0 06 18 42
+@4160   02 18 08 11 38 D0 00 04 82 48 D4 06 F2 D0 03 00
+@4170   6A 02 92 C3 C0 06 A2 D2 EA 06 92 C3 30 01 30 41
+@4180   B0 12 58 41 84 12 1E 40 07 0D 0A 1B 5B 37 6D 40
+@4190   92 43 0A 40 02 18 C6 44 FA 45 0A 40 23 00 4A 43
+@41A0   FA 45 1E 40 19 46 61 73 74 46 6F 72 74 68 20 C2
+@41B0   A9 4A 2E 4D 2E 54 68 6F 6F 72 65 6E 73 20 92 43
+@41C0   0A 40 40 FF 32 40 BA 44 C4 45 1E 40 0A 62 79 74
+@41D0   65 73 20 66 72 65 65 00 B2 40 36 41 00 00 06 53
+@41E0   59 53 0E 93 CF 27 02 38 F0 41 CA 2F 82 4E 08 18
+@41F0   B0 12 56 41 F0 41 40 00 40 02 02 20 B2 43 08 18
+@4200   B2 40 F0 41 20 01 B2 D0 03 00 04 01 B2 D0 10 00
+@4210   00 01 B2 40 80 5A 5C 01 31 40 E0 1C 3F 40 80 1C
+@4220   B2 D3 06 02 B2 40 FC FF 02 02 B2 43 26 02 B2 D3
+@4230   22 02 B2 43 42 02 B2 D3 46 02 B2 43 62 02 B2 D3
+@4240   66 02 F2 43 26 03 F2 D3 22 03 F2 40 A5 00 41 01
+@4250   F2 40 10 00 40 01 D2 43 41 01 F2 40 A5 00 61 01
+@4260   B2 40 48 00 62 01 82 43 66 01 B2 40 33 00 64 01
+@4270   D2 43 61 01 39 40 40 00 18 42 00 18 18 83 FE 23
+@4280   19 83 FA 23 F2 D0 10 00 2A 03 F2 40 A5 00 A1 04
+@4290   F2 C0 40 00 A2 04 B2 42 B0 01 39 40 00 10 29 83
+@42A0   89 43 00 1C FC 23 1E 42 9E 01 19 E2 08 18 03 24
+@42B0   0E 49 82 43 08 18 B0 12 D0 40 80 41 00 00 0C 41
+@42C0   43 43 45 50 54 00 30 40 CA 42 0A 4E 2E 4F 0A 5E
+@42D0   3B 40 0A 00 3C 40 20 00 3D 15 92 3E 21 52 A2 C2
+@42E0   EC 06 B2 B0 10 00 C0 06 8B 22 3A 17 92 B3 EC 06
+@42F0   FD 27 58 42 CC 06 48 9B 0E 24 48 9C 06 2C 78 92
+@4300   F5 23 2E 9F F3 27 1E 83 F1 3F 0E 9A EF 2F CE 48
+@4310   00 00 1E 53 EB 3F 3E 8F B0 12 50 41 08 4C 19 3C
+@4320   00 00 06 4B 45 59 30 40 2A 43 58 43 B0 12 46 41
+@4330   2F 83 8F 4E 00 00 92 B3 EC 06 FD 27 1E 42 CC 06
+@4340   30 4D 00 00 08 45 4D 49 54 00 30 40 4E 43 08 4E
+@4350   3E 4F A2 B3 EC 06 FD 27 C2 48 CE 06 30 4D 44 43
+@4360   08 45 43 48 4F 00 B2 40 C2 48 58 43 38 40 05 00
+@4370   B0 12 46 41 30 4D 00 00 0C 4E 4F 45 43 48 4F 00
+@4380   B2 40 30 4D 58 43 28 42 F3 3F 00 00 08 54 59 50
+@4390   45 00 0D 12 3D 40 A2 43 29 4F 8F 4E 00 00 7E 49
+@43A0   D4 3F A4 43 2D 83 2F 83 5E 83 F7 23 3D 41 2F 53
+@43B0   3E 4F 30 4D 86 12 20 00 0C 4E 38 4F 3C 9F 39 4F
+@43C0   3E 4F 77 22 F9 98 00 00 74 22 19 53 1C 83 FA 23
+@43D0   2D 53 30 4D 2F 53 3E 4F 1E 83 6B 22 9C 24 22 43
+@43E0   0D 5B 45 4C 53 45 5D 00 0D 12 84 12 0A 40 00 00
+@43F0   BE 44 B4 43 0A 46 C0 48 B0 40 30 44 14 40 06 5B
+@4000   54 48 45 4E 5D 00 B8 43 0E 44 D4 43 F2 43 14 40
+@4000   06 5B 45 4C 53 45 5D 00 B8 43 20 44 D4 43 F0 43
+@4000   1E 40 04 5B 49 46 5D 00 B8 43 F2 43 B2 40 F0 43
+@4000   AE 43 1E 40 05 0D 6B 6F 20 0A 92 43 94 40 84 40
+@4000   B2 40 F2 43 E0 43 0D 5B 54 48 45 4E 5D 00 30 4D
+@4000   46 44 09 5B 49 46 5D 00 0E 93 3E 4F C5 27 30 4D
+@4000   52 44 13 5B 44 45 46 49 4E 45 44 5D 0D 12 84 12
+@4000   B4 43 0A 46 72 46 12 48 84 45 62 44 17 5B 55 4E
+@4000   44 45 46 49 4E 45 44 5D 0D 12 84 12 B4 43 0A 46
+@4000   72 46 12 48 D6 44 84 45 3F 12 2F 83 8F 4E 00 00
+@4000   3E 41 30 4D 8F 4E FE FF 2F 83 30 4D 8F 4E FE FF
+@4000   3E 40 80 1C 0E 8F 0E 11 F7 3F 3E 8F 3E E3 1E 53
+@4000   30 4D 00 00 02 40 2E 4E 30 4D BE 42 02 21 BE 4F
+@4000   00 00 3E 4F 30 4D 1E 83 0E 7E 30 4D 0E 5E 0E 7E
+@4000   3E E3 30 4D 3E 8F 01 28 0E F3 30 4D DE 41 05 53
+@4000   22 00 82 43 C0 1D 0D 12 84 12 0A 40 1E 40 70 48
+@4000   0A 40 22 00 0A 46 08 45 B2 40 20 00 C0 1D 1A 53
+@4000   1A B3 82 6A C8 1D 3E 4F 3D 41 30 4D 78 43 05 2E
+@4000   22 00 0D 12 84 12 F2 44 0A 40 92 43 70 48 84 45
+@4000   00 00 04 3C 23 00 B2 40 B2 1D B2 1D 30 4D EE 44
+@4000   02 23 1B 42 BE 1D 2C 4F 2F 83 B0 12 46 40 BF 4F
+@4000   00 00 7A 90 0A 00 02 28 7A 50 07 00 7A 50 30 00
+@4000   92 83 B2 1D 18 42 B2 1D C8 4A 00 00 30 4D 40 45
+@4000   04 23 53 00 0D 12 84 12 42 45 7C 45 2D 83 09 DE
+@4000   09 93 E1 23 3D 41 30 4D 70 45 04 23 3E 00 9F 42
+@4000   B2 1D 00 00 3E 40 B2 1D 2E 8F 30 4D 00 00 08 48
+@4000   4F 4C 44 00 4A 4E 3E 4F DB 3F 8A 45 08 53 49 47
+@4000   4E 00 0E 93 3E 4F 7A 40 2D 00 D2 33 30 4D 60 43
+@4000   04 55 2E 00 08 43 2F 83 8F 4E 00 00 0E 48 0D 12
+@4000   0E 12 3E F3 06 34 BF E3 00 00 3E E3 9F 53 00 00
+@4000   0E 63 84 12 36 45 B4 43 A4 45 74 45 9A 44 B2 45
+@4000   8E 45 92 43 84 45 1E 45 02 2E 0E 93 E3 37 38 43
+@4000   E2 3F 00 00 08 57 4F 52 44 00 1B 42 C0 1D 3C 40
+@4000   C2 1D 39 4C 38 4C 09 58 38 5C 2A 4C 09 98 1B 24
+@4000   7E 98 FC 27 18 83 F8 90 27 00 00 00 04 20 E8 98
+@4000   02 00 01 20 0B 43 CA 4C 00 00 09 98 0C 24 7C 48
+@4000   4E 9C 09 24 1A 53 7C 90 61 00 F5 2B 7C 90 7B 00
+@4000   F2 2F 4C 8B F0 3F 18 82 C4 1D 82 48 C6 1D 1E 42
+@4000   C8 1D 0A 8E CE 4A 00 00 30 4D 00 00 08 46 49 4E
+@4000   44 00 2F 83 0C 4E 3B 40 CC 1D 3E 4B 0E 93 1E 24
+@4000   58 4C 01 00 78 F0 0F 00 08 58 0E 58 2E 53 1E 4E
+@4000   FE FF 0E 93 F2 27 09 4E 78 49 48 11 68 9C F7 23
+@4000   0A 4C FA 99 01 00 F3 23 1A 53 58 83 FA 23 19 B3
+@4000   09 63 0C 49 6E 4E 1E F3 01 20 1E 83 8F 4C 00 00
+@4000   30 4D F8 45 0E 3E 4E 55 4D 42 45 52 1B 42 BE 1D
+@4000   3C 4F 38 4F 29 4F 2F 82 82 4B C0 04 6A 4C 7A 80
+@4000   3A 00 03 28 7A 80 07 00 12 28 7A 50 0A 00 0A 9B
+@4000   22 C3 0D 2C 82 49 E0 04 82 48 E2 04 19 42 E4 04
+@4000   18 42 E6 04 09 5A 08 63 1C 53 1E 83 E7 23 8F 4C
+@4000   00 00 8F 48 02 00 8F 49 04 00 30 4D 32 C0 00 02
+@4000   3F 82 8F 4E 06 00 08 43 09 43 1B 42 BE 1D 0C 4E
+@4000   0E 43 1E 15 3D 40 78 47 7E 4C 6A 4C 7A 80 2D 00
+@4000   14 24 CA 2F 2B 43 7A 52 12 24 3B 52 6A 53 0F 24
+@4000   3B 40 10 00 5A 93 0B 24 6A 92 3F 20 5B 4C 01 00
+@4000   8F 4B 04 00 EC 9C 02 00 38 3C B1 43 02 00 1E 83
+@4000   FC 9C 00 00 E2 23 B0 27 7A 47 2F 24 2D 83 6A 4C
+@4000   7A 90 5F 00 C1 27 32 B0 00 02 27 20 32 D0 00 02
+@4000   7A 80 2E 00 B9 27 6A 53 20 20 0A 4E 09 43 8F 49
+@4000   02 00 5A 83 09 4A 09 5C 69 49 79 80 3A 00 03 28
+@4000   79 80 07 00 0C 28 79 50 0A 00 09 9B 08 2C 8F 49
+@4000   00 00 0E 4B 2C 15 B0 12 3E 40 2A 17 E8 3F 9F 4F
+@4000   04 00 02 00 AF 4F 04 00 4A 93 1D 17 06 24 32 C0
+@4000   00 02 3F 50 06 00 0E F3 30 4D 2F 53 9F 4F 02 00
+@4000   04 00 BF 4F 00 00 3E E3 09 20 3E E3 BF E3 02 00
+@4000   BF E3 00 00 9F 53 02 00 8F 63 00 00 32 B0 00 02
+@4000   01 20 2F 53 30 4D 32 45 03 5C 92 42 C2 1D C6 1D
+@4000   30 4D 0D 12 84 12 84 40 B4 43 0A 46 B0 40 4A 49
+@4000   72 46 34 48 0A 4E 3E 4F 3D 40 4E 48 6F 27 3D 40
+@4000   28 48 1A E2 BC 1D 14 24 0E 12 3E 4F 30 41 50 48
+@4000   3E 4F 3D 40 28 48 19 20 DE 53 00 00 68 4E 08 5E
+@4000   F8 40 3F 00 00 00 3D 40 26 4A 2A 3C 18 48 02 2C
+@4000   1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 3E 4F 30 4D
+@4000   6E 48 0F 4C 49 54 45 52 41 4C 82 93 BC 1D 0D 24
+@4000   09 4E 1A 42 C8 1D A2 52 C8 1D BA 40 0A 40 00 00
+@4000   8A 49 02 00 3E 4F 32 B0 00 02 32 C0 00 02 03 24
+@4000   8A 4E 02 00 EE 3F 30 4D AC 45 0A 43 4F 55 4E 54
+@4000   2F 83 7A 4E 8F 4E 00 00 0E 4A 3E F3 30 4D CC 44
+@4000   0A 41 4C 4C 4F 54 82 5E C8 1D 3E 4F 30 4D 3F 40
+@4000   80 1C 0E 43 84 12 1E 40 02 0D 0A 00 92 43 94 40
+@4000   22 48 AC 44 DC 44 1E 40 0B 73 74 61 63 6B 20 65
+@4000   6D 70 74 79 08 41 32 40 0A 40 40 FF E4 44 1E 40
+@4000   09 46 52 41 4D 20 66 75 6C 6C 08 41 B2 40 E6 48
+@4000   D0 48 0D 41 42 4F 52 54 22 00 0D 12 84 12 F2 44
+@4000   0A 40 08 41 70 48 84 45 04 46 02 27 0D 12 84 12
+@4000   B4 43 0A 46 72 46 B0 40 4C 49 16 45 58 48 7C 44
+@4000   07 5B 27 5D 0D 12 84 12 3C 49 0A 40 0A 40 70 48
+@4000   70 48 84 45 50 49 03 5B 82 43 BC 1D 30 4D 00 00
+@4000   02 5D B2 43 BC 1D 30 4D C4 44 11 50 4F 53 54 50
+@4000   4F 4E 45 00 0D 12 84 12 B4 43 0A 46 72 46 B0 40
+@4000   4C 49 DC 44 AC 40 A4 49 0A 40 0A 40 70 48 70 48
+@4000   0A 40 70 48 70 48 84 45 00 00 02 3A 30 12 FA 49
+@4000   92 B3 C8 1D A2 63 C8 1D 0D 12 84 12 B4 43 0A 46
+@4000   C2 49 3D 41 5A D3 5A 53 0A 5E 19 42 CA 1D 08 4E
+@4000   5E 4E 01 00 3E F0 0F 00 0E 5E 09 5E 3E 4F E8 58
+@4000   00 00 82 48 B4 1D 82 49 B6 1D 82 4A B8 1D 82 4F
+@4000   BA 1D 2A 52 82 4A C8 1D 30 41 BA 40 0D 12 FC FF
+@4000   BA 40 84 12 FE FF B2 43 BC 1D 30 4D 82 9F BA 1D
+@4000   9F 25 84 12 1E 40 0F 73 74 61 63 6B 20 6D 69 73
+@4000   6D 61 74 63 68 21 12 41 66 49 03 3B 82 93 BC 1D
+@4000   F4 26 0D 12 84 12 0A 40 84 45 70 48 0C 4A 68 49
+@4000   84 45 00 00 12 49 4D 4D 45 44 49 41 54 45 18 42
+@4000   B4 1D D8 D3 00 00 30 4D BA 48 0C 43 52 45 41 54
+@4000   45 00 B0 12 B0 49 BA 40 86 12 FC FF 8A 4A FE FF
+@4000   73 3D 8C 43 0A 44 4F 45 53 3E 1A 42 B8 1D BA 40
+@4000   85 12 00 00 8A 4D 02 00 3D 41 30 4D AA 49 0E 3A
+@4000   4E 4F 4E 41 4D 45 30 12 FA 49 2F 83 8F 4E 00 00
+@4000   1A 42 C8 1D 1A B3 0A 63 0E 4A 39 40 12 02 08 49
+@4000   98 3F 74 4A 0A 44 45 46 45 52 B0 12 B0 49 BA 40
+@4000   30 40 FC FF BA 40 56 4A FE FF 46 3D 44 4A 05 49
+@4000   53 00 0D 12 82 93 BC 1D 08 20 84 12 3C 49 E0 4A
+@4000   3D 41 BE 4F 02 00 3E 4F 30 4D 84 12 54 49 0A 40
+@4000   E2 4A 70 48 84 45 5A 4A 08 43 4F 44 45 00 B0 12
+@4000   B0 49 A2 82 C8 1D 0D 12 84 12 4A 4C 1C 4C 84 45
+@4000   9E 45 0E 48 44 4E 43 4F 44 45 B2 40 20 4C CA 1D
+@4000   EE 3F 00 00 0E 45 4E 44 43 4F 44 45 0D 12 84 12
+@4000   0C 4A 6A 4C 98 4C 84 45 F8 4A 0E 43 4F 44 45 4E
+@4000   4E 4D 30 12 02 4B A9 3F 00 00 0A 43 4F 4C 4F 4E
+@4000   1A 42 C8 1D BA 40 0D 12 00 00 BA 40 84 12 02 00
+@4000   A2 52 C8 1D B2 43 BC 1D 92 42 CE 1D CA 1D 7D 3C
+@4000   00 00 0A 4C 4F 32 48 49 A2 83 C8 1D 1A 42 C8 1D
+@4000   EC 3F 12 4B 0B 48 49 32 4C 4F A2 53 C8 1D 1A 42
+@4000   C8 1D 8A 4A FE FF 82 43 BC 1D B5 3F 6C 46 14 56
+@4000   4F 43 41 42 55 4C 41 52 59 00 0D 12 84 12 62 4A
+@4000   B2 4B 39 40 10 00 0A 59 0A 59 82 4A C8 1D 2A 83
+@4000   8A 43 00 00 19 83 FB 23 84 12 32 40 0A 40 DC 1D
+@4000   A4 44 C6 44 70 48 CE 44 7A 4A 0A 40 CC 1D CE 44
+@4000   84 45 9E 4B 0A 46 4F 52 54 48 85 12 DA 4B 60 4C
+@4000   44 4C CA 4C 3A 4B 8C 4C C0 45 E4 4B 3A 49 84 4B
+@4000   CE 4A 8E 4A 2A 4A 82 48 1E 4D C4 46 7E 4C 00 00
+@4000   22 49 12 41 53 53 45 4D 42 4C 45 52 85 12 DA 4B
+@4000   CC 53 50 52 B0 53 78 51 D4 51 22 52 FE 52 0A 53
+@4000   9A 50 BE 51 00 00 00 00 72 4B 8A 4F 00 00 26 53
+@4000   0E 4C 12 4C 08 41 4C 53 4F 00 38 40 06 00 39 40
+@4000   D6 1D A9 49 02 00 29 83 18 83 FB 23 30 4D 7A 49
+@4000   10 50 52 45 56 49 4F 55 53 00 38 40 07 00 39 40
+@4000   CE 1D B9 49 FC FF 18 83 FC 23 30 4D 00 00 08 4F
+@4000   4E 4C 59 00 82 43 CE 1D 30 4D B4 4A 16 44 45 46
+@4000   49 4E 49 54 49 4F 4E 53 92 42 CC 1D CA 1D 30 4D
+@4000   3B 40 0C 00 BA 49 00 00 2A 53 1B 83 FB 23 30 41
+@4000   00 00 0E 52 53 54 5F 53 45 54 39 40 C8 1D 3A 40
+@4000   38 18 B0 12 A0 4C 30 4D B2 4C 0E 52 53 54 5F 52
+@4000   45 54 39 40 38 18 2C 49 3A 40 C8 1D B0 12 A0 4C
+@4000   1A 42 DC 1D 3B 40 10 00 09 4A 08 49 29 83 18 48
+@4000   FE FF 0C 98 FC 2B 89 48 00 00 1B 83 F6 23 2A 4A
+@4000   0A 93 F0 23 30 4D 08 4D 09 4E 3A 40 38 18 B0 12
+@4000   A0 4C 0E 49 BE 12 3E 4F 3D 41 DB 3F 70 49 0C 4D
+@4000   41 52 4B 45 52 00 B0 12 B0 49 BA 40 85 12 FC FF
+@4000   BA 40 06 4D FE FF 28 83 82 48 C8 1D 39 40 C8 1D
+@4000   B0 12 A0 4C BA 40 82 40 00 00 2A 53 82 4A C8 1D
+@4000   18 42 B4 1D 19 42 B6 1D A8 49 FE FF 89 48 00 00
+@4000   30 4D 0E 93 B6 37 39 40 10 00 29 83 B9 43 80 FF
+@4000   FC 23 B9 40 06 42 FE FF 29 83 B9 40 F0 41 FE FF
+@4000   39 90 AE FF F9 23 39 40 10 18 B2 49 F2 41 B2 49
+@4000   D2 40 B2 49 02 40 B2 49 82 41 B2 49 BC FF B2 49
+@4000   38 18 A2 49 3A 18 B2 49 3C 18 82 43 3E 18 A2 49
+@4000   4E 18 8F 3F 92 83 C6 1D 3E 40 28 00 2D 15 0E 12
+@4000   12 12 C6 1D 84 12 0A 46 72 46 D6 44 AC 40 D8 4D
+@4000   1C 47 AC 40 FC 4D F6 4D DA 4D 3C 4E 3C 80 87 12
+@4000   0A 24 1C 53 02 20 2E 4E 06 3C 3E 90 06 4D 02 20
+@4000   3E 50 18 00 2E 83 21 52 2B 17 30 41 FE 4D B2 41
+@4000   C6 1D 3E 41 84 12 0A 40 2B 00 0A 46 72 46 D6 44
+@4000   AC 40 1A 4E 1C 47 AC 40 4C 49 98 44 0A 46 1C 47
+@4000   AC 40 4C 49 26 4E 3E 5F E7 3F B0 12 B4 4D 19 42
+@4000   C8 1D 89 4E 00 00 A2 53 C8 1D 3E 40 29 00 92 53
+@4000   C6 1D 2D 15 12 12 C6 1D 84 12 0A 46 1C 47 AC 40
+@4000   5E 4E 54 4E 21 53 3E 90 10 00 CE 2B 7C 2D 60 4E
+@4000   B2 41 C6 1D C9 3F 03 20 B0 12 42 4E 43 3C 7A 90
+@4000   23 00 24 20 B0 12 BC 4D 3C 40 00 03 0E 93 1C 24
+@4000   3C 40 10 03 1E 93 18 24 3C 40 20 03 2E 93 14 24
+@4000   3C 40 20 02 2E 92 10 24 3C 40 30 02 3E 92 0C 24
+@4000   3C 40 30 03 3E 93 08 24 3C 40 30 00 19 42 C8 1D
+@4000   A2 53 C8 1D 89 4E 00 00 3E 4F 30 4D 7A 90 26 00
+@4000   05 20 3C 40 10 02 B0 12 BC 4D F0 3F 7A 90 40 00
+@4000   14 20 3C 40 20 00 B0 12 3E 4E 0C 20 3C D0 10 00
+@4000   3E 40 2B 00 B0 12 42 4E 92 92 C2 1D C6 1D 02 24
+@4000   92 53 C6 1D 8E 10 0C 5E DF 3F 3C D0 10 00 B0 12
+@4000   2A 4E F2 3F 03 20 B0 12 42 4E F5 3F 7A 90 26 00
+@4000   03 20 3C D0 82 00 D7 3F 3C D0 80 00 B0 12 2A 4E
+@4000   EA 3F 0C 43 1B 42 C8 1D A2 53 C8 1D 3A 40 20 00
+@4000   19 42 C6 1D 19 52 C4 1D 7A 99 FE 27 5A 49 FF FF
+@4000   19 82 C4 1D 82 49 C6 1D 7A 90 52 00 30 4D 00 00
+@4000   08 52 45 54 49 00 0D 12 84 12 0A 40 00 13 70 48
+@4000   84 45 0A 40 2C 00 22 4F 66 4E B4 43 2C 4F 04 4F
+@4000   72 4F 3D 41 2C DE 8B 4C 00 00 9E 3F 00 00 06 4D
+@4000   4F 56 85 12 62 4F 00 40 7E 4F 0A 4D 4F 56 2E 42
+@4000   85 12 62 4F 40 40 00 00 06 41 44 44 85 12 62 4F
+@4000   00 50 98 4F 0A 41 44 44 2E 42 85 12 62 4F 40 50
+@4000   A4 4F 08 41 44 44 43 00 85 12 62 4F 00 60 B2 4F
+@4000   0C 41 44 44 43 2E 42 00 85 12 62 4F 40 60 4A 4B
+@4000   08 53 55 42 43 00 85 12 62 4F 00 70 D0 4F 0C 53
+@4000   55 42 43 2E 42 00 85 12 62 4F 40 70 DE 4F 06 53
+@4000   55 42 85 12 62 4F 00 80 EE 4F 0A 53 55 42 2E 42
+@4000   85 12 62 4F 40 80 FA 4F 06 43 4D 50 85 12 62 4F
+@4000   00 90 08 50 0A 43 4D 50 2E 42 85 12 62 4F 40 90
+@4000   00 00 08 44 41 44 44 00 85 12 62 4F 00 A0 22 50
+@4000   0C 44 41 44 44 2E 42 00 85 12 62 4F 40 A0 50 4F
+@4000   06 42 49 54 85 12 62 4F 00 B0 40 50 0A 42 49 54
+@4000   2E 42 85 12 62 4F 40 B0 4C 50 06 42 49 43 85 12
+@4000   62 4F 00 C0 5A 50 0A 42 49 43 2E 42 85 12 62 4F
+@4000   40 C0 66 50 06 42 49 53 85 12 62 4F 00 D0 74 50
+@4000   0A 42 49 53 2E 42 85 12 62 4F 40 D0 00 00 06 58
+@4000   4F 52 85 12 62 4F 00 E0 8E 50 0A 58 4F 52 2E 42
+@4000   85 12 62 4F 40 E0 C0 4F 06 41 4E 44 85 12 62 4F
+@4000   00 F0 A8 50 0A 41 4E 44 2E 42 85 12 62 4F 40 F0
+@4000   B4 43 22 4F 66 4E C8 50 0A 4C 3C F0 70 00 8A 10
+@4000   3A F0 0F 00 0C DA 4D 3F 80 50 06 52 52 43 85 12
+@4000   C0 50 00 10 DA 50 0A 52 52 43 2E 42 85 12 C0 50
+@4000   40 10 14 50 08 53 57 50 42 00 85 12 C0 50 80 10
+@4000   E6 50 06 52 52 41 85 12 C0 50 00 11 02 51 0A 52
+@4000   52 41 2E 42 85 12 C0 50 40 11 F4 50 06 53 58 54
+@4000   85 12 C0 50 80 11 00 00 08 50 55 53 48 00 85 12
+@4000   C0 50 00 12 28 51 0C 50 55 53 48 2E 42 00 85 12
+@4000   C0 50 40 12 1C 51 08 43 41 4C 4C 00 85 12 C0 50
+@4000   80 12 1A 53 0E 4A 84 12 FA 45 1E 40 0D 6F 75 74
+@4000   20 6F 66 20 62 6F 75 6E 64 73 12 41 46 51 06 53
+@4000   3E 3D 86 12 00 38 6E 51 04 53 3C 00 86 12 00 34
+@4000   36 51 06 30 3E 3D 86 12 00 30 82 51 04 30 3C 00
+@4000   86 12 00 30 24 4B 04 55 3C 00 86 12 00 2C 96 51
+@4000   06 55 3E 3D 86 12 00 28 8C 51 06 30 3C 3E 86 12
+@4000   00 24 AA 51 04 30 3D 00 86 12 00 20 00 00 04 49
+@4000   46 00 1A 42 C8 1D 8A 4E 00 00 A2 53 C8 1D 0E 4A
+@4000   30 4D 30 50 08 54 48 45 4E 00 1A 42 C8 1D 08 4E
+@4000   3E 4F 09 48 29 53 0A 89 0A 11 3A 90 00 02 B2 2F
+@4000   88 DA 00 00 30 4D A0 51 08 45 4C 53 45 00 1A 42
+@4000   C8 1D BA 40 00 3C 00 00 A2 53 C8 1D 2F 83 8F 4A
+@4000   00 00 E3 3F 0E 51 0A 42 45 47 49 4E 30 40 32 40
+@4000   F8 51 0A 55 4E 54 49 4C 3A 4F 08 4E 3E 4F 19 42
+@4000   C8 1D 2A 83 0A 89 0A 11 3A 90 00 FE 8B 3B 3A F0
+@4000   FF 03 08 DA 89 48 00 00 A2 53 C8 1D 30 4D B4 50
+@4000   0A 41 47 41 49 4E 0A 4E 38 40 00 3C E7 3F 00 00
+@4000   0A 57 48 49 4C 45 0D 12 84 12 C2 51 98 44 84 45
+@4000   16 52 0C 52 45 50 45 41 54 00 0D 12 84 12 56 52
+@4000   DA 51 84 45 86 52 3D 41 08 4E 3E 4F 2A 48 B2 92
+@4000   C6 1D CB 2F 98 42 C8 1D 00 00 30 4D 72 52 06 42
+@4000   57 31 85 12 84 52 00 00 9E 52 06 42 57 32 85 12
+@4000   84 52 00 00 AA 52 06 42 57 33 85 12 84 52 00 00
+@4000   C2 52 3D 41 1A 42 C8 1D 28 4E 8E 43 00 00 B2 92
+@4000   C6 1D 86 2B BA 4F 00 00 A2 53 C8 1D 8E 4A 00 00
+@4000   3E 4F 30 4D 00 00 06 46 57 31 85 12 C0 52 00 00
+@4000   E6 52 06 46 57 32 85 12 C0 52 00 00 F2 52 06 46
+@4000   57 33 85 12 C0 52 00 00 60 52 08 47 4F 54 4F 00
+@4000   2F 83 8F 4E 00 00 3E 40 00 3C 0D 12 84 12 3C 49
+@4000   48 48 84 45 00 00 0A 3F 47 4F 54 4F 3E 90 00 30
+@4000   F4 27 3E E0 00 04 3E B0 00 10 EF 27 3E E0 00 08
+@4000   EC 3F 2C 4F 0A 40 2C 00 0A 46 1C 47 AC 40 4C 49
+@4000   B4 43 22 4F 04 4F 58 53 0A 4E 3E 4F 1A 83 F9 32
+@4000   29 4E 59 0E 0A 28 08 4C 59 0A 01 28 0C 8A 08 8A
+@4000   38 90 10 00 EE 2E 5A 0E AD 3E 2A 92 EA 2E 8A 10
+@4000   5A 06 A8 3E B6 52 08 52 52 43 4D 00 85 12 42 53
+@4000   50 00 86 53 08 52 52 41 4D 00 85 12 42 53 50 01
+@4000   94 53 08 52 4C 41 4D 00 85 12 42 53 50 02 A2 53
+@4000   08 52 52 55 4D 00 85 12 42 53 50 03 B4 51 0A 50
+@4000   55 53 48 4D 85 12 42 53 00 15 BE 53 08 50 4F 50
+@4000   4D 00 85 12 42 53 00 17 FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+@4000   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41
+F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41
+F0 41 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41
+F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41
+F0 41 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+77 00 10 00 12 00 14 00 16 00 00 00 F0 41 F0 41
+F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 DC 42 F0 41
+F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41
+F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41
+F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41
+F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 F0 41 06 42
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
+q
index feb29b4..fd85791 100644 (file)
@@ -1,9 +1,8 @@
-; -*- coding: utf-8 -*-
 ;
 ;-------------------------------------------------------------------------------
-; Vingt fois sur le métier remettez votre ouvrage,
+; Vingt fois sur le métier remettez votre ouvrage,
 ; Polissez-le sans cesse, et le repolissez,
-; Ajoutez quelquefois, et souvent effacez.               Boileau, L'Art poétique
+; Ajoutez quelquefois, et souvent effacez.               Boileau, L'Art poétique
 ;-------------------------------------------------------------------------------
 
 ;-------------------------------------------------------------------------------
 ;-------------------------------------------------------------------------------
     .listing purecode   ; reduce listing to true conditionnal parts
     MACEXP_DFT noif     ; reduce macros listing to true part
-    .PAGE  0            ; 
+    .PAGE  0            ; listing without pagination
 ;-------------------------------------------------------------------------------
 
-VER .equ "V308"     ; FORTH version
+VER .equ "V309"     ; FORTH version
 
 ;===============================================================================
 ; before assembling or programming you must set TARGET in scite param1 (SHIFT+F8)
 ; according to the selected (uncommented) TARGET below
 ;===============================================================================
-
-;===============================================================================
-; FAST FORTH has a minimalistic footprint to enable its use from 8k FRAM devices
-; kernel size below are for 8MHz, DTC=1, THREADS=1, 4WIRES (RTS) options
-;===============================================================================
-;    TARGET        ;                                        ;INFO+VECTORS+ MAIN bytes
-;MSP_EXP430FR5739  ; compile for MSP-EXP430FR5739 launchpad ; 64 +  128  + 2768 bytes 
-;MSP_EXP430FR5969  ; compile for MSP-EXP430FR5969 launchpad ; 64 +  128  + 2760 bytes 
-;MSP_EXP430FR5994  ; compile for MSP-EXP430FR5994 launchpad ; 64 +  128  + 2780 bytes 
-;MSP_EXP430FR6989  ; compile for MSP-EXP430FR6989 launchpad ; 64 +  128  + 2782 bytes 
-;MSP_EXP430FR4133  ; compile for MSP-EXP430FR4133 launchpad ; 64 +  128  + 2822 bytes 
-;MSP_EXP430FR2355  ; compile for MSP-EXP430FR2355 launchpad ; 64 +  128  + 2756 bytes
-;MSP_EXP430FR2433  ; compile for MSP-EXP430FR2433 launchpad ; 64 +  128  + 2746 bytes 
-;LP_MSP430FR2476   ; compile for LP_MSP430FR2476  launchpad ; 64 +  128  + 2760 bytes 
-CHIPSTICK_FR2433;  ; compile for "CHIPSTICK" of M. Ken BOAK ; 64 +  128  + 2748 bytes  
+;    TARGET        ;
+;MSP_EXP430FR5739  ; compile for MSP-EXP430FR5739 launchpad
+;MSP_EXP430FR5969  ; compile for MSP-EXP430FR5969 launchpad
+MSP_EXP430FR5994  ;; compile for MSP-EXP430FR5994 launchpad
+;MSP_EXP430FR6989  ; compile for MSP-EXP430FR6989 launchpad
+;MSP_EXP430FR4133  ; compile for MSP-EXP430FR4133 launchpad
+;MSP_EXP430FR2355  ; compile for MSP-EXP430FR2355 launchpad
+;MSP_EXP430FR2433  ; compile for MSP-EXP430FR2433 launchpad
+;LP_MSP430FR2476   ; compile for LP_MSP430FR2476  launchpad
+;CHIPSTICK_FR2433  ; compile for "CHIPSTICK" of M. Ken BOAK
 
 ; choose DTC model (Direct Threaded Code); if you don't know, choose 2, because DOCOL routine without using scratch register
 DTC .equ 2  ; DTC model 1 : DOCOL = CALL rDOCOL           14 cycles 1 word      shortest DTC model
             ; DTC model 2 : DOCOL = PUSH IP, CALL rEXIT   13 cycles 2 words     best compromize to mix FORTH/ASM code
             ; DTC model 3 : inlined DOCOL                  9 cycles 4 words     fastest
 
-THREADS     .equ 16 ;  1,  2 ,  4 ,  8 ,  16,  32  search entries in dictionnary.
+THREADS     .equ 16 ;  1,  2 ,  4 ,  8 ,  16,  32  search entries in word-set.
                     ; +0, +28, +48, +56, +90, +154 bytes, usefull to speed up compilation;
                     ; the FORTH interpreter is speed up by about a square root factor of THREADS.
 
-FREQUENCY   .equ 1 ; fully tested at 1,2,4,8,16,24 MHz (24 MHz for MSP430FR57xx,MSP430FR2355)
+FREQUENCY   .equ 1 ; fully tested at 1,2,4,8,16 MHz, plus 24 MHz for MSP430FR57xx,MSP430FR2355
 
-;===============================================================================
-TERMINAL_I2C  ; uncomment to select I2C_Master TERMINAL instead of UART TERMINAL
-;===============================================================================
+;   ============================================================================
+;TERMINAL_I2C ; - 12 bytes; uncomment to select I2C_Master TERMINAL instead of UART TERMINAL
+;   ============================================================================
     .IFDEF TERMINAL_I2C
 MYSLAVEADR   .equ 18
-;===============================================================================
+;   ============================================================================
     .ELSE ; UART TERMINAL
-;===============================================================================
-TERMINALBAUDRATE    .equ 115200 ; choose value considering the frequency and the UART2USB bridge, see explanations below.
-;-------------------------------------------------------------------------------
-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)
-;TERMINAL5WIRES      ; + 10 bytes    enable 5 wires with hardware flow control on RX/TX with RTS/CTS (PL2303TA/HXD, FT232RL)...
-;-------------------------------------------------------------------------------
+;   ============================================================================
+TERMINALBAUDRATE    .equ 115200 ; choose value considering the frequency, see explanations below.
+;   ----------------------------------------------------------------------------
+TERMINAL3WIRES   ;   ; + 18 bytes  enable 3 wires XON/XOFF software flow control
+TERMINAL4WIRES   ;   ; + 12 bytes  enable 4 wires RTS hardware flow control
+;TERMINAL5WIRES      ; + 10 bytes  enable 5 wires RTS/CTS hardware flow control
+;   ----------------------------------------------------------------------------
 ;HALFDUPLEX          ; switch to UART half duplex TERMINAL input
-;===============================================================================
+;   ============================================================================
     .ENDIF
+
 ;===============================================================================
-; MINIMAL ADDONS if you want a canonical FORTH: CORE_COMPLEMENT + CONDCOMP + PROMPT
+; KERNEL ADDONs that can't be added later
 ;===============================================================================
-; MINIMAL ADDONS for FAST FORTH: MSP430ASSEMBLER + CONDCOMP
+DOUBLE_INPUT        ;; +   60 bytes : adds the interpretation engine for double numbers (numbers with dot)
+FIXPOINT_INPUT      ;; +   68 bytes : adds the interpretation engine for Q15.16 numbers (numbers with comma)
+SD_CARD_LOADER      ; + 1766 bytes : to load source files from SD_card
+BOOTLOADER          ; +  132 bytes : includes in WARM process the bootloader SD_CARD\BOOT.4TH.
+SD_CARD_READ_WRITE  ; + 1148 bytes : to read, create, write and del files + copy text files from PC to target SD_Card
+;EXTENDED_MEM        ; +  506 bytes : allows assembler to execute code up to 1MB (LARGE_CODE).
+;EXTENDED_ASM        ; + 1212 bytes : extended assembler to 20 bits datas (LARGE_DATA + LARGE_CODE).
+;VOCABULARY_SET      ; +  162 bytes : adds words: WORDSET FORTH hidden PREVIOUS ONLY DEFINITIONS
+;PROMPT              ; +   18 bytes : to display prompt "ok ", for FORTH addicts.
 ;===============================================================================
-
-;-------------------------------------------------------------------------------
-; KERNEL ADDONs that can't be added later
-;-------------------------------------------------------------------------------
-MSP430ASSEMBLER     ; + 1812 bytes : adds embedded assembler with TI syntax; without, you can do all but bigger and slower...
-CONDCOMP            ; +  306 bytes : adds conditionnal compilation [IF] [ELSE] [THEN] [DEFINED] [UNDEFINED]
-DOUBLE_INPUT        ; +   56 bytes : adds the interpretation engine for double numbers (numbers with dot)
-FIXPOINT_INPUT      ; +   74 bytes : adds the interpretation engine for Q15.16 numbers (numbers with comma)
-;DEFERRED            ; +  124 bytes : adds DEFER IS :NONAME CODENNM (CODE_No_NaMe), useful for interrupts start and stop.
-;EXTENDED_MEM        ; +  740 bytes : allows assembler to execute code up to 1MB (LARGE_CODE).
-;EXTENDED_ASM        ; + 1260 bytes : extended assembler to 20 bits datas (LARGE_DATA + LARGE_CODE).
-;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          ; +  132 bytes : includes in WARM process the bootloader SD_CARD\BOOT.4TH.
-;VOCABULARY_SET      ; +  174 bytes : adds words: VOCABULARY FORTH ASSEMBLER ALSO PREVIOUS ONLY DEFINITIONS (FORTH83)
-;PROMPT              ; +   22 bytes : to display prompt "ok "
-;------------------------------------------------------------------------------- 
-
-;-------------------------------------------------------------------------------
-; OPTIONS that can be added later by downloading their source file              >-----------------------+
-; however, added here, they are protected against WIPE and Deep Reset.                                  |
-;-------------------------------------------------------------------------------                        v
-;CORE_COMPLEMENT     ; + 1974 bytes : MINIMAL OPTIONS if you want a conventional FORTH              CORECOMP.f
-;FIXPOINT            ; +  422/528 bytes add HOLDS F+ F- F/ F* F#S F. S>F                            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, CLUSTR. and SECTOR. view, (adds UTILITY)  SD_TOOLS.f
     .save
     .listing off
 ;===============================================================================
@@ -136,9 +113,9 @@ FIXPOINT_INPUT      ; +   74 bytes : adds the interpretation engine for Q15.16 n
 ; up to 460800  Bds  (2MHz)
 ; up to 921600  Bds  (4MHz)
 ; up to 1843200 Bds  (8MHz)
-; up to 3 MBds       (12MHz,PL2303HXD with shortened cable < 20cm)
-; up to 4 MBds       (16MHz,PL2303HXD with shortened cable < 20cm)
-; up to 5 MBds       (20MHz,PL2303HXD with shortened cable < 20cm)
+; up to 3 MBds       (12MHz,PL2303HXD with shortened cable < 80cm)
+; up to 4 MBds       (16MHz,PL2303HXD with shortened cable < 60cm)
+; up to 5 MBds       (20MHz,PL2303HXD with shortened cable < 40cm)
 ; up to 6 MBds       (24MHz,PL2303HXD with shortened cable < 20cm)
 
 ; UARTtoUSB module with Silabs CP2102 (supply current = 20 mA)
@@ -223,7 +200,7 @@ FIXPOINT_INPUT      ; +   74 bytes : adds the interpretation engine for Q15.16 n
 
 ; TERATERM config terminal      : NewLine receive : LF,
 ;                                 NewLine transmit : CR+LF
-;                                 Size : 128 chars x 49 lines (adjust lines to your display)
+;                                 Size : 80 chars x 44 lines (adjust lines to your display)
 
 ; TERATERM config serial port   : TERMINALBAUDRATE value,
 ;                                 8bits, no parity, 1Stopbit,
@@ -233,295 +210,10 @@ FIXPOINT_INPUT      ; +   74 bytes : adds the interpretation engine for Q15.16 n
 ; don't forget : save new TERATERM configuration !
 
 ; in fact, compared to using a UART USB bridge, only the COMx port is to be updated.
-; ------------------------------------------------------------------------------
     .restore
-    .include "ThingsInFirst.inc" ; macros, target definitions, init FORTH variables...
-;-------------------------------------------------------------------------------
-; DTCforthMSP430FR5xxx RAM memory map:
-;-------------------------------------------------------------------------------
-
-;---------------------------;---------
-; name             words    ; comment
-;---------------------------;---------
-;LSTACK = L0 = LEAVEPTR     ; ----- RAM_ORG
-                            ; |
-LSTACK_LEN .equ     16      ; | grows up
-                            ; V
-                            ; ^
-PSTACK_LEN .equ     48      ; | grows down
-                            ; |
-;PSTACK=S0                  ; ----- RAM_ORG + $80
-                            ; ^
-RSTACK_LEN .equ     48      ; | grows down
-                            ; |
-;RSTACK=R0                  ; ----- RAM_ORG + $E0
-
-;---------------------------;---------
-; names            bytes    ; comments
-;---------------------------;---------
-; PAD_I2CADR                ; ----- RAM_ORG + $E0
-; PAD_I2CCNT                ;       
-; PAD                       < ----- RAM_ORG + $E4
-                            ; |
-PAD_LEN     .equ    84      ; | grows up    (ans spec. : PAD >= 84 chars)
-                            ; v
-; TIB_I2CADR                ; ----- RAM_ORG + $138
-; TIB_I2CCNT                ;       
-; TIB                       < ----- RAM_ORG + $13C
-                            ; |
-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_BASE                 < ----- RAM_ORG + $1B2
-                            ;
-                            ;       system variables
-                            ;
-                            ; ----- RAM_ORG + $1E0
-                            ;
-                            ;       28 bytes free
-                            ;
-; SD_BUF_I2CADR             < ----- RAM_ORG + $1FC
-; SD_BUF_I2CCNT             ;
-; SD_BUF                    < ----- RAM_ORG + $200
-                            ;
-SD_BUF_LEN   .equ   200h    ;       512 bytes buffer
-                            ;
-; SD_BUF_END                < ----- RAM_ORG + $400 
-
-LSTACK          .equ RAM_ORG
-LEAVEPTR        .equ LSTACK             ; Leave-stack pointer
-PSTACK          .equ LSTACK+(LSTACK_LEN*2)+(PSTACK_LEN*2)
-RSTACK          .equ PSTACK+(RSTACK_LEN*2)
-PAD_I2CADR      .equ PAD_ORG-4
-PAD_I2CCNT      .equ PAD_ORG-2
-PAD_ORG         .equ RSTACK+4
-TIB_I2CADR      .equ TIB_ORG-4
-TIB_I2CCNT      .equ TIB_ORG-2
-TIB_ORG         .equ PAD_ORG+PAD_LEN+4
-HOLDS_ORG       .equ TIB_ORG+TIB_LEN
-
-HOLD_BASE       .equ HOLDS_ORG+HOLD_LEN
-
-; ----------------------------------------------------
-; RAM_ORG + $1B2 : RAM VARIABLES
-; ----------------------------------------------------
-HP              .equ HOLD_BASE      ; HOLD ptr
-CAPS            .equ HOLD_BASE+2    ; CAPS ON = 32, CAPS OFF = 0
-LAST_NFA        .equ HOLD_BASE+4    ; NFA, VOC_PFA, CFA, PSP of last created word
-LAST_THREAD     .equ HOLD_BASE+6    ; used by QREVEAL
-LAST_CFA        .equ HOLD_BASE+8
-LAST_PSP        .equ HOLD_BASE+10
-STATE           .equ HOLD_BASE+12   ; Interpreter state
-SOURCE          .equ HOLD_BASE+14   ; len, org of input stream
-SOURCE_LEN      .equ HOLD_BASE+14
-SOURCE_ORG      .equ HOLD_BASE+16
-TOIN            .equ HOLD_BASE+18   ; CurrentInputBuffer pointer
-DDP             .equ HOLD_BASE+20   ; dictionnary pointer
-LASTVOC         .equ HOLD_BASE+22   ; keep VOC-LINK
-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 (see NOECHO, ECHO)
-
-; --------------------------;
-; RAM_ORG + $1E0 : free use ;
-; --------------------------;
-    .IFDEF SD_CARD_LOADER
-; --------------------------------------------------
-; RAM_ORG + $1FC : RAM SD_CARD SD_BUF 4 + 512 bytes
-; --------------------------------------------------
-SD_BUF_I2CADR   .equ SD_BUF-4
-SD_BUF_I2CCNT   .equ SD_BUF-2
-SD_BUF          .equ HOLD_BASE+78
-SD_BUF_END      .equ SD_BUF + 200h   ; 512bytes
-    .ENDIF
-
-    .org    INFO_ORG
-;-------------------------------------------------------------------------------
-; INFO(DCBA) >= 256 bytes memory map (FRAM) :
+; ------------------------------------------------------------------------------
+    .include "ThingsInFirst.inc" ; macros, target definitions, RAM & INFO variables...
 ;-------------------------------------------------------------------------------
-; FRAM INFO: KERNEL INIT CONSTANTS and VARIABLES
-; ----------------------------------------------
-FREQ_KHZ        .word FREQUENCY*1000    ; used to stabilize MCLK before start, see MSP430FRxxxx.asm
-    .IFDEF TERMINAL_I2C
-I2CSLAVEADR     .word MYSLAVEADR        ; on MSP430FR2xxx devices with BSL I2C, Slave address is FFA0h
-I2CSLAVEADR1    .word 0
-LPM_MODE        .word GIE+LPM4          ; LPM4 is the default mode for I2C TERMINAL
-    .ELSE ; TERMINAL_UART
-TERMBRW_RST     .word TERMBRW_INI       ; set by TERMINALBAUDRATE.inc
-TERMMCTLW_RST   .word TERMMCTLW_INI     ; set by TERMINALBAUDRATE.inc
-LPM_MODE        .word GIE+LPM0          ; LPM0 is the default mode for UART TERMINAL
-    .ENDIF 
-RSTIV_MEM       .word -7                ; to do RESET = -3 when compiling new kernel
-RST_DP          .word ROMDICT           ; define RST_STATE
-RST_VOC         .word lastvoclink       ; define RST_STATE
-FORTHVERSION  .word VAL(SUBSTR(VER,1,0)); used by WARM
-INI_THREAD      .word THREADS           ; used by FF_SPECS.f, UTILITY.f
-FORTHADDON      .word FADDON            ; used by FF_SPECS.f and to secure donwloading of any application.f files.
-; --------------------------------------;
-WIPE_INI                                ; MOV #WIPE_INI,X       ; WIPE_INI constants are in FRAM INFO= DEEP_RESET init
-; --------------------------------------;
-    .IFNDEF SD_CARD_LOADER
-WIPE_COLD       .word COLD_TERM         ; MOV @X+,&PFACOLD      ; COLD_TERM     --> PFACOLD
-WIPE_INI_FORTH  .word RET_ADR           ; MOV @X+,&PFA_INI_FORTH; RET_ADR       --> PFA_INI_FORTH
-WIPE_SLEEP      .word RXON              ; MOV @X+,&PFASLEEP     ; RXON          --> PFASLEEP
-WIPE_WARM       .word INIT_TERM         ; MOV @X+,&PFAWARM      ; INIT_TERM     --> PFAWARM
-    .ELSE
-WIPE_COLD       .word COLD_TERM         ; MOV @X+,&PFACOLD      ; COLD_TERM     --> PFACOLD
-WIPE_INI_FORTH  .word INI_SOFT_SD       ; MOV @X+,&PFA_INI_FORTH; INI_SOFT_SD   --> PFA_INI_FORTH 
-WIPE_SLEEP      .word RXON              ; MOV @X+,&PFASLEEP     ; RXON          --> PFASLEEP
-WIPE_WARM       .word INI_HARD_SD       ; MOV @X+,&PFAWARM      ; INI_HARD_SD   --> PFAWARM
-    .ENDIF
-WIPE_TERM_INT   .word TERMINAL_INT      ; MOV @X+,&TERM_VEC     ; TERMINAL_INT  --> TERM_VEC
-WIPE_DP         .word ROMDICT           ; MOV @X+,&RST_DP       ; ROMDICT       --> RST_DP   
-WIPE_VOC        .word lastvoclink       ; MOV @X+,&RST_VOC      ; lastvoclink   --> RST_VOC
-; --------------------------------------;
-INI_FORTH_INI                           ; MOV #INI_FORTH_INI,X, to reset all kernel variables
-; --------------------------------------;
-INI_FORTH_ACCEPT    .word BODYACCEPT    ; MOV @X+,&PFAACCEPT    ; BODYACCEPT    --> PFAACCEPT
-INI_FORTH_CR        .word BODYCR        ; MOV @X+,&PFACR        ; BODYCR        --> PFACR
-INI_FORTH_EMIT      .word BODYEMIT      ; MOV @X+,&PFAEMIT      ; BODYEMIT      --> PFAEMIT
-INI_FORTH_KEY       .word BODYKEY       ; MOV @X+,&PFAKEY       ; BODYKEY       --> PFAKEY
-INI_FORTH_CIB       .word TIB_ORG       ; MOV @X+,&CIB_ADR      ; TIB_ORG       --> CIB_ADR
-; --------------------------------------;
-HALF_FORTH_INI                          ; MOV #HALF_FORTH_INI,X to preserve defered words
-; --------------------------------------;
-    .SWITCH DTC
-        .CASE 1
-INI_FORTH_COL   .word xDOCOL            ; MOV @X+,rDOCOL        ; init rDOCOL   (R4)
-        .CASE 2
-INI_FORTH_COL   .word EXIT              ; MOV @X+,rDOCOL        ; init rDOCOL   (R4)
-        .CASE 3
-                .word 0                 ; MOV @X+,R4            ; rDOCOL doesn't exist
-    .ENDCASE
-INI_FORTH_DOES  .word xDODOES           ; MOV @X+,rDODOES       ; init rDODOES  (R5)
-INI_FORTH_CON   .word xDOCON            ; MOV @X+,rDOCON        ; init rDOCON   (R6)
-INI_FORTH_VAR   .word RFROM             ; MOV @X+,rDOVAR        ; init rDOVAR   (R7)
-INI_FORTH_CAPS  .word 32                ; MOV @X+,&CAPS         ; 32            --> CAPS
-INI_FORTH_BASE  .word 10                ; MOV @X+,&BASE         ; 10            --> BASE
-; --------------------------------------;
-USER_END        .word 0
-                .word 0
-                .word 0
-                .word 0
-
-
-    .IFDEF SD_CARD_LOADER
-; ---------------------------------------
-; VARIABLES that should be in RAM
-; ---------------------------------------
-        .IF RAM_LEN < 2048              ; if RAM < 2K (FR57xx) the variables below are in INFO space (FRAM)
-SD_ORG     .equ INFO_ORG+5Ah            ;
-        .ELSE                           ; if RAM >= 2k the variables below are in RAM
-SD_ORG     .equ SD_BUF_END+2            ; 1 word guard
-        .ENDIF
-
-    .org SD_ORG
-; ---------------------------------------
-; 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
-
-; ---------------------------------------
-; SD command
-; ---------------------------------------
-SD_LOW_LEVEL    .equ SD_ORG+18
-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
-; ---------------------------------------
-; SD_BUF management
-; ---------------------------------------
-BufferPtr       .equ SD_LOW_LEVEL+10
-BufferLen       .equ SD_LOW_LEVEL+12
-; ---------------------------------------
-; FAT entry
-; ---------------------------------------
-SD_FAT_LEVEL    .equ SD_LOW_LEVEL+14
-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
-; ---------------------------------------
-DIRClusterL     .equ SD_FAT_LEVEL+10    ; contains the Cluster of current directory ; = 1 as FAT16 root directory
-DIRClusterH     .equ SD_FAT_LEVEL+12    ; contains the Cluster of current directory ; = 1 as FAT16 root directory
-EntryOfst       .equ SD_FAT_LEVEL+14
-; ---------------------------------------
-; Handle Pointer
-; ---------------------------------------
-CurrentHdl      .equ SD_FAT_LEVEL+16    ; contains the address of the last opened file structure, or 0
-; ---------------------------------------
-; Load file operation
-; ---------------------------------------
-pathname        .equ SD_FAT_LEVEL+18    ; start address
-EndOfPath       .equ SD_FAT_LEVEL+20    ; end address
-; ---------------------------------------
-; Handle structure
-; ---------------------------------------
-FirstHandle     .equ SD_FAT_LEVEL+22
-; three handle tokens :
-; HDLB_Token= 0 : free handle
-;           = 1 : file to read
-;           = 2 : file updated (write)
-;           =-1 : LOAD"ed file (source file)
-
-; offset values
-HDLW_PrevHDL    .equ 0  ; previous handle
-HDLB_Token      .equ 2  ; token
-HDLB_ClustOfst  .equ 3  ; Current sector offset in current cluster (Byte)
-HDLL_DIRsect    .equ 4  ; Dir SectorL
-HDLH_DIRsect    .equ 6  ; Dir SectorH
-HDLW_DIRofst    .equ 8  ; SD_BUF offset of Dir entry
-HDLL_FirstClus  .equ 10 ; File First ClusterLo (identify the file)
-HDLH_FirstClus  .equ 12 ; File First ClusterHi (identify the file)
-HDLL_CurClust   .equ 14 ; Current ClusterLo
-HDLH_CurClust   .equ 16 ; Current ClusterHi
-HDLL_CurSize    .equ 18 ; written size / not yet read size (Long)
-HDLH_CurSize    .equ 20 ; written size / not yet read size (Long)
-HDLW_BUFofst    .equ 22 ; SD_BUF offset ; used by LOAD"
-HDLW_PrevLEN    .equ 24 ; previous LEN
-HDLW_PrevORG    .equ 26 ; previous ORG
-
-    .IF RAM_LEN < 2048     ; due to the lack of RAM, only 4 handles and PAD replaces SDIB
-HandleMax       .equ 4 ; and not 8 to respect INFO size (FRAM)
-HandleLenght    .equ 28
-HandlesLen      .equ handleMax*HandleLenght
-HandleEnd       .equ FirstHandle+handleMax*HandleLenght
-SD_END          .equ HandleEnd
-SDIB_I2CADR     .equ PAD_ORG-4
-SDIB_I2CCNT     .equ PAD_ORG-2
-SDIB_ORG        .equ PAD_ORG
-    .ELSE      ; RAM_Size >= 2k all is in RAM
-HandleMax       .equ 8
-HandleLenght    .equ 28
-HandlesLen      .equ handleMax*HandleLenght
-HandleEnd       .equ FirstHandle+handleMax*HandleLenght
-SDIB_I2CADR     .equ SDIB_ORG-4
-SDIB_I2CCNT     .equ SDIB_ORG-2
-SDIB_ORG        .equ HandleEnd+4
-SDIB_LEN        .equ 84             ; = TIB_LEN = PAD_LEN
-SD_END          .equ SDIB_ORG+SDIB_LEN
-    .ENDIF ; RAM_Size
-SD_LEN          .equ SD_END-SD_ORG
-    .ENDIF ; SD_CARD_LOADER
-; --------------------------;
-; INFO_ORG + $40 : free use ;
-; --------------------------;
-
     .org    MAIN_ORG
 ;-------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx program (FRAM) memory
@@ -530,125 +222,77 @@ SD_LEN          .equ SD_END-SD_ORG
 ; Users can access them via declarations made in \inc\MSP430FRxxxx.pat
 ;
 ;###############################################################################
-; ╦┌┐┌┌┬┐┌─┐┬─┐┬─┐┬ ┬┌─┐┌┬┐┌─┐  ┌─┐┌─┐┬  ┬    ┌┬┐┌─┐┬ ┬┌┐┌  ┬ ┬┌─┐┬─┐┌─┐
-; ║│││ │ ├┤ ├┬┘├┬┘│ │├─┘ │ └─┐  ├┤ ├─┤│  │     │││ │││││││  ├─┤├┤ ├┬┘├┤ 
-; ╩┘└┘ ┴ └─┘┴└─┴└─└─┘┴   ┴ └─┘  └  ┴ ┴┴─┘┴─┘  ─┴┘└─┘└┴┘┘└┘  ┴ ┴└─┘┴└─└─┘
-;###############################################################################
-SLEEP
 ; here, FAST FORTH sleeps, waiting any interrupt. With LPM4, supply current is below 1uA.
 ; IP,S,T,W,X,Y registers (R13 to R8) are free...
 ; ...and so TOS, PSP and RSP stacks within their rules of use.
 ;
+; ; remember: to force SLEEP execution, you must end any interrupt routine with :
+; ;               BIC #%0_1111_000,0(RSP) ; 4~
+; ;               RETI                    ; 5~    4 words
+; ;
 ; remember: to force SLEEP execution, you must end any interrupt routine with :
 ;               MOV @RSP+,SR        ; 2~
-;               BIC #%1111_1000,SR  ; 2~
+;               BIC #%0_1111_000,SR ; 2~
 ;               RET                 ; 3~    4 words
 ;
-;           or faster (but return SR flags will be lost) with: 
+;           or faster (but SR flags will be lost):
 ;               ADD #2 RSP          ; 1~
 ;               RET                 ; 3~    2 words
 ;
-            CALL @PC+           ;4  SLEEP first calls BACKGND_APP 
-PFASLEEP    .word RXON          ;   BACKGND_DEF = RXON as default BACKGND_APP; value set by WIPE.
+SLEEP       CALL &SLEEP_APP     ;   BACKGND_DEF = UART_RXON/I2C_ACCEPT as default BACKGND_APP; value set by DEEP.
             BIS &LPM_MODE,SR    ;2  enter in LPMx mode with GIE=1
-            JMP SLEEP           ;2  instruction always executed before CPU asleeping.
-;                                                                                   
+            JMP SLEEP           ;2  return off any interrupts else TERMINAL_INT
+;
 ;###############################################################################
 
 ; ------------------------------------------------------------------------------
 ; COMPILING OPERATORS
 ; ------------------------------------------------------------------------------
-; Primitive LIT; compiled by LITERAL
+; Primitive lit; compiled by LITERAL
 ; lit      -- x    fetch inline literal to stack
 ; This is the run-time code 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
-
+lit         SUB #2,PSP          ; 1  save old TOS..
+            MOV TOS,0(PSP)      ; 3  ..onto stack
+            MOV @IP+,TOS        ; 2  fetch new TOS value
+            MOV @IP+,PC         ; 4  NEXT
+
+TWODUP_XSQUOTE                  ; used by [ELSE]
+            MOV TOS,-2(PSP)     ; 3
+            MOV @PSP,-4(PSP)    ; 4
+            SUB #4,PSP          ; 1
 ; Primitive XSQUOTE; compiled by SQUOTE
 ; (S")     -- addr u   run-time code to get address and length of a compiled string.
-XSQUOTE     SUB #4,PSP      ; 1 -- x x TOS      ; push old TOS on stack
-            MOV TOS,2(PSP)  ; 3 -- TOS x x      ; and reserve one cell on stack
-            MOV.B @IP+,TOS  ; 2 -- x u          ; u = lenght of string
-            MOV IP,0(PSP)   ; 3 -- addr u       IP is odd...
-            ADD TOS,IP      ; 1 -- addr u       IP=addr+u=addr(end_of_string)
-            BIT #1,IP       ; 1 -- addr u       IP=addr+u   Carry set/clear if odd/even
-            ADDC #0,IP      ; 1 -- addr u       IP=addr+u aligned
-            MOV @IP+,PC     ; 4  16~
+XSQUOTE     SUB #4,PSP          ; 1                 push old TOS on stack
+            MOV TOS,2(PSP)      ; 3                 and reserve one cell on stack
+            MOV.B @IP+,TOS      ; 2 -- ? u          u = lenght of string
+            MOV IP,0(PSP)       ; 3 -- addr u       IP is odd...
+            ADD TOS,IP          ; 1 -- addr u       IP=addr+u=addr(end_of_string)
+            BIT #1,IP           ; 1 -- addr u       IP=addr+u   Carry set/clear if odd/even
+            ADDC #0,IP          ; 1 -- addr u       IP=addr+u aligned
+            MOV @IP+,PC         ; 4  16~
 
 ; https://forth-standard.org/standard/core/HERE
-; HERE    -- addr      returns memory ptr
-HERE        SUB #2,PSP
+; HERE    -- addr      returns memory program ptr
+HEREXEC     SUB #2,PSP
             MOV TOS,0(PSP)
-            MOV &DDP,TOS
+            MOV &DP,TOS
             MOV @IP+,PC
-;-------------------------------------------------------------------------------
-; BRANCH run-time
-;-------------------------------------------------------------------------------
-; Primitive QFBRAN; compiled by IF UNTIL 
-;Z ?FalseBranch   x --      ; branch if TOS is FALSE (TOS = 0)
-QFBRAN      CMP #0,TOS      ; 1  test TOS value
-            MOV @PSP+,TOS   ; 2  pop new TOS value (doesn't change flags)
-            JNZ SKIPBRANCH  ; 2  if TOS was <> 0, skip the branch; 10 cycles
-; Primitive BRAN
-;Z branch   --              ;
-BRAN        MOV @IP,IP      ; 2  take the branch destination
-            MOV @IP+,PC     ; 4  ==> branch taken
-
-;-------------------------------------------------------------------------------
-; LOOP run-time
-;-------------------------------------------------------------------------------
-; Primitive XDO; compiled by DO         
-;Z (do)    n1|u1 n2|u2 --  R: -- sys1 sys2      run-time code for DO
-;                                               n1|u1=limit, n2|u2=index
-XDO         MOV #8000h,X    ;2 compute 8000h-limit = "fudge factor"
-            SUB @PSP+,X     ;2
-            MOV TOS,Y       ;1 loop ctr = index+fudge
-            MOV @PSP+,TOS   ;2
-            ADD X,Y         ;1 Y = INDEX
-            PUSHM #2,X      ;4 PUSHM X,Y, i.e. PUSHM LIMIT, INDEX
-            MOV @IP+,PC     ;4
 
-; Primitive XPLOOP; compiled by +LOOP
-;Z (+loop)   n --   R: sys1 sys2 --  | sys1 sys2
-;                        run-time code for +LOOP
-; Add n to the loop index.  If loop terminates, clean up the
-; return stack and skip the branch. Else take the inline branch.
-XPLOOP      ADD TOS,0(RSP)  ;4 increment INDEX by TOS value
-            MOV @PSP+,TOS   ;2 get new TOS, doesn't change flags
-XLOOPNEXT   BIT #100h,SR    ;2 is overflow bit set?
-            JZ BRAN         ;2 no overflow = loop
-            ADD #4,RSP      ;1 empty RSP
-SKIPBRANCH  ADD #2,IP       ;1 overflow = loop done, skip branch ofs
-            MOV @IP+,PC     ;4 16~ taken or not taken xloop/loop
-
-; Primitive XLOOP; compiled by 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
-; return stack and skip the branch.  Else take the inline branch.
-; Note that LOOP terminates when index=8000h.
-XLOOP       ADD #1,0(RSP)   ;4 increment INDEX
-            JMP XLOOPNEXT   ;2
-
-; primitive MUSMOD; compiled by ?NUMBER UM/MOD
-; MUSMOD    UDVDlo UDVDhi UDIVlo -- UREMlo UQUOTlo UQUOThi
+; primitive MU/MOD; used by ?NUMBER UM/MOD, and M*/ in DOUBLE word set
+; MU/MOD    UDVDlo UDVDhi UDIVlo -- UREMlo UQUOTlo UQUOThi
 ;-------------------------------------------------------------------------------
-; unsigned 32-BIT DiViDend : 16-BIT DIVisor --> 32-BIT QUOTient, 16-BIT REMainder
+; unsigned 32-BIT DiViDend : 16-BIT DIVisor --> 32-BIT QUOTient 16-BIT REMainder
 ;-------------------------------------------------------------------------------
+; two times faster if 16 bits DiViDend (cases of U. and . among others)
 
-; 2 times faster if DVDhi = 0 (it's the general case)
-
-; reg     division            MU/MOD      NUM
-; ---------------------------------------------
-; S     = DVD(15-0)         = ud1lo     = ud1lo
-; TOS   = DVD(31-16)        = ud1hi     = ud1hi
-; W     = DVD(47-32)/REM    = rem       = digit --> char --> -[HP]
-; T     = DIV(15-0)         = BASE      = BASE
-; X     = QUOTlo            = ud2lo     = ud2lo
-; Y     = QUOThi            = ud2hi     = ud2hi
+; reg     division            MU/MOD      NUM                       M*/
+; ---------------------------------------------------------------------
+; S     = DVD(15-0)         = ud1lo     = ud1lo                     ud1lo
+; TOS   = DVD(31-16)        = ud1hi     = ud1hi                     ud1mi
+; W     = DVD(47-32)/REM    = rem       = digit --> char --> -[HP]  ud1hi
+; T     = DIV(15-0)         = BASE      = BASE                      ud2
+; X     = QUOTlo            = ud2lo     = ud2lo                     QUOTlo
+; Y     = QUOThi            = ud2hi     = ud2hi                     QUOThi
 ; rDODOES = count
 
 MUSMOD      MOV TOS,T               ;1 T = DIVlo
@@ -658,12 +302,12 @@ MUSMOD1     MOV #0,W                ;1  W = REMlo = 0
             MOV #32,rDODOES         ;2  init loop count
             CMP #0,TOS              ;1  DVDhi=0 ?
             JNZ MDIV1               ;2  no
-; -----------------------------------------
+; ----------------------------------;
 MDIV1DIV2   RRA rDODOES             ;1  yes:loop count / 2
             MOV S,TOS               ;1      DVDhi <-- DVDlo
             MOV #0,S                ;1      DVDlo <-- 0
             MOV #0,X                ;1      QUOTlo <-- 0 (to do QUOThi = 0 at the end of division)
-; -----------------------------------------
+; ----------------------------------;
 MDIV1       CMP T,W                 ;1  REMlo U>= DIVlo ?
             JNC MDIV2               ;2  no : carry is reset
             SUB T,W                 ;1  yes: REMlo - DIVlo ; carry is set
@@ -682,77 +326,79 @@ ENDMDIV     MOV #XDODOES,rDODOES    ;2  restore rDODOES
             MOV W,2(PSP)            ;3  REMlo in 2(PSP)
             MOV X,0(PSP)            ;3  QUOTlo in 0(PSP)
             MOV Y,TOS               ;1  QUOThi in TOS
-RET_ADR     MOV @RSP+,PC            ;4  35 words, about 473 cycles, not FORTH executable !
+RET_ADR     MOV @RSP+,PC            ;4  35 words, about 466/246 cycles, not FORTH executable !
 
-; : SETIB SOURCE 2! 0 >IN ! ;       
+; : SETIB SOURCE 2! 0 >IN ! ;
 ; SETIB      org len --        set Input Buffer, shared by INTERPRET and [ELSE]
 SETIB       MOV TOS,&SOURCE_LEN     ; -- org len
             MOV @PSP+,&SOURCE_ORG   ; -- len
             MOV #0,&TOIN            ;
-            MOV @PSP+,TOS           ; --
+DROP        MOV @PSP+,TOS           ; --
             MOV @IP+,PC             ;
 
 ; REFILL    accept one line to input buffer and leave org len' of the filled input buffer
 ; as it has no more host OS and as waiting command is done by ACCEPT, REFILL's flag is useless
-; : REFILL TIB DUP TIB_LEN ACCEPT   ;   -- org len'    shared by QUIT and [ELSE]
-REFILL      SUB #6,PSP              ;2
-            MOV TOS,4(PSP)          ;3
-            MOV #TIB_LEN,TOS        ;2  -- x x len 
+; : REFILL TIB DUP CIB_LEN ACCEPT   ;   -- org len'     shared by QUIT and [ELSE]
+REFILL      SUB #4,PSP              ;1
+            MOV TOS,2(PSP)          ;3                  save TOS
+TWODROP_REFILL                      ;                   see [ELSE]
+            MOV #CIB_LEN,TOS        ;2  -- x len        Current Input Buffer LENght
             .word 40BFh             ;                   MOV #imm,index(PSP)
-CIB_ADR     .word TIB_ORG           ;                   imm=TIB_ORG
-            .word 0                 ;4  -- x org len    index=0 ==> MOV #TIB_ORG,0(PSP)
-            MOV @PSP,2(PSP)         ;4  -- org org len
+CIB_ORG     .word TIB_ORG           ;                   imm=TIB_ORG
+            .word 0                 ;4  -- org len      index=0 ==> MOV #TIB_ORG,0(PSP)
+            MOV @PSP,-2(PSP)        ;4  -- org len
+            SUB #2,PSP              ;1  -- org org len
             JMP ACCEPT              ;2  org org len -- org len'
 
-XDODOES   ; -- addr                 ; 4 for CALL rDODOES       S-- BODY      PFA  R-- 
+; Primitive QFBRAN; compiled by IF UNTIL
+;Z ?FalseBranch   x --              ; branch if TOS is FALSE (TOS = 0)
+QFBRAN      CMP #0,TOS              ; 1  test TOS value
+            MOV @PSP+,TOS           ; 2  pop new TOS value (doesn't change flags)
+ZBRAN       JNZ SKIPBRANCH          ; 2  if TOS was <> 0, skip the branch; 10 cycles
+BRAN        MOV @IP,IP              ; 2  take the branch destination
+            MOV @IP+,PC             ; 4  ==> branch taken, 11 cycles
+
+XDODOES                             ; 4 for CALL rDODOES
             SUB #2,PSP              ;+1
             MOV TOS,0(PSP)          ;+3 save TOS on parameters stack
             MOV @RSP+,TOS           ;+2 TOS = PFA address of master word, i.e. address of its first cell after DOES>
             PUSH IP                 ;+3 save IP on return stack
             MOV @TOS+,IP            ;+2 IP = CFA of Master word, TOS = BODY address of created word
             MOV @IP+,PC             ;+4 = 19~ = ITC-2
-    
-XDOCON                              ; 4 for CALL rDOCON       S-- CTE      PFA  R--       
-            SUB #2,PSP              ;+1    
+
+XDOCON                              ; 4 for CALL rDOCON
+            SUB #2,PSP              ;+1
             MOV TOS,0(PSP)          ;+3 save TOS on parameters stack
             MOV @RSP+,TOS           ;+2 TOS = PFA address of master word CONSTANT
             MOV @TOS,TOS            ;+2 TOS = CONSTANT value
             MOV @IP+,PC             ;+4 = 16~ = ITC+4
 
-; https://forth-standard.org/standard/core/Rfrom
-; R>    -- x    R: x --   pop from return stack
-RFROM
-XDOVAR                              ; 4 for CALL rDOVAR    ADR -- VAR      
-            SUB #2,PSP              ;+1
-            MOV TOS,0(PSP)          ;+3
-            MOV @RSP+,TOS           ;+2
-            MOV @IP+,PC             ;+4 = 14~ = ITC+4
-
-;-----------------------------------; 
-; PUC 6.1: init Forth engine        ; common part of QABORT|WARM
-;-----------------------------------; 
-INI_FORTH                           ;
-            CALL @PC+               ;
-PFA_INI_FORTH
-    .IFNDEF SD_CARD_LOADER
-            .word RET_ADR           ; INI_SOFT_APP default value
-    .ELSE
-            .word INI_SOFT_SD       ; init software SD_Card : close all handles
-    .ENDIF
-            MOV #INI_FORTH_INI,X    ; in FRAM INFO
+;-----------------------------------;
+INIT_FORTH                          ; common part of QABORT|WARM|PUC
+;-----------------------------------;
+            CALL &SOFT_APP          ; init SOFT_APP
+            MOV @RSP+,IP            ; init IP with CALLER next address
+;                                   ;
+            MOV #PUC_ABORT_ORG,X    ; FRAM INFO         FRAM MAIN
+;                                   ; ---------         ---------
             MOV @X+,&PFAACCEPT      ; BODYACCEPT    --> PFAACCEPT
-            MOV @X+,&PFACR          ; BODYCR        --> PFACR
             MOV @X+,&PFAEMIT        ; BODYEMIT      --> PFAEMIT
             MOV @X+,&PFAKEY         ; BODYKEY       --> PFAKEY
-            MOV @X+,&CIB_ADR        ; TIB_ORG       --> CIB_ADR
-            MOV @X+,rDOCOL          ;               --> rDOCOL
-            MOV @X+,rDODOES         ; xDODOES       --> rDODOES
-            MOV @X+,rDOCON          ; xDOCON        --> rDOCON
-            MOV @X+,rDOVAR          ; RFROM         --> rDOVAR
-            MOV @X+,&CAPS           ; 32            --> CAPS            init CAPS ON
-            MOV @X+,&BASE           ; 10            --> BASE            init decimal base
-            MOV @RSP+,IP            ; init IP with RET_ADR = LIT|WARM from resp. QABORT|RESET
-            MOV #SEL_P_R_D,PC       ; goto PUC 6.2 to select PWR_STATE|RST_STATE|DEEP_RESET
+            MOV @X+,&CIB_ORG        ; TIB_ORG       --> CIB_ORG
+;                                   ;
+;                                   ; FRAM INFO         REG|RAM
+;                                   ; ---------         -------
+            MOV @X+,RSP             ; INIT_RSTACK   --> R1=RSP
+            MOV @X+,rDOCOL          ; INIT_DTC      --> R4=rDOCOL
+            MOV @X+,rDODOES         ; INIT_DODOES   --> R5=rDODOES
+            MOV @X+,rDOCON          ; INIT_DOCON    --> R6=rDOCON
+            MOV @X+,rDOVAR          ; INIT_RFROM    --> R7=rDOVAR
+            MOV @X+,&CAPS           ; INIT_CAPS     --> RAM CAPS            init CAPS ON
+            MOV @X+,&BASEADR        ; INIT_BASE     --> RAM BASE            init decimal base
+            MOV @X+,&LEAVEPTR       ; INIT_LEAVE    --> RAM LEAVEPTR
+            MOV #0,&STATE           ; 0             --> RAM STATE
+            MOV #SEL_RST_DEP,PC     ; goto PUC 7 to select the user's choice from TOS value:    RST_RET|DEEP_RESET
+;-----------------------------------;
 
     .IFDEF TERMINAL_I2C
         .include "forthMSP430FR_TERM_I2C.asm"
@@ -767,7 +413,7 @@ PFA_INI_FORTH
         .include "forthMSP430FR_SD_ACCEPT.asm"
     .ENDIF
 
-    .IF DTC = 1                     ; DOCOL = CALL rDOCOL, [rDOCOL] = xdocol
+    .IF DTC = 1                     ; DOCOL = CALL rDOCOL, [rDOCOL] = XDOCOL
 XDOCOL      MOV @RSP+,W             ; 2
             PUSH IP                 ; 3     save old IP on return stack
             MOV W,IP                ; 1     set new IP to PFA
@@ -776,169 +422,189 @@ XDOCOL      MOV @RSP+,W             ; 2
 
             FORTHWORD "TYPE"
 ;https://forth-standard.org/standard/core/TYPE
-;C TYPE    adr len --     type string to terminal
-TYPE        CMP #0,TOS              ;1
-            JZ TWODROP              ;2                  abort fonction
-            PUSH IP                 ;3
+;C TYPE    adr u --     type string to terminal
+TYPE        PUSH IP                 ;3
             MOV #TYPE_NEXT,IP       ;2
-TYPELOOP    MOV @PSP,Y              ;2 -- adr len       Y = adr
-            SUB #2,PSP              ;1 -- adr x len
-            MOV TOS,0(PSP)          ;3 -- adr len len
-            MOV.B @Y+,TOS           ;2 -- adr len char
-            MOV Y,2(PSP)            ;3 -- adr+1 len char
-            MOV &PFAEMIT,PC         ;5+17               all scratch registers must be and are free
-TYPE_NEXT   .word $+2               ;  -- adr+1 len
+;            PUSHM #2,X              ;4                 push X Y
+            MOV @PSP,X              ;2 -- adr len       X = adr
+TYPELOOP    MOV TOS,0(PSP)          ;3 -- len len
+            MOV.B @X+,TOS           ;2 -- len char
+            JMP EMIT                ;2                  ~17, S T W regs are free
+TYPE_NEXT   mNEXTADR                ;  -- len
             SUB #2,IP               ;1                  [IP] = TYPE_NEXT
-            SUB #1,TOS              ;1 -- adr+1 len-1
-            JNZ TYPELOOP            ;2                  37~ EMIT loop
-            MOV @RSP+,IP            ;3 -- adr+len 0
+            SUB #2,PSP              ;1 -- x len
+            SUB.B #1,TOS            ;1 -- x len-1       byte operation, according to the /COUNTED-STRING value
+            JNZ TYPELOOP            ;2                  29~ EMIT loop
+;            POPM #2,X               ;4                   pop Y X
+            MOV @RSP+,IP            ;2 -- x 0
 TWODROP     ADD #2,PSP              ;1 -- 0
-DROP        MOV @PSP+,TOS           ;2 --
+            MOV @PSP+,TOS           ;2 --
             MOV @IP+,PC             ;4
 
-            FORTHWORD "CR"
-; https://forth-standard.org/standard/core/CR
-; CR      --               send CR to the output device
-CR          MOV @PC+,PC             ;3 Code Field Address (CFA) of CR
-PFACR       .word   BODYCR          ;  Parameter Field Address (PFA) of CR, with its default value
-BODYCR      mDOCOL                  ;  send CR+LF to the default output device
-            .word   XSQUOTE
-            .byte   2,13,10
-            .word   TYPE,EXIT
+BL          CALL rDOCON
+            .word   20h
+
+; ------------------------------------------------------------------------------
+; forthMSP430FR :  CONDITIONNAL COMPILATION, 114/109 words
+; ------------------------------------------------------------------------------
+; BRanch if BAD strings COMParaison, [COMPARE ZEROEQUAL QFBRAN] replacement
+BRBADCOMP                   ; -- addr1 u1 addr2 u2
+            MOV TOS,S       ;1          S = u2
+            MOV @PSP+,Y     ;2          Y = addr2
+            CMP @PSP+,S     ;2          u1 = u2 ?
+            MOV @PSP+,X     ;2          X = addr1
+            MOV @PSP+,TOS   ;2 --
+            JNZ BRAN        ;2 --       branch if u1<>u2, 11+6 cycles
+COMPLOOP    CMP.B @Y+,0(X)  ;4
+            JNZ BRAN        ;2 --       if char1<>char2; branch on first char <> in 17+6 cycles
+            ADD #1,X        ;1          addr1+1
+            SUB #1,S        ;1          u2-1
+            JNZ COMPLOOP    ;2          10 cycles char comp loop
+SKIPBRANCH  ADD #2,IP       ;1
+            MOV @IP+,PC     ;4
+
+; [TWODROP ONEMINUS ?DUP ZEROEQUAL QFBRAN next_comp EXIT] replacement
+BRNEXTCMP                   ;    -- cnt addr u
+            ADD #2,PSP      ;1   -- cnt addr    TWODROP
+            MOV @PSP+,TOS   ;2   -- cnt
+            SUB #1,TOS      ;3   -- cnt-1       ONEMINUS
+            JNZ BRAN        ;2   -- cnt-1       branch to next comparaison if <> 0
+            JZ DROPEXIT     ;19w                else DROP EXIT
+
+            FORTHWORDIMM  "[ELSE]"
+; https://forth-standard.org/standard/tools/BracketELSE
+; [ELSE]      a small and fast definition
+;Compilation:
+;Perform the execution semantics given below.
+;Execution:
+;( "<spaces>name ..." -- )
+;Skipping leading spaces, parse and discard space-delimited words from the parse area,
+;including nested occurrences of [IF] ... [THEN] and [IF] ... [ELSE] ... [THEN],
+;until the word [THEN] has been parsed and discarded.
+;If the parse area becomes exhausted, it is refilled as with REFILL.
+BRACKETELSE
+            mDOCOL
+            .word   lit,0                   ; -- 0
+BRACKETELSE0
+            .word   ONEPLUS                 ; -- cnt+1
+BRACKETELSE1                                ;
+            .word   BL,WORDD,COUNT          ; -- cnt addr u   Z=1 if U=0
+            .word   ZBRAN,BRACKETELSE5      ;       u = 0 if end of line --> refill buffer then loop back
+            .word   TWODUP_XSQUOTE          ;    oui je sais, c'est pas beau mais c'est efficace....
+            .byte   6,"[THEN]"              ; -- cnt addr u addr u addr2 u2
+            .word   BRBADCOMP,BRACKETELSE2  ; -- cnt addr u      if bad string comparaison, jump for next comparaison
+            .word   BRNEXTCMP,BRACKETELSE1  ; 2DROP,  count-1, loop back if count <> 0, else DROP EXIT
+BRACKETELSE2                                ;
+            .word   TWODUP_XSQUOTE          ;
+            .byte   6,"[ELSE]"              ;
+            .word   BRBADCOMP,BRACKETELSE3  ; if bad string comparaison, jump for next comparaison
+            .word   BRNEXTCMP,BRACKETELSE0  ; 2DROP, count-1, loop back with count+1 if count <> 0, else DROP EXIT
+BRACKETELSE3                                ;
+            .word   XSQUOTE                 ;
+            .byte   4,"[IF]"                ;
+            .word   BRBADCOMP,BRACKETELSE1  ; if bad string comparaison, loop back
+            .word   BRAN,BRACKETELSE0       ; else loop back with count+1
+BRACKETELSE5                                ;
+;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
+; OPTION                                    ; +5 words option
+;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv;
+            .word   XSQUOTE                 ;
+            .byte   5,13,"ko ",10           ;
+            .word   TYPE                    ; CR ." ko " LF     to show false branch of conditionnal compilation
+;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
+            .word   TWODROP_REFILL          ; REFILL Input Buffer with next line
+            .word   SETIB                   ; SET Input Buffer pointers SOURCE_LEN, SOURCE_ORG and clear >IN
+            .word   BRAN,BRACKETELSE1       ; then loop back   45/40 words with/without option
+
+            FORTHWORDIMM "[THEN]"   ; do nothing
+; https://forth-standard.org/standard/tools/BracketTHEN
+; [THEN]
+BRACKETTHEN  MOV @IP+,PC
+
+            FORTHWORDIMM "[IF]" ; flag --
+; https://forth-standard.org/standard/tools/BracketIF
+; [IF]
+;Compilation:
+;Perform the execution semantics given below.
+;Execution: ;( flag | flag "<spaces>name ..." -- )
+;If flag is true, do nothing. Otherwise, skipping leading spaces,
+;   parse and discard space-delimited words from the parse area,
+;   including nested occurrences of [IF] ... [THEN] and [IF] ... [ELSE] ... [THEN],
+;   until either the word [ELSE] or the word [THEN] has been parsed and discarded.
+;If the parse area becomes exhausted, it is refilled as with REFILL. [IF] is an immediate word.
+;An ambiguous condition exists if [IF] is POSTPONEd,
+;   or if the end of the input buffer is reached and cannot be refilled before the terminating [ELSE] or [THEN] is parsed.
+BRACKETIF   CMP #0,TOS      ; -- f
+            MOV @PSP+,TOS   ; --
+            JZ BRACKETELSE  ;       if false flag output
+            MOV @IP+,PC     ;       if true flag output
+
+            FORTHWORDIMM  "[DEFINED]"
+; https://forth-standard.org/standard/tools/BracketDEFINED
+; [DEFINED]
+;Compilation:
+;Perform the execution semantics given below.
+;Execution:
+;( "<spaces>name ..." -- flag )
+;Skip leading space delimiters. Parse name delimited by a space.
+;Return a true flag if name is the name of a word that can be found,
+;otherwise return a false flag. [DEFINED] is an immediate word.
+DEFINED     mDOCOL
+            .word   BL,WORDD,FIND
+            .word   NIP,EXIT
+
+
+            FORTHWORDIMM  "[UNDEFINED]"
+; https://forth-standard.org/standard/tools/BracketUNDEFINED
+; [UNDEFINED]
+;Compilation:
+;Perform the execution semantics given below.
+;Execution: ( "<spaces>name ..." -- flag )
+;Skip leading space delimiters. Parse name delimited by a space.
+;Return a false flag if name is the name of a word that can be found,
+;otherwise return a true flag.
+            mDOCOL
+            .word   BL,WORDD,FIND
+            mNEXTADR
+            MOV @RSP+,IP
+            ADD #2,PSP      ; NIP
+; https://forth-standard.org/standard/core/ZeroEqual
+; 0=     n/u -- flag    return true if TOS=0
+ZEROEQUAL   SUB #1,TOS      ;1 borrow (clear cy) if TOS was 0
+            SUBC TOS,TOS    ;1 TOS=-1 if borrow was set
+            MOV @IP+,PC     ;4
 
 ;-------------------------------------------------------------------------------
 ; STACK OPERATIONS
 ;-------------------------------------------------------------------------------
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "DUP"
-    .ENDIF
-; https://forth-standard.org/standard/core/DUP
-; DUP      x -- x x      duplicate top of stack
-DUP         SUB #2,PSP      ; 2  push old TOS..
-            MOV TOS,0(PSP)  ; 3  ..onto stack
-            MOV @IP+,PC     ; 4
-
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "?DUP"
-    .ENDIF
-; https://forth-standard.org/standard/core/qDUP
-; ?DUP     x -- 0 | x x    DUP if nonzero
-QDUP        CMP #0,TOS      ; 2  test for TOS nonzero
-            JNZ DUP         ; 2
-            MOV @IP+,PC     ; 4
-
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "2DUP"
-    .ENDIF
-; https://forth-standard.org/standard/core/TwoDUP
-; 2DUP   x1 x2 -- x1 x2 x1 x2   dup top 2 cells
-TWODUP      MOV TOS,-2(PSP) ; 3
-            MOV @PSP,-4(PSP); 4
-            SUB #4,PSP      ; 1
-            MOV @IP+,PC     ; 4
-
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "SWAP"
-    .ENDIF
 ; https://forth-standard.org/standard/core/SWAP
-; SWAP     x1 x2 -- x2 x1    swap top two items
-SWAP        MOV @PSP,W      ; 2
-            MOV TOS,0(PSP)  ; 3
-            MOV W,TOS       ; 1
-            MOV @IP+,PC     ; 4
-
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "DROP"
-; https://forth-standard.org/standard/core/DROP
-; DROP     x --          drop top of stack
-            MOV @PSP+,TOS   ; 2
-            MOV @IP+,PC     ; 4
-            FORTHWORD "NIP"
-; https://forth-standard.org/standard/core/NIP
-; NIP      x1 x2 -- x2         Drop the first item below the top of stack
-            ADD #2,PSP      ; 1
-            MOV @IP+,PC     ; 4
+SWAP        PUSH @PSP+      ; 3
 
-        .IFNDEF OVER
-            FORTHWORD "OVER"
-;https://forth-standard.org/standard/core/OVER
-;C OVER    x1 x2 -- x1 x2 x1
-            MOV TOS,-2(PSP) ; 3 -- x1 (x2) x2
-            MOV @PSP,TOS    ; 2 -- x1 (x2) x1
-            SUB #2,PSP      ; 1 -- x1 x2 x1
+; https://forth-standard.org/standard/core/Rfrom
+; R>    -- x    R: x --   pop from return stack
+; VARIABLE run time called by CALL rDOVAR
+RFROM       SUB #2,PSP      ; 1
+            MOV TOS,0(PSP)  ; 3
+            MOV @RSP+,TOS   ; 2
             MOV @IP+,PC     ; 4
-        .ENDIF
 
-            FORTHWORD "ROT"
-;https://forth-standard.org/standard/core/ROT
-;C ROT    x1 x2 x3 -- x2 x3 x1
-            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
+; https://forth-standard.org/standard/core/DUP
+; DUP      x -- x x      duplicate top of stack
+DUP         MOV TOS,-2(PSP) ; 3
+POSTDECR    SUB #2,PSP      ; 1 post decrement stack...
             MOV @IP+,PC     ; 4
 
-            FORTHWORD "DEPTH"
-    .ENDIF
 ; https://forth-standard.org/standard/core/DEPTH
 ; DEPTH    -- +n        number of items on stack, must leave 0 if stack empty
 DEPTH       MOV TOS,-2(PSP)
             MOV #PSTACK,TOS
             SUB PSP,TOS     ; PSP-S0--> TOS
             RRA TOS         ; TOS/2   --> TOS
-            SUB #2,PSP      ; post decrement stack...
-            MOV @IP+,PC
-
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "R@"
-;https://forth-standard.org/standard/core/RFetch
-;C R@    -- x     R: x -- x   fetch from rtn stk
-            SUB #2,PSP
-            MOV TOS,0(PSP)
-            MOV @RSP,TOS
-            MOV @IP+,PC
+            JMP POSTDECR
 
-            FORTHWORD ">R"
-; https://forth-standard.org/standard/core/toR
-; >R    x --   R: -- x   push to return stack
-TOR         PUSH TOS
-            MOV @PSP+,TOS
-            MOV @IP+,PC
-
-            FORTHWORD "R>"
-; https://forth-standard.org/standard/core/Rfrom
-; R>    -- x    R: x --   pop from return stack
-            SUB #2,PSP      ; 1
-            MOV TOS,0(PSP)  ; 3
-            MOV @RSP+,TOS   ; 2
-            MOV @IP+,PC     ; 4
-
-    .ENDIF
 ;-------------------------------------------------------------------------------
 ; ARITHMETIC OPERATIONS
 ;-------------------------------------------------------------------------------
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "1+"
-; https://forth-standard.org/standard/core/OnePlus
-; 1+      n1/u1 -- n2/u2       add 1 to TOS
-            ADD #1,TOS
-            MOV @IP+,PC
-
-            FORTHWORD "1-"
-; https://forth-standard.org/standard/core/OneMinus
-; 1-      n1/u1 -- n2/u2     subtract 1 from TOS
-            SUB #1,TOS
-            MOV @IP+,PC
-
-            FORTHWORD "+"
-;https://forth-standard.org/standard/core/Plus
-;C +       n1/u1 n2/u2 -- n3/u3     add n1+n2
-            ADD @PSP+,TOS
-            MOV @IP+,PC
-
-             FORTHWORD "-"
-    .ENDIF
 ; https://forth-standard.org/standard/core/Minus
 ; -      n1/u1 n2/u2 -- n3/u3      n3 = n1-n2
 MINUS       SUB @PSP+,TOS   ;2  -- n2-n1
@@ -965,18 +631,6 @@ STORE       MOV @PSP+,0(TOS);4
 ;-------------------------------------------------------------------------------
 ; COMPARAISON OPERATIONS
 ;-------------------------------------------------------------------------------
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "0="
-    .ENDIF
-; https://forth-standard.org/standard/core/ZeroEqual
-; 0=     n/u -- flag    return true if TOS=0
-ZEROEQUAL   SUB #1,TOS      ;1 borrow (clear cy) if TOS was 0
-            SUBC TOS,TOS    ;1 TOS=-1 if borrow was set
-            MOV @IP+,PC     ;4
-
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "0<"
-    .ENDIF
 ; https://forth-standard.org/standard/core/Zeroless
 ; 0<     n -- flag      true if TOS negative
 ZEROLESS    ADD TOS,TOS     ;1 set carry if TOS negative
@@ -984,49 +638,40 @@ ZEROLESS    ADD TOS,TOS     ;1 set carry if TOS negative
 INVERT      XOR #-1,TOS     ;1 TOS=-1 if carry was set
             MOV @IP+,PC     ;
 
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "U<"
-    .ENDIF
-; https://forth-standard.org/standard/core/Uless
-; U<    u1 u2 -- flag       test u1<u2, unsigned
-ULESS       SUB @PSP+,TOS   ;2
-            JZ ULESSEND     ;2 flag Z = 1
-            MOV #-1,TOS     ;1 flag Z = 0
-            JC ULESSEND     ;2 unsigned jump
-            AND #0,TOS      ;1 flag Z = 1
-ULESSEND    MOV @IP+,PC     ;4
-
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "="
-; https://forth-standard.org/standard/core/Equal
-; =      x1 x2 -- flag         test x1=x2
-EQUAL       SUB @PSP+,TOS   ;2
-            JZ INVERT       ;2 flag Z will be = 0
-            AND #0,TOS      ;1 flag Z = 1
-            MOV @IP+,PC     ;4
+;            FORTHWORD "U>"
+; https://forth-standard.org/standard/core/Umore
+; U>     n1 n2 -- flag
+UMORE       SUB @PSP+,TOS   ;2
+            JNC UMOREEND    ; 2 flag = true, Z = 0
+            AND #0,TOS      ; 1 flag = false,Z = 1
+UMOREEND    MOV @IP+,PC     ; 4
 
-            FORTHWORD "<"
-;https://forth-standard.org/standard/core/less
-;C <      n1 n2 -- flag        test n1<n2, signed
-            SUB @PSP+,TOS   ;1 TOS=n2-n1
-            JZ LESSEND      ;2 flag Z = 1
-            JL TOSFALSE     ;2 signed jump
-TOSTRUE     MOV #-1,TOS     ;1 flag Z = 0
-LESSEND     MOV @IP+,PC     ;4
-
-            FORTHWORD ">"
-;https://forth-standard.org/standard/core/more
-;C >     n1 n2 -- flag         test n1>n2, signed
-            SUB @PSP+,TOS   ;2 TOS=n2-n1
-            JL TOSTRUE      ;2 --> +5
-TOSFALSE    AND #0,TOS      ;1 flag Z = 1
-            MOV @IP+,PC     ;4
+; ------------------------------------------------------------------------------
+; STRINGS PROCESSING
+; ------------------------------------------------------------------------------
+            FORTHWORDIMM "S\34" ; immediate
+; https://forth-standard.org/standard/core/Sq
+; S"       --             compile in-line string
+SQUOTE      MOV #0,&CAPS            ; CAPS OFF
+            mDOCOL
+            .word   lit,XSQUOTE,COMMA
+            .word   lit,'"',WORDD   ; -- c-addr = HERE      W=Count_of_chars
+            mNEXTADR                ;
+            MOV #20h,&CAPS          ; restore CAPS ON
+            ADD #1,W                ;
+            BIT #1,W                ;1          C = /Z
+            ADDC W,&DP              ;           DP is aligned
+DROPEXIT    MOV @PSP+,TOS           ; --
+            MOV @RSP+,IP
+            MOV @IP+,PC
 
-;-------------------------------------------------------------------------------
-; CORE ANS94 complement OPTION
-;-------------------------------------------------------------------------------
-    .include "ADDON/CORE_ANS.asm"
-    .ENDIF ; CORE_COMPLEMENT
+            FORTHWORDIMM ".\34"     ; immediate
+; https://forth-standard.org/standard/core/Dotq
+; ."       --              compile string to print
+DOTQUOTE    mDOCOL
+            .word   SQUOTE
+            .word   lit,TYPE,COMMA
+            .word   EXIT
 
 ;-------------------------------------------------------------------------------
 ; NUMERIC OUTPUT
@@ -1043,40 +688,39 @@ LESSNUM     MOV #HOLD_BASE,&HP
             FORTHWORD "#"
 ; https://forth-standard.org/standard/core/num
 ; #     ud1lo ud1hi -- ud2lo ud2hi          convert 1 digit of output
-NUM         MOV &BASE,T             ;3                              T = Divisor
-NUM1        MOV @PSP,S              ;2 -- DVDlo DVDhi               S = DVDlo
-            SUB #2,PSP              ;1 -- x x DVDhi                 TOS = DVDhi
-            CALL #MUSMOD1           ;4 -- REMlo QUOTlo QUOThi       T is unchanged
-            MOV @PSP+,0(PSP)        ;4 -- QUOTlo QUOThi
-TODIGIT     CMP.B #10,W             ;2                              W = REMlo
+NUM         MOV &BASEADR,T          ;3
+NUM1        MOV @PSP,S              ;2          -- DVDlo DVDhi              S = DVDlo
+            SUB #2,PSP              ;1          -- x x DVDhi                TOS = DVDhi
+            CALL #MUSMOD1           ;244/444    -- REMlo QUOTlo QUOThi      T is unchanged W=REMlo X=QUOTlo Y=QUOThi
+            MOV @PSP+,0(PSP)        ;4          -- QUOTlo QUOThi            W = REMlo
+TODIGIT     CMP.B #10,W             ;2
             JNC TODIGIT1            ;2  jump if U<
             ADD.B #7,W              ;2
 TODIGIT1    ADD.B #30h,W            ;2
-HOLDW       SUB #1,&HP              ;4  store W=char --> -[HP]
+HOLDW       SUB #1,&HP              ;3  store W=char --> -[HP]
             MOV &HP,Y               ;3
             MOV.B W,0(Y)            ;3
-            MOV @IP+,PC             ;4  23 words
+            MOV @IP+,PC             ;4 22 words, about 276|476 cycles for u|ud one digit
 
             FORTHWORD "#S"
 ; https://forth-standard.org/standard/core/numS
 ; #S    udlo udhi -- 0 0       convert remaining digits
 NUMS        mDOCOL
             .word   NUM             ;       X=QUOTlo
-NUM_RETURN  .word   $+2             ;       next adr
+            mNEXTADR                ;       next adr
             SUB #2,IP               ;1      restore NUM return
-            CMP #0,X                ;1      test ud2lo first (generally <>0)
-            JNZ NUM1                ;2      
-            CMP #0,TOS              ;1      then test ud2hi (generally =0)
+            BIS TOS,X               ;1
+            CMP #0,X                ;1      ud = 0 ?
             JNZ NUM1                ;2
-EXIT        MOV @RSP+,IP    
-            MOV @IP+,PC             ;6 10 words, about 241/417 cycles/char
+EXIT        MOV @RSP+,IP            ;2      when DTC=2 rDOCOL is loaded with this EXIT address
+            MOV @IP+,PC             ;4 10 words, about 294|494 cycles for u|ud one digit
 
             FORTHWORD "#>"
 ; https://forth-standard.org/standard/core/num-end
-; #>    udlo:udhi -- c-addr u    end conversion, get string
-NUMGREATER  MOV &HP,0(PSP)
-            MOV #HOLD_BASE,TOS
-            SUB @PSP,TOS
+; #>    udlo:udhi -- addr u    end conversion, get string
+NUMGREATER  MOV &HP,0(PSP)          ; -- addr 0
+            MOV #HOLD_BASE,TOS      ;
+            SUB @PSP,TOS            ; -- addr u
             MOV @IP+,PC
 
             FORTHWORD "HOLD"
@@ -1099,158 +743,130 @@ SIGN        CMP #0,TOS
 ; https://forth-standard.org/standard/core/Ud
 ; U.    u --           display u (unsigned)
 ; note: DDOT = UDOT + 10
-UDOT        MOV #0,Y                ; 1
+; use enhanced MUSMOD with 16 bits dividend instead of 32.
+UDOT        MOV #0,S                ; 1 -- hi=0
 DOTTODDOT   SUB #2,PSP              ; 1 convert n|u to d|ud with Y = -1|0
-            MOV TOS,0(PSP)          ; 3
-            MOV Y,TOS               ; 1
-DDOT        PUSH IP                 ; paired with EXIT      R-- IP
-            PUSH TOS                ; paired with RFROM     R-- IP sign
+            MOV TOS,0(PSP)          ; 3 -- lo lo
+            MOV S,TOS               ; 1 -- lo hi
+DDOT        PUSHM #2,IP             ; 4             R-- IP sign
             AND #-1,TOS             ; clear V, set N
-            JGE DDOTNEXT            ; if positive (N=0)
+            JGE DDOTNEXT            ; if hi positive (N=0)
             XOR #-1,0(PSP)          ;4
             XOR #-1,TOS             ;1
             ADD #1,0(PSP)           ;4
             ADDC #0,TOS             ;1
-DDOTNEXT    ASMTOFORTH              ;10
-            .word   LESSNUM,NUMS
-            .word   RFROM,SIGN,NUMGREATER,TYPE
-            .word   FBLANK,EMIT,EXIT
+DDOTNEXT    mASM2FORTH              ;10
+            .word   LESSNUM
+            .word   BL,HOLD         ; add a trailing space
+            .word   NUMS            ;               R-- IP sign
+            .word   RFROM,SIGN      ;               R-- IP
+            .word   NUMGREATER,TYPE
+            .word   EXIT
 
             FORTHWORD "."
 ; https://forth-standard.org/standard/core/d
 ; .     n --           display n (signed)
 DOT         CMP #0,TOS
             JGE UDOT
-            MOV #-1,Y
+            MOV #-1,S
             JMP DOTTODDOT
 
-; ------------------------------------------------------------------------------
-; STRINGS PROCESSING
-; ------------------------------------------------------------------------------
-            FORTHWORDIMM "S\34" ; immediate
-; https://forth-standard.org/standard/core/Sq
-; S"       --             compile in-line string
-SQUOTE      MOV #0,&CAPS            ; CAPS OFF
-            mDOCOL
-            .word   lit,XSQUOTE,COMMA
-SQUOTE1     .word   lit,'"'         ;      separator for WORD
-            .word   WORDD           ; -- c-addr (= HERE)
-            .word   $+2
-            MOV #32,&CAPS           ; CAPS ON
-            MOV.B @TOS,TOS          ; -- u
-            ADD #1,TOS              ; -- u+1
-            BIT #1,TOS              ;1 C = ~Z
-            ADDC TOS,&DDP
-DROPEXIT    MOV @PSP+,TOS
-            MOV @RSP+,IP
-            MOV @IP+,PC
-
-            FORTHWORDIMM ".\34"     ; immediate
-; https://forth-standard.org/standard/core/Dotq
-; ."       --              compile string to print
-DOTQUOTE    mDOCOL
-            .word   SQUOTE
-            .word   lit,TYPE,COMMA,EXIT
-
 ;-------------------------------------------------------------------------------
 ; INTERPRETER
 ;-------------------------------------------------------------------------------
             FORTHWORD "WORD"
 ; https://forth-standard.org/standard/core/WORD
 ; WORD   char -- addr        Z=1 if len=0
-; parse a word delimited by char separator; by default (CAPS=$20), this word is capitalized.
-; if first char is TICK, the entire word is not capitalized.
-WORDD       MOV #SOURCE_LEN,S       ;2 -- separator
-            MOV @S+,X               ;2              X = src_len
-            MOV @S+,W               ;2              W = src_org
-            ADD W,X                 ;1              X = src_end
-            ADD @S+,W               ;2              W = src_org + >IN = src_ptr
-            MOV @S,Y                ;2              Y = HERE = dst_ptr
-SKIPCHARLOO CMP W,X                 ;1              src_ptr = src_end ?
-            JZ SKIPCHAREND          ;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              move back one the (post incremented) pointer
-SCANWORD    MOV #96,T               ;2              T = 96 = ascii(a)-1 (test value set in a register before SCANWORD loop)
-            MOV &CAPS,rDODOES       ;3              CAPS OFF = 0, CAPS ON = $20.
-QSCANTICK   CMP.B #27h,0(W)         ;4              first char = TICK ?
-            JNZ SCANWORDLOO         ;2              no
-            MOV #0,rDODOES          ;1              yes, don't change to upper case
-SCANWORDLOO MOV.B S,0(Y)            ;3              first time make room in dst for word length; next, put char @ dst.
-            CMP W,X                 ;1              src_ptr = src_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              loopback if yes
-            SUB.B rDODOES,S         ;1              convert a...z to A...Z if CAPS ON (rDODOES=$20)
-            JMP SCANWORDLOO         ;2              22~ lower case char loop
-SCANWORDEND MOV #XDODOES,rDODOES    ;2
-SKIPCHAREND SUB &SOURCE_ORG,W       ;3 -- separator W=src_ptr - src_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
-            MOV.B Y,0(TOS)          ;3
-            MOV @IP+,PC             ;4 -- c-addr    48 words      Z=1 <==> lenght=0 <==> EOL, Z is tested by INTERPRET
-
-            FORTHWORD "FIND"        ;           
+; parse a word delimited by char separator
+; if CAPS is ON, this word is CAPITALIZED unless 'char' input.
+; notice that the average lenght of all CORE definitions is about 4.
+WORDD       MOV #SOURCE_LEN,S   ;2 -- sep
+            MOV @S+,X           ;2              X = src_len
+            MOV @S+,Y           ;2              Y = src_org
+            ADD Y,X             ;1              X = src_len + src_org = src_end
+            ADD @S+,Y           ;2              Y = >IN + src_org = src_ptr
+            MOV @S,W            ;2              W = HERE = dst_ptr
+SKIPCHARLOO CMP Y,X             ;1              src_ptr = src_end ?
+            JZ SKIPCHAREND      ;2              if yes : End Of Line !
+            CMP.B @Y+,TOS       ;2              does char = separator ?
+            JZ SKIPCHARLOO      ;2              if yes; 7~ loop
+            SUB #1,Y            ;1              decrement the post incremented src_ptr
+QSCANTICK   MOV &CAPS,T         ;3              CAPS OFF = 0, CAPS ON = $20.
+            CMP.B #"'",0(Y)     ;4              first char = TICK ?
+            JNZ SCANWORDLOO     ;2              no
+            CMP.B @Y,2(Y)       ;3              third char = TICK ?
+            JNZ SCANWORDLOO     ;2              no
+            MOV #0,T            ;1              don't change to upper case for 'char' input
+SCANWORDLOO MOV.B S,0(W)        ;3              first, S makes room in dst for word length; next, put char.
+            CMP Y,X             ;1              src_ptr = src_end ?
+            JZ SCANWORDEND      ;2              if yes
+            MOV.B @Y+,S         ;2              S=char
+            CMP.B S,TOS         ;1 -- sep       does char = separator ?
+            JZ SCANWORDEND      ;2              if yes
+            ADD #1,W            ;1              increment dst just before test loop
+            CMP.B #'a',S        ;2              char U< 'a' ?  this condition is tested at each loop
+            JNC SCANWORDLOO     ;2              16~ upper case char loop
+            CMP.B #'z'+1,S      ;2              char U>= 'z'+1 ?
+            JC SCANWORDLOO      ;2              U>= loopback if yes
+            SUB.B T,S           ;1              convert a...z to A...Z if CAPS ON (T=$20)
+            JMP SCANWORDLOO     ;2              23~ lower case char loop
+SCANWORDEND
+SKIPCHAREND SUB &SOURCE_ORG,Y   ;3 -- sep       Y=src_ptr - src_org = new >IN (first char separator next)
+            MOV Y,&TOIN         ;3              update >IN
+            MOV &DP,TOS         ;3 -- c-addr
+            SUB TOS,W           ;1              W=Word_Length
+            MOV.B W,0(TOS)      ;3
+            MOV @IP+,PC         ;4 -- c-addr    48 words      Z=1 <==> lenght=0 <==> EOL, Z is tested by INTERPRET
+
+            FORTHWORD "FIND"    ;
 ; https://forth-standard.org/standard/core/FIND
-; FIND   c-addr -- c-addr 0   if not found ; flag Z=1       c-addr at transient RAM area (HERE)
+; FIND   c-addr -- c-addr 0    if not found ; flag Z=1       c-addr at transient RAM area (HERE)
 ;                  CFA -1      if found     ; flag Z=0
 ;                  CFA  1      if immediate ; flag Z=0
 ; compare WORD at c-addr (HERE)  with each of words in each of listed vocabularies in CONTEXT
-; FIND to WORDLOOP  : 14/20 cycles,
-; mismatch word loop: 13 cycles on len, +7 cycles on first char,
+; FIND to WORDLOOP  : 10/17 cycles,
+; mismatch word loop: 14 cycles on len, 21 cycles on first char,
 ;                     +10 cycles char loop,
-; VOCLOOP           : 12/18 cycles,
-; WORDFOUND to end  : 21 cycles.
+; WORDFOUND to end  : 16 cycles.
 ; note: with 16 threads vocabularies, FIND takes only! 75% of CORETEST.4th processing time
-FIND        SUB #2,PSP              ;1 -- ???? c-addr       reserve one cell, not at FINDEND because kill flag Z
-            MOV TOS,S               ;1                      S=c-addr
-            MOV.B @S,rDOCON         ;2                      rDOCON= string count
-            MOV.B #80h,rDODOES      ;2                      rDODOES= immediate mask
-            MOV #CONTEXT,T          ;2
-VOCLOOP     MOV @T+,TOS             ;2 -- ???? VOC_PFA      T=CTXT+2
-            CMP #0,TOS              ;1                      no more vocabulary in CONTEXT ?
-            JZ FINDEND              ;2 -- ???? 0            yes ==> exit; Z=1
+FIND        SUB #2,PSP          ;1 -- ???? c-addr       reserve one cell, not at FINDEND which would kill the Z flag
+            MOV TOS,S           ;1                      S=c-addr
+            MOV #CONTEXT,T      ;2                      T = first cell addr of CONTEXT stack
+VOCLOOP     MOV @T+,TOS         ;2 -- ???? VOC_PFA      T=CTXT+2
+            CMP #0,TOS          ;1                      no more vocabulary in CONTEXT ?
+            JZ FINDEND          ;2 -- ???? 0            yes ==> exit; Z=1
     .SWITCH THREADS
-    .CASE   1
-    .ELSECASE                       ;                       search thread add 6cycles  5words
-            MOV.B 1(S),Y            ;3 -- ???? VOC_PFA0     S=c-addr Y=first char of c-addr string
-            AND.B #(THREADS-1)*2,Y  ;2 -- ???? VOC_PFA0     Y=thread offset
-            ADD Y,TOS               ;1 -- ???? VOC_PFAx     TOS = words set entry
+    .CASE   1                   ;                       nothing to do
+    .ELSECASE                   ;                       searching thread adds 7 cycles & 6 words
+            MOV.B 1(S),Y        ;3 -- ???? VOC_PFA0     S=c-addr Y=first char of c-addr string
+            AND.B #(THREADS-1),Y;2 -- ???? VOC_PFA0     Y=thread_x
+            ADD Y,Y             ;1 -- ???? VOC_PFA0     Y=thread_offset_x
+            ADD Y,TOS           ;1 -- ???? VOC_PFAx     TOS = words set entry
     .ENDCASE
-            ADD #2,TOS              ;1 -- ???? VOC_PFA+2
-WORDLOOP    MOV -2(TOS),TOS         ;3 -- ???? NFA          [VOC_PFA] first, then [LFA]
-            CMP #0,TOS              ;1 -- ???? NFA          no more word in the thread ?
-            JZ VOCLOOP              ;2 -- ???? NFA          yes ==> search next voc in context
-            MOV TOS,X               ;1
-            MOV.B @X+,Y             ;2                      TOS=NFA,X=NFA+1,Y=NFA_char
-            BIC.B rDODOES,Y         ;1                      hide Immediate bit
-LENCOMP     CMP.B rDOCON,Y          ;1                      compare lenght
-            JNZ WORDLOOP            ;2 -- ???? NFA          13~ word loop on lenght mismatch
-            MOV S,W                 ;1                      W=c-addr
-CHARCOMP    CMP.B @X+,1(W)          ;4                      compare chars
-            JNZ WORDLOOP            ;2 -- ???? NFA          20~ word loop on first char mismatch
-            ADD #1,W                ;1
-            SUB.B #1,Y              ;1                      decr count
-            JNZ CHARCOMP            ;2 -- ???? NFA          10~ char loop
-
-WORDFOUND   BIT #1,X                ;1
-            ADDC #0,X               ;1
-            MOV X,S                 ;1                      S=aligned CFA
-            CMP.B #0,0(TOS)         ;3 -- ???? NFA          0(TOS)=NFA_first_char
-            MOV #1,TOS              ;1 -- ???? 1            preset immediate flag
-            JN FINDEND              ;2 -- ???? 1            jump if negative: NFA have immediate bit set
-            SUB #2,TOS              ;1 -- ???? -1
-FINDEND     MOV S,0(PSP)            ;3 not found: -- c-addr 0                           flag Z=1
-            MOV #xdocon,rDOCON      ;2     found: -- xt -1|+1 (not immediate|immediate) flag Z=0
-            MOV #xdodoes,rDODOES    ;2
-            MOV @IP+,PC             ;4 42/47 words
+            ADD #2,TOS          ;1 -- ???? VOC_PFAx+2
+WORDLOOP    MOV -2(TOS),TOS     ;3 -- ???? NFA          -2(TOS) = [VOC_PFAx] first, then [LFA]
+            CMP #0,TOS          ;1 -- ???? NFA          no more word in the thread ?
+            JZ VOCLOOP          ;2 -- ???? NFA          yes ==> search next voc in context
+            MOV TOS,X           ;1
+            MOV.B @X+,Y         ;2                      TOS = NFA,  X= NFA+1, Y = NFA_first_byte = cnt<<2+i (i= immediate flag)
+            RRA.B Y             ;1                      remove immediate flag, the remainder is the count of the definition name.
+LENCOMP     CMP.B @S,Y          ;2                      compare lenght
+            JNZ WORDLOOP        ;2 -- ???? NFA          14~ word loop on lenght mismatch
+            MOV S,W             ;1                      S=W=c-addr
+CHARCOMP    CMP.B @X+,1(W)      ;4                      compare chars
+            JNZ WORDLOOP        ;2 -- ???? NFA          21~ word loop on first char mismatch
+            ADD #1,W            ;1
+            SUB.B #1,Y          ;1                      decr count
+            JNZ CHARCOMP        ;2 -- ???? NFA          10~ char loop
+WORDFOUND   BIT #1,X            ;1
+            ADDC #0,X           ;1
+            MOV X,S             ;1                      S=aligned CFA
+            MOV.B @TOS,TOS      ;2 -- ???? NFA_1st_byte
+            AND #1,TOS          ;1 -- ???? 0|1          test immediate flag
+            JNZ FINDEND         ;2 -- ???? 1            jump if bit 1 is set, as immediate bit
+            SUB #1,TOS          ;1 -- ???? -1
+FINDEND     MOV S,0(PSP)        ;3 not found: -- c-addr 0                           flag Z=1
+            MOV @IP+,PC         ;4 34/40 words
 
     .IFDEF MPY_32 ; if 32 bits hardware multiplier
 
@@ -1258,247 +874,243 @@ FINDEND     MOV S,0(PSP)            ;3 not found: -- c-addr 0
 ; >NUMBER  ud1lo ud1hi addr1 cnt1 -- ud2lo ud2hi addr2 cnt2
 ; https://forth-standard.org/standard/core/toNUMBER
 ; ud2 is the unsigned result of converting the characters within the string specified by c-addr1 u1 into digits,
-; using the number in BASE, and adding each into ud1 after multiplying ud1 by the number in BASE. 
+; using the number in BASE, and adding each into ud1 after multiplying ud1 by the number in BASE.
 ; Conversion continues left-to-right until a character that is not convertible (including '.'  ','  '_')
 ; is encountered or the string is entirely converted. c-addr2 is the location of the first unconverted character
 ; or the first character past the end of the string if the string was entirely converted.
-; u2 is the number of unconverted characters in the string.
+; cnt2 is the number of unconverted characters in the string.
 ; An ambiguous condition exists if ud2 overflows during the conversion.
-TONUMBER    MOV @PSP+,S             ;2 -- ud1lo ud1hi cnt1  S = addr1
-            MOV @PSP+,Y             ;2 -- ud1lo cnt1        Y = ud1hi
-            MOV @PSP,X              ;2 -- x cnt1            X = ud1lo
-            SUB #4,PSP              ;1 -- x x x cnt
-            MOV &BASE,T             ;3
-TONUMLOOP   MOV.B @S,W              ;2 -- x x x cnt         S=adr, T=base, W=char, X=udlo, Y=udhi 
-DDIGITQ     SUB.B #30h,W            ;2                      skip all chars < '0'
-            CMP.B #10,W             ;2                      char was U< 58 (U< ':') ?
-            JNC DDIGITQNEXT         ;2                      no
-            SUB.B #7,W              ;2
-            CMP.B #10,W             ;2
-            JNC TONUMEND            ;2 -- x x x cnt         if '9' < char < 'A', then return to QNUMBER with Z=0
-DDIGITQNEXT CMP T,W                 ;1                      digit-base
-            BIC #Z,SR               ;1                      reset Z before return to QNUMBER because
-            JC  TONUMEND            ;2                          with Z=1, QNUMBER conversion would be true :-(
-UDSTAR      MOV X,&MPY32L           ;3                      Load 1st operand (ud1lo)
-            MOV Y,&MPY32H           ;3                      Load 1st operand (ud1hi)
-            MOV T,&OP2              ;3                      Load 2nd operand with BASE
-            MOV &RES0,X             ;3                      lo result in X (ud2lo)
-            MOV &RES1,Y             ;3                      hi result in Y (ud2hi)
-MPLUS       ADD W,X                 ;1                      ud2lo + digit
-            ADDC #0,Y               ;1                      ud2hi + carry
-TONUMPLUS   ADD #1,S                ;1                      adr+1
-            SUB #1,TOS              ;1 -- x x x cnt         cnt-1
-            JNZ TONUMLOOP           ;2                      if count <>0
-TONUMEND    MOV S,0(PSP)            ;3 -- x x addr2 cnt2
-            MOV Y,2(PSP)            ;3 -- x ud2hi addr2 cnt2
-            MOV X,4(PSP)            ;3 -- ud2lo ud2hi addr2 cnt2
-            MOV @IP+,PC             ;4 42 words
+TONUMBER    MOV &BASEADR,T      ;3                      T = base
+            MOV @PSP+,S         ;2 -- ud1lo ud1hi cnt1  S = addr1
+            MOV @PSP+,Y         ;2 -- ud1lo cnt1        Y = ud1hi
+            MOV @PSP,X          ;2 -- x cnt1            X = ud1lo
+            SUB #4,PSP          ;1 -- x x x cnt1
+TONUMLD_OP1 MOV T,&MPY          ;3                      base = MPY OP1 loaded out of TONUMLOOP
+TONUMLOOP   MOV.B @S,W          ;2 -- x x x cnt         S=adr, T=base, W=char, X=udlo, Y=udhi
+DDIGITQ     SUB.B #3Ah,W        ;2                      all Ctrl_Chars < '0'  and all chars '0' to '9' become negative
+            JNC DDIGITQNEXT     ;2                      accept all chars U< ':'  (accept $0 up to $39)
+            SUB.B #7,W          ;2                      W = char - ($3A + $07 = 'A')
+            JNC TONUMEND        ;2 -- x x x cnt         reject all Ctrl_Chars U< 'A', (with Z flag = 0)
+DDIGITQNEXT ADD.B #0Ah,W        ;2                      restore digit value: 0 to 15 (and beyond)
+            CMP T,W             ;1                      digit-base (U>= comparaison rejects all Ctrl_Chars)
+            BIC #Z,SR           ;1                      reset Z before return to QNUMBER because else
+            JC TONUMEND         ;2                      to avoid QNUMBER conversion true with digit=base :-(
+UDSTAR      MOV X,&OP2L         ;3                      Load 2nd operand (ud1lo)
+            MOV Y,&OP2H         ;3                      Load 2nd operand (ud1hi)
+            MOV &RES0,X         ;3                      lo result in X (ud2lo)
+            MOV &RES1,Y         ;3                      hi result in Y (ud2hi)
+MPLUS       ADD W,X             ;1                      ud2lo + digit
+            ADDC #0,Y           ;1                      ud2hi + carry
+TONUMPLUS   ADD #1,S            ;1                      adr+1
+            SUB #1,TOS          ;1 -- x x x cnt         cnt-1
+            JNZ TONUMLOOP       ;2                      if count <>0 33~ loop
+TONUMEND    MOV S,0(PSP)        ;3 -- x x addr2 cnt2
+            MOV Y,2(PSP)        ;3 -- x ud2hi addr2 cnt2
+            MOV X,4(PSP)        ;3 -- ud2lo ud2hi addr2 cnt2
+            MOV @IP+,PC         ;4 40 words
 
 ; ?NUMBER makes the interface between INTERPRET and >NUMBER; it's a subset of INTERPRET.
 ; convert a string to a signed number; FORTH 2012 prefixes $  %  # are recognized,
 ; FORTH 2012 'char' numbers also, digits separator '_' also.
-; with DOUBLE_INPUT switched ON, 32 bits signed numbers (with decimal point) are recognized,
-; with FIXPOINT_INPUT switched ON, Q15.16 signed numbers (with comma) are recognized.
+; with DOUBLE_INPUT option, 32 bits signed numbers (with decimal point) are recognized,
+; with FIXPOINT_INPUT option, Q15.16 signed numbers (with comma) are recognized.
 ; prefixes ' # % $ - are processed before calling >NUMBER
 ; chars . , _  are processed as >NUMBER exits.
 ;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
-        .IFDEF DOUBLE_NUMBERS       ;                           DOUBLE_NUMBERS = DOUBLE_INPUT | FIXPOINT_INPUT
-            BIC #UF9,SR             ;2                          reset UF9 used as double number flag
-        .ENDIF                      ;
-            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
-            MOV #TONUMEXIT,IP       ;2                          set TONUMEXIT as return from >NUMBER
-            MOV #0,X                ;1                          X=ud1lo
-            MOV #0,Y                ;1                          Y=ud1hi
-            SUB #8,PSP              ;1 -- x x x x addr          make room for TOS and >NUMBER
-            MOV TOS,6(PSP)          ;3 -- addr x x x addr
-            MOV TOS,S               ;1                          S=addr
-            MOV.B @S+,TOS           ;2 -- addr x x x cnt        TOS=count
-QTICK       CMP.B #027h,0(S)        ;4                          prefix = ' ?
-            JNZ QNUMLDCHAR          ;2                          no
-            MOV.B 1(S),S            ;3
-            MOV S,4(PSP)            ;3 -- addr ud2lo x x cnt    ud2lo = ASCII code of 'char'                    
-            CMP.B #3,TOS            ;2                          string must be 3 chars long
-            JMP QNUMNEXT            ;2
-QNUMLDCHAR  MOV.B @S,W              ;2                          W=char
-QMINUS      SUB.B #'-',W            ;2                          sign minus ?
-            JNC QBINARY             ;2                          jump if char < '-'
-            JNZ TONUMLOOP           ;2 -- addr x x x cnt        jump if char > '-'
-            MOV #-1,2(RSP)          ;3 R-- IP sign base         set sign flag
-            JMP PREFIXED            ;2
-QBINARY     MOV #2,T                ;1                          preset base 2
-            ADD.B #8,W              ;1                          binary '%' prefix ?
-            JZ PREFIXED             ;2                          yes
-QDECIMAL    ADD #8,T                ;1                          preset base 10
-            ADD.B #2,W              ;1                          decimal '#' prefix ?
-            JZ PREFIXED             ;2                          yes
-QHEXA       MOV #16,T               ;2                          preset base 16
-            ADD.B #-1,W             ;1                          hex '$' prefix ?
-            JNZ QNUMNEXT            ;2 -- addr x x x cnt        abort if not recognized prefix
-PREFIXED    ADD #1,S                ;1
-            SUB #1,TOS              ;1 -- addr x x x cnt-1      S=adr+1 TOS=count-1
-            JMP QNUMLDCHAR          ;2
-; ----------------------------------;
-
-TONUMEXIT   .word $+2               ;  -- addr ud2lo-hi addr2 cnt2      R-- IP sign BASE    S=addr2
-; ----------------------------------;
-            JZ QNUMNEXT             ;2                                  TOS=cnt2, Z=1 if conversion is ok
-; ----------------------------------;
-            SUB #2,IP               ;                                   redefines TONUMEXIT as >NUMBER return, if loopback applicable
-            CMP.B #28h,W            ;                                   rejected char by >NUMBER is a underscore ? ('_'-30h-7 = 28h)
-            JZ TONUMPLUS            ;                                   yes: loopback to >NUMBER to skip char
-; ----------------------------------;
-        .IFDEF DOUBLE_NUMBERS       ;                                   DOUBLE_NUMBERS = DOUBLE_INPUT | FIXPOINT_INPUT
-            BIT #UF9,SR             ;                                   UF9 already set ? ( when you have typed .. )
-            JNZ QNUMNEXT            ;                                   yes, goto QNUMKO
-            BIS #UF9,SR             ;2                                  set double number flag
+QNUMBER                         ;  -- addr
+        .IFDEF DOUBLE_NUMBERS   ;                           DOUBLE_NUMBERS = DOUBLE_INPUT | FIXPOINT_INPUT
+            BIC #UF9,SR         ;2                          reset UserFlag_9 used as double number flag
+        .ENDIF                  ;
+            SUB #8,PSP          ;1 -- x x x x addr          make room for >NUMBER
+            MOV TOS,6(PSP)      ;3 -- addr x x x addr       save TOS
+            MOV #0,Y            ;1                          Y=ud1hi=0
+            MOV #0,X            ;1                          X=ud1lo=0
+            MOV &BASEADR,T      ;3                          T=BASE
+            MOV TOS,S           ;1                          S=addr
+            MOV #0,TOS          ;1                          TOS=sign of result
+            PUSHM #2,TOS        ;4 R-- sign IP              PUSH TOS,IP
+            MOV #TONUMEXIT,IP   ;2                          set TONUMEXIT as return from >NUMBER
+            MOV.B @S+,TOS       ;2 -- addr x x x cnt        TOS=count, S=addr+1
+QNUMLDCHAR  MOV.B @S,W          ;2                          W=char
+            SUB.B #'-',W        ;2
+            JZ QNUMMINUS        ;2
+            JC TONUMLD_OP1      ;2 -- addr x x x cnt        jump if char U> '-', case of numeric chars
+QBINARY     MOV #2,T            ;1                          preset base 2
+            ADD.B #8,W          ;1                          binary '%' prefix ?     '%' + 8 = '-'
+            JZ PREFIXNEXT       ;2                          yes
+QDECIMAL    ADD #8,T            ;1                          preset base 10
+            ADD.B #2,W          ;1                          decimal '#' prefix ?    '#' + 2 = '%'
+            JZ PREFIXNEXT       ;2                          yes
+QHEXA       MOV #16,T           ;2                          preset base 16
+            CMP.B #1,W          ;1                          hex '$' prefix ?        '#' + 1 = '$'
+            JZ PREFIXNEXT       ;2                          yes
+QTICK       CMP.B #4,W          ;1                          prefix = ' ?            '#' + 4 = "'"
+            JNZ QNUMNEXT        ;2 -- addr x x x cnt        no, abort because prefix not recognized
+            CMP #3,TOS          ;2                          count = 3 ?
+            JNZ QNUMNEXT        ;2                          no, abort
+            CMP.B @S+,1(S)      ;4 -- addr x x x 3          3rd char = 1st char = "'"   ?
+            MOV.B @S,S          ;2                          does byte to word conversion
+            MOV S,4(PSP)        ;3 -- addr ud2lo x x x      ud2lo = ASCII code of 'char'
+            JMP QNUMNEXT        ;2 -- addr ud2lo x x x      with happy end if 3rd char = 1st char
+QNUMMINUS   MOV #-1,2(RSP)      ;3 R-- sign IP              set sign flag
+PREFIXNEXT  SUB #1,TOS          ;1 -- addr x x x cnt-1      TOS=count-1
+            CMP.B @S+,0(S)      ;4                          S=adr+1; same prefix ?
+            JNZ QNUMLDCHAR      ;2                          loopback if no
+            JZ TONUMLD_OP1      ;2                          if yes, this 2nd prefix will be rejected by >NUMBER
+; ------------------------------;46
+TONUMEXIT   mNEXTADR            ;  -- addr ud2lo-hi addr2 cnt2      R-- IP sign BASE    S=addr2
+            JZ QNUMNEXT         ;2                                  TOS=0 and Z=1 if conversion is ok
+            SUB #2,IP           ;1                                  redefines TONUMEXIT as >NUMBER return, if loopback applicable
+            MOV.B @S,W          ;2                                  reload rejected char
+            CMP.B #'_',W        ;2                                  rejected char by >NUMBER is a underscore ?
+            JZ TONUMPLUS        ;2                                  yes: return to >NUMBER to skip char then resume conversion, 30~ loopback
+        .IFDEF DOUBLE_NUMBERS   ;                                   DOUBLE_NUMBERS = DOUBLE_INPUT | FIXPOINT_INPUT
+            BIT #UF9,SR         ;2                                  UF9 already set ? ( if you have typed .. )
+            JNZ QNUMNEXT        ;2                                  yes, goto QNUMKO
+            BIS #UF9,SR         ;2                                  set double number flag
         .ENDIF
-; ----------------------------------;
-        .IFDEF DOUBLE_INPUT         ;
-            CMP.B #0F7h,W           ;2                                  rejected char by >NUMBER is a decimal point ? ('.'-37h = -9)
-            JZ TONUMPLUS            ;2                                  yes, loopback to >NUMBER to skip char
-        .ENDIF                      ;
-; ----------------------------------;
-        .IFDEF FIXPOINT_INPUT       ;
-            CMP.B #0F5h,W           ;2                                  rejected char by >NUMBER is a comma ? (','-37h = -0Bh)
-            JNZ QNUMNEXT            ;2                                  no: with Z=0 ==> goto QNUMKO
-; ----------------------------------;
-S15Q16      MOV TOS,W               ;1 -- addr ud2lo x x x              W=cnt2
-            MOV #0,X                ;1 -- addr ud2lo x 0 x              init X = ud2lo' = 0
-S15Q16LOOP  MOV X,2(PSP)            ;3 -- addr ud2lo ud2lo' ud2lo' x    0(PSP) = ud2lo'
-            SUB.B #1,W              ;1                                  decrement cnt2
-            MOV W,X                 ;1                                  X = cnt2-1
-            ADD S,X                 ;1                                  X = end_of_string-1,-2,-3...
-            MOV.B @X,X              ;2                                  X = last char of string first (reverse conversion)
-            SUB.B #30h,X            ;2                                  char --> digit conversion
-            CMP.B #10,X             ;2
-            JNC QS15Q16DIGI         ;2                                  if 0 <= digit < 10
-            SUB.B #7,X              ;2                                  char 
-            CMP.B #10,X             ;2                                  to skip all chars between "9" and "A"
-            JNC S15Q16EOC           ;2
-QS15Q16DIGI CMP T,X                 ;1                                  R-- IP sign BASE    is X a digit ?
-            JC S15Q16EOC            ;2 -- addr ud2lo ud2lo' x ud2lo'    if X>=base
-            MOV X,0(PSP)            ;3 -- addr ud2lo ud2lo' digit x
-            MOV T,TOS               ;1 -- addr ud2lo ud2lo' digit base  R-- IP sign base
-            PUSHM #3,S              ;5                                  PUSH S,T,W: R-- IP sign base addr2 base cnt2
-            CALL #MUSMOD            ;4 -- addr ud2lo ur uqlo uqhi       CALL MU/MOD
-            POPM #3,S               ;5                                  restore W,T,S: R-- IP sign BASE
-            JMP S15Q16LOOP          ;2                                  W=cnt
-S15Q16EOC   MOV 4(PSP),2(PSP)       ;5 -- addr ud2lo ud2hi uqlo x       ud2lo from >NUMBER becomes here ud2hi part of Q15.16
-            MOV @PSP,4(PSP)         ;4 -- addr ud2lo ud2hi x x          uqlo becomes ud2lo part of Q15.16
-            CMP.B #0,W              ;1                                  count = 0 if end of conversion ok
-        .ENDIF ; FIXPOINT_INPUT     ;
-; ----------------------------------;
-QNUMNEXT    POPM #3,IP              ;5 -- addr ud2lo-hi x x             POPM T,S,IP  S = sign flag = {-1;0}
-            MOV S,TOS               ;1 -- addr ud2lo-hi x sign
-            MOV T,&BASE             ;3
-            JZ QNUMOK               ;2 -- addr ud2lo-hi x sign          conversion OK if Z=1
-QNUMKO      
-        .IFDEF DOUBLE_NUMBERS       ; 
-            BIC #UF9,SR             ;2                                  reset flag UF9, before next use as double number flag
+        .IFDEF DOUBLE_INPUT     ;
+            SUB.B #'.',W        ;2                                  rejected char by >NUMBER is a decimal point ?
+            JZ TONUMPLUS        ;2                                  yes, loopback to >NUMBER to skip char, 45~ loopback
+        .ENDIF                  ;
+        .IFDEF FIXPOINT_INPUT   ;
+            .IFDEF DOUBLE_INPUT
+            ADD.B #2,W          ;1                                  rejected char by >NUMBER is a comma ? (',' - '.' + 2 = 0)
+            .ELSE               ;
+            CMP.B #',',W        ;2                                  rejected char by >NUMBER is a comma ?
+            .ENDIF              ;
+            JNZ QNUMNEXT        ;2                                  no: with Z=0 ==> goto QNUMKO
+S15Q16      MOV TOS,W           ;1 -- addr ud2lo x x x              W=cnt2
+            MOV #0,X            ;1 -- addr ud2lo x 0 x              init X = ud2lo' = 0
+S15Q16LOOP  MOV X,2(PSP)        ;3 -- addr ud2lo ud2lo' 0 x         2(PSP) = ud2lo'
+            SUB.B #1,W          ;1                                  decrement cnt2
+            MOV W,X             ;1                                  X = cnt2-1
+            ADD S,X             ;1                                  X = end_of_string-1,-2,-3...
+            MOV.B @X,X          ;2                                  X = last char of string first (reverse conversion)
+            SUB.B #':',X        ;2
+            JNC QS15Q16DIGI     ;2                                  accept all chars U< ':'
+            SUB.B #7,X          ;2
+            JNC S15Q16EOC       ;2                                  reject all chars U< 'A'
+QS15Q16DIGI ADD.B #10,X         ;2                                  restore digit value
+            CMP T,X             ;1                                  T=Base, is X a digit ?
+            JC S15Q16EOC        ;2 -- addr ud2lo ud2lo' ud2lo' x    if not a digit
+            MOV X,0(PSP)        ;3 -- addr ud2lo ud2lo' digit x
+            MOV T,TOS           ;1 -- addr ud2lo ud2lo' digit base  R-- IP sign
+            PUSHM #3,S          ;5                                  PUSH S,T,W: R-- IP sign addr2 base cnt2
+            CALL #MUSMOD        ;4 -- addr ud2lo ur uqlo uqhi       CALL MU/MOD
+            POPM #3,S           ;5                                  restore W,T,S: R-- IP sign
+            JMP S15Q16LOOP      ;2                                  W=cnt
+S15Q16EOC   MOV 4(PSP),2(PSP)   ;5 -- addr ud2lo ud2hi uqlo x       ud2lo from >NUMBER becomes here ud2hi part of Q15.16
+            MOV @PSP,4(PSP)     ;4 -- addr ud2lo ud2hi x x          uqlo becomes ud2lo part of Q15.16
+            CMP.B #0,W          ;1                                  count = 0 if end of conversion ok
+        .ENDIF ; FIXPOINT_INPUT
+; ------------------------------;
+QNUMNEXT    POPM #2,TOS         ;4 -- addr ud2lo-hi x sign  R: --   POPM IP,TOS  TOS = sign flag = {-1;0}
+            JZ QNUMOK           ;2 -- addr ud2lo-hi x sign          conversion OK if Z=1
+QNUMKO
+        .IFDEF DOUBLE_NUMBERS   ;
+            BIC #UF9,SR         ;2                                  reset flag UF9, before next use as double number flag
         .ENDIF
-            ADD #6,PSP              ;1 -- addr sign
-            AND #0,TOS              ;1 -- addr ff                       TOS=0 and Z=1 ==> conversion ko
-            MOV @IP+,PC             ;4
-; ----------------------------------;
-        .IFDEF DOUBLE_NUMBERS       ;  -- addr ud2lo-hi x sign 
-QNUMOK      ADD #2,PSP              ;1 -- addr ud2lo-hi sign
-            MOV 2(PSP),4(PSP)       ;5 -- udlo udlo udhi sign
-            MOV @PSP+,0(PSP)        ;4 -- udlo udhi sign                note : PSP is incremented before write back.
-            XOR #-1,TOS             ;1 -- udlo udhi inv(sign)
-            JNZ QDOUBLE             ;2                                  if jump : TOS=-1 and Z=0 ==> conversion ok
-            XOR #-1,TOS             ;1 -- udlo udhi tf
-QDNEGATE    XOR #-1,2(PSP)          ;3
-            XOR #-1,0(PSP)          ;3 -- (dlo dhi)-1 tf
-            ADD #1,2(PSP)           ;3
-            ADDC #0,0(PSP)          ;3
-QDOUBLE     BIT #UF9,SR             ;2 -- dlo dhi tf                    decimal point or comma fixpoint ?
-            JNZ QNUMEND             ;2                                  leave double
-            ADD #2,PSP              ;1 -- n tf                          leave number
-QNUMEND     MOV @IP+,PC             ;4                                  TOS<>0 and Z=0 ==> conversion ok
+            ADD #6,PSP          ;2 -- addr sign
+            AND #0,TOS          ;1 -- addr ff                       TOS=0 and Z=1 ==> conversion ko
+            MOV @IP+,PC         ;4
+; ------------------------------;
+        .IFDEF DOUBLE_NUMBERS   ;  -- addr ud2lo-hi x sign
+QNUMOK      ADD #2,PSP          ;1 -- addr ud2lo-hi sign
+            MOV 2(PSP),4(PSP)   ;5 -- udlo udlo udhi sign
+            MOV @PSP+,0(PSP)    ;4 -- udlo udhi sign                note : PSP is incremented before write back.
+            XOR #-1,TOS         ;1 -- udlo udhi inv(sign)
+            JNZ QDOUBLE         ;2 -- udlo udhi tf                  if jump : TOS=-1 and Z=0 ==> conversion ok
+            XOR #-1,TOS         ;1 -- udlo udhi tf
+QDNEGATE    XOR #-1,2(PSP)      ;3 -- udlo udhi -1
+            XOR #-1,0(PSP)      ;3 -- (dlo dhi)-1 tf
+            ADD #1,2(PSP)       ;3
+            ADDC #0,0(PSP)      ;3
+QDOUBLE     BIT #UF9,SR         ;2 -- dlo dhi tf                    decimal point or comma fixpoint ?
+            JNZ QNUMEND         ;2                                  leave double
+NIP         ADD #2,PSP          ;1 -- n tf                          leave number
+QNUMEND     MOV @IP+,PC         ;4                                  TOS<>0 and Z=0 ==> conversion ok
         .ELSE
-QNUMOK      ADD #4,PSP              ;1 -- addr ud2lo sign
-            MOV @PSP+,0(PSP)        ;4 -- udlo sign                     note : PSP is incremented before write back !!!
-            XOR #-1,TOS             ;1 -- udlo inv(sign)
-            JNZ QNUMEND             ;2                                  if jump : TOS=-1 and Z=0 ==> conversion ok
-            XOR #-1,TOS             ;1 -- udlo tf                       TOS=-1 and Z=0
-QNEGATE     XOR #-1,0(PSP)          ;3
-            ADD #1,0(PSP)           ;3 -- n tf
-QNUMEND     MOV @IP+,PC             ;4                                  TOS=-1 and Z=0 ==> conversion ok
-        .ENDIF ; DOUBLE_NUMBERS     ;
-
-    .ELSE ; no hardware MPY
-
+QNUMOK      ADD #4,PSP          ;1 -- addr ud2lo sign
+            MOV @PSP,2(PSP)     ;4 -- u u sign                      note : PSP is incremented before write back !!!
+            XOR #-1,TOS         ;1 -- udlo udhi inv(sign)
+            JNZ QNUMEND         ;2 -- udlo udhi tf                  if jump : TOS=-1 and Z=0 ==> conversion ok
+            XOR #-1,TOS         ;1 -- udlo udhi sign
+QNEGATE     XOR #-1,2(PSP)      ;3
+            ADD #1,2(PSP)       ;3 -- n u tf
+QNUMEND
+NIP         ADD #2,PSP          ;1 -- n tf
+            MOV @IP+,PC         ;4                                  TOS=-1 and Z=0 ==> conversion ok
+        .ENDIF ; DOUBLE_NUMBERS ;
+
+    .ELSE ; if no hardware MPY
             FORTHWORD "UM*"
 ; T.I. UNSIGNED MULTIPLY SUBROUTINE: U1 x U2 -> Ud
 ; https://forth-standard.org/standard/core/UMTimes
 ; UM*     u1 u2 -- ud   unsigned 16x16->32 mult.
-UMSTAR      MOV @PSP,S              ;2 MDlo
-UMSTAR1     MOV #0,T                ;1 MDhi=0
-            MOV #0,X                ;1 RES0=0
-            MOV #0,Y                ;1 RES1=0
-            MOV #1,W                ;1 BIT TEST REGISTER
-UMSTARLOOP  BIT W,TOS               ;1 TEST ACTUAL BIT MRlo
-            JZ UMSTARNEXT           ;2 IF 0: DO NOTHING
-            ADD S,X                 ;1 IF 1: ADD MDlo TO RES0
-            ADDC T,Y                ;1      ADDC MDhi TO RES1
-UMSTARNEXT  ADD S,S                 ;1 (RLA LSBs) MDlo x 2
-            ADDC T,T                ;1 (RLC MSBs) MDhi x 2
-            ADD W,W                 ;1 (RLA) NEXT BIT TO TEST
-            JNC UMSTARLOOP          ;2 IF BIT IN CARRY: FINISHED    10~ loop
-            MOV X,0(PSP)            ;3 low result on stack
-            MOV Y,TOS               ;1 high result in TOS
-            MOV @IP+,PC             ;4 17 words
+UMSTAR      MOV @PSP,S          ;2 MDlo
+UMSTAR1     MOV #0,T            ;1 MDhi=0
+            MOV #0,X            ;1 RES0=0
+            MOV #0,Y            ;1 RES1=0
+            MOV #1,W            ;1 BIT TEST REGISTER
+UMSTARLOOP  BIT W,TOS           ;1 TEST ACTUAL BIT MRlo
+            JZ UMSTARNEXT       ;2 IF 0: DO NOTHING
+            ADD S,X             ;1 IF 1: ADD MDlo TO RES0
+            ADDC T,Y            ;1      ADDC MDhi TO RES1
+UMSTARNEXT  ADD S,S             ;1 (RLA LSBs) MDlo x 2
+            ADDC T,T            ;1 (RLC MSBs) MDhi x 2
+            ADD W,W             ;1 (RLA) NEXT BIT TO TEST
+            JNC UMSTARLOOP      ;2 IF BIT IN CARRY: FINISHED    10~ loop
+            MOV X,0(PSP)        ;3 low result on stack
+            MOV Y,TOS           ;1 high result in TOS
+            MOV @IP+,PC         ;4 17 words
 
             FORTHWORD ">NUMBER"
 ; https://forth-standard.org/standard/core/toNUMBER
 ; ud2 is the unsigned result of converting the characters within the string specified by c-addr1 u1 into digits,
-; using the number in BASE, and adding each into ud1 after multiplying ud1 by the number in BASE. 
+; using the number in BASE, and adding each into ud1 after multiplying ud1 by the number in BASE.
 ; Conversion continues left-to-right until a character that is not convertible, including '.', ',' or '_',
 ; is encountered or the string is entirely converted. c-addr2 is the location of the first unconverted character
 ; or the first character past the end of the string if the string was entirely converted.
 ; u2 is the number of unconverted characters in the string.
 ; An ambiguous condition exists if ud2 overflows during the conversion.
 ; >NUMBER  ud1lo|ud1hi addr1 count1 -- ud2lo|ud2hi addr2 count2
-TONUMBER    MOV @PSP,S              ;2                          S=adr
-            MOV TOS,T               ;1                          T=count
-            MOV &BASE,W             ;3
-TONUMLOOP   MOV.B @S,Y              ;2 -- ud1lo ud1hi x x       S=adr, T=count, W=BASE, Y=char
-DDIGITQ     SUB.B #30h,Y            ;2                          skip all chars < '0'
-            CMP.B #10,Y             ;2                          char was > "9" ?
-            JNC DDIGITQNEXT         ;2 -- ud1lo ud1hi x x       no: good end
-            SUB.B #07,Y             ;2                          skip all chars between "9" and "A"
-            CMP.B #10,Y             ;2                          char was < "A" ?
-            JNC TONUMEND            ;2                          yes: for bad end
-DDIGITQNEXT CMP W,Y                 ;1 -- ud1lo ud1hi x x       digit-base
-            BIC #Z,SR               ;1                          reset Z before jmp TONUMEND because...
-            JC  TONUMEND            ;2                          ...QNUMBER conversion will be true if Z = 1  :-(
-UDSTAR      PUSHM #6,IP             ;8 -- ud1lo ud1hi x x       save IP S T W X Y used by UM*   r-- IP adr count base x digit
-            MOV 2(PSP),S            ;3 -- ud1lo ud1hi x x       S=ud1hi
-            MOV W,TOS               ;1 -- ud1lo ud1hi x base
-            MOV #UMSTARNEXT1,IP     ;2
-UMSTARONE   JMP UMSTAR1             ;2                          ud1hi * base -- x ud3hi             X=ud3lo
-UMSTARNEXT1 .word   $+2             ;  -- ud1lo ud1hi x ud3hi
-            MOV X,2(RSP)            ;3                                                          r-- IP adr count base ud3lo digit
-            MOV 4(PSP),S            ;3 -- ud1lo ud1hi x ud3hi   S=ud1lo
-            MOV 4(RSP),TOS          ;3 -- ud1lo ud1hi x base
-            MOV #UMSTARNEXT2,IP     ;2
-UMSTARTWO   JMP UMSTAR1             ;2 -- ud1lo ud1hi x ud4hi   X=ud4lo
-UMSTARNEXT2 .word   $+2             ;  -- ud1lo ud1hi x ud4hi    
-MPLUS       ADD @RSP+,X             ;2 -- ud1lo ud1hi x ud4hi   X=ud4lo+digit=ud2lo             r-- IP adr count base ud3lo
-            ADDC @RSP+,TOS          ;2 -- ud1lo ud1hi x ud2hi   TOS=ud4hi+ud3lo+carry=ud2hi     r-- IP adr count base
-            MOV X,4(PSP)            ;3 -- ud2lo ud1hi x ud2hi
-            MOV TOS,2(PSP)          ;3 -- ud2lo ud2hi x x                                       r-- IP adr count base
-            POPM #4,IP              ;6 -- ud2lo ud2hi x x       W=base, T=count, S=adr, IP=prevIP   r-- 
-TONUMPLUS   ADD #1,S                ;1                           
-            SUB #1,T                ;1
-            JNZ TONUMLOOP           ;2 -- ud2lo ud2hi x x       S=adr+1, T=count-1, W=base     68 cycles char loop
-TONUMEND    MOV S,0(PSP)            ;3 -- ud2lo ud2hi adr2 count2
-            MOV T,TOS               ;1 -- ud2lo ud2hi adr2 count2
-            MOV @IP+,PC             ;4 50/82 words/cycles, W = BASE
+TONUMBER    MOV &BASEADR,W         ;3                          W = base
+            MOV @PSP,S          ;2                          S=adr
+            MOV TOS,T           ;1                          T=count
+TONUMLOOP   MOV.B @S,Y          ;2 -- ud1lo ud1hi x x       S=adr, T=count, W=BASE, Y=char
+DDIGITQ     SUB.B #':',Y        ;2
+            JNC DDIGITQNEXT     ;2                          accept all chars <= 9
+            SUB.B #07,Y         ;2                          reject all chars between "9" and "A"
+            JNC TONUMEND        ;2                          yes: for bad end
+DDIGITQNEXT ADD.B #10,Y         ;2                          restore number
+            CMP W,Y             ;1 -- ud1lo ud1hi x x       digit-base
+            BIC #Z,SR           ;1                          reset Z before jmp TONUMEND because...
+            JC TONUMEND         ;2                          ...QNUMBER conversion will be true if Z = 1  :-(
+UDSTAR      PUSHM #6,IP         ;8 -- ud1lo ud1hi x x       save IP S T W X Y used by UM*   r-- IP adr count base x digit
+            MOV 2(PSP),S        ;3 -- ud1lo ud1hi x x       S=ud1hi
+            MOV W,TOS           ;1 -- ud1lo ud1hi x base
+            MOV #UMSTARNEXT1,IP ;2
+UMSTARONE   JMP UMSTAR1         ;2                          ud1hi * base -- x ud3hi             X=ud3lo
+UMSTARNEXT1 mNEXTADR            ;  -- ud1lo ud1hi x ud3hi
+            MOV X,2(RSP)        ;3                                                          r-- IP adr count base ud3lo digit
+            MOV 4(PSP),S        ;3 -- ud1lo ud1hi x ud3hi   S=ud1lo
+            MOV 4(RSP),TOS      ;3 -- ud1lo ud1hi x base
+            MOV #UMSTARNEXT2,IP ;2
+UMSTARTWO   JMP UMSTAR1         ;2 -- ud1lo ud1hi x ud4hi   X=ud4lo
+UMSTARNEXT2 mNEXTADR            ;  -- ud1lo ud1hi x ud4hi
+MPLUS       ADD @RSP+,X         ;2 -- ud1lo ud1hi x ud4hi   X=ud4lo+digit=ud2lo             r-- IP adr count base ud3lo
+            ADDC @RSP+,TOS      ;2 -- ud1lo ud1hi x ud2hi   TOS=ud4hi+ud3lo+carry=ud2hi     r-- IP adr count base
+            MOV X,4(PSP)        ;3 -- ud2lo ud1hi x ud2hi
+            MOV TOS,2(PSP)      ;3 -- ud2lo ud2hi x x                                       r-- IP adr count base
+            POPM #4,IP          ;6 -- ud2lo ud2hi x x       W=base, T=count, S=adr, IP=prevIP   r--
+TONUMPLUS   ADD #1,S            ;1
+            SUB #1,T            ;1
+            JNZ TONUMLOOP       ;2 -- ud2lo ud2hi x x       S=adr+1, T=count-1, W=base     68 cycles char loop
+TONUMEND    MOV S,0(PSP)        ;3 -- ud2lo ud2hi adr2 count2
+            MOV T,TOS           ;1 -- ud2lo ud2hi adr2 count2
+            MOV @IP+,PC         ;4 48/82 words/cycles, W = BASE
 
 ; ?NUMBER makes the interface between >NUMBER and INTERPRET; it's a subset of INTERPRET.
 ; convert a string to a signed number; FORTH 2012 prefixes ' $, %, # are recognized
@@ -1510,301 +1122,282 @@ TONUMEND    MOV S,0(PSP)            ;3 -- ud2lo ud2hi adr2 count2
 ;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
-        .IFDEF DOUBLE_NUMBERS       ;           DOUBLE_NUMBERS = DOUBLE_INPUT | FIXPOINT_INPUT
-            BIC #UF9,SR             ;2          reset flag UF9, before use as double number flag
-        .ENDIF                      ;
-            MOV &BASE,T             ;3          T=BASE
-            MOV #0,S                ;1
-            PUSHM #3,IP             ;5          R-- IP sign base (push IP,S,T)
-            MOV #TONUMEXIT,IP       ;2                      define >NUMBER return
-            MOV T,W                 ;1          W=BASE
-            SUB #8,PSP              ;1 -- x x x x addr
-            MOV TOS,6(PSP)          ;3 -- addr x x x addr
-            MOV #0,4(PSP)           ;3
-            MOV #0,2(PSP)           ;3 -- addr 0 0 x addr
-            MOV TOS,S               ;1 -- addr ud=0 x x
-            MOV.B @S+,T             ;2                      S=addr, T=count
-QTICK       CMP.B #27h,0(S)         ;4                      prefix = ' ?
-            JNZ QNUMLDCHAR          ;2                      no
-            MOV.B 1(S),4(PSP)       ;5 -- addr ud2lo 0 x x  ud2lo = ASCII code of 'char'                    
-            CMP.B #3,TOS            ;2                      string must be 3 chars long
-            JMP QNUMNEXT            ;2
-QNUMLDCHAR  MOV.B @S,Y              ;2                      Y=char
-QMINUS      SUB.B #'-',Y            ;2 -- addr ud=0 x x     sign minus ?
-            JNC QBINARY             ;2                      if char U< '-'
-            JNZ TONUMLOOP           ;2                      if char U> '-'
-            MOV #-1,2(RSP)          ;3                      R-- IP sign base
-            JMP PREFIXED            ;2
-QBINARY     MOV #2,W                ;1                      preset base 2
-            ADD.B #8,Y              ;1                      binary prefix ?
-            JZ PREFIXED             ;2                      yes
-QDECIMAL    ADD #8,W                ;1                      preset base 10
-            ADD.B #2,Y              ;1                      decimal prefix ?
-            JZ PREFIXED             ;2                      yes
-QHEXA       MOV #16,W               ;1                      preset base 16
-            ADD.B #-1,Y             ;2                      hex prefix ?
-            JNZ QNUMNEXT            ;2 -- addr x x x cnt    abort if not recognized prefix
-PREFIXED    ADD #1,S                ;1
-            SUB #1,T                ;1                      S=adr+1 T=count-1
-            JMP QNUMLDCHAR          ;2
-; ----------------------------------;42
-
-TONUMEXIT   .word   $+2             ;  -- addr ud2lo-hi addr2 cnt2      R-- IP sign BASE    S=addr2,T=cnt2
-; ----------------------------------;
-            JZ QNUMNEXT             ;2                                  if conversion is ok
-; ----------------------------------;
+        .IFDEF DOUBLE_NUMBERS   ;           DOUBLE_NUMBERS = DOUBLE_INPUT | FIXPOINT_INPUT
+            BIC #UF9,SR         ;2          reset flag UF9, before use as double number flag
+        .ENDIF                  ;
+            SUB #8,PSP          ;1 -- x x x x addr
+            MOV TOS,6(PSP)      ;3 -- addr x x x addr   save TOS
+            MOV #0,4(PSP)       ;3                      ud1hi=0
+            MOV #0,2(PSP)       ;3 -- addr 0 0 x addr   ud1lo=0
+            MOV &BASEADR,W      ;3                      W=BASE
+            MOV TOS,S           ;1 -- addr ud=0 x x     S=addr
+            MOV #0,TOS          ;1
+            PUSHM #2,TOS        ;4          R-- sign IP (push TOS,IP)
+            MOV #TONUMEXIT,IP   ;2                      define >NUMBER return
+            MOV.B @S+,T         ;2                      S=addr+1, T=count
+QNUMLDCHAR  MOV.B @S,Y          ;2                      Y=char
+            SUB.B #'-',Y        ;2 -- addr ud=0 x x     sign minus ?
+            JZ QNUMMINUS        ;2                      yes
+            JC TONUMLOOP        ;2                      if char U> '-'
+QBINARY     MOV #2,W            ;1                      preset base 2
+            ADD.B #8,Y          ;1                      binary prefix ?     '%' = '-' + 8
+            JZ PREFIXNEXT       ;2                      yes
+QDECIMAL    ADD #8,W            ;1                      preset base 10
+            ADD.B #2,Y          ;1                      decimal prefix ?    '#' = '%' + 2
+            JZ PREFIXNEXT       ;2                      yes
+QHEXA       MOV #16,W           ;2                      preset base 16
+            CMP.B #1,Y          ;1                      hex prefix ?        '$' = '#' + 1
+            JZ PREFIXNEXT       ;2                      yes
+QTICK       CMP.B #4,Y          ;1                      prefix = ' ?        "'" = '#' + 4
+            JNZ QNUMNEXT        ;2 -- addr x x x cnt    abort if not recognized prefix
+            CMP #3,TOS          ;
+            JNZ QNUMNEXT        ;
+            CMP.B @S+,1(S)      ;4                      compare 3rd with first char '
+            MOV.B @S,S          ;2                      does char to word conversion
+            MOV S,4(PSP)        ;5 -- addr ud2lo 0 x x  ud2lo = ASCII code of 'char'
+            JMP QNUMNEXT        ;2                      with happy end if flag Z = 1
+QNUMMINUS   MOV #-1,2(RSP)      ;3 R-- sign IP          set sign flag
+PREFIXNEXT  SUB #1,T            ;1                      T=count-1
+            CMP.B @S+,0(S)      ;4                      S=adr+1; same prefix ?
+            JNZ QNUMLDCHAR      ;2                      no
+            JZ TONUMLOOP        ;2                      yes, that will abort conversion
+; ------------------------------;43
+TONUMEXIT   mNEXTADR            ;  -- addr ud2lo-hi addr2 cnt2      R-- IP sign BASE    S=addr2,T=cnt2
+            JZ QNUMNEXT         ;2                                  if conversion is ok
             SUB #2,IP
-            CMP.B #28h,Y            ;                                   rejected char by >NUMBER is a underscore ?
-            JZ TONUMPLUS            ;                                   yes: loopback to >NUMBER to skip char
-        .IFDEF DOUBLE_NUMBERS       ;                                   DOUBLE_NUMBERS = DOUBLE_INPUT | FIXPOINT_INPUT
-            BIT #UF9,SR             ;                                   UF9 already set ? (you have wrongly typed two points)
-            JNZ QNUMNEXT            ;                                   yes, goto QNUMKO
-            BIS #UF9,SR             ;2                                  set double number flag
+            MOV.B @S,Y          ;                                   regenerate rejected char
+            CMP.B #'_',Y        ;2                                  rejected char by >NUMBER is a underscore ?
+            JZ TONUMPLUS        ;                                   yes: loopback to >NUMBER to skip char
+        .IFDEF DOUBLE_NUMBERS   ;                                   DOUBLE_NUMBERS = DOUBLE_INPUT | FIXPOINT_INPUT
+            BIT #UF9,SR         ;                                   UF9 already set ? (you have wrongly typed two points)
+            JNZ QNUMNEXT        ;                                   yes, goto QNUMKO
+            BIS #UF9,SR         ;2                                  set double number flag
         .ENDIF
         .IFDEF DOUBLE_INPUT
-            CMP.B #0F7h,Y           ;2                                  rejected char by >NUMBER is a decimal point ?
-            JZ TONUMPLUS            ;2                                  to terminate conversion
+            SUB.B #'.',Y        ;1                                  rejected char by >NUMBER is a decimal point ?
+            JZ TONUMPLUS        ;2                                  to terminate conversion
         .ENDIF
-        .IFDEF FIXPOINT_INPUT       ;
-            CMP.B #0F5h,Y           ;2                                  rejected char by >NUMBER is a comma ?
-            JNZ QNUMNEXT            ;2                                  no, goto QNUMKO
-; ----------------------------------;
-S15Q16      MOV #0,X                ;1 -- addr ud2lo x 0 x              init ud2lo' = 0
-S15Q16LOOP  MOV X,2(PSP)            ;3 -- addr ud2lo ud2lo' ud2lo' x    X = 0(PSP) = ud2lo'
-            SUB.B #1,T              ;1                                  decrement cnt2
-            MOV T,X                 ;1                                  X = cnt2-1
-            ADD S,X                 ;1                                  X = end_of_string-1, first...
-            MOV.B @X,X              ;2                                  X = last char of string, first...
-            SUB.B #30h,X            ;2                                  char --> digit conversion
-            CMP.B #10,X             ;2
-            JNC QS15Q16DIGI         ;2
-            SUB.B #7,X              ;2
-            CMP.B #10,X             ;2
-            JNC S15Q16EOC           ;2
-QS15Q16DIGI CMP W,X                 ;1                                  R-- IP sign BASE, W=BASE,    is X a digit ?
-            JC  S15Q16EOC           ;2 -- addr ud2lo ud2lo' x ud2lo'    if no
-            MOV X,0(PSP)            ;3 -- addr ud2lo ud2lo' digit x
-            MOV W,TOS               ;1 -- addr ud2lo ud2lo' digit base  R-- IP sign base
-            PUSHM #3,S              ;5                                  PUSH S,T,W: R-- IP sign base addr2 cnt2 base
-            CALL #MUSMOD            ;4 -- addr ud2lo ur uqlo uqhi
-            POPM #3,S               ;5                                  restore W,T,S: R-- IP sign BASE
-            JMP S15Q16LOOP          ;2                                  W=cnt
-S15Q16EOC   MOV 4(PSP),2(PSP)       ;5 -- addr ud2lo ud2lo uqlo x       ud2lo from >NUMBER part1 becomes here ud2hi=S15 part2
-            MOV @PSP,4(PSP)         ;4 -- addr ud2lo ud2hi x x          uqlo becomes ud2lo
-            CMP.B #0,T              ;1                                  cnt2 = 0 if end of conversion ok
-        .ENDIF ; FIXPOINT_INPUT     ;
-; ----------------------------------;97
-QNUMNEXT    POPM #3,IP              ;4 -- addr ud2lo-hi x cnt2          POPM T,S,IP   S = sign flag = {-1;0}
-            MOV S,TOS               ;1 -- addr ud2lo-hi x sign
-            MOV T,&BASE             ;3
-            JZ QNUMOK               ;2 -- addr ud2lo-hi x sign          flag Z=1: conversion OK
-QNUMKO                              ;                                   flag Z=0
+        .IFDEF FIXPOINT_INPUT   ;
+            .IFDEF DOUBLE_INPUT
+            ADD.B #2,Y          ;1                                  rejected char by >NUMBER is a comma ?
+            .ELSE
+            SUB.B #',',Y        ;1                                  rejected char by >NUMBER is a comma ?
+            .ENDIF
+            JNZ QNUMNEXT        ;2                                  no, goto QNUMKO
+S15Q16      MOV #0,X            ;1 -- addr ud2lo x 0 x              init ud2lo' = 0
+S15Q16LOOP  MOV X,2(PSP)        ;3 -- addr ud2lo ud2lo' ud2lo' x    X = 0(PSP) = ud2lo'
+            SUB.B #1,T          ;1                                  decrement cnt2
+            MOV T,X             ;1                                  X = cnt2-1
+            ADD S,X             ;1                                  X = end_of_string-1, first...
+            MOV.B @X,X          ;2                                  X = last char of string, first...
+            SUB.B #':',X        ;2
+            JNC QS15Q16DIGI     ;2                                  accept all chars U< ':'
+            SUB.B #7,X          ;2
+            JNC S15Q16EOC       ;2                                  reject all chars U< 'A'
+QS15Q16DIGI ADD.B #10,X         ;2                                  restore number
+            CMP W,X             ;1                                  W=BASE, is X a digit ?
+            JC  S15Q16EOC       ;2 -- addr ud2lo ud2lo' x ud2lo'    if not a digit
+            MOV X,0(PSP)        ;3 -- addr ud2lo ud2lo' digit x
+            MOV W,TOS           ;1 -- addr ud2lo ud2lo' digit base  R-- IP sign
+            PUSHM #3,S          ;5                                  PUSH S,T,W: R-- IP sign addr2 cnt2 base
+            CALL #MUSMOD        ;4 -- addr ud2lo ur uqlo uqhi
+            POPM #3,S           ;5                                  restore W,T,S: R-- IP sign
+            JMP S15Q16LOOP      ;2                                  W=cnt
+S15Q16EOC   MOV 4(PSP),2(PSP)   ;5 -- addr ud2lo ud2lo uqlo x       ud2lo from >NUMBER part1 becomes here ud2hi=S15 part2
+            MOV @PSP,4(PSP)     ;4 -- addr ud2lo ud2hi x x          uqlo becomes ud2lo
+            CMP.B #0,T          ;1                                  cnt2 = 0 if end of conversion ok
+        .ENDIF ; FIXPOINT_INPUT ;
+; ------------------------------;97
+QNUMNEXT    POPM #2,TOS         ;4 -- addr ud2lo-hi x sign  R: --   POPM IP,TOS  TOS = sign flag = {-1;0}
+            JZ QNUMOK           ;2 -- addr ud2lo-hi x sign          conversion OK if Z=1
+QNUMKO                          ;                                   flag Z=0
         .IFDEF DOUBLE_NUMBERS
             BIC #UF9,SR
         .ENDIF
-            ADD #6,PSP              ;1 -- addr sign
-            AND #0,TOS              ;1 -- addr ff                       TOS=0 and Z=1 ==> conversion ko
-            MOV @IP+,PC             ;4
-; ----------------------------------;
+            ADD #6,PSP          ;1 -- addr sign
+            AND #0,TOS          ;1 -- addr ff                       TOS=0 and Z=1 ==> conversion ko
+            MOV @IP+,PC         ;4
+; ------------------------------;
         .IFDEF DOUBLE_NUMBERS
-QNUMOK      ADD #2,PSP              ;1 -- addr ud2lo ud2hi sign
-            MOV 2(PSP),4(PSP)       ;  -- udlo udlo udhi sign
-            MOV @PSP+,0(PSP)        ;4 -- udlo udhi sign                note : PSP is incremented before write back !!!
-            XOR #-1,TOS             ;1 -- udlo udhi inv(sign)
-            JNZ QDOUBLE             ;2                                  if jump : TOS=-1 and Z=0 ==> conversion ok
-            XOR #-1,TOS             ;1 -- udlo udhi tf
-Q2NEGATE    XOR #-1,2(PSP)          ;3
-            XOR #-1,0(PSP)          ;3
-            ADD #1,2(PSP)           ;3
-            ADDC #0,0(PSP)          ;3 -- dlo dhi tf
-QDOUBLE     BIT #UF9,SR             ;2 -- dlo dhi tf                decimal point added ?
-            JNZ QNUMEND             ;2 -- dlo dhi tf                leave double
-            ADD #2,PSP              ;1 -- dlo tf                    leave number, Z=0
-QNUMEND     MOV @IP+,PC             ;4                              TOS=-1 and Z=0 ==> conversion ok
+QNUMOK      ADD #2,PSP          ;1 -- addr ud2lo ud2hi sign
+            MOV 2(PSP),4(PSP)   ;  -- udlo udlo udhi sign
+            MOV @PSP+,0(PSP)    ;4 -- udlo udhi sign                note : PSP is incremented before write back !!!
+            XOR #-1,TOS         ;1 -- udlo udhi inv(sign)
+            JNZ QDOUBLE         ;2                                  if jump : TOS=-1 and Z=0 ==> conversion ok
+            XOR #-1,TOS         ;1 -- udlo udhi tf
+Q2NEGATE    XOR #-1,2(PSP)      ;3
+            XOR #-1,0(PSP)      ;3
+            ADD #1,2(PSP)       ;3
+            ADDC #0,0(PSP)      ;3 -- dlo dhi tf
+QDOUBLE     BIT #UF9,SR         ;2 -- dlo dhi tf                decimal point added ?
+            JNZ QNUMEND         ;2 -- dlo dhi tf                leave double
+NIP         ADD #2,PSP          ;1 -- dlo tf                    leave number, Z=0
+QNUMEND     MOV @IP+,PC         ;4                              TOS=-1 and Z=0 ==> conversion ok
         .ELSE
-QNUMOK      ADD #4,PSP              ;1 -- addr ud2lo sign
-            MOV @PSP+,0(PSP)        ;4 -- udlo sign                 note : PSP is incremented before write back !!!
-            XOR #-1,TOS             ;1 -- udlo inv(sign)
-            JNZ QNUMEND             ;2                              if jump : TOS=-1 and Z=0 ==> conversion ok
-            XOR #-1,TOS             ;1 -- udlo tf                   TOS=-1 and Z=0
-QNEGATE     XOR #-1,0(PSP)          ;3
-            ADD #1,0(PSP)           ;3 -- n tf
-QNUMEND     MOV @IP+,PC             ;4                              TOS=-1 and Z=0 ==> conversion ok
+QNUMOK      ADD #4,PSP          ;1 -- addr ud2lo sign
+            MOV @PSP,2(PSP)     ;4 -- udlo udlo sign            note : PSP is incremented before write back !!!
+            XOR #-1,TOS         ;1 -- udlo udlo inv(sign)
+            JNZ QNUMEND         ;2                              if jump : TOS=-1 and Z=0 ==> conversion ok
+            XOR #-1,TOS         ;1 -- udlo udlo tf                   TOS=-1 and Z=0
+QNEGATE     XOR #-1,2(PSP)      ;3
+            ADD #1,2(PSP)       ;3 -- n udlo tf
+QNUMEND
+NIP         ADD #2,PSP          ;1
+            MOV @IP+,PC         ;4                              TOS=-1 and Z=0 ==> conversion ok
         .ENDIF ; DOUBLE_NUMBERS
-
     .ENDIF ; of Hardware/Software MPY
 
+            FORTHWORDIMM "\\"       ; immediate
+; https://forth-standard.org/standard/block/bs
+; \         --      backslash
+; everything up to the end of the current line is a comment.
+BACKSLASH   MOV &SOURCE_LEN,&TOIN   ;
+            MOV @IP+,PC
+
+; 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
+INTERPRET   mDOCOL              ;               INTERPRET = BACKSLASH + 8
+            .word SETIB         ; --            set input buffer pointers
+INTLOOP     .word BL,WORDD      ; -- c-addr fl  flag Z = 1 <=> End Of Line
+            .word ZBRAN,FDROPEXIT;              BRANch to DROPEXIT if Z = 1
+            .word FIND
+            mNEXTADR            ; -- xt|c-addr|xt -1|0|+1   Z=1 --> not found
+            MOV TOS,W           ;                           W = flag = (-1|0|+1) as (not_immediate|not_found|immediate)
+            MOV @PSP+,TOS       ; -- xt|c-addr|xt
+            MOV #INTQNUMNEXT,IP ;2              INTQNUMNEXT is the continuation of QNUMBER
+            JZ QNUMBER          ;2              if Z=1 --> not found, search a number
+            MOV #INTLOOP,IP     ;2              INTLOOP is the continuation of EXECUTE|COMMA
+            XOR &STATE,W        ;3
+            JZ COMMA            ;2 -- xt        if W xor STATE = 0 compile xt, then loop back to INTLOOP
+EXECUTE     PUSH TOS            ;3 -- xt
+            MOV @PSP+,TOS       ;2 --
+            MOV @RSP+,PC        ;4              xt --> PC, then loop back to INTLOOP
+; ------------------------------;
+INTQNUMNEXT mNEXTADR            ;  -- n|c-addr fl   Z = 1 --> not a number, SR(UF9) double number request
+            MOV @PSP+,TOS       ;2 -- n|c-addr
+            MOV #INTLOOP,IP     ;2              INTLOOP is the continuation of LITERAL.
+            JNZ LITERAL         ;2 n --         Z = 0 --> is a number, execute LITERAL then loop back to INTLOOP
+NotFoundexe ADD.B #1,0(TOS)     ;3 c-addr --    Z = 1 --> Not a Number : incr string count to add '?'
+            MOV.B @TOS,Y        ;2              Y=count+1
+            ADD TOS,Y           ;1              Y=end of string addr
+            MOV.B #'?',0(Y)     ;5              add '?' to end of string
+            MOV #FABORT_TERM,IP ;2              ABORT_TERM is the continuation of COUNT
+            JMP COUNT           ;2 -- addr len  37 words
+
 ;-------------------------------------------------------------------------------
 ; DICTIONARY MANAGEMENT
 ;-------------------------------------------------------------------------------
             FORTHWORD ","
 ; https://forth-standard.org/standard/core/Comma
 ; ,    x --           append cell to dict
-COMMA       MOV &DDP,W              ;3
-            MOV TOS,0(W)            ;3
-            ADD #2,&DDP             ;3
-            MOV @PSP+,TOS           ;2
-            MOV @IP+,PC             ;4 15~
-
-        .IFDEF CORE_COMPLEMENT
-            FORTHWORD "EXECUTE"
-; https://forth-standard.org/standard/core/EXECUTE
-; EXECUTE   i*x xt -- j*x   execute Forth word at 'xt'
-            JMP EXECUTE
-        .ENDIF
+COMMA       ADD #2,&DP          ;3
+            MOV &DP,W           ;3
+            MOV TOS,-2(W)       ;3
+            MOV @PSP+,TOS       ;2
+            MOV @IP+,PC         ;4 15~      W = DP
 
             FORTHWORDIMM "LITERAL"  ; immediate
 ; https://forth-standard.org/standard/core/LITERAL
 ; LITERAL  n --        append single numeric literal if compiling state
 ;          d --        append two numeric literals if compiling state and UF9<>0 (not ANS)
-    .IFDEF DOUBLE_NUMBERS           ; are recognized
-LITERAL     CMP #0,&STATE           ;3
-            JZ LITERAL2             ;2 if interpreting state, clear UF9 flag then NEXT
-            MOV TOS,X               ;1
-LITERAL1    MOV &DDP,W              ;3 X = n|HId
-            ADD #4,&DDP             ;3
-            MOV #LIT,0(W)           ;4
-            MOV X,2(W)              ;3
-            MOV @PSP+,TOS           ;2
-            BIT #UF9,SR             ;2 double number ?
-LITERAL2    BIC #UF9,SR             ;2    in all case, clear UF9
-            JZ LITERALEND           ;2 no
-            MOV TOS,2(W)            ;3
-            JMP LITERAL1            ;2
-LITERALEND  MOV @IP+,PC             ;4
+    .IFDEF DOUBLE_NUMBERS       ; are recognized
+LITERAL     CMP #0,&STATE       ;3
+            JZ LITERALNEXT      ;2 if interpreting state, does nothing else clear UF9 flag
+            MOV TOS,X           ;1          X = n|dhi
+LITERALLOOP MOV &DP,W           ;3
+            ADD #4,&DP          ;3
+            MOV #lit,0(W)       ;4
+            MOV X,2(W)          ;3 pass 1: compile n|dhi, if pass 2: compile dhi
+            MOV @PSP+,TOS       ;2
+            BIT #UF9,SR         ;2 double number ?
+LITERALNEXT BIC #UF9,SR         ;2    in all case, clear UF9
+            JZ LITERALEND       ;2 goto end if n|interpret_state
+            MOV TOS,2(W)        ;3 compile dlo over dhi
+            JMP LITERALLOOP     ;2
+LITERALEND  MOV @IP+,PC         ;4
     .ELSE
-LITERAL     CMP #0,&STATE           ;3
-            JZ LITERALEND           ;2 if interpreting state, do nothing
-LITERAL1    MOV &DDP,W              ;3
-            ADD #4,&DDP             ;3
-            MOV #LIT,0(W)           ;4
-            MOV TOS,2(W)            ;3
-            MOV @PSP+,TOS           ;2
-LITERALEND  MOV @IP+,PC             ;4
+LITERAL     CMP #0,&STATE       ;3
+            JZ LITERALEND       ;2 if interpreting state, does nothing
+            MOV &DP,W           ;3
+            ADD #4,&DP          ;3
+            MOV #lit,0(W)       ;4
+            MOV TOS,2(W)        ;3
+            MOV @PSP+,TOS       ;2
+LITERALEND  MOV @IP+,PC         ;4
     .ENDIF
 
             FORTHWORD "COUNT"
 ; https://forth-standard.org/standard/core/COUNT
 ; COUNT   c-addr1 -- adr len   counted->adr/len
-COUNT       SUB #2,PSP              ;1
-            ADD #1,TOS              ;1
-            MOV TOS,0(PSP)          ;3
-            MOV.B -1(TOS),TOS       ;3
-            MOV @IP+,PC             ;4 15~
-
-            FORTHWORD "INTERPRET"
-; 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
-INTERPRET   mDOCOL                  ;
-            .word   SETIB           ;                             
-INTLOOP     .word   FBLANK,WORDD    ; -- c-addr     Z = 1 --> End Of Line
-            .word   $+2             ;
-            JZ DROPEXIT             ;2              Z = 1 --> EOL reached
-            MOV #INTFINDNEXT,IP     ;2              define INTFINDNEXT as FIND return
-            JMP FIND                ;2
-INTFINDNEXT .word   $+2             ; -- c-addr fl  Z = 1 -->not found
-            MOV TOS,W               ;               W = flag =(-1|0|+1)  as (normal|not_found|immediate)
-            MOV @PSP+,TOS           ; -- c-addr
-            MOV #INTQNUMNEXT,IP     ;2              define QNUMBER return
-            JZ QNUMBER              ;2              Z = 1 --> not found, search a number
-            MOV #INTLOOP,IP         ;2              define (EXECUTE | COMMA) return
-            XOR &STATE,W            ;3
-            JZ COMMA                ;2              if W xor STATE = 0 compile xt then loop back to INTLOOP
-EXECUTE     PUSH TOS                ;3 
-            MOV @PSP+,TOS           ;2 --
-            MOV @RSP+,PC            ;4              xt --> PC
-
-INTQNUMNEXT .word   $+2             ;  -- n|c-addr fl   Z = 1 --> not a number, SR(UF9) double number request
-            MOV @PSP+,TOS           ;2
-            MOV #INTLOOP,IP         ;2 -- n|c-addr  define LITERAL return
-            JNZ LITERAL             ;2 n --         Z = 0 --> is a number, execute LITERAL then loop back to INTLOOP
-
-NotFoundexe ADD.B #1,0(TOS)         ;3 c-addr --    Z = 1 --> Not a Number : incr string count to add '?'
-            MOV.B @TOS,Y            ;2              Y=count+1
-            ADD TOS,Y               ;1              Y=end of string addr
-            MOV.B #'?',0(Y)         ;5              add '?' to end of string
-            MOV #FABORT_TERM,IP     ;2              define the return of COUNT
-            JMP COUNT               ;2 -- addr len  35 words
-NotFound    .word   NotFoundExe     ;
-
-    .IFDEF CORE_COMPLEMENT
-            FORTHWORD "EVALUATE"
-; https://forth-standard.org/standard/core/EVALUATE
-; EVALUATE          \ i*x c-addr u -- j*x  interpret string
-EVALUATE    MOV #SOURCE_LEN,X       ;2
-            MOV @X+,S               ;2 S = SOURCE_LEN
-            MOV @X+,T               ;2 T = SOURCE_ORG
-            MOV @X+,W               ;2 W = TOIN
-            PUSHM #4,IP             ;6 PUSHM IP,S,T,W
-            ASMtoFORTH
-            .word   INTERPRET
-            .word   $+2
-            MOV @RSP+,&TOIN         ;4
-            MOV @RSP+,&SOURCE_ORG   ;4
-            MOV @RSP+,&SOURCE_LEN   ;4
-            MOV @RSP+,IP 
-            MOV @IP+,PC
-
-            FORTHWORD "BL"
-; https://forth-standard.org/standard/core/BL
-; BL      -- char            an ASCII space
-    .ENDIF ; CORE_COMPLEMENT
-FBLANK       CALL rDOCON
-            .word   20h
+COUNT       SUB #2,PSP          ;1
+            MOV.B @TOS+,W       ;2
+            MOV TOS,0(PSP)      ;3
+            MOV W,TOS           ;1
+            AND #-1,TOS         ;       Z is set if u=0
+            MOV @IP+,PC         ;4 14~
 
             FORTHWORD "ALLOT"
 ; https://forth-standard.org/standard/core/ALLOT
 ; ALLOT   n --         allocate n bytes
-ALLOT       ADD TOS,&DDP
+ALLOT       ADD TOS,&DP
             MOV @PSP+,TOS
             MOV @IP+,PC
 
 ;            FORTHWORD "ABORT"
 ; https://forth-standard.org/standard/core/ABORT
-; Empty the data stack and perform the function of QUIT, 
+; Empty the data stack and perform the function of QUIT,
 ; which includes emptying the return stack, without displaying a message.
 ; ABORT is the common next of WARM and ABORT"
-ABORT       MOV #PSTACK,PSP         ;
-            MOV #0,TOS              ; to reset first PSP cell (TOS), used next by WARM
+ABORT       MOV #PSTACK,PSP         ; ABORT = ALLOT + 8
+            MOV #0,TOS              ; and set TOS for SYS use.
 ; https://forth-standard.org/standard/core/QUIT
 ; QUIT  --     interpret line by line the input stream
-QUIT        MOV #RSTACK,RSP         ;
-            MOV #LSTACK,&LEAVEPTR   ; 
-            MOV #0,&STATE           ;
-            ASMtoFORTH
+QUIT        mASM2FORTH              ; QUIT = ALLOT + 14
     .IFDEF PROMPT
-QUIT1       .word   XSQUOTE         ; background interpret loop
-            .byte   5,13,10,"ok "   ; CR+LF + Forth prompt
-QUIT2       .word   TYPE            ; display it
+QUIT1       .word   XSQUOTE         ; lower interpret loop
+            .byte   5,13,10,"ok "   ; CR + LF + Forth prompt
+QUIT2
     .ELSE
-QUIT2       .word   CR
+QUIT2       .word   XSQUOTE
+            .byte   2,13,10         ; CR+LF
     .ENDIF
-QUIT3       .word   REFILL          ; -- org len      refill input buffer from ACCEPT (one line)
-QUIT4       .word   INTERPRET       ; interpret this line|string
-            .word   DEPTH,ZEROLESS  ; stack empty test
+            .word   TYPE            ;
+            .word   REFILL          ; -- org len      refill input buffer from ACCEPT (one line)
+QUIT4       .word   INTERPRET       ; interpret  input buffer|string
+QUIT5       .word   DEPTH,ZEROLESS  ; stack empty test
             .word   XSQUOTE         ; ABORT" stack empty! "
-            .byte 12,"stack empty!" ;
+            .byte   11,"stack empty";
             .word   QABORT          ; see QABORT in forthMSP430FR_TERM_xxx.asm
-            .word   lit,FRAM_FULL   ;
-            .word   HERE,ULESS      ; FRAM full test
+            .word   HEREXEC         ; )
+            .word   lit,FRAM_FULL   ; > FRAM full test
+            .word   UMORE           ; )
             .word   XSQUOTE         ; ABORT" FRAM full! "
-            .byte   10,"FRAM full!" ;
+            .byte   9,"FRAM full"   ;
             .word   QABORT          ; see QABORT in forthMSP430FR_TERM_xxx.asm
     .IFDEF PROMPT
-            .word   LIT,STATE,FETCH ; STATE @
+            .word   lit,STATE,FETCH ; STATE @
             .word   QFBRAN,QUIT1    ; 0= case of interpretion state
             .word   XSQUOTE         ; 0<> case of compilation state
             .byte   5,13,10,"   "   ; CR+LF + 3 spaces
     .ENDIF
             .word   BRAN,QUIT2
 
-            FORTHWORDIMM "ABORT\34" ; immediate
+            FORTHWORDIMM "ABORT\34"
+; ; ABORT" is enabled in interpretation mode (+ 17 words) :
+;             CMP #0,&STATE
+;             JNZ CMPL_QABORT
+;             MOV #0,&CAPS            ; CAPS OFF
+; EXEC_QABORT mDOCOL
+;             .word   LIT,'"',WORDD,COUNT,QABORT
+;             .word   BL,LIT,CAPS,STORE
+;             .word   EXIT
+
 ; https://forth-standard.org/standard/core/ABORTq
+; ABORT" " (empty string) displays nothing
 ; ABORT"  i*x flag -- i*x   R: j*x -- j*x  flag=0
 ;         i*x flag --       R: j*x --      flag<>0
-; ABORT" " (empty string) displays nothing
-ABORTQUOTE  mDOCOL
+CMPL_QABORT mDOCOL
             .word   SQUOTE
             .word   lit,QABORT,COMMA    ; see QABORT in forthMSP430FR_TERM_xxx.asm
             .word   EXIT
@@ -1816,16 +1409,18 @@ ABORTQUOTE  mDOCOL
 ; https://forth-standard.org/standard/core/Tick
 ; '    -- xt           find word in dictionary and leave on stack its execution address
 TICK        mDOCOL
-            .word   FBLANK,WORDD,FIND
-            .word   QFBRAN,NotFound ; see INTERPRET
-            .word   EXIT
+            .word   BL,WORDD,FIND
+            .word   ZBRAN,NotFound  ; BRANch to NotFound if Z = 1
+FDROPEXIT   .word   DROPEXIT
+NotFound    .word   NotFoundExe     ; see INTERPRET
+
 
             FORTHWORDIMM "[']"      ; immediate word, i.e. word executed during compilation
 ; https://forth-standard.org/standard/core/BracketTick
 ; ['] <name>        --         find word & compile it as literal
 BRACTICK    mDOCOL
             .word   TICK            ; get xt of <name>
-            .word   lit,lit,COMMA   ; append LIT action
+            .word   lit,lit,COMMA   ; append lit action
             .word   COMMA,EXIT      ; append xt literal
 
             FORTHWORDIMM "["    ; immediate
@@ -1842,73 +1437,66 @@ RIGHTBRACKET
             MOV  #-1,&STATE
             MOV @IP+,PC
 
-            FORTHWORDIMM "\\"       ; immediate
-; https://forth-standard.org/standard/block/bs
-; \         --      backslash
-; everything up to the end of the current line is a comment.
-BACKSLASH   MOV &SOURCE_LEN,&TOIN   ;
-            MOV @IP+,PC
-
             FORTHWORDIMM "POSTPONE"
 ; https://forth-standard.org/standard/core/POSTPONE
 POSTPONE    mDOCOL
-            .word   FBLANK,WORDD,FIND,QDUP
-            .word   QFBRAN,NotFound ; see INTERPRET
+            .word   BL,WORDD,FIND
+            .word   ZBRAN,NotFound  ; BRANch to NotFound if Z = 1
             .word   ZEROLESS        ; immediate word ?
             .word   QFBRAN,POST1    ; if immediate
             .word   lit,lit,COMMA   ; else  compile lit
             .word   COMMA           ;       compile xt
             .word   lit,COMMA       ;       CFA of COMMA
-POST1       .word   COMMA,EXIT      ; then compile: if immediate xt of word found else CFA of COMMA
+POST1       .word   COMMA,EXIT      ; then compile xt of word found if immediate else CFA of COMMA
 
             FORTHWORD ":"
 ; https://forth-standard.org/standard/core/Colon
 ; : <name>     --      begin a colon definition
-; HEADER is CALLed by all compiling words
-COLON       PUSH #COLONNEXT         ;3 define COLONNEXT as HEADER return
+COLON       PUSH #COLONNEXT         ;3              define COLONNEXT as HEADER return
 ;-----------------------------------;
-HEADER      BIT #1,&DDP             ;3              carry set if odd
-            ADDC #2,&DDP            ;4              (DP+2|DP+3) bytes, make room for LFA
+HEADER      BIT #1,&D             ;3              carry set if odd
+            ADDC #2,&DP             ;4              align and make room for LFA
             mDOCOL                  ;
-            .word FBLANK,WORDD      ;
-            .word   $+2             ; -- HERE       HERE is the NFA of this new word
+            .word BL,WORDD          ;               W=Count_of_chars
+            mNEXTADR                ; -- HERE       HERE is the NFA of this new word
             MOV @RSP+,IP            ;
-            MOV TOS,Y               ; -- NFA        Y=NFA
-            MOV.B @TOS+,W           ; -- NFA+1      W=Count_of_chars
             BIS.B #1,W              ;               W=count is always odd
             ADD.B #1,W              ;               W=add one byte for length
-            ADD Y,W                 ;               W=Aligned_CFA
+            ADD TOS,W               ;               W=Aligned_CFA
             MOV &CURRENT,X          ;               X=VOC_BODY of CURRENT
+            MOV TOS,Y               ;               Y=NFA
     .SWITCH THREADS                 ;
     .CASE   1                       ;               nothing to do
     .ELSECASE                       ;               multithreading add 5~ 4words
-            MOV.B @TOS,TOS          ; -- char       TOS=first CHAR of new word
-            AND #(THREADS-1)*2,TOS  ; -- offset     TOS= Thread offset
+            MOV.B 1(TOS),TOS        ; -- char       TOS=first CHAR of new word
+            AND #(THREADS-1),TOS    ; -- offset     TOS= thread_offset
+            ADD TOS,TOS             ;               TOS= thread_offset * 2
             ADD TOS,X               ;               X=VOC_PFAx = thread x of VOC_PFA of CURRENT
     .ENDCASE                        ;
             MOV @PSP+,TOS           ; --
-HEADEREND   MOV Y,&LAST_NFA         ;               NFA --> LAST_NFA            used by QREVEAL, IMMEDIATE, MARKER
+            ADD.B @Y,0(Y)           ;               shift left once NFA_1st_byte (make room for immediate flag)
+HEADEREND   MOV Y,&LAST_NFA         ;               NFA --> LAST_NFA            used by QREVEAL, IMMEDIATE
             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              ;   
+            MOV W,&DP               ;
             MOV @RSP+,PC            ; RET           W is the new DP value )
                                     ;               X is LAST_THREAD      > used by compiling words: CREATE, DEFER, :...
 COLONNEXT                           ;               Y is NFA              )
     .SWITCH DTC                     ; Direct Threaded Code select
     .CASE 1                         ;
-            MOV #1284h,-4(W)        ; compile CALL R4 = rDOCOL ([rDOCOL] = XDOCOL)
-            SUB #2,&DDP             ;
+            MOV #DOCOL,-4(W)        ; compile CALL R4 = rDOCOL ([rDOCOL] = XDOCOL)
+            SUB #2,&D             ;
     .CASE 2                         ;
             MOV #120Dh,-4(W)        ; compile PUSH IP       3~
-            MOV #1284h,-2(W)        ; compile CALL R4 = rDOCOL ([rDOCOL] = EXIT)
+            MOV #DOCOL,-2(W)        ; compile CALL R4 = rDOCOL ([rDOCOL] = EXIT)
     .CASE 3                         ;
             MOV #120Dh,-4(W)        ; compile PUSH IP       3~
             MOV #400Dh,-2(W)        ; compile MOV PC,IP     1~
             MOV #522Dh,0(W)         ; compile ADD #4,IP     1~
             MOV #4D30h,+2(W)        ; compile MOV @IP+,PC   4~
-            ADD #4,&DDP             ;
+            ADD #4,&D             ;
     .ENDCASE                        ;
             MOV #-1,&STATE          ; enter compiling state
             MOV @IP+,PC             ;
@@ -1916,14 +1504,8 @@ COLONNEXT                           ;               Y is NFA              )
 
 ;;Z ?REVEAL   --      if no stack mismatch, link this new word in the CURRENT vocabulary
 QREVEAL     CMP PSP,&LAST_PSP       ; Check SP with its saved value by :, :NONAME, CODE...
-            JNZ BAD_CSP             ; if stack mismatch.
-GOOD_CSP    MOV &LAST_NFA,Y         ;
-            MOV &LAST_THREAD,X      ;
-REVEAL      MOV @X,-2(Y)            ; [LAST_THREAD] --> LFA         (for NONAME: [LAST_THREAD] --> unused PA reg)
-            MOV Y,0(X)              ; LAST_NFA --> [LAST_THREAD]    (for NONAME: LAST_NFA --> unused PA reg) 
-            MOV @IP+,PC
-
-BAD_CSP     mDOCOL
+            JZ LINK_NFA             ; see MARKER
+BAD_CSP     mASM2FORTH              ; if stack mismatch.
             .word   XSQUOTE
             .byte   15,"stack mismatch!"
 FABORT_TERM .word   ABORT_TERM
@@ -1940,49 +1522,29 @@ SEMICOLON   CMP #0,&STATE           ; if interpret mode, semicolon becomes a com
             FORTHWORD "IMMEDIATE"
 ; https://forth-standard.org/standard/core/IMMEDIATE
 ; IMMEDIATE        --   make last definition immediate
-IMMEDIATE   MOV &LAST_NFA,Y         ; Y = NFA|unused_PA_reg as lure for :NONAME
-            BIS.B #BIT7,0(Y)        ; 
-            MOV @IP+,PC
+IMMEDIATE   MOV &LAST_NFA,Y         ; Y = NFA|unused_PA_reg (as lure for :NONAME)
+            BIS.B #1,0(Y)           ;4 FIND process more easier with bit0 than bit7
+NEXTADR     MOV @IP+,PC
 
             FORTHWORD "CREATE"
 ; https://forth-standard.org/standard/core/CREATE
 ; CREATE <name>        --          define a CONSTANT with its next address
 ; Execution: ( -- a-addr )          ; a-addr is the address of name's data field
 ;                                   ; the execution semantics of name may be extended by using DOES>
-CREATE      CALL #HEADER            ; --        W = DDP
-            MOV #1286h,-4(W)        ;4          -4(W) = CFA = CALL R6 = rDOCON
+CREATE      CALL #HEADER            ; --        W = DP
+            MOV #DOCON,-4(W)        ;4          -4(W) = CFA = CALL rDOCON
             MOV W,-2(W)             ;3          -2(W) = PFA = W = next address
             JMP REVEAL              ;           to link the definition in vocabulary
 
-    .IFDEF CORE_COMPLEMENT
             FORTHWORD "DOES>"
 ; https://forth-standard.org/standard/core/DOES
 ; DOES>    --          set action for the latest CREATEd definition
 DOES        MOV &LAST_CFA,W         ;           W = CFA of CREATEd word
-            MOV #1285h,0(W)         ;           replace old CFA of CREATE by new CFA CALL R5 = rDODOES
+            MOV #DODOES,0(W)        ;           replace CALL rDOCON of CREATE by new CFA: CALL rDODOES
             MOV IP,2(W)             ;           replace PFA by the address after DOES> as execution address
-            MOV @RSP+,IP            ;
-            MOV @IP+,PC             ;           exit of the new created word
-
-            FORTHWORD "CONSTANT"
-;https://forth-standard.org/standard/core/CONSTANT
-;C CONSTANT <name>     n --                      define a Forth CONSTANT
-CONSTANT    CALL #HEADER            ;       W = DDP = CFA + 2 words
-            MOV #1286h,-4(W)        ;       CFA = CALL R6 = rDOCON
-            MOV TOS,-2(W)           ;       PFA = n
-            MOV @PSP+,TOS           ; --
-            JMP REVEAL              ;       to link the definition in vocabulary
-
-            FORTHWORD "VARIABLE"
-;https://forth-standard.org/standard/core/VARIABLE
-;C VARIABLE <name>       --                      define a Forth VARIABLE
-VARIABLE    CALL #HEADER            ; W = DDP = CFA + 2 words
-            MOV #1287h,-4(W)        ; CFA = CALL R7 = rDOVAR, PFA is undefined
-            JMP REVEAL              ; to link created VARIABLE in vocabulary
+            MOV @RSP+,IP            ;           which ends the..
+            MOV @IP+,PC             ;           ..of a CREATE  definition.
 
-    .ENDIF ; CORE_COMPLEMENT
-
-    .IFDEF DEFERRED
             FORTHWORD ":NONAME"
 ; https://forth-standard.org/standard/core/ColonNONAME
 ; :NONAME        -- xt
@@ -1990,312 +1552,183 @@ VARIABLE    CALL #HEADER            ; W = DDP = CFA + 2 words
 ; X is the LAST_THREAD lure value for REVEAL
 ; Y is the LAST_NFA lure value for REVEAL and IMMEDIATE
 ; ...because we don't want to modify the word set !
-            PUSH #COLONNEXT         ; define COLONNEXT as HEADERLESS RET
+            PUSH #COLONNEXT         ; define COLONNEXT as HEADEREND RET
 HEADERLESS  SUB #2,PSP              ; common part of :NONAME and CODENNM
             MOV TOS,0(PSP)          ;
-            MOV &DDP,W              ;
+            MOV &DP,W               ;
             BIT #1,W                ;
             ADDC #0,W               ;           W = aligned CFA
             MOV W,TOS               ; -- xt     aligned CFA of :NONAME | CODENNM
-            MOV #210h,X             ;           X = 210h = unused PA register address (lure for REVEAL)
-            MOV X,Y                 ;1
-            ADD #2,Y                ;1          Y = 212h = unused PA register address (lure for REVEAL and IMMEDIATE)
+            MOV #212h,X             ;           MOV @X,-2(Y) writes to 210h = unused PA register address (lure for REVEAL and IMMEDIATE)
+            MOV X,Y                 ;           MOV Y,0(X)   writes to 212h = unused PA register address (lure for REVEAL)
             JMP HEADEREND           ;
 
-; https://forth-standard.org/standard/core/DEFER
-; 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"
-            CALL #HEADER   
-            MOV #4030h,-4(W)        ;4 first CELL = MOV @PC+,PC = BR...
-            MOV #NEXT_ADR,-2(W)     ;3 second CELL              =   ...mNEXT : do nothing by default
-            JMP REVEAL              ; to link created word in vocabulary
-
-; DEFER! ( xt CFA_DEFERed_WORD -- ) 
-;            FORTHWORD "DEFER!"
-DEFERSTORE  MOV @PSP+,2(TOS)        ; -- CFA_DEFERed_WORD          xt --> [PFA_DEFERed_WORD]
-            MOV @PSP+,TOS           ; --
-            MOV @IP+,PC             ;
+;; https://forth-standard.org/standard/core/DEFER
+;; 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"
+;            CALL #HEADER
+;            MOV #4030h,-4(W)        ;4 first CELL = MOV @PC+,PC = BR #addr
+;            MOV #NEXTADR,-2(W)      ;3 second CELL              =   ...mNEXT : do nothing by default
+;            JMP REVEAL              ; to link created word in vocabulary
 
 ; IS <name>        xt --
-; used like this:
-; DEFER DISPLAY                         create a "do nothing" definition (2 CELLS)
+
+; used like this (high level defn.):
+;   DEFER DISPLAY                       create a "do nothing" definition (2 CELLS)
+
+; or (low level defn.):
+;   CODE DISPLAY                        create a "do nothing" definition (2 CELLS)
+;   MOV #NEXT_ADR,PC                    NEXT_ADR is the address of NEXT code: MOV @IP+,PC
+;   ENDCODE
+
 ; inline command : ' U. IS DISPLAY      U. becomes the runtime of the word DISPLAY
-; or in a definition : ... ['] U. IS DISPLAY ...
-; KEY, EMIT, CR, ACCEPT and WARM are examples of DEFERred words
+; or in a definition : ... ['] U. IS DISPLAY ... ;
+; KEY, EMIT, ACCEPT are examples of DEFERred words
             FORTHWORDIMM "IS"       ; immediate
 IS          PUSH IP
-            CMP #0,&STATE    
-            JZ IS_EXEC     
-IS_COMPILE  ASMtoFORTH
+            CMP #0,&STATE
+            JNZ IS_COMPILE
+IS_EXEC     mASM2FORTH
+            .word   TICK
+            mNEXTADR
+            MOV @RSP+,IP
+DEFERSTORE  MOV @PSP+,2(TOS)        ; -- CFA_DEFERed_WORD          xt --> [PFA_DEFERed_WORD]
+            MOV @PSP+,TOS           ; --
+            MOV @IP+,PC             ;
+
+IS_COMPILE  mASM2FORTH
             .word   BRACTICK             ; find the word, compile its CFA as literal
             .word   lit,DEFERSTORE,COMMA ; compile DEFERSTORE
             .word   EXIT
-IS_EXEC     ASMtoFORTH
-            .word   TICK,DEFERSTORE     ; find the word, leave its CFA on the stack and execute DEFERSTORE
-            .word   EXIT
-
-    .ENDIF ; DEFERRED
-
-    .IFDEF MSP430ASSEMBLER
 
            FORTHWORD "CODE"         ; a CODE word must be finished with ENDCODE
 ASMCODE     CALL #HEADER            ; (that sets CFA and PFA)
-ASMCODE1    SUB #4,&DDP             ; remove default CFA and PFA
+ASMCODE1    SUB #4,&D             ; remove default CFA and PFA
 ASMCODE2
-    .IFDEF EXTENDED_ASM
+        .IFDEF EXTENDED_ASM
             MOV #0,&RPT_WORD        ; clear RPT instruction
-    .ENDIF
-            mDOCOL
-            .word   ALSO,ASSEMBLER,EXIT
+        .ENDIF
+            JMP ASSEMBLER           ; add ASSEMBLER in CONTEXT stack
 
 ; HDNCODE (hidden CODE) is used to define a CODE word which must not to be executed by FORTH interpreter
 ; i.e. typically an assembler word called by CALL and ended by RET, or an interrupt routine ended by RETI.
-; ASM words are only usable in ASSEMBLER defined words
+; HDNCODE words are only usable in ASSEMBLER definitions.
             FORTHWORD "HDNCODE"
             MOV #BODYASSEMBLER,&CURRENT ; select ASSEMBLER word set to link this HDNCODE definition
             JMP ASMCODE
 
             asmword "ENDCODE"       ; test PSP balancing then restore previous CONTEXT
-ENDCODE     mDOCOL                  ; and set CURRENT = CONTEXT (to also end ASM definitions)
+ENDCODE     mDOCOL                  ; and set CURRENT = CONTEXT (to also terminate HDNCODE definitions)
             .word   QREVEAL
-ENDCODE1    .word   PREVIOUS,DEFINITIONS,EXIT
+            mNEXTADR
+            MOV @RSP+,IP
+ENDCODEND   MOV &CONTEXT+2,&CURRENT ;5 to do DEFINITIONS (before previous)
+            JMP PREVIOUS            ;
 
-        .IFDEF DEFERRED
             FORTHWORD "CODENNM"     ; CODENoNaMe is the assembly counterpart of :NONAME
 CODENNM     PUSH #ASMCODE1          ; define HEADERLESS return
             JMP HEADERLESS          ; that makes room for CFA and PFA
-        .ENDIF
 
 ; here are 3 words used to switch FORTH <--> ASSEMBLER
 
 ; COLON --      compile DOCOL, remove ASSEMBLER from CONTEXT and CURRENT, switch to compilation state
             asmword "COLON"
-            MOV &DDP,W
-    .SWITCH DTC
-    .CASE 1
-            MOV #1284h,0(W)         ; compile CALL R4 = rDOCOL ([rDOCOL] = XDOCOL)
-            ADD #2,&DDP
-    .CASE 2
+            MOV &DP,W
+        .SWITCH DTC
+        .CASE 1
+            MOV #DOCOL,0(W)         ; compile CALL R4 = rDOCOL ([rDOCOL] = XDOCOL)
+            ADD #2,&DP
+        .CASE 2
             MOV #120Dh,0(W)         ; compile PUSH IP
-COLON1      MOV #1284h,2(W)         ; compile CALL R4 = rDOCOL
-            ADD #4,&DDP
-    .CASE 3 ; inlined DOCOL
+COLON1      MOV #DOCOL,2(W)         ; compile CALL R4 = rDOCOL
+            ADD #4,&DP
+        .CASE 3 ; inlined DOCOL
             MOV #120Dh,0(W)         ; compile PUSH IP
 COLON1      MOV #400Dh,2(W)         ; compile MOV PC,IP
             MOV #522Dh,4(W)         ; compile ADD #4,IP
             MOV #4D30h,6(W)         ; compile MOV @IP+,PC
-            ADD #8,&DDP             ;
-    .ENDCASE ; DTC
-
-COLON2      MOV #-1,&STATE          ; enter in compile state
-            mDOCOL
-            .word   PREVIOUS,DEFINITIONS,EXIT ; restore previous CONTEXT and set CURRENT = CONTEXT
+            ADD #8,&DP              ;
+        .ENDCASE ; DTC
+COLON2      MOV #-1,&STATE          ;3 enter in compile state
+            JMP ENDCODEND           ;2 to do PREVIOUS DEFINITIONS
 
 ; LO2HI --       same as COLON but without saving IP
             asmword "LO2HI"
-    .SWITCH DTC
-    .CASE 1                         ; compile 2 words
-            MOV &DDP,W
+        .SWITCH DTC
+        .CASE 1                     ; compile 2 words
+            MOV &DP,W
             MOV #12B0h,0(W)         ; compile CALL #EXIT, 2 words  4+6=10~
             MOV #EXIT,2(W)
-            ADD #4,&DDP
+            ADD #4,&DP
             JMP COLON2
-    .ELSECASE                       ; CASE 2 : compile 1 word, CASE 3 : compile 3 words
-            SUB #2,&DDP             ; to skip PUSH IP
-            MOV &DDP,W
+        .ELSECASE                   ; CASE 2 : compile 1 word, CASE 3 : compile 3 words
+            SUB #2,&D             ; to skip PUSH IP
+            MOV &DP,W
             JMP COLON1
-    .ENDCASE
+        .ENDCASE
 
 ; HI2LO --       immediate, switch to low level, set interpretation state, add ASSEMBLER to CONTEXT
             FORTHWORDIMM "HI2LO"    ;
-            mDOCOL
-            .word   HERE,CELLPLUS,COMMA ; compile HERE+2
-            .word   LEFTBRACKET         ; switch to interpret state
-            .word   ASMCODE2            ; add ASSEMBLER in context
-            .word   EXIT
-
-    .ENDIF ; MSP430ASSEMBLER
-
-    .IFDEF CONDCOMP
-; ------------------------------------------------------------------------------
-; forthMSP430FR :  CONDITIONNAL COMPILATION
-; ------------------------------------------------------------------------------
-        .include "forthMSP430FR_CONDCOMP.asm"
-    .ENDIF
-
-        .IFDEF CORE_COMPLEMENT
-; ------------------------------------------------------------------------------
-; CONTROL STRUCTURES
-; ------------------------------------------------------------------------------
-; THEN and BEGIN compile nothing
-; DO compile one word
-; IF, ELSE, AGAIN, UNTIL, WHILE, REPEAT, LOOP & +LOOP compile two words
-; LEAVE compile three words
-
-            FORTHWORDIMM "IF"       ; immediate
-; https://forth-standard.org/standard/core/IF
-; IF       -- IFadr    initialize conditional forward branch
-IFF         SUB #2,PSP              ;
-            MOV TOS,0(PSP)          ;
-            MOV &DDP,TOS            ; -- HERE
-            ADD #4,&DDP             ;           compile one word, reserve one word
-            MOV #QFBRAN,0(TOS)      ; -- HERE   compile QFBRAN
-        .ENDIF ; CORE_COMPLEMENT
-CELLPLUS    ADD #2,TOS              ; -- HERE+2=IFadr
-            MOV @IP+,PC
-
-        .IFDEF CORE_COMPLEMENT
-            FORTHWORDIMM "ELSE"     ; immediate
-; https://forth-standard.org/standard/core/ELSE
-; ELSE     IFadr -- ELSEadr        resolve forward IF branch, leave ELSEadr on stack
-ELSS        ADD #4,&DDP             ; make room to compile two words
-            MOV &DDP,W              ; W=HERE+4
-            MOV #BRAN,-4(W)
-            MOV W,0(TOS)            ; HERE+4 ==> [IFadr]
-            SUB #2,W                ; HERE+2
-            MOV W,TOS               ; -- ELSEadr
-            MOV @IP+,PC
-
-            FORTHWORDIMM "THEN"     ; immediate
-; https://forth-standard.org/standard/core/THEN
-; THEN     IFadr --                resolve forward branch
-THEN        MOV &DDP,0(TOS)         ; -- IFadr
-            MOV @PSP+,TOS           ; --
-            MOV @IP+,PC
-
-            FORTHWORDIMM "BEGIN"    ; immediate
-; https://forth-standard.org/standard/core/BEGIN
-; BEGIN    -- BEGINadr             initialize backward branch
-            MOV #HERE,PC            ; -- HERE
-
-            FORTHWORDIMM "UNTIL"    ; immediate
-; https://forth-standard.org/standard/core/UNTIL
-; UNTIL    BEGINadr --             resolve conditional backward branch
-UNTIL       MOV #QFBRAN,X
-UNTIL1      ADD #4,&DDP             ; compile two words
-            MOV &DDP,W              ; W = HERE
-            MOV X,-4(W)             ; compile Bran or QFBRAN at HERE
-            MOV TOS,-2(W)           ; compile bakcward adr at HERE+2
-            MOV @PSP+,TOS
-            MOV @IP+,PC
-
-            FORTHWORDIMM "AGAIN"    ; immediate
-; https://forth-standard.org/standard/core/AGAIN
-;X AGAIN    BEGINadr --             resolve uncondionnal backward branch
-AGAIN       MOV #BRAN,X
-            JMP UNTIL1
-
-            FORTHWORDIMM "WHILE"    ; immediate
-; https://forth-standard.org/standard/core/WHILE
-; WHILE    BEGINadr -- WHILEadr BEGINadr
-WHILE       mDOCOL
-            .word   IFF,SWAP,EXIT
-
-            FORTHWORDIMM "REPEAT"   ; immediate
-; https://forth-standard.org/standard/core/REPEAT
-; REPEAT   WHILEadr BEGINadr --     resolve WHILE loop
-REPEAT      mDOCOL
-            .word   AGAIN,THEN,EXIT
-
-            FORTHWORDIMM "DO"       ; immediate
-; https://forth-standard.org/standard/core/DO
-; DO       -- DOadr   L: -- 0
-DO          SUB #2,PSP              ;
-            MOV TOS,0(PSP)          ;
-            ADD #2,&DDP             ;   make room to compile xdo
-            MOV &DDP,TOS            ; -- HERE+2
-            MOV #xdo,-2(TOS)        ;   compile xdo
-            ADD #2,&LEAVEPTR        ; -- HERE+2     LEAVEPTR+2
-            MOV &LEAVEPTR,W         ;
-            MOV #0,0(W)             ; -- HERE+2     L-- 0
-            MOV @IP+,PC
-
-            FORTHWORD "I"
-; https://forth-standard.org/standard/core/I
-; I        -- n   R: sys1 sys2 -- sys1 sys2
-;                  get the innermost loop index
-II          SUB #2,PSP              ;1 make room in TOS
-            MOV TOS,0(PSP)          ;3
-            MOV @RSP,TOS            ;2 index = loopctr - fudge
-            SUB 2(RSP),TOS          ;3
-            MOV @IP+,PC             ;4 13~
-
-            FORTHWORDIMM "LOOP"     ; immediate
-; https://forth-standard.org/standard/core/LOOP
-; LOOP    DOadr --         L-- an an-1 .. a1 0
-LOO         MOV #xloop,X
-LOOPNEXT    ADD #4,&DDP             ; make room to compile two words
-            MOV &DDP,W
-            MOV X,-4(W)             ; xloop --> HERE
-            MOV TOS,-2(W)           ; DOadr --> HERE+2
-; resolve all "leave" adr
-LEAVELOOP   MOV &LEAVEPTR,TOS       ; -- Adr of top LeaveStack cell
-            SUB #2,&LEAVEPTR        ; --
-            MOV @TOS,TOS            ; -- first LeaveStack value
-            CMP #0,TOS              ; -- = value left by DO ?
-            JZ LOOPEND
-            MOV W,0(TOS)            ; move adr after loop as UNLOOP adr
-            JMP LEAVELOOP
-LOOPEND     MOV @PSP+,TOS
-            MOV @IP+,PC
-
-            FORTHWORDIMM "+LOOP"    ; immediate
-; https://forth-standard.org/standard/core/PlusLOOP
-; +LOOP   adrs --   L-- an an-1 .. a1 0
-PLUSLOOP    MOV #xploop,X
-            JMP LOOPNEXT
-    .ENDIF ; CORE_COMPLEMENT
+            ADD #2,&DP              ; HERE+2
+            MOV &DP,W               ; W = HERE+2
+            MOV W,-2(W)             ; compile HERE+2 to HERE
+            MOV #0,&STATE           ; LEFTBRACKET
+            JMP ASMCODE2            ; add ASSEMBLER in context
 
-    .IFDEF VOCABULARY_SET
 ;-------------------------------------------------------------------------------
-; WORDS SET for VOCABULARY, not ANS compliant
+; WORDS SET for VOCABULARY, not ANS compliant,
 ;-------------------------------------------------------------------------------
-        .IFNDEF DOES
-            FORTHWORD "DOES>"
-; https://forth-standard.org/standard/core/DOES
-; DOES>    --          set action for the latest CREATEd definition
-DOES        MOV &LAST_CFA,W         ;           W = CFA of CREATEd word
-            MOV #1285h,0(W)         ;           replace CFA (DOCON) by new CFA (DODOES)
-            MOV IP,2(W)             ;           replace PFA by the address after DOES> as execution address
-            MOV @RSP+,IP            ;
-            MOV @IP+,PC             ;           exit of the new created word
-        .ENDIF
-
-            FORTHWORD "VOCABULARY"
-;X VOCABULARY       -- create a vocabulary, up to 7 vocabularies in CONTEXT
+    .IFDEF VOCABULARY_SET
+            FORTHWORD "WORDSET"
+;X VOCABULARY       -- create a new word_set
 VOCABULARY  mDOCOL
             .word   CREATE
         .SWITCH THREADS
         .CASE   1
-            .word   lit,0,COMMA     ; will keep the NFA of the last word of the future created vocabularies
+            .word   lit,0,COMMA     ; W = DP
+            mNEXTADR                ;
         .ELSECASE
-            .word   lit,THREADS,lit,0,xdo
-VOCABULOOP  .word   lit,0,COMMA
-            .word   xloop,VOCABULOOP
-        .ENDCASE
-            .word   HERE            ; link via LASTVOC the future created vocabulary
-            .word   LIT,LASTVOC,DUP
-            .word   FETCH,COMMA     ; compile [LASTVOC] to HERE+
-            .word   STORE           ; store (HERE - 2) to LASTVOC
-            .word   DOES            ; compile CFA and PFA for the future defined vocabulary
+            mNEXTADR                ; W = DP
+            MOV #THREADS,X          ; count
+VOCABULOOP  MOV #0,0(W)             ; DP = BODY first
+            ADD #2,W
+            SUB #1,X
+            JNZ VOCABULOOP
+        .ENDCASE                    ; W = DP
+            MOV &LASTVOC,0(W)
+            MOV W,&LASTVOC
+            ADD #2,W
+            MOV W,&DP               ; update DP
+            mASM2FORTH
+            .word   DOES
     .ENDIF ; VOCABULARY_SET
-VOCDOES     .word   LIT,CONTEXT,STORE
-            .word   EXIT
+VOCDOES     mNEXTADR                ; adds WORD-SET first in context stack
+    .IFDEF VOCABULARY_SET
+ALSO        MOV #7,Y                ;2 -- move up 7 words, first word in last
+            MOV #CONTEXT+12,X       ;2 X=src
+ALSOLOOP    MOV @X,2(X)             ; X=src < Y=dst copy W bytes beginning with the end
+            SUB #2,X
+            SUB #1,Y
+            JNZ ALSOLOOP
+    .ELSE ; VOCABULARY_SET off      ; VOCDOES is used only by the assembler to switch from HIlevel to LOlevel environments
+           MOV #BODYFORTH,&CONTEXT+2;4  copy BODYFORTH      --> 2th cell of CONTEXT
+    .ENDIF ; VOCABULARY_SET
+            MOV TOS,&CONTEXT        ;3  copy word-set BODY  --> first cell of CONTEXT
+            MOV #DROPEXIT,PC
 
     .IFDEF VOCABULARY_SET
             FORTHWORD "FORTH"
-    .ENDIF ; VOCABULARY_SET
-;X  FORTH    --                     ; set FORTH the first context vocabulary; FORTH must be the first vocabulary
+    .ENDIF
+;X  FORTH    --                     ; add FORTH as first context word-set
 FORTH                               ; leave BODYFORTH on the stack and run VOCDOES
             CALL rDODOES            ; Code Field Address (CFA) of FORTH
 PFAFORTH    .word   VOCDOES         ; Parameter Field Address (PFA) of FORTH
-BODYFORTH                           ; BODY of FORTH
-            .word   lastforthword
+BODYFORTH   .word   lastforthword   ; BODY of FORTH
     .SWITCH THREADS
     .CASE   2
             .word   lastforthword1
@@ -2364,15 +1797,14 @@ BODYFORTH                           ; BODY of FORTH
             .word   voclink
 voclink     .set    $-2
 
-    .IFDEF MSP430ASSEMBLER
     .IFDEF VOCABULARY_SET
-            FORTHWORD "ASSEMBLER"
-    .ENDIF ; VOCABULARY_SET
-;X  ASSEMBLER       --              ; set ASSEMBLER the first context vocabulary
+;            FORTHWORD "ASSEMBLER"
+            FORTHWORD "hidden"  ; cannot be found by FORTH interpreter because the string is not capitalized
+    .ENDIF
+;X  ASSEMBLER       --          ; add ASSEMBLER as first context word-set
 ASSEMBLER   CALL rDODOES        ; leave BODYASSEMBLER on the stack and run VOCDOES
-                .word   VOCDOES
-BODYASSEMBLER
-            .word   lastasmword
+            .word   VOCDOES
+BODYASSEMBLER   .word   lastasmword
     .SWITCH THREADS
     .CASE   2
             .word   lastasmword1
@@ -2440,256 +1872,203 @@ BODYASSEMBLER
     .ENDCASE
             .word   voclink
 voclink     .set    $-2
-    .ENDIF ; MSP430ASSEMBLER
-
-    .IFDEF VOCABULARY_SET
-            FORTHWORD "ALSO"
-    .ENDIF ; VOCABULARY_SET
-;X  ALSO    --                  make room to put a vocabulary as first in context
-ALSO        MOV #12,W               ; -- move up 6 words, 8th word of CONTEXT area must remain to 0
-            MOV #CONTEXT+12,X       ; X=src
-            MOV X,Y
-            ADD #2,Y                ; Y=dst
-MOVEUP      SUB #1,X
-            SUB #1,Y
-            MOV.B @X,0(Y)           ; if X=src < Y=dst copy W bytes beginning with the end
-            SUB #1,W
-            JNZ MOVEUP 
-            MOV @IP+,PC
 
     .IFDEF VOCABULARY_SET
             FORTHWORD "PREVIOUS"
+;X  PREVIOUS   --               pop first word-set out of context stack
+PREVIOUS    MOV #8,Y                ;1 move down 8 words, first with CONTEXT+2 addr, end when NULL_WORD is moved
+            MOV #CONTEXT+2,X        ;2 X = CONTEXT+2 = org, X-2 = CONTEXT = dst
+PREVIOUSLOO CMP #0,0(X)             ;3 [org] = 0 ?
+            JZ PREVIOUSEND          ;2 to avoid scratch of the first CONTEXT cell by human mistake, then to skip useless loops
+            MOV @X+,-4(X)           ;4
+            SUB #1,Y                ;1
+            JNZ PREVIOUSLOO         ;2 7~ loop * 8 = 56 ~
+PREVIOUSEND MOV @IP+,PC             ;4
+    .ELSE                           ;
+PREVIOUS    MOV #BODYFORTH,&CONTEXT
+ONLY        MOV #0,&CONTEXT+2       ; then execute ONLY
+            MOV @IP+,PC
     .ENDIF ; VOCABULARY_SET
-;X  PREVIOUS   --               pop last vocabulary out of context
-PREVIOUS    MOV #14,W               ; move down 7 words, first with the 8th word equal to 0
-            MOV #CONTEXT,Y          ; Y=dst
-            MOV Y,X
-            ADD #2,X                ; X=src
-MOVEDOWN    MOV.B @X+,0(Y)          ; if X=src > Y=dst copy W bytes
-            ADD #1,Y
-            SUB #1,W
-            JNZ MOVEDOWN
-MOVEND      MOV @IP+,PC
 
     .IFDEF VOCABULARY_SET
             FORTHWORD "ONLY"
-    .ENDIF ; VOCABULARY_SET
-;X ONLY     --      cut context list to access only first vocabulary, ex.: FORTH ONLY
+;X ONLY     --      cut the context stack to access only the first word-set, ex.: FORTH ONLY
 ONLY        MOV #0,&CONTEXT+2
             MOV @IP+,PC
 
-    .IFDEF VOCABULARY_SET
             FORTHWORD "DEFINITIONS"
-    .ENDIF ; VOCABULARY_SET
 ;X DEFINITIONS  --      set last context vocabulary as entry for further defining words
 DEFINITIONS MOV &CONTEXT,&CURRENT
             MOV @IP+,PC
-
-    .IFDEF USE_MOVE ; if UTILITY.asm|ANS_COMP.asm
-            FORTHWORD "MOVE"
-; https://forth-standard.org/standard/core/MOVE
-; MOVE    addr1 addr2 u --     smart move
-;             VERSION FOR 1 ADDRESS UNIT = 1 CHAR
-MOVE        MOV TOS,W               ; W = cnt
-            MOV @PSP+,Y             ; Y = addr2 = dst
-            MOV @PSP+,X             ; X = addr1 = src
-            MOV @PSP+,TOS           ; pop new TOS
-            CMP #0,W                ; count = 0 ?
-            JZ MOVEND               ; already done !
-            CMP X,Y                 ; Y=dst = X=src ?
-            JZ MOVEND               ; already done !
-            JNC MOVEDOWN            ; if Y=dst < X=src ; see PREVIOUS
-            ADD W,Y                 ; move beginning with the end
-            ADD W,X                 ;
-            JMP MOVEUP              ; if Y=dst > X=src ; see ALSO
-    .ENDIF
+    .ENDIF ; VOCABULARY_SET
 
 ;-------------------------------------------------------------------------------
-; MEMORY MANAGEMENT
+; FASTFORTH environment management: DP, LASTVOC, CURRENT, CONTEXT and THREADS
 ;-------------------------------------------------------------------------------
-STATE_DOES  ; execution part of PWR_STATE ; sorry, doesn't restore search order pointers
-            .word   FORTH,ONLY,DEFINITIONS
-            .word   $+2             ; -- BODY       IP is free
-    .IFDEF VOCABULARY_SET  
-            MOV @TOS+,W             ; -- BODY+2     W = old VOCLINK = VLK
+ENV_COPY
+    .IFDEF VOCABULARY_SET
+            MOV #24,T               ; bytes count of extended RST environment: DP,LASTVOC,CURRENT,CONTEXT(8),null_word
     .ELSE
-            MOV &WIPE_VOC,W         ;               W = VOCLINK = VLK
-    .ENDIF
-            MOV W,&LASTVOC          ;               restore (or init) LASTVOC in RAM
-            MOV @TOS,TOS            ; -- OLD_DP
-            MOV TOS,&DDP            ; -- DP         restore (or init) DP in RAM
-                                    ; then restore words link(s) with their value < old DP
-    .SWITCH THREADS
-    .CASE   1 ; mono thread vocabularies
-MARKALLVOC  MOV W,Y                 ; -- DP         W=VLK   Y=VLK
-MRKWORDLOOP MOV -2(Y),Y             ; -- DP         W=VLK   Y=NFA
-            CMP Y,TOS               ; -- DP         CMP = TOS-Y : OLD_DP-NFA
-            JNC MRKWORDLOOP         ;               loop back if TOS<Y : OLD_DP<NFA
-            MOV Y,-2(W)             ;               W=VLK   X=THD   Y=NFA   refresh thread with good NFA
-            MOV @W,W                ; -- DP         W=[VLK] = next voclink
-            CMP #0,W                ; -- DP         W=[VLK] = next voclink   end of vocs ?
-            JNZ MARKALLVOC          ; -- DP         W=VLK                   no : loopback
-    .ELSECASE ; multi threads vocabularies
-MARKALLVOC  MOV #THREADS,IP         ; -- DP         W=VLK
-            MOV W,X                 ; -- DP         W=VLK   X=VLK
-MRKTHRDLOOP MOV X,Y                 ; -- DP         W=VLK   X=VLK   Y=VLK
-            SUB #2,X                ; -- DP         W=VLK   X=THD (thread ((case-2)to0))
-MRKWORDLOOP MOV -2(Y),Y             ; -- DP         W=VLK   Y=NFA
-            CMP Y,TOS               ; -- DP         CMP = TOS-Y : DP-NFA
-            JNC MRKWORDLOOP         ;               loop back if TOS<Y : DP<NFA
-MARKTHREAD  MOV Y,0(X)              ;               W=VLK   X=THD   Y=NFA   refresh thread with good NFA
-            SUB #1,IP               ; -- DP         W=VLK   X=THD   Y=NFA   IP=CFT-1
-            JNZ MRKTHRDLOOP         ;                       loopback to compare NFA in next thread (thread-1)
-            MOV @W,W                ; -- DP         W=[VLK] = next voclink
-            CMP #0,W                ; -- DP         W=[VLK] = next voclink   end of vocs ?
-            JNZ MARKALLVOC          ; -- DP         W=VLK                   no : loopback
-    .ENDCASE ; of THREADS           ; -- DP
-            MOV @PSP+,TOS           ;
-            MOV @RSP+,IP            ;
-NEXT_ADR    MOV @IP+,PC             ;
-
-;-------------------------------------------------------------------------------
-; FASTFORTH START: set DP, VOCLINK, CURRENT and CONTEXT
-;-------------------------------------------------------------------------------
-            FORTHWORD "PWR_STATE"   ; executed by POWER_ON and ABORT_TERM; does PWR_HERE word set
-PWR_STATE   CALL rDODOES            ; DOES part of MARKER : resets pointers DP, voclink
-            .word   STATE_DOES      ; execution vector of PWR_STATE
-    .IFDEF VOCABULARY_SET  
-MARKVOC     .word   lastvoclink     ; initialised by forthMSP430FR.asm as voclink value
-    .ENDIF
-MARKDP      .word   ROMDICT         ; initialised by forthMSP430FR.asm as DP value
-
-            FORTHWORD "RST_STATE"   ; executed by <reset>, COLD, SYSRSTIV error; does RST_HERE word set
-RST_STATE   MOV &RST_DP,&MARKDP     ; INIT value above (FRAM value)
-    .IFDEF VOCABULARY_SET  
-            MOV &RST_VOC,&MARKVOC   ; INIT value above (FRAM value)
-    .ENDIF
-            JMP PWR_STATE
-
-            FORTHWORD "PWR_HERE"    ; define word set bound for POWER_ON, ABORT_TERM.
-PWR_HERE    MOV &DDP,&MARKDP
-    .IFDEF VOCABULARY_SET  
-            MOV &LASTVOC,&MARKVOC
+            MOV #10,T               ; bytes count of RST environment: DP,LASTVOC,CURRENT,CONTEXT(2)
     .ENDIF
+ENV_LOOP    MOV @X+,0(W)
+            ADD #2,W
+            SUB #2,T                ; words-1
+            JNZ ENV_LOOP
+            MOV @RSP+,PC
+
+            FORTHWORD "RST_SET"     ; define actual environment as new RESET environment
+RST_SET     MOV #DP,X               ; org = RAM value (DP first)
+            MOV #RST_DP,W           ; dst = FRAM value (RST_DP first), see \inc\ThingsInFirst.inc
+            CALL #ENV_COPY          ; copy environment RAM --> FRAM RST, use T,W,X
             MOV @IP+,PC
 
-            FORTHWORD "RST_HERE"    ; define word set bound for <reset>, COLD, SYSRSTIV error.
-RST_HERE    MOV &DDP,&RST_DP
-    .IFDEF VOCABULARY_SET  
-            MOV &LASTVOC,&RST_VOC
-    .ENDIF
-            JMP PWR_HERE            ; and obviously the same for POWER_ON...
+            FORTHWORD "RST_RET"     ; init / return_to_previous RESET or MARKER environment
+RST_RET     MOV #RST_DP,X           ; org = FRAM value (first RST_DP), see \inc\ThingsInFirst.inc
+            MOV @X,S                ; S = restored DP, used below for comparaison with NFAs
+            MOV #DP,W               ; dst = RAM value (first DP)
+            CALL #ENV_COPY          ; copy environment FRAM RST --> RAM, use T,W,X
+;-----------------------------------;
+            MOV &LASTVOC,W          ; W = init/restored LASTVOC
+    .SWITCH THREADS                 ; init/restore THREAD(s) with NFAs value < init/restored DP, for all word set
+    .CASE   1 ; mono thread word-set
+MARKALLVOC  MOV W,Y                 ; W=VLK   Y = VLK
+MRKWORDLOOP MOV -2(Y),Y             ; W=VLK   Y = [THD_n] then [LFA] = NFA
+            CMP Y,S                 ; Y=NFA   S=DP        CMP = S-Y : OLD_DP-NFA
+            JNC MRKWORDLOOP         ; loop back if S<Y : OLD_DP<NFA
+            MOV Y,-2(W)             ; W=VLK   X=THD   Y=NFA   refresh thread with good NFA
+    .ELSECASE ; multi threads word-set
+MARKALLVOC  MOV #THREADS,T          ; S=DP     T=ThdCnt (Threads Count), VLK = THD_n+1
+            MOV W,X                 ; W = VLK   X = VLK then THD_n (VOCLINK first, then THREADn)
+MRKTHRDLOOP MOV X,Y                 ;
+            SUB #2,X                ;
+MRKWORDLOOP MOV -2(Y),Y             ; Y = NFA = [THD_n] then [LFA]
+            CMP Y,S                 ; Y = NFA   S=DP       CMP = S-Y : DP-NFA
+            JNC MRKWORDLOOP         ;           loop back if S<Y : DP<NFA (if not_carry = if borrow)
+MARKTHREAD  MOV Y,0(X)              ; Y=NFA     X=THD_n   refresh thread with good NFA
+            SUB #1,T                ; T=ThdCnt-1
+            JNZ MRKTHRDLOOP         ;           loopback to process NFA of next thread (thread-1)
+    .ENDCASE ; of THREADS           ;
+            MOV @W,W                ; W=[VLK] = VLK-1
+            CMP #0,W                ;                   end of vocs ?
+            JNZ MARKALLVOC          ; W=VLK-1           no : loopback
+            MOV @IP+,PC             ;
 
 ;-------------------------------------------------------------------------------
-; PUC 6.2: SELECT PWR_STATE|RST_STATE|DEEP_RESET       <== INI_FORTH
+; PUC 7 : SELECT RST_RET|DEEP_RESET <== INIT_FORTH <== (PUC,SYS,QABORT)
 ;-------------------------------------------------------------------------------
-SEL_P_R_D   CMP #0Eh,TOS            ;
-            JZ PWR_STATE            ; if RSTIV_MEM = 14 (SYSSVSH event)
-            CMP #4,TOS              ;
-            JGE RST_STATE           ; if RSTIV_MEM >= 4 (RESET,COLD,SYS_FAILURES)
-            CMP #0,TOS              ;
-            JGE PWR_STATE           ; if RSTIV_MEM >= 0 (POWER_ON,WARM,ABORT")
+SEL_RST_DEP CMP #0,TOS              ;
+            JGE RST_RET             ; if TOS >= 0
 ;-----------------------------------;
-; DEEP RESET                        ; if RSTIV_MEM < 0
+; DEEP RESET                        ; if TOS < 0
 ;-----------------------------------;
-; INIT SIGNATURES AREA              ;
+; DEEP INIT SIGNATURES AREA         ;
 ;-----------------------------------;
             MOV #16,X               ; max known SIGNATURES length = 12 bytes
 SIGNATLOOP  SUB #2,X                ;
-            MOV #-1,SIGNATURES(X)   ; reset signature; WARNING ! DON'T CHANGE IMMEDIATE VALUE !
+            MOV #-1,SIGNATURES(X)   ; reset signatures; WARNING ! DON'T CHANGE IMMEDIATE VALUE !
             JNZ SIGNATLOOP          ;
-;-----------------------------------; X = 0 ;-)
-; INIT VECTORS INT                  ;
-;-----------------------------------; 
+;-----------------------------------;
+; DEEP INIT VECTORS INT             ; X = 0 ;-)
+;-----------------------------------;
             MOV #RESET,-2(X)        ; write RESET at addr X-2 = FFFEh
 INIVECLOOP  SUB #2,X                ;
             MOV #COLD,-2(X)         ; -2(X) = FFFCh first
-            CMP #0FFAEh,X           ; init 41 vectors, FFFCh down to 0FFACh
+            CMP #0FFACh+2,X         ; init 41 vectors, FFFCh down to 0FFACh
             JNZ INIVECLOOP          ; all vectors are initialised to execute COLD routine
-;-----------------------------------; 
-; INIT all "CALL #xxx_APP"          ;
-;-----------------------------------; 
-            MOV #WIPE_INI,X         ; WIPE_INI constants are in FRAM INFO
-            MOV @X+,&PFACOLD        ; COLD_TERM             as default COLD_APP     --> PFACOLD
-            MOV @X+,&PFA_INI_FORTH  ; RET_ADR|INI_FORTH_SD  as default INI_SOFT_APP --> PFA_INI_FORTH
-            MOV @X+,&PFASLEEP       ; RXON                  as default BACKGND_APP  --> PFASLEEP
-            MOV @X+,&PFAWARM        ; INIT_TERM|INIT_SD     as default INI_HARD_APP --> PFAWARM
-            MOV @X+,&TERM_VEC       ; TERMINAL_INT          as default vector       --> TERM_VEC
-;-----------------------------------; 
-; INIT DP VOC_link                  ;
-;-----------------------------------; 
-            MOV @X+,&RST_DP         ; ROMDICT           --> RST_DP
-    .IFDEF VOCABULARY_SET  
-            MOV @X+,&RST_VOC        ; lastvoclink       --> RST_VOC
+;-----------------------------------;
+; DEEP INIT Terminal Int vector     ;
+;-----------------------------------;
+            MOV #DEEP_ORG,X         ; DEEP_ORG values are in FRAM INFO, see \inc\ThingsInFirst.inc
+            MOV @X+,&TERM_VEC       ; TERMINAL_INT           as default vector       --> FRAM TERM_VEC
+;-----------------------------------;
+; DEEP INIT FRAM RST values         ; 8 word values
+;-----------------------------------;
+            MOV #RST_LEN,T          ; bytes count
+            MOV #RST_ORG,W          ; W = dst, X = org
+            CALL #ENV_LOOP          ;
+            MOV #0,&RST_CONTEXT+2   ; to do FORTH ONLY
+;-----------------------------------;
+; WARM INIT threads of all word set ;
+;-----------------------------------;
+            JMP RST_RET             ; then go to DUP|PUCNEXT,  resp. in QABORT|RESET
+;-----------------------------------;
+
+; https://forth-standard.org/standard/core/MARKER
+; MARKER
+;name Execution: ( -- )
+;Restore all dictionary allocation and search order pointers to the state they had just prior to the
+;definition of name. Remove the definition of name and all subsequent definitions. Restoration
+;of any structures still existing that could refer to deleted definitions or deallocated data space is
+;not necessarily provided. No other contextual information such as numeric base is affected.
+
+; FastForth provides all that is necessary for a real time application with MARKER definition,
+; by adding a call to a custom subroutine to restore all user environment.
+; the FORTH environment is it automaticaly restored.
+MARKER_DOES                         ; restores RST environment saved by MARKER defn.,
+                                    ; executes user defined subroutine (RET_ADR by default),
+                                    ; then executes RST_RET.
+            mNEXTADR                ; -- BODY
+    .IFDEF VOCABULARY_SET
+            MOV TOS,X               ;                       X = org (first : BODY=MARKER_DP)
+            MOV #RST_DP,W           ;                       W = dst (first : RST_DP), see \inc\ThingsInFirst.inc
+            CALL #ENV_COPY          ;                       copy FORTH environment FRAM MARKER --> FRAM RST
+            MOV X,TOS               ; -- RET_ADR            by default
+    .ELSE
+            MOV @TOS+,&RST_DP       ;
     .ENDIF
-;-----------------------------------; 
-            JMP RST_STATE           ; then return to LIT|WARM from resp. QABORT|RESET
-;-----------------------------------; 
-    
-;===============================================================================
-; ┌┐ ┌─┐┬─┐  ┌─┐┌─┐┬─┐  ┌─┐┬ ┬┌─┐  ┌─┐┌─┐┬┬  ┬ ┬┬─┐┌─┐┌─┐  ┌─┐┌─┐┬  ┬    ┬ ┬┌─┐┬─┐┌─┐
-; ├┴┐│ │├┬┘  ├─┘│ │├┬┘  ├─┘│ ││    ├┤ ├─┤││  │ │├┬┘├┤ └─┐  ├┤ ├─┤│  │    ├─┤├┤ ├┬┘├┤ 
-; └─┘└─┘┴└─  ┴  └─┘┴└─  ┴  └─┘└─┘  └  ┴ ┴┴┴─┘└─┘┴└─└─┘└─┘  └  ┴ ┴┴─┘┴─┘  ┴ ┴└─┘┴└─└─┘
-;===============================================================================
-RESET
-;===============================================================================
-; PUC 1: replace pin RESET by pin NMI, stops WDT_RESET
-;-------------------------------------------------------------------------------
-            BIS #3,&SFRRPCR         ; pin RST becomes pin NMI with falling edge, so SYSRSTIV = 4 
-            BIS #10h,&SFRIE1        ; enable NMI interrupt ==> hardware RESET is redirected to COLD.
-            MOV #5A80h,&WDTCTL      ; disable WDT RESET
-;-------------------------------------------------------------------------------
-; PUC 2: INIT STACKS
-;-------------------------------------------------------------------------------
-            MOV #RSTACK,RSP         ; init return stack
-            MOV #PSTACK,PSP         ; init parameter stack
-;-------------------------------------------------------------------------------
-; PUC 3: init RAM to 0
-;-------------------------------------------------------------------------------
-            MOV #RAM_LEN,X
-INITRAMLOOP SUB #2,X                ; 1
-            MOV #0,RAM_ORG(X)       ; 3
-            JNZ INITRAMLOOP         ; 2     6 cycles loop !
-;-------------------------------------------------------------------------------
-; PUC 4: I/O, RAM, RTC, CS, SYS initialisation limited to FastForth usage.
-;          All unused I/O are set as input with pullup resistor.
-;-------------------------------------------------------------------------------
-            .include "TargetInit.asm"   ; include target specific init code
-;-------------------------------------------------------------------------------
-; PUC 5: GET SYSRSTIV
-;-------------------------------------------------------------------------------
-            MOV &RSTIV_MEM,TOS      ; get RSTIV_MEM = Soft_SYSRSTIV
-            MOV #0,&RSTIV_MEM       ; clear RSTIV_MEM
-            BIS &SYSRSTIV,TOS       ; hard_SYSRSTIV|soft_SYSRSTIV --> TOS; SYSRSTIV = 0
+            CALL @TOS+              ; -- USER_BODY          executes user defined asm subroutine (RET_ADR by default), IP and TOS are free
+            MOV @PSP+,TOS           ; --
+            MOV @RSP+,IP            ;
+            JMP RST_RET             ;                       then performs RST_RET
+
+            FORTHWORD "MARKER"      ; definition part
+;( "<spaces>name" -- )
+;Skip leading space delimiters. Parse name delimited by a space. Create a definition for name
+;with the execution semantics defined above.
 ;-------------------------------------------------------------------------------
-; PUC 6: START FORTH engine
+;before that, it execute DOES part of previous definition if already exists.
+            PUSH &TOIN
+            mDOCOL
+            .word BL,WORDD,FIND
+            .word QFBRAN,MARKER_NEXT
+            .word DUP,EXECUTE
+MARKER_NEXT mNEXTADR
+            MOV @PSP+,TOS           ;
+            MOV @RSP+,IP
+            MOV @RSP+,&TOIN
 ;-------------------------------------------------------------------------------
-            CALL #INI_FORTH         ; common ?ABORT|PUC "hybrid" subroutine with return to FORTH interpreter
-            .word   WARM            ; goto WARM, without return. See forthMSP430FR_TERM_xxx.asm
-;-----------------------------------; 
+            CALL #HEADER            ;4                  W = DP, Y = NFA,
+            MOV #1285h,-4(W)        ;4                  CFA = CALL rDODOES
+            MOV #MARKER_DOES,-2(W)  ;4                  PFA = MARKER_DOES
+            SUB #2,Y                ;1                  Y = NFA-2 = LFA = DP to be restored, W = FRAM MARKER_DDP
+    .IFDEF VOCABULARY_SET
+            MOV Y,&DP               ;                   Y = previous DP (just before MARKER definition)
+            MOV #DP,X               ;                   X = org = RAM DP, W = dst = MARKER_BODY
+            CALL #ENV_COPY          ;                   copy environment RAM --> FRAM MARKER
+            MOV #RET_ADR,0(W)       ;4                  user defined subroutine by default = RET_ADR
+            ADD #2,W                ;1
+            MOV W,&DP               ;4                  set new RAM DP (after the end of MARKER definition)
+    .ELSE
+            MOV Y,0(W)              ;                   DP to be restored
+            MOV #RET_ADR,2(W)       ;                   MARKER subroutine
+            ADD #4,&DP              ;
+    .ENDIF
+LINK_NFA    MOV &LAST_NFA,Y         ;                   if no error, link this definition in its thread
+            MOV &LAST_THREAD,X      ;
+REVEAL      MOV @X,-2(Y)            ; [LAST_THREAD] --> LFA         (for NONAME: LFA --> 210h unused PA reg)
+            MOV Y,0(X)              ; LAST_NFA --> [LAST_THREAD]    (for NONAME: [LAST_THREAD] --> 212h unused PA reg)
+REVEAL_END  MOV @IP+,PC
 
-    .IFDEF MSP430ASSEMBLER
 ;===============================================================================
 ; ASSEMBLER OPTION
 ;===============================================================================
-        .IFDEF EXTENDED_ASM
-            .include "forthMSP430FR_EXTD_ASM.asm"
-        .ELSE
-            .include "forthMSP430FR_ASM.asm"
-        .ENDIF
-    .ENDIF
-    .IFDEF UTILITY
-;-------------------------------------------------------------------------------
-; UTILITY WORDS OPTION
-;-------------------------------------------------------------------------------
-        .include "ADDON/UTILITY.asm"
-    .ENDIF
-    .IFDEF FIXPOINT
-;-------------------------------------------------------------------------------
-; FIXED POINT OPERATORS OPTION
-;-------------------------------------------------------------------------------
-        .include "ADDON/FIXPOINT.asm"
+    .IFDEF EXTENDED_ASM
+        .include "forthMSP430FR_EXTD_ASM.asm"
+    .ELSE
+        .include "forthMSP430FR_ASM.asm"
     .ENDIF
+
     .IFDEF SD_CARD_LOADER
 ;-------------------------------------------------------------------------------
 ; SD CARD OPTIONS
@@ -2697,21 +2076,23 @@ INITRAMLOOP SUB #2,X                ; 1
         .include "forthMSP430FR_SD_LowLvl.asm"  ; SD primitives
         .include "forthMSP430FR_SD_INIT.asm"    ; return to INIT_TERM; without use of IP,TOS
         .include "forthMSP430FR_SD_LOAD.asm"    ; SD LOAD driver
+;        .include "forthMSP430FR_SD_LOAD_next.asm"    ; SD LOAD driver
         .IFDEF SD_CARD_READ_WRITE
             .include "forthMSP430FR_SD_RW.asm"  ; SD Read/Write driver
-        .ENDIF
-        .IFDEF SD_TOOLS
-            .include "ADDON/SD_TOOLS.asm"
+;            .include "forthMSP430FR_SD_RW_next.asm"  ; SD Read/Write driver
         .ENDIF
     .ENDIF
 ;-------------------------------------------------------------------------------
-; ADD HERE YOUR CODE TO BE INTEGRATED IN KERNEL (protected against WIPE)
+; ADD HERE YOUR CODE TO BE INTEGRATED IN KERNEL (protected against Deep_RST)
 ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
 ;
-;           .include "MY_CODE.asm"
+;           .include "\ADDON\CORE_ANS.asm"
+;           .include "\ADDON\UTILITY.asm"
+;           .include "\ADDON\FIXPOINT.asm"
+;           .include "YOUR_CODE.asm"
 ;
 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-; ADD HERE YOUR CODE TO BE INTEGRATED IN KERNEL (protected against WIPE)
+; ADD HERE YOUR CODE TO BE INTEGRATED IN KERNEL (protected against Deep_RST)
 ;-------------------------------------------------------------------------------
 
 ;-------------------------------------------------------------------------------
index aa1cec1..1455080 100644 (file)
@@ -1,18 +1,20 @@
 ; -*- coding: utf-8 -*-
 
 ; ----------------------------------------------------------------------
-;forthMSP430FR_asm.asm
+;forthMSP430FR_asm.asm 1584 bytes
 ; ----------------------------------------------------------------------
 
 ; ----------------------------------------------------------------------
-;       MOV(.B) #0, dst is coded as follow  : MOV(.B) R3, dst           ; 1 cycle,  one word    As=00   register mode
-;       MOV(.B) #1, dst is coded as follow  : MOV(.B) 0(R3), dst        ; 2 cycles, one word    AS=01   x(reg)   mode
-;       MOV(.B) #2, dst is coded as follow  : MOV(.B) @R3, dst          ; 2 cycles, one word    AS=10   @reg     mode
-;       MOV(.B) #4, dst is coded as follow  : MOV(.B) @R2, dst          ; 2 cycles, one word    AS=10   @reg     mode
-;       MOV(.B) #8, dst is coded as follow  : MOV(.B) @R2+, dst         ; 2 cycles, one word    AS=11   @reg+    mode
-;       MOV(.B) #-1,dst is coded as follow  : MOV(.B) @R3+, dst         ; 2 cycles, one word    AS=11
-;       MOV(.B) #xxxx,dst is coded a follow : MOV(.B) @PC+, dst         ; 2 cycles, two words   AS=11   @reg+    mode
-;       MOV(.B) &EDE,&TON is coded as follow: MOV(.B) EDE(R2),TON(R2)   ; (R2=0), three words   AS=01, AD=1 x(reg) mode
+;       MOV(.B) SR,dst   is coded as follow : MOV(.B) R2,dst            ; 1 cycle,  one word    AS=00   (register mode)
+;       MOV(.B) #0,dst   is coded as follow : MOV(.B) R3,dst            ; 1 cycle,  one word    AS=00   (register mode)
+;       MOV(.B) &EDE,dst is coded as follow : MOV(.B) EDE(R2),dst       ; 3 cycles, two words   AS=01   ( x(reg)  mode)
+;       MOV(.B) #1,dst   is coded as follow : MOV(.B) (R3),dst          ; 1 cycle,  one word    AS=01   ( x(reg)  mode)
+;       MOV(.B) #4,dst   is coded as follow : MOV(.B) @R2,dst           ; 1 cycle,  one word    AS=10   ( @reg    mode)
+;       MOV(.B) #2,dst   is coded as follow : MOV(.B) @R3,dst           ; 1 cycle,  one word    AS=10   ( @reg    mode)
+;       MOV(.B) #8,dst   is coded as follow : MOV(.B) @R2+,dst          ; 1 cycle,  one word    AS=11   ( @reg+   mode)
+;       MOV(.B) #-1,dst  is coded as follow : MOV(.B) @R3+,dst          ; 1 cycle,  one word    AS=11   ( @reg+   mode)
+; ----------------------------------------------------------------------
+;       MOV(.B) #xxxx,dst is coded as follow: MOV(.B) @PC+,dst          ; 2 cycles, two words   AS=11   ( @reg+   mode)
 ; ----------------------------------------------------------------------
 
 ; PUSHM order : PSP,TOS, IP,  S,  T,  W,  X,  Y, rEXIT,rDOVAR,rDOCON, rDODOES, R3, SR,RSP, PC
 
 ; example : POPM #6,IP   pop Y,X,W,T,S,IP registers from return stack
 
-
-;;Z SKIP      char -- addr               ; skip all occurring character 'char'
-;            FORTHWORD "SKIP"            ; used by assembler to parse input stream
-SKIP        MOV #SOURCE_LEN,Y       ;2
-            MOV TOS,W               ; -- char           W=char
-            MOV @Y+,X               ;2 -- char           W=char  X=buf_length
-            MOV @Y,TOS              ;2 -- Start_buf_adr  W=char  X=buf_length
-            ADD TOS,X               ; -- Start_buf_adr  W=char  X=Start_buf_adr+buf_length=End_buf_addr
-            ADD &TOIN,TOS           ; -- Parse_Adr      W=char  X=End_buf_addr
-SKIPLOOP    CMP TOS,X               ; -- Parse_Adr      W=char  X=End_buf_addr
-            JZ SKIPEND              ; -- Parse_Adr      if end of buffer
-            CMP.B @TOS+,W           ; -- Parse_Adr      does character match?
-            JZ SKIPLOOP             ; -- Parse_Adr+1
-SKIPNEXT    SUB #1,TOS              ; -- addr
-SKIPEND     MOV TOS,W               ;
-            SUB @Y,W                ; -- addr           W=Parse_Addr-Start_buf_adr=Toin
-            MOV W,&TOIN             ;
-            MOV @IP+,PC             ; 4
-
 ; ----------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER : search argument "xxxx", IP is free
+; DTCforthMSP430FR5xxx ASSEMBLER : search argument "xxxx"
 ; ----------------------------------------------------------------------
-SearchARG                           ; separator -- n|d or abort" not found"
-; Search ARG of "#xxxx,"            ; <== PARAM10
-; Search ARG of "&xxxx,"            ; <== PARAM111
-; Search ARG of "xxxx(REG),"        ; <== ComputeARGpREG <== PARAM130
-; Search ARG of ",&xxxx"            ; <== PARAM111 <== PARAM20
-; Search ARG of ",xxxx(REG)"        ; <== ComputeARGpREG <== PARAM210
-            PUSHM #2,S              ;                   PUSHM S,T as OPCODE,OPCODEADR
-            PUSH TOS                ;                   push sep, for SrchARGPO
-            PUSH &TOIN              ;                   push TOIN, for SrchARGPO
-;-----------------------------------;
-            ASMtoFORTH              ; -- sep            sep =  ','|'('|' '
-            .word   WORDD,FIND      ; -- addr           search word first
-            .word   ZEROEQUAL
-            .word   QFBRAN,ARGWORD  ; -- addr           if Word found
-            .word   QNUMBER         ;
-            .word   QFBRAN,SrchARGPO; -- addr           search ARG Plus Offset if not found
-            .word   SrchNext        ; -- value          goto SrchNext if number found
-ARGWORD     .word   $+2             ; -- CFA
-            MOV @TOS+,S             ; -- PFA            S=DOxxx
-QDOVAR      SUB #1287h,S            ;                   DOxxx = 1287h = CALL R7 = rDOVAR
-ISDOVAR     JZ SrchNext             ; -- addr           PFA = adr of VARIABLE
-QDOCON      ADD #1,S                ;                   DOxxx = 1286h = DOCON
-            JNZ ISOTHER             ;
-ISDOCON     MOV @TOS,TOS            ;
-            JMP SrchNext            ; -- cte
-ISOTHER     SUB #2,TOS              ; -- CFA
-SrchNext    ADD #4,RSP              ;                   remove TOIN,sep
-SearchEnd   POPM #2,S               ;                   POPM T,S
-            MOV @RSP+,PC            ; RET
 
-;-----------------------------------;
-; search for ARGUMENT16+OFFSET      ; up to $FFFF only (FORTH area)
-;-----------------------------------;
-SrchARGPO   .word $+2
-            MOV @RSP+,&TOIN         ;                   TOIN back
-            MOV @RSP+,TOS           ; -- sep
-            ASMtoFORTH              ;
-            .word   LIT,'+'         ; -- sep '+'        search argument
-            .word   WORDD,FIND      ; -- sep CFA
-            .word   ZEROEQUAL       ;
-            .word   QFBRAN,SrchOffst;
-            .word   QNUMBER         ; -- sep number
-            .word   QFBRAN,NotFound ;                   see INTERPRET
-SrchOffst   .word   SWAP            ; -- CFA|number sep
-            .word   WORDD,QNUMBER   ;                   Search 'Offset,'|'Offset('|'Offset'
-            .word   QFBRAN,NotFound ;                   see INTERPRET
-            .word   $+2             ; -- CFA|number offset
-            ADD @PSP+,TOS           ; -- (CFA|number + offset)
-            JMP SearchEnd           ;
+; common code for maxi 3 successive SearchARG: SearchARG, SearchARG+Offset, SearchARG-offset
+; leave PFA of VARIABLE, [PFA] of CONSTANT, User_Parameter_Field_Address of MARKER_DOES, CFA for all others.
+; if the ARGument is not found after those three SearchARg, the 'not found' error is issued by SrchOfst.
+SearchARGn  PUSH &TOIN              ;                   push TOIN, for next SearchARGn if any
+            mASM2FORTH              ; -- sep            sep =  ','|'('|' '
+            .word WORDD,FIND        ; -- addr           search string name first
+            .word QFBRAN,SrchArgNum ; -- addr           if string name not found
+COMPUTEARG  mNEXTADR                ; -- CFA            of named definition
+            MOV @TOS+,S             ; -- PFA            S=DOxxx
+QDOVAR      SUB #1287h,S            ;                   CFA = DOxxx = 1287h = CALL R7 = rDOVAR
+ISDOVAR     JZ ARGFOUND             ; -- addr           PFA = adr of VARIABLE
+QDOCON      ADD #1,S                ;                   CFA = DOxxx = 1286h = DOCON
+            JNZ QMARKER             ;
+ISDOCON     MOV @TOS,TOS            ; -- cte
+            JMP ARGFOUND            ; -- cte
+QMARKER     CMP #MARKER_DOES,0(TOS) ; -- PFA            search if PFA = [MARKER_DOES]
+            JNZ ISOTHER             ; -- PFA
+        .IFDEF VOCABULARY_SET       ; -- PFA
+            ADD #30,TOS             ; -- UPFA+2         skip room for DP, CURRENT, CONTEXT(8), null_word, LASTVOC, RET_ADR 2+(2+2+16+2+2+2) +2 bytes
+        .ELSE                       ;
+            ADD #8,TOS              ; -- UPFA+2         skip room for DP, RET_ADR  2+(2+2) +2 bytes
+        .ENDIF                      ;
+ISOTHER     SUB #2,TOS              ; -- CFA|UPFA       UPFA = MARKER_DOES User_Parameter_Field_Address
+ARGFOUND    ADD #2,RSP              ;                   remove TOIN
+SEARCHRET   MOV @RSP+,PC            ;24                 SR(Z)=0 if ARG found
+
+SrchArgNum  .word QNUMBER           ;
+            .word QFBRAN,ARGNOTFOUND; -- addr           with SR(Z)=1
+            .word ARGFOUND          ; -- value          no return
+ARGNOTFOUND mNEXTADR                ; -- x
+            MOV @RSP+,&TOIN         ;                   restore TOIN
+            MOV @RSP+,PC            ;32                 SR(Z)=1 if ARG not found
+
+SearchIndex
+; Search index of "xxxx(REG),"      ; <== ComputeIDXpREG <== PARAM13
+; Search index of ",xxxx(REG)"      ; <== ComputeIDXpREG <== PARAM21
+            SUB #1,&TOIN            ;               move >IN back one (unskip 'R')
+            MOV #'(',TOS            ; addr -- "("   as WORD separator to find xxxx of "xxxx(REG),"
+SearchARG                           ; sep -- n|d    or abort" not found"
+; Search ARG of "#xxxx,"            ; <== PARAM101
+; Search ARG of "&xxxx,"            ; <== PARAM111
+; Search ARG of ",&xxxx"            ; <== PARAM111 <== PARAM201
+            MOV TOS,W
+            PUSHM #4,IP             ; -- sep        PUSHM IP,S,T,W as IP_RET,OPCODE,OPCODEADR,sep
+            CALL #SearchARGn        ;               first search argument without offset
+            JNZ SrchEnd             ; -- ARG        if ARG found
+SearchArgPo MOV #'+',TOS            ; -- '+'
+            CALL #SearchARGn        ;               2th search argument with '+' as separator
+            JNZ ArgPlusOfst         ; -- ARG        if ARG of ARG+offset found
+SearchArgMo MOV #'-',TOS            ; -- '-'
+            CALL #SearchARGn        ;               3th search argument with '-' as separator
+            SUB #1,&TOIN            ;               to handle offset with its minus sign
+ArgPlusOfst PUSH TOS                ; -- ARG        save ARG on stack
+            MOV 2(RSP),TOS          ; -- sep        reload offset sep
+SrchOfst    mASM2FORTH              ;
+            .word WORDD,QNUMBER     ; -- Ofst|c-addr flag
+            .word QFBRAN,NotFound   ; -- c-addr     no return, see INTERPRET
+            mNEXTADR                ; -- Ofst
+            ADD @RSP+,TOS           ; -- Arg+Ofst
+SrchEnd     POPM #4,IP              ;               POPM W,T,S,IP     common return for SearchARG and SearchRn
+            MOV @RSP+,PC            ;66
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : search REG
 ; ----------------------------------------------------------------------
-
-; compute arg of "xxxx(REG),"       ;               <== PARAM130, sep=','
-; compute arg of ",xxxx(REG)"       ;               <== PARAM210, sep=' '
-ComputeARGpREG                      ; 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
+; compute index of "xxxx(REG),"     ;               <== PARAM13, sep=','
+; compute index of ",xxxx(REG)"     ;               <== PARAM210, sep=' '
+ComputeIDXpREG                      ; addr -- Rn|addr
+            CALL #SearchIndex       ; -- xxxx       aborted if not found
+            MOV &DP,X
+            MOV TOS,0(X)            ; -- xxxx       compile ARG xxxx
+            ADD #2,&DP
             MOV #')',TOS            ; -- ")"        prepare separator to search REG of "xxxx(REG)"
-
-            CMP &SOURCE_LEN,&TOIN   ;               bad case of ,xxxx  (without prefix &)
-            JNZ SearchREG           ;
-            MOV #BAD_CSP,PC         ;               génère une erreur bidon
-
-; search REG of "xxxx(REG),"    separator = ')' 
-; search REG of ",xxxx(REG)"    separator = ')' 
+; search REG of "xxxx(REG),"    separator = ')'
+; search REG of ",xxxx(REG)"    separator = ')'
 ; search REG of "@REG,"         separator = ',' <== PARAM120
 ; search REG of "@REG+,"        separator = '+' <== PARAM121
+SkipRSearchRn
+            ADD #1,&TOIN            ;               skip "R" in input buffer
 ; 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
+SearchRn    MOV &TOIN,W             ;
+            PUSHM #4,IP             ;               PUSHM IP,S,T,W as IP_RET,OPCODE,OPCODEADR,TOIN
+            mASM2FORTH              ;               search xx of Rxx
             .word WORDD,QNUMBER     ;
-            .word QFBRAN,NOTaREG    ; -- xxxx       if Not a Number
-            .word   $+2             ; -- Rn         number is found
-            ADD #2,RSP              ;               remove >IN
-            CMP #16,TOS             ; -- Rn       
-            JNC SearchEnd           ; -- Rn
+            .word QFBRAN,REGNOTFOUND; -- xxxx       SR(Z)=1 if Not a Number
+            mNEXTADR                ; -- Rn         number is found
+            CMP #16,TOS             ; -- Rn
+            JNC SrchEnd             ; -- Rn         SR(Z)=0, Rn found,
             JC  BOUNDERROR          ;               abort if Rn out of bounds
 
-NOTaREG     .word   $+2             ; -- addr       Z=1
-            MOV @RSP+,&TOIN         ; -- addr       restore >IN
-            JMP SearchEnd           ; -- addr       Z=1 ==> not a register 
+REGNOTFOUND mNEXTADR                ; -- addr       SR(Z)=1, (case of @REG not found),
+            MOV @RSP,&TOIN          ; -- addr       restore TOIN, ready for next SearchRn
+            JMP SrchEnd             ; -- addr       SR(Z)=1 ==> not a register
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : INTERPRET FIRST OPERAND
 ; ----------------------------------------------------------------------
-
-; 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
-            .word   $+2             ; -- 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
+; PARAM1     separator --           ; parse input buffer until separator and compute first operand of opcode
+                                    ; sep is comma for src and space for dst .
+PARAM1      JNZ PARAM10             ; -- sep        if prefix <> 'R'
+            CALL #SearchRn          ;               case of "REG,"
+            JMP PARAM123            ; -- 000R       REG of "REG," found, S=OPCODE=0
+; ----------------------------------;
+PARAM10     CMP.B #'#',W            ; -- sep        W=first char
+            JNE PARAM11
+PARAM101    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
@@ -169,104 +150,102 @@ PARAM10     ADD #1,&TOIN            ; -- sep        skip # prefix
             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 
+            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
+            MOV #0330h,S            ;               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
+; endcase of "&xxxx,"               ;               <== PARAM111
+; endcase of ",&xxxx"               ;               <== PARAM111 <== PARAM201
+StoreArg    MOV &DP,X               ;
+            ADD #2,&DP              ;               cell allot for arg
             MOV TOS,0(X)            ;               compile arg
+; endcase of all "#xxxx,"           ;
 ; endcase of all "&xxxx"            ;
-; endcase of all "#xxxx"            ;               <== PARAM101,102,104,108,10M1
-; endcase of all "REG"|"@REG"|"@REG+"               <== PARAM124
+; endcase of all "xxxx(REG)"|"@REG"|"@REG+"               <== PARAM124
 PARAMENDOF  MOV @PSP+,TOS           ; --
-            MOV @RSP+,IP            ;
             MOV @IP+,PC             ; --            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,"
-; case of ",&xxxx"                  ;               <== PARAM20
-PARAM111    ADD     #1,&TOIN        ; -- sep        skip "&" prefix
-            CALL    #SearchARG      ; -- arg        abort if not found
+PARAM110    MOV     #0210h,S        ; -- sep        set code type : xxxx(R2) with AS=0b01 ==> x210h
+; case of "&xxxx,"|",&xxxx"         ;               <== PARAM201
+PARAM111    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 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,
+            CALL    #SkipRSearchRn  ;               Z = not found
+            JNZ     PARAM123        ; -- Rn         REG of "@REG," found
+; case of "@REG+,"                  ; -- addr       search REG of "@REG+"
+PARAM121    BIS     #0010h,S        ;               change OPCODE from @REG to @REG+ type
+            MOV     #'+',TOS        ; -- sep
+            CALL    #SearchRn       ; -- Rn
+; case of "@REG+,"|"xxxx(REG),"     ;               <== PARAM13
+PARAM122                            ;               case of double separator:   +, and ),
+            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+,"|"xxxx(REG),"     ;
 ; case of "@REG,"                   ; -- 000R       <== PARAM120
-; case of "REG,"                    ; -- 000R       <== PARAM13
+; case of "REG,"                    ; -- 000R       <== PARAM1
 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)
+; case of ",REG"                    ; -- 000R       <== PARAM2  (dst REG typeI)
+; case of ",xxxx(REG)"              ; -- 000R       <== PARAM21 (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    #ComputeARGpREG ;               compile xxxx and search REG of "(REG)"
-            JMP     PARAM122        ; 
+; case of "xxxx(REG),"              ; -- sep
+PARAM13     BIS     #0010h,S        ;               AS=0b01 for indexing address
+            CALL    #ComputeIDXpREG ;               compile index xxxx and search REG of "(REG)"
+            JMP     PARAM122        ; -- Rn
+; ----------------------------------;
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : INTERPRET 2th OPERAND
 ; ----------------------------------------------------------------------
-
-PARAM3                              ; for OPCODES TYPE III
-            MOV     #0,S            ;                       init OPCODE=0
-            MOV     &DDP,T          ;                       T=OPCODEADR
-            ADD     #2,&DDP         ;                       make room for opcode
+PARAM2      JNZ PARAM20             ; -- sep        if prefix <> 'R'
+            CALL #SearchRn          ; -- sep        case of ",REG"
+            JMP     PARAM124        ; -- 000R       REG of ",REG" found
 ; ----------------------------------;
-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.
-            .word   $+2             ; -- 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
+PARAM20     CMP.B   #'&',W          ;
+            JNZ     PARAM21         ;               '&' not found
 ; case of ",&xxxx"                  ;
-PARAM20     ADD     #0082h,S        ;               change OPCODE : AD=1, dst = R2
+PARAM201    BIS     #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    #ComputeARGpREG ;               compile argument xxxx and search REG of "(REG)"
-            JMP     PARAM124        ; -- 000R       REG of "(REG) found
+; case of ",xxxx(REG)               ; -- sep
+PARAM21     BIS     #0080h,S        ;               set AD=1
+            CALL    #ComputeIDXpREG ;               compile index xxxx and search REG of ",xxxx(REG)"
+            JMP     PARAM124        ; -- 000R       REG of ",xxxx(REG) found
+
+; ----------------------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER: reset OPCODE in S reg, set OPCODE addr in T reg,
+; move Prefix in W reg, skip prefix in input buffer. Flag SR(Z)=1 if prefix = 'R'.
+; ----------------------------------------------------------------------------------------
+InitAndSkipPrfx
+            MOV #0,S                ;                   reset OPCODE
+            MOV &DP,T               ;                   HERE --> OPCODEADR
+            ADD #2,&DP              ;                   cell allot for opcode
+; SkipPrfx                          ; --                skip all occurring char 'BL' plus one prefix
+SkipPrfx    MOV #20h,W              ; --                W=BL
+            MOV &TOIN,X             ; --
+            ADD &SOURCE_ORG,X       ;
+SKIPLOOP    CMP.B @X+,W             ; --                W=BL  does character match?
+            JZ SKIPLOOP             ; --
+            MOV.B -1(X),W           ;                   W=prefix
+            SUB &SOURCE_ORG,X       ; --
+            MOV X,&TOIN             ; --                >IN points after prefix
+            CMP.B #'R',W            ;                   preset SR(Z)=1 if prefix = 'R'
+            MOV @IP+,PC             ; 4
 
 ; ----------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER: OPCODES TYPE 0 : zero operand      :-)
+; DTCforthMSP430FR5xxx ASSEMBLER: OPCODE TYPE 0 : zero operand      :-)
 ; ----------------------------------------------------------------------
             asmword "RETI"
             mDOCOL
@@ -275,7 +254,7 @@ PARAM210    ADD     #0080h,S        ;               set AD=1
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER: OPCODES TYPE I : double operand
 ; ----------------------------------------------------------------------
-;               OPCODE(FEDC) 
+;               OPCODE(FEDC)
 ; OPCODE(code)     = 0bxxxx             opcode
 ;                   OPCODE(BA98)
 ;                      = 0bxxxx         src_register,
@@ -293,13 +272,18 @@ PARAM210    ADD     #0080h,S        ;               set AD=1
 ;                           OPCODE(3210)
 ; OPCODE(dst)                  = 0bxxxx ,dst_register
 ; ----------------------------------------------------------------------
-TYPE1DOES   .word   lit,',',PARAM1  ; -- BODYDOES
-            .word   PARAM2          ; -- BODYDOES           char separator (BL) included in PARAM2
-            .word   $+2             ;
-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
+
+; TYPE1DOES     -- BODYDOES      search and compute PARAM1 & PARAM2 as src and dst operands then compile instruction
+TYPE1DOES   .word   lit,','
+            .word   InitAndSkipPrfx ;                       init S=0, T=DP, DP=DP+2 then skip prefix, SR(Z)=1 if prefix = 'R'
+            .word   PARAM1          ; -- BODYDOES
+            .word   BL,SkipPrfx     ;                       SR(Z)=1 if prefix = 'R'
+            .word   PARAM2          ; -- BODYDOES
+            mNEXTADR                ;
+MAKEOPCODE  MOV     @RSP+,IP
+            BIS     @TOS,S          ; -- opcode             generic opcode + customized S
+            MOV     S,0(T)          ; -- opcode             store completed opcode
+            JMP     PARAMENDOF      ; --                    then EXIT
 
             asmword "MOV"
             CALL rDODOES
@@ -390,8 +374,12 @@ MAKEOPCODE  MOV     T,X             ; -- opcode             X= OPCODEADR to comp
 ;                           OPCODE(3210)
 ; OPCODE(dst)                  = 0bxxxx dst register
 ; ----------------------------------------------------------------------
-TYPE2DOES   .word   FBLANK,PARAM1   ; -- BODYDOES
-            .word   $+2             ;
+
+TYPE2DOES                           ; -- BODYDOES
+            .word   BL              ; -- BODYDOES ' '
+            .word   InitAndSkipPrfx ;
+            .word   PARAM1          ; -- BODYDOES
+            mNEXTADR                ;
             MOV     S,W             ;
             AND     #0070h,S        ;                   keep B/W & AS infos in OPCODE
             SWPB    W               ;                   (REG org --> REG dst)
@@ -430,7 +418,7 @@ BIS_ASMTYPE BIS     W,S             ; -- BODYDOES       add it in OPCODE
 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
+            mASM2FORTH              ; -- n      n = value out of bounds
             .word   DOT,XSQUOTE
             .byte 13,"out of bounds"
             .word   ABORT_TERM
@@ -438,7 +426,7 @@ BOUNDERROR                          ; <== REG number error
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, CONDITIONAL BRANCHS
 ; ----------------------------------------------------------------------
-;                       ASSEMBLER       FORTH  OPCODE(FEDC)
+;                       ASSEMBLER       FORTH         OPCODE(FEDC)
 ; OPCODE(code) for TYPE JNE,JNZ         0<>, <>     = 0x20xx + (offset AND 3FF) ; branch if Z = 0
 ; OPCODE(code) for TYPE JEQ,JZ          0=, =       = 0x24xx + (offset AND 3FF) ; branch if Z = 1
 ; OPCODE(code) for TYPE JNC,JLO         U<          = 0x28xx + (offset AND 3FF) ; branch if C = 0
@@ -482,15 +470,15 @@ BOUNDERROR                          ; <== REG number error
 
 ;ASM IF      OPCODE -- @OPCODE1
             asmword "IF"
-ASM_IF      MOV     &DDP,W
+ASM_IF      MOV     &DP,W
             MOV     TOS,0(W)        ; compile incomplete opcode
-            ADD     #2,&DDP
+            ADD     #2,&DP
             MOV     W,TOS
             MOV     @IP+,PC
 
 ;ASM THEN     @OPCODE --        resolve forward branch
             asmword "THEN"
-ASM_THEN    MOV     &DDP,W          ; -- @OPCODE    W=dst
+ASM_THEN    MOV     &DP,W           ; -- @OPCODE    W=dst
             MOV     TOS,Y           ;               Y=@OPCODE
 ASM_THEN1   MOV     @PSP+,TOS       ; --
             MOV     Y,X             ;
@@ -504,23 +492,23 @@ ASM_THEN1   MOV     @PSP+,TOS       ; --
 
 ; ELSE      @OPCODE1 -- @OPCODE2    branch for IF..ELSE
             asmword "ELSE"
-ASM_ELSE    MOV     &DDP,W          ; --        W=HERE
+ASM_ELSE    MOV     &DP,W           ; --        W=HERE
             MOV     #3C00h,0(W)     ;           compile unconditionnal branch
-            ADD     #2,&DDP         ; --        DP+2
+            ADD     #2,&D         ; --        DP+2
             SUB     #2,PSP
             MOV     W,0(PSP)        ; -- @OPCODE2 @OPCODE1
             JMP     ASM_THEN        ; -- @OPCODE2
 
 ; BEGIN     -- BEGINadr             initialize backward branch
             asmword "BEGIN"
-            MOV #HERE,PC
+            MOV #HEREXEC,PC
 
 ; UNTIL     @BEGIN OPCODE --   resolve conditional backward branch
             asmword "UNTIL"
 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
+            MOV     &DP,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)
@@ -529,10 +517,10 @@ ASM_UNTIL2  MOV     @PSP+,TOS       ;  --
             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
+            ADD     #2,&DP
             MOV     @IP+,PC
 
-;  AGAIN    @BEGIN --      uncond'l backward branch
+; AGAIN     @BEGIN --      uncond'l backward branch
 ;   unconditional backward branch
             asmword "AGAIN"
 ASM_AGAIN   MOV TOS,W               ;               W=@BEGIN
@@ -560,12 +548,12 @@ ASM_REPEAT  mDOCOL                  ; -- @WHILE @BEGIN
 ;BACKWDOES   FORTHtoASM
 ;            MOV @RSP+,IP
 ;            MOV @TOS,TOS
-;            MOV TOS,Y               ; Y = ASMBWx
-;            MOV @PSP+,TOS           ; 
-;            MOV @Y,W                ;               W = [ASMBWx]
+;            MOV @TOS,Y              ; Y = ASMBWx
+;            MOV @PSP+,TOS           ;
+;            MOV @Y,W                ;               W = [BWx]
 ;            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
+;BACKWUSE    JHS ASM_UNTIL1          ;               yes, use this label
+;BACKWSET    MOV &DP,0(Y)            ;               no, set LABEL = DP
 ;            mNEXT
 
 ;; backward label 1
@@ -574,21 +562,21 @@ ASM_REPEAT  mDOCOL                  ; -- @WHILE @BEGIN
 ;            .word BACKWDOES
 ;            .word ASMBW1            ; in RAM
 
-BACKWDOES   .word   $+2
+BACKWDOES   mNEXTADR
             MOV @RSP+,IP            ;
-            MOV TOS,Y               ; -- PFA        Y = ASMBWx addr
+            MOV TOS,Y               ; -- BODY       Y = BWx addr
             MOV @PSP+,TOS           ; --
             MOV @Y,W                ;               W = LABEL
             CMP #8,&TOIN            ;               are we colon 8 or more ?
-BACKWUSE    JC ASM_UNTIL1           ;               yes, use this label  
-BACKWSET    MOV &DDP,0(Y)           ;               no, set LABEL = DP
+BACKWUSE    JC ASM_UNTIL1           ;               yes, use this label
+BACKWSET    MOV &DP,0(Y)            ;               no, set LABEL = DP
             MOV @IP+,PC
 
 ; backward label 1
             asmword "BW1"
-            CALL rDODOES
-            .word BACKWDOES
-            .word 0
+            CALL rDODOES            ; CFA
+            .word BACKWDOES         ; PFA
+            .word 0                 ; BODY
 ; backward label 2
             asmword "BW2"
             CALL rDODOES
@@ -600,15 +588,16 @@ BACKWSET    MOV &DDP,0(Y)           ;               no, set LABEL = DP
             .word BACKWDOES
             .word 0
 
-;FORWDOES    .word   $+2
+;FORWDOES    mNEXTADR
 ;            MOV @RSP+,IP
-;            MOV &DDP,W              ;
+;            MOV &DP,W               ;
 ;            MOV @TOS,TOS
-;            MOV @TOS,Y              ; -- PFA        Y= ASMFWx
+;            MOV @TOS,Y              ; -- BODY       Y=@OPCODE of FWx
+;            MOV #0,0(TOS)           ;               V3.9: clear @OPCODE of FWx to erratic 2th resolution
 ;            CMP #8,&TOIN            ;               are we colon 8 or more ?
-;FORWUSE     JNC ASM_THEN1           ;               no: resolve FWx with W=DDP, Y=ASMFWx
+;FORWUSE     JNC ASM_THEN1           ;               no: resolve FWx with W=DP, Y=@OPCODE
 ;FORWSET     MOV @PSP+,0(W)          ;               yes compile incomplete opcode
-;            ADD #2,&DDP             ;                   increment DDP
+;            ADD #2,&DP              ;                   increment DP
 ;            MOV W,0(TOS)            ;                   store @OPCODE into ASMFWx
 ;            MOV @PSP+,TOS           ;   --
 ;            MOV @IP+,PC
@@ -616,26 +605,27 @@ BACKWSET    MOV &DDP,0(Y)           ;               no, set LABEL = DP
 ;; forward label 1
 ;            asmword "FW1"
 ;            CALL rDODOES            ; CFA
-;            .word FORWDOES          ; 
-;            .word ASMFW1            ; in RAM 
+;            .word FORWDOES          ;
+;            .word ASMFW1            ; in RAM
 
-FORWDOES    .word   $+2
+FORWDOES    mNEXTADR
             MOV @RSP+,IP
-            MOV &DDP,W              ;
-            MOV @TOS,Y              ; -- PFA        Y=[BODY]=ASMFWx
+            MOV &DP,W               ;
+            MOV @TOS,Y              ; -- BODY       Y=@OPCODE of FWx
+            MOV #0,0(TOS)           ;               V3.9: clear @OPCODE of FWx to avoid jmp resolution without label
             CMP #8,&TOIN            ;               are we colon 8 or more ?
-FORWUSE     JNC 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           ;   --
+FORWUSE     JNC ASM_THEN1           ;               no: resolve FWx with W=DP, Y=@OPCODE
+FORWSET     MOV @PSP+,0(W)          ;               yes compile opcode (without displacement)
+            ADD #2,&DP              ;                   increment DP
+            MOV W,0(TOS)            ;                   store @OPCODE into BODY of FWx
+            MOV @PSP+,TOS           ; --
             MOV @IP+,PC
 
 ; forward label 1
             asmword "FW1"
             CALL rDODOES            ; CFA
-            .word FORWDOES          ; 
-            .word 0                 ; BODY 
+            .word FORWDOES          ; PFA
+            .word 0                 ; BODY
 ; forward label 2
             asmword "FW2"
             CALL rDODOES
@@ -669,8 +659,8 @@ INVJMP      CMP #3000h,TOS          ; invert code jump process
 ; --------------------------------------------------------------------------------
 ; 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, 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
@@ -683,17 +673,17 @@ INVJMP      CMP #3000h,TOS          ; invert code jump process
 
 ; example : POPM #6,IP   pulls Y,X,W,T,S,IP registers from return stack
 
-; RxxM syntax: RxxM #n,REG  with 0 < n < 5 
+; RxxM syntax: RxxM #n,REG  with 0 < n < 5
 
-TYPE3DOES   .word   FBLANK,SKIP     ;                       skip spaces if any
-            .word   $+2             ; -- BODYDOES c-addr
-            ADD     #1,&TOIN        ;                       skip "#"
-            MOV     #',',TOS        ; -- BODYDOES ","
-            ASMtoFORTH
-            .word   WORDD,QNUMBER
+TYPE3DOES                           ; -- BODYDOES
+            .word   SkipPrfx        ;
+            .word   LIT,','         ; -- BODYDOES ','
+            .word   WORDD,QNUMBER   ;
             .word   QFBRAN,NotFound ;                       see INTERPRET
-            .word   PARAM3          ; -- BODYDOES 0x000N    S=OPCODE = 0x000R
-            .word   $+2
+            .word   BL              ; -- BODYDOES n ' '
+            .word   InitAndSkipPrfx ; -- BODYDOES n ' '
+            .word   PARAM2          ; -- BODYDOES n         S=OPCODE = 0x000R
+            mNEXTADR
             MOV     TOS,W           ; -- BODYDOES n         W = n
             MOV     @PSP+,TOS       ; -- BODYDOES
             SUB     #1,W            ;                       W = n floored to 0
@@ -702,17 +692,17 @@ TYPE3DOES   .word   FBLANK,SKIP     ;                       skip spaces if any
             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                  
+            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
             JC      BOUNDERRWM1     ;                       JC=JHS    (U>=)
-            RLAM    #4,W            ;                       W = n << 4      
-            JMP     BIS_ASMTYPE     ; BODYDOES --            
+            RLAM    #4,W            ;                       W = n << 4
+            JMP     BIS_ASMTYPE     ; BODYDOES --
 RxxMINSTRU  CMP     #4,W            ;
             JC      BOUNDERRWM1     ;                       JC=JHS    (U>=)
-            SWPB    W               ; -- BODYDOES           W = n << 8
+            SWPB    W               ;                       W = n << 8
             RLAM    #2,W            ;                       W = N << 10
             JMP     BIS_ASMTYPE     ; BODYDOES --
 
@@ -735,6 +725,7 @@ RxxMINSTRU  CMP     #4,W            ;
             CALL rDODOES
             .word   TYPE3DOES,1700h
 
+
     .IFDEF EXTENDED_MEM
             asmword "RRCM.A"
             CALL rDODOES
@@ -759,163 +750,132 @@ RxxMINSTRU  CMP     #4,W            ;
 ; DTCforthMSP430FR5xxx ASSEMBLER:  OPCODE TYPE III bis: CALLA (without extended word)
 ; --------------------------------------------------------------------------------
 ; absolute and immediate instructions must be written as $x.xxxx  (DOUBLE numbers with dot)
-; indexed instructions must be written as $.xxxx(REG) (DOUBLE numbers with dot)
-; --------------------------------------------------------------------------------
-; may be usefull to access ROM libraries beyond $FFFF
+; indexed instructions must be written as $xxxx(REG)
 ; --------------------------------------------------------------------------------
             asmword "CALLA"
             mDOCOL
-            .word FBLANK,SKIP       ; -- addr
-            .word   $+2
-            MOV &DDP,T              ;           T = DDP
-            ADD #2,&DDP             ;           make room for opcode
-            MOV.B @TOS,TOS          ; -- char   First char of opcode
+            .word   BL              ; -- sep
+            .word   InitAndSkipPrfx ; -- sep    SR(Z)=1 if prefix = 'R'
+            mNEXTADR
+            MOV @RSP+,IP
 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
+            JNZ CALLA1              ; -- sep    if prefix <> 'R'
+CALLA01     CALL #SearchRn          ; -- Rn
+CALLA02     RLAM #4,S               ;           (opcode>>4)<<4 = opcode
+            BIS TOS,S               ;           update opcode with Rn|$x
             MOV S,0(T)              ;           store opcode
-            MOV @PSP+,TOS
-            MOV @RSP+,IP 
-            MOV @IP+,PC
+            MOV @PSP+,TOS           ; --
+            MOV @IP+,PC             ;
 ;-----------------------------------;
-CALLA1      ADD #2,S                ;           136h<<4 = opcode for CALLA @REG
-            CMP.B #'@',TOS          ; -- char   Search @REG
+CALLA1      ADD #2,S                ; -- sep    136h<<4 = opcode for CALLA @REG
+            CMP.B #'@',W            ;           Search @REG
             JNZ CALLA2              ;
-            ADD #1,&TOIN            ;           skip '@'
-            MOV.B #' ',TOS          ; -- ' '
-            CALL #SearchREG         ;
-            JNZ  CALLA03            ;           if REG found, update opcode
+CALLA11     CALL #SkipRSearchRn     ;
+            JNZ  CALLA02            ;           if REG found, update opcode
 ;-----------------------------------;
             ADD #1,S                ;           137h<<4 = opcode for CALLA @REG+
-            MOV #'+',TOS            ; -- '+'
-            JMP CALLA02             ;
+            MOV #'+',TOS            ; -- sep
+            JMP CALLA01             ;
 ;-----------------------------------;
-CALLA2      ADD #2,&DDP             ;           make room for xxxx of #$x.xxxx|&$x.xxxx|$0.xxxx(REG)
-            CMP.B #'#',TOS          ;
+CALLA2      ADD #2,&DP              ; -- sep    make room for xxxx of #$x.xxxx|&$x.xxxx|$xxxx(REG)
+            CMP.B #'#',W            ;
             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
+CALLA21     CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi     store $xxxx of #$x.xxxx|&$x.xxxx
+            JMP CALLA02             ;           update opcode with $x. and store opcode
 ;-----------------------------------;
-CALLA3      CMP.B #'&',TOS   
+CALLA3      CMP.B #'&',W            ; -- sep
             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
-    
+CALLA4      SUB #1,S                ;           135h<<4 = opcode for CALLA $xxxx(REG)
+CALLA41     CALL #SearchIndex       ; -- n
+            MOV TOS,2(T)            ; -- n      store $xxxx of $xxxx(REG)
+            MOV #')',TOS            ; -- sep
+            JMP CALLA11             ;           search Rn and update opcode
+
 ; ===============================================================
 ; 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) 
+; MOVA #$x.xxxx|&$x.xxxx|$xxxx(Rs)|Rs|@Rs|@Rs+ , &$x.xxxx|$xxxx(Rd)|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
-            .word   $+2             ;
-            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
+ACMS1       MOV @PSP+,S             ; -- sep        S=BODYDOES
+            MOV @S,S                ;               S=opcode
 ;-----------------------------------;
-ACMS10      CMP.B #'R',X            ; -- ','    
-            JNZ ACMS11              ;
-ACMS101     CALL #SearchREG         ; -- Rn         src
+ACMS10      JNZ ACMS11              ; -- sep        if prefix <> 'R'
+ACMS101     CALL #SearchRn          ; -- Rn
 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
-            MOV @RSP+,IP            ;
             MOV @IP+,PC             ;
 ;-----------------------------------;
-ACMS11      CMP.B #'#',X            ; -- ','        X=addr
+ACMS11      CMP.B #'#',W            ; -- sep        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)
+ACMS111     ADD #2,&DP              ;               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)
+            MOV @PSP+,2(T)          ; -- Hi         store $xxxx of #$x.xxxx|&$x.xxxx|$xxxx(REG)
             AND #0Fh,TOS            ; -- Hi         sel Hi src
             JMP ACMS102             ;
 ;-----------------------------------;
-MOVA12      CMP.B #'&',X            ; -- ','        case of MOVA &$x.xxxx
+MOVA12      CMP.B #'&',W            ; -- sep         case of MOVA &$x.xxxx
             JNZ MOVA13              ;
-            XOR #00E0h,S            ;               set MOVA &$x.xxxx, opcode                 
+            XOR #00E0h,S            ;               set MOVA &$x.xxxx, opcode
             JMP ACMS111             ;
 ;-----------------------------------;
 MOVA13      BIC #00F0h,S            ;               set MOVA @REG, opcode
-            CMP.B #'@',X            ; -- ','
+            CMP.B #'@',W            ; -- sep
             JNZ MOVA14              ;
-            ADD #1,&TOIN            ;               skip '@'
-            CALL #SearchREG         ; -- Rn 
+            CALL #SkipRSearchRn     ; -- 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
+MOVA131     CALL #SearchRn          ; -- Rn         case of MOVA @REG+,|MOVA $x.xxxx(REG),
+MOVA132     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
+MOVA14      BIS #0030h,S            ; -- sep        set xxxx(REG), opcode
+            ADD #2,&DP              ;               make room for first $xxxx of $xxxx(REG),
+            CALL #SearchIndex       ; -- n
+            MOV TOS,2(T)            ; -- n          store $xxxx as 2th word
             MOV #')',TOS            ; -- ')'
-            JMP MOVA131             ;
+            CALL #SkipRSearchRn     ; -- Rn
+            JMP MOVA132             ;
 
 ; 2th argument process ACMS2
-;-----------------------------------;
-ACMS2       mDOCOL                  ; -- OPCODE_addr 
-            .word FBLANK,SKIP       ; -- OPCODE_addr addr
-            .word   $+2             ;
-            MOV @PSP+,T             ; -- addr       T=OPCODE_addr
+;-----------------------------------; -- OPCODE_addr sep
+ACMS2       MOV @PSP+,T             ; -- sep        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
+ACMS21      JNZ MOVA22              ; -- sep        if prefix <> 'R'
+ACMS211     CALL #SearchRn          ; -- Rn
             JMP ACMS103             ;
 ;-----------------------------------;
-MOVA22      BIC #0F0h,S             ;
-            ADD #2,&DDP             ; -- ' '        make room for $xxxx
-            CMP.B #'&',X            ;
+MOVA22      BIC #0F0h,S             ; -- sep
+            ADD #2,&DP              ;               make room for $xxxx
+            CMP.B #'&',W            ;
             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
+            CALL #SearchIndex       ; -- n
+            MOV TOS,2(T)            ; -- n          write $xxxx of ,$xxxx(REG) as 2th word
             MOV #')',TOS            ; -- ")"        as WORD separator to find REG of "xxxx(REG),"
-            JMP ACMS211
+            CALL #SkipRSearchRn     ; -- Rn
+            JMP ACMS103
 
 ; --------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV 2 operands: Adda|Cmpa|Mova|Suba (without extended word)
@@ -924,9 +884,11 @@ 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   InitAndSkipPRFX ;                       SR(Z)=1 if prefix = 'R'
             .word   ACMS1           ; -- OPCODE_addr
+            .word   BL,SkipPRFX     ;                       SR(Z)=1 if prefix = 'R'
             .word   ACMS2           ; -- OPCODE_addr
-            .word   DROP,EXIT
+            .word   DROPEXIT
 
             asmword "MOVA"
             CALL rDODOES
diff --git a/forthMSP430FR_CONDCOMP.asm b/forthMSP430FR_CONDCOMP.asm
deleted file mode 100644 (file)
index e7cb74d..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-; -*- coding: utf-8 -*-
-;
-            FORTHWORDIMM "[THEN]"   ; do nothing
-; https://forth-standard.org/standard/tools/BracketTHEN
-; [THEN]
-            MOV @IP+,PC
-
-; ; https://forth-standard.org/standard/string/COMPARE
-; ; COMPARE ( c-addr1 u1 c-addr2 u2 -- n )
-; ;Compare the string specified by c-addr1 u1 to the string specified by c-addr2 u2. 
-; ;The strings are compared, beginning at the given addresses, character by character, 
-; ;up to the length of the shorter string or until a difference is found. 
-; ;If the two strings are identical, n is zero. 
-; ;If the two strings are identical up to the length of the shorter string, 
-; ;   n is minus-one (-1) if u1 is less than u2 and one (1) otherwise. 
-; ;If the two strings are not identical up to the length of the shorter string, 
-; ;   n is minus-one (-1) if the first non-matching character in the string specified by c-addr1 u1 
-; ;   has a lesser numeric value than the corresponding character in the string specified by c-addr2 u2 and one (1) otherwise.
-;         FORTHWORD "COMPARE"
-; COMPARE
-;         MOV TOS,S       ;1 S = u2
-;         MOV @PSP+,Y     ;2 Y = addr2
-;         MOV @PSP+,T     ;2 T = u1     
-;         MOV @PSP+,X     ;2 X = addr1
-; COMPLOOP MOV T,TOS       ;1
-;         ADD S,TOS       ;1 TOS = u1+u2
-;         JZ  COMPEQUAL   ;2 u1=u2=0, Z=1,  end of all successfull comparisons
-;         SUB #1,T        ;1
-;         JN COMPLESS     ;2 u1<u2 if u1 < 0
-;         SUB #1,S        ;1
-;         JN COMPGREATER  ;2 u1>u2 if u2 < 0
-;         ADD #1,X        ;1 
-;         CMP.B @Y+,-1(X) ;4 char1-char2
-;         JZ COMPLOOP      ;2 char1=char2  17~ loop
-;         JC  COMPGREATER ;2 char1>char2
-; COMPLESS                ;  char1<char2
-;         MOV #-1,TOS     ;1 Z=0
-;         MOV @IP+,PC     ;4
-; COMPGREATER
-;         MOV #1,TOS      ;1 Z=0
-; COMPEQUAL
-;         MOV @IP+,PC     ;4     20 + 5 words def'n
-
-; ; https://forth-standard.org/standard/tools/BracketELSE
-; ; [ELSE]      a few (smaller and faster) definition
-; ;Compilation:
-; ;Perform the execution semantics given below.
-; ;Execution:
-; ;( "<spaces>name ..." -- )
-; ;Skipping leading spaces, parse and discard space-delimited words from the parse area, 
-; ;including nested occurrences of [IF] ... [THEN] and [IF] ... [ELSE] ... [THEN], 
-; ;until the word [THEN] has been parsed and discarded. 
-; ;If the parse area becomes exhausted, it is refilled as with REFILL. 
-;         FORTHWORDIMM  "[ELSE]"          ; or [IF] if isnogood...
-; BRACKETELSE
-;         mDOCOL
-;         .word   lit,0                   ; -- cnt=0
-; BRACKETELSE0
-;         .word   ONEPLUS                 ; -- cnt+1
-; BRACKETELSE1                            ;
-;         .word   FBLANK,WORDD,COUNT      ; -- cnt addr u
-;         .word   DUP,QFBRAN,BRACKETELSE5 ;                 u = 0 if end of line --> refill buffer then loop back
-;         .word   TWODUP                  ;
-;         .word   XSQUOTE                 ;
-;         .byte   6,"[THEN]"              ;
-;         .word   COMPARE,ZEROEQUAL       ; 
-;         .word   QFBRAN,BRACKETELSE2     ; -- cnt addr u   if bad comparaison, jump for next comparaison
-;         .word   TWODROP,ONEMINUS        ; -- cnt-1        2DROP, decrement count
-;         .word   QDUP,ZEROEQUAL          ;
-;         .word   QFBRAN,BRACKETELSE1     ; -- cnt-1        loop back if count <> 0
-;         .word   EXIT                    ; --              else exit
-; BRACKETELSE2                            ;
-;         .word   TWODUP                  ; -- cnt addr u addr u
-;         .word   XSQUOTE                 ;
-;         .byte   6,"[ELSE]"              ;
-;         .word   COMPARE,ZEROEQUAL       ; -- cnt addr u ff 
-;         .word   QFBRAN,BRACKETELSE3     ; -- cnt addr u   if bad comparaison, jump for next comparaison
-;         .word   TWODROP,ONEMINUS        ; -- cnt-1        2DROP, decrement count
-;         .word   QDUP,ZEROEQUAL          ;
-;         .word   QFBRAN,BRACKETELSE0     ; -- cnt-1        if count <> 0 restore old count with loop back increment
-;         .word   EXIT                    ; --              else exit
-; BRACKETELSE3                            ;
-;         .word   XSQUOTE                 ;
-;         .byte   4,"[IF]"                ;
-;         .word   COMPARE,ZEROEQUAL       ;
-;         .word   QFBRAN,BRACKETELSE1     ; -- cnt          if bad comparaison, loop back
-;         .word   BRAN,BRACKETELSE0       ; -- cnt          else increment loop back
-; BRACKETELSE5                            ;
-;         .word   TWODROP                 ; -- cnt
-; ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
-; ; OPTION                                ; plus 5 words option
-; ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv;
-;         .word   XSQUOTE                 ;
-;         .byte   5,13,10,"ko "           ;
-;         .word   TYPE                    ;                 CR+LF ." ko" to show false branch of conditionnal compilation
-; ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
-;         .word   REFILL                  ;                 REFILL Input Buffer with next line
-;         .word   SETIB                   ;                 SET Input Buffer pointers SOURCE_LEN, SOURCE_ORG and clear >IN
-;         .word   BRAN,BRACKETELSE1       ; -- cnt          then loop back   54 words without options
-
-; BRanch if string BAD COMParaison, [COMPARE,ZEROEQUAL,QFBRAN] replacement
-BRBADCOMP                   ;   -- cnt addr1 u1 addr1 u1 addr2 u2
-            MOV TOS,S       ;1  S = u2
-            MOV @PSP+,Y     ;2  Y = addr2
-            MOV @PSP+,T     ;2  T = u1     
-            MOV @PSP+,X     ;2  X = addr1
-COMPLOOP    MOV T,TOS       ;1  -- cnt addr1 u1 u1 
-            ADD S,TOS       ;1  -- cnt addr1 u1 u1+u2 
-            JZ  COMPEQU     ;2  u1=u2=0, Z=1,  end of all successfull comparisons
-            SUB #1,T        ;1  
-            JN COMPDIF      ;2  u1<u2 if u1 < 0
-            SUB #1,S        ;1  
-            JN COMPDIF      ;2  u1>u2 if u2 < 0
-            ADD #1,X        ;1  
-            CMP.B @Y+,-1(X) ;4  char1-char2
-            JZ COMPLOOP     ;2  char1=char2  17~ loop
-COMPDIF     MOV @IP,IP      ;1  take branch
-CMPEND      MOV @PSP+,TOS   ;
-            MOV @IP+,PC     ;4
-
-; BRanch if string GOOD COMParaison, [TWODROP,ONEMINUS,?DUP,ZEROEQUAL,QFBRAN] replacement
-BRGOODCMP                   ;    -- cnt addr u
-            ADD #2,PSP      ;1   -- cnt u
-            SUB #1,0(PSP)   ;3   -- cnt-1 u
-            JNZ COMPDIF     ;2   -- cnt-1 u take branch
-            ADD #2,PSP      ;1   -- u
-COMPEQU     ADD #2,IP       ;               skip branch
-            JMP CMPEND      ; 25 words
-
-            FORTHWORDIMM  "[ELSE]"          ; or [IF] if isnogood...
-; https://forth-standard.org/standard/tools/BracketELSE
-; [ELSE]      a few (smaller and faster) definition
-;Compilation:
-;Perform the execution semantics given below.
-;Execution:
-;( "<spaces>name ..." -- )
-;Skipping leading spaces, parse and discard space-delimited words from the parse area, 
-;including nested occurrences of [IF] ... [THEN] and [IF] ... [ELSE] ... [THEN], 
-;until the word [THEN] has been parsed and discarded. 
-;If the parse area becomes exhausted, it is refilled as with REFILL. 
-BRACKETELSE
-            mDOCOL
-            .word   lit,0                   
-BRACKETELSE0
-            .word   ONEPLUS                 ; 
-BRACKETELSE1                                ;
-            .word   FBLANK,WORDD,COUNT      ; -- addr u
-            .word   DUP,QFBRAN,BRACKETELSE5 ;       u = 0 if end of line --> refill buffer then loop back
-            .word   TWODUP                  ;
-            .word   XSQUOTE                 ;
-            .byte   6,"[THEN]"              ;
-            .word   BRBADCOMP,BRACKETELSE2  ; if bad string comparaison, jump for next comparaison
-            .word   BRGOODCMP,BRACKETELSE1  ; 2DROP,  count-1, loop back if count <> 0, else DROP
-            .word   EXIT                    ; then exit
-BRACKETELSE2                                ;
-            .word   TWODUP                  ;
-            .word   XSQUOTE                 ;
-            .byte   6,"[ELSE]"              ;
-            .word   BRBADCOMP,BRACKETELSE3  ; if bad string comparaison, jump for next comparaison
-            .word   BRGOODCMP,BRACKETELSE0  ; 2DROP, count-1, loop back with count+1 if count <> 0, else DROP
-            .word   EXIT                    ; then exit
-BRACKETELSE3                                ;
-            .word   XSQUOTE                 ;
-            .byte   4,"[IF]"                ;
-            .word   BRBADCOMP,BRACKETELSE1  ; if bad string comparaison, loop back
-            .word   BRAN,BRACKETELSE0       ; else loop back with count+1
-BRACKETELSE5                                ;
-            .word   TWODROP                 ;
-;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
-; OPTION                                    ; +5 words option
-;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv;
-            .word   XSQUOTE                 ;
-            .byte   5,13,10,"ko "           ;
-            .word   TYPE                    ; CR+LF ." ko "     to show false branch of conditionnal compilation
-;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
-BRKTELSEND  .word   REFILL                  ; REFILL Input Buffer with next line
-            .word   SETIB                   ; SET Input Buffer pointers SOURCE_LEN, SOURCE_ORG and clear >IN
-            .word   BRAN,BRACKETELSE1       ; then loop back   44 words without options
-
-            FORTHWORDIMM "[IF]" ; flag -- 
-; https://forth-standard.org/standard/tools/BracketIF
-; [IF]
-;Compilation:
-;Perform the execution semantics given below.
-;Execution: ;( flag | flag "<spaces>name ..." -- )
-;If flag is true, do nothing. Otherwise, skipping leading spaces, 
-;   parse and discard space-delimited words from the parse area, 
-;   including nested occurrences of [IF] ... [THEN] and [IF] ... [ELSE] ... [THEN],
-;   until either the word [ELSE] or the word [THEN] has been parsed and discarded. 
-;If the parse area becomes exhausted, it is refilled as with REFILL. [IF] is an immediate word.
-;An ambiguous condition exists if [IF] is POSTPONEd, 
-;   or if the end of the input buffer is reached and cannot be refilled before the terminating [ELSE] or [THEN] is parsed.
-BRACKETIF   CMP #0,TOS      ; -- f
-            MOV @PSP+,TOS   ; --
-            JZ BRACKETELSE  ; false flag output
-            MOV @IP+,PC     ; true flag output
-
-    .IFNDEF NIP
-; https://forth-standard.org/standard/core/NIP
-; NIP      x1 x2 -- x2         Drop the first item below the top of stack
-NIP         ADD #2,PSP      ; 1
-            MOV @IP+,PC     ; 4
-    .ENDIF
-
-
-            FORTHWORDIMM  "[DEFINED]"
-; https://forth-standard.org/standard/tools/BracketDEFINED
-; [DEFINED]
-;Compilation:
-;Perform the execution semantics given below.
-;Execution:
-;( "<spaces>name ..." -- flag )
-;Skip leading space delimiters. Parse name delimited by a space. 
-;Return a true flag if name is the name of a word that can be found,
-;otherwise return a false flag. [DEFINED] is an immediate word.
-DEFINED     mDOCOL
-            .word   FBLANK,WORDD,FIND,NIP,EXIT
-
-            FORTHWORDIMM  "[UNDEFINED]"
-; https://forth-standard.org/standard/tools/BracketUNDEFINED
-; [UNDEFINED]
-;Compilation:
-;Perform the execution semantics given below.
-;Execution: ( "<spaces>name ..." -- flag )
-;Skip leading space delimiters. Parse name delimited by a space. 
-;Return a false flag if name is the name of a word that can be found,
-;otherwise return a true flag.
-            mDOCOL
-            .word   DEFINED,ZEROEQUAL,EXIT
-
-
-; https://forth-standard.org/standard/core/MARKER
-; MARKER
-;name Execution: ( -- )
-;Restore all dictionary allocation and search order pointers to the state they had just prior to the
-;definition of name. Remove the definition of name and all subsequent definitions. Restoration
-;of any structures still existing that could refer to deleted definitions or deallocated data space is
-;not necessarily provided. No other contextual information such as numeric base is affected.
-
-
-; FastForth provides all that is necessary for a real time application next MARKER definition,
-; by adding a call to a custom subroutine, with the default parameters to be restored saved next MARKER definition.
-MARKER_DOES                         ; execution part of MARKER, same effect than RST_STATE, but to restore state before MARKER defn.
-            .word   $+2             ; -- BODY
-            MOV @TOS+,&RST_DP       ; -- BODY+2         thus RST_STATE will restore the word-set state before MARKER
-    .IFDEF VOCABULARY_SET
-            MOV @TOS+,&RST_VOC      ; -- BODY+4         thus RST_STATE will restore the word-set state before MARKER
-    .ELSE
-            ADD #2,TOS              ; -- BODY+4
-    .ENDIF
-            CALL @TOS+              ; -- BODY+6         @TOS = RET_ADR|STOP_APP_ADR    (default|custom)
-            MOV @PSP+,TOS           ; --
-            MOV @RSP+,IP            ;
-            JMP RST_STATE           ;               then next
-
-            FORTHWORD "MARKER"      ; definition part
-;( "<spaces>name" -- )
-;Skip leading space delimiters. Parse name delimited by a space. Create a definition for name
-;with the execution semantics defined below.
-
-            CALL #HEADER            ;4 W = DP+4, Y = NFA, 
-            MOV #1285h,-4(W)        ;4 CFA = CALL R5 = rDODOES
-            MOV #MARKER_DOES,-2(W)  ;4 PFA = MARKER_DOES
-            SUB #2,Y                ;1 Y = NFA-2 = LFA
-            MOV Y,0(W)              ;3 BODY   = DP value before this MARKER definition
-    .IFDEF VOCABULARY_SET
-            MOV &LASTVOC,2(W)       ;5 BODY+2 = current VOCLINK
-    .ENDIF
-            MOV #RET_ADR,4(W)       ;  BODY+4 = RET addr, to do nothing by default
-            ADD #6,&DDP             ;4
-            JMP GOOD_CSP            ;
index 4604adf..8ec39f2 100644 (file)
@@ -5,14 +5,16 @@
 ; ----------------------------------------------------------------------
 
 ; ----------------------------------------------------------------------
-;       MOV(.B) #0, dst is coded as follow  : MOV(.B) R3, dst           ; 1 cycle,  one word    As=00   register mode
-;       MOV(.B) #1, dst is coded as follow  : MOV(.B) 0(R3), dst        ; 2 cycles, one word    AS=01   x(reg)   mode
-;       MOV(.B) #2, dst is coded as follow  : MOV(.B) @R3, dst          ; 2 cycles, one word    AS=10   @reg     mode
-;       MOV(.B) #4, dst is coded as follow  : MOV(.B) @R2, dst          ; 2 cycles, one word    AS=10   @reg     mode
-;       MOV(.B) #8, dst is coded as follow  : MOV(.B) @R2+, dst         ; 2 cycles, one word    AS=11   @reg+    mode
-;       MOV(.B) #-1,dst is coded as follow  : MOV(.B) @R3+, dst         ; 2 cycles, one word    AS=11
-;       MOV(.B) #xxxx,dst is coded a follow : MOV(.B) @PC+, dst         ; 2 cycles, two words   AS=11   @reg+    mode
-;       MOV(.B) &EDE,&TON is coded as follow: MOV(.B) EDE(R2),TON(R2)   ; (R2=0), three words   AS=01, AD=1 x(reg) mode
+;       MOV(.B) SR,dst   is coded as follow : MOV(.B) R2,dst            ; 1 cycle,  one word    AS=00   (register mode)
+;       MOV(.B) #0,dst   is coded as follow : MOV(.B) R3,dst            ; 1 cycle,  one word    AS=00   (register mode)
+;       MOV(.B) &EDE,dst is coded as follow : MOV(.B) EDE(R2),dst       ; 3 cycles, two words   AS=01   ( x(reg)  mode)
+;       MOV(.B) #1,dst   is coded as follow : MOV(.B) 0(R3),dst         ; 1 cycle,  one word    AS=01   ( x(reg)  mode)
+;       MOV(.B) #4,dst   is coded as follow : MOV(.B) @R2,dst           ; 1 cycle,  one word    AS=10   ( @reg    mode)
+;       MOV(.B) #2,dst   is coded as follow : MOV(.B) @R3,dst           ; 1 cycle,  one word    AS=10   ( @reg    mode)
+;       MOV(.B) #8,dst   is coded as follow : MOV(.B) @R2+,dst          ; 1 cycle,  one word    AS=11   ( @reg+   mode)
+;       MOV(.B) #-1,dst  is coded as follow : MOV(.B) @R3+,dst          ; 1 cycle,  one word    AS=11   ( @reg+   mode)
+; ----------------------------------------------------------------------
+;       MOV(.B) #xxxx,dst is coded as follow: MOV(.B) @PC+,dst          ; 2 cycles, two words   AS=11   ( @reg+   mode)
 ; ----------------------------------------------------------------------
 
 ; PUSHM order : PSP,TOS, IP,  S,  T,  W,  X,  Y, rEXIT,rDOVAR,rDOCON, rDODOES, R3, SR,RSP, PC
 
 ; example : POPM #6,IP   pop Y,X,W,T,S,IP registers from return stack
 
-
-;;Z SKIP      char -- addr               ; skip all occurring character 'char'
-;            FORTHWORD "SKIP"            ; used by assembler to parse input stream
-SKIP        MOV #SOURCE_LEN,Y       ;2
-            MOV TOS,W               ; -- char           W=char
-            MOV @Y+,X               ;2 -- char           W=char  X=buf_length
-            MOV @Y,TOS              ;2 -- Start_buf_adr  W=char  X=buf_length
-            ADD TOS,X               ; -- Start_buf_adr  W=char  X=Start_buf_adr+buf_length=End_buf_addr
-            ADD &TOIN,TOS           ; -- Parse_Adr      W=char  X=End_buf_addr
-SKIPLOOP    CMP TOS,X               ; -- Parse_Adr      W=char  X=End_buf_addr
-            JZ SKIPEND              ; -- Parse_Adr      if end of buffer
-            CMP.B @TOS+,W           ; -- Parse_Adr      does character match?
-            JZ SKIPLOOP             ; -- Parse_Adr+1
-SKIPNEXT    SUB #1,TOS              ; -- addr
-SKIPEND     MOV TOS,W               ;
-            SUB @Y,W                ; -- addr           W=Parse_Addr-Start_buf_adr=Toin
-            MOV W,&TOIN             ;
-            MOV @IP+,PC             ; 4
-
 ; ----------------------------------------------------------------------
-; DTCforthMSP430FR5xxx ASSEMBLER : search argument "xxxx", IP is free
+; DTCforthMSP430FR5xxx ASSEMBLER : search argument "xxxx"
 ; ----------------------------------------------------------------------
 
-; 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   ZEROEQUAL
-;             .word   QFBRAN,ARGWORD  ; -- addr           if Word found
-;             .word   QNUMBER         ;
-;             .word   QFBRAN,NotFound ; -- addr           ABORT if not found
-; FSearchEnd  .word   SearchEnd       ; -- value          goto SearchEnd if number found
-; ARGWORD     .word   $+2             ; -- CFA
-;             MOV     @TOS+,S         ; -- PFA            S=DOxxx
-; QDOVAR      SUB     #DOVAR,S        ;                   DOxxx = 1287h = DOVAR
-; ISDOVAR     JZ      SearchEnd       ; -- addr           PFA = adr of VARIABLE
-; QDOCON      ADD     #1,S            ;                   DOxxx = 1286h = DOCON
-;             JNZ     ISOTHER         ;
-; ISDOCON     MOV     @TOS,TOS        ;
-;             JMP     SearchEnd       ; -- cte
-; ISOTHER     SUB     #2,TOS          ; -- CFA
-; SearchEnd   POPM    #2,S            ;                   POPM T,S
-;             MOV     @RSP+,PC        ; RET
-
-SearchARG                           ; separator -- n|d or abort" not found"
-; Search ARG of "#xxxx,"            ; <== PARAM10
-; Search ARG of "&xxxx,"            ; <== PARAM111
-; Search ARG of "xxxx(REG),"        ; <== ComputeARGpREG <== PARAM130
-; Search ARG of ",&xxxx"            ; <== PARAM111 <== PARAM20
-; Search ARG of ",xxxx(REG)"        ; <== ComputeARGpREG <== PARAM210
-            PUSHM #2,S              ;                   PUSHM S,T as OPCODE,OPCODEADR
-            PUSH TOS                ;                   push sep, for SrchARGPO
-            PUSH &TOIN              ;                   push TOIN, for SrchARGPO
-;-----------------------------------;
-            ASMtoFORTH              ; -- sep            sep =  ','|'('|' '
-            .word   WORDD,FIND      ; -- addr           search word first
-            .word   ZEROEQUAL
-            .word   QFBRAN,ARGWORD  ; -- addr           if Word found
-            .word   QNUMBER         ;
-            .word   QFBRAN,SrchARGPO; -- addr           search ARG Plus Offset if not found
-            .word   SrchNext        ; -- value          goto SrchNext if number found
-ARGWORD     .word   $+2             ; -- CFA
+; common code for maxi three successive SearchARG: SearchARG, SearchARG+Offset, SearchARG-offset
+; leave PFA of VARIABLE, [PFA] of CONSTANT, User_Parameter_Field_Address of MARKER_DOES, CFA for all others.
+; if the ARGument is not found after those three SearchARg, the 'not found' error is issued by the last SrchOfst.
+SearchARGn  PUSH &TOIN              ;                   push TOIN, for next SearchARGn if any
+            mASM2FORTH              ; -- sep            sep =  ','|'('|' '
+            .word WORDD,FIND        ; -- addr           search string name first
+            .word QFBRAN,SRCHARGNUM ; -- addr           if string name not found
+            mNEXTADR                ; -- CFA
             MOV @TOS+,S             ; -- PFA            S=DOxxx
 QDOVAR      SUB #1287h,S            ;                   DOxxx = 1287h = CALL R7 = rDOVAR
-ISDOVAR     JZ SrchNext             ; -- addr           PFA = adr of VARIABLE
+ISDOVAR     JZ ARGFOUND             ; -- addr           PFA = adr of VARIABLE
 QDOCON      ADD #1,S                ;                   DOxxx = 1286h = DOCON
-            JNZ ISOTHER             ;
-ISDOCON     MOV @TOS,TOS            ;
-            JMP SrchNext            ; -- cte
-ISOTHER     SUB #2,TOS              ; -- CFA
-SrchNext    ADD #4,RSP              ;                   remove TOIN,sep
-SearchEnd   POPM #2,S               ;                   POPM T,S
-            MOV @RSP+,PC            ; RET
-
-;-----------------------------------;
-; search for ARGUMENT16+OFFSET      ; up to $FFFF only (FORTH area)
-;-----------------------------------;
-SrchARGPO   .word $+2
-            MOV @RSP+,&TOIN         ;                   TOIN back
-            MOV @RSP+,TOS           ; -- sep
-            ASMtoFORTH              ;
-            .word   LIT,'+'         ; -- sep '+'        search argument
-            .word   WORDD,FIND      ; -- sep CFA
-            .word   ZEROEQUAL       ;
-            .word   QFBRAN,SrchOffst;
-            .word   QNUMBER         ; -- sep number
-            .word   QFBRAN,NotFound ;                   see INTERPRET
-SrchOffst   .word   SWAP            ; -- CFA|number sep
-            .word   WORDD,QNUMBER   ;                   Search 'Offset,'|'Offset('|'Offset'
-            .word   QFBRAN,NotFound ;                   see INTERPRET
-            .word   $+2             ; -- CFA|number offset
-            ADD @PSP+,TOS           ; -- (CFA|number + offset)
-            JMP SearchEnd           ;
+            JNZ QMARKER             ;                   if not DOCON
+ISDOCON     MOV @TOS,TOS            ; --
+            JMP ARGFOUND            ; -- cte
+QMARKER     CMP #MARKER_DOES,0(TOS) ; -- PFA            search if PFA = [MARKER_DOES]
+            JNZ ISOTHER             ; -- PFA
+        .IFDEF VOCABULARY_SET       ; -- PFA
+            ADD #30,TOS             ; -- UPFA+2         skip room for DP, CURRENT, CONTEXT(8), null_word, LASTVOC, RET_ADR 2+(2+2+16+2+2+2) +2 bytes
+        .ELSE                       ;
+            ADD #8,TOS              ; -- UPFA+2         skip room for DP, RET_ADR  2+(2+2) +2 bytes
+        .ENDIF                      ;
+ISOTHER     SUB #2,TOS              ; -- CFA|UPFA       UPFA = MARKER_DOES User_Parameter_Field_Address
+ARGFOUND    ADD #2,RSP              ;                   remove TOIN
+SEARCHRET   MOV @RSP+,PC            ;24                 SR(Z)=0 ARG found
+
+SRCHARGNUM  .word QNUMBER           ;
+            .word QFBRAN,ARGNOTFOUND; -- addr           if ARG not found SR(Z)=1
+            .word ARGFOUND          ; -- value
+ARGNOTFOUND mNEXTADR                ; -- x
+            MOV @RSP+,&TOIN         ;                   restore TOIN
+            MOV @RSP+,PC            ;32                 SR(Z)=1 ARG not found
+
+SearchIndex
+; Search index of "xxxx(REG),"      ; <== ComputeIDXpREG <== PARAM13
+; Search index of ",xxxx(REG)"      ; <== ComputeIDXpREG <== PARAM21
+            SUB #1,&TOIN            ;                   move >IN back one
+            MOV #'(',TOS            ; addr -- "("       as WORD separator to find xxxx of "xxxx(REG),"
+SearchARG                           ; sep -- n|d        or abort" not found"
+; Search ARG of "#xxxx,"            ; <== PARAM101
+; Search ARG of "&xxxx,"            ; <== PARAM111
+; Search ARG of ",&xxxx"            ; <== PARAM111 <== PARAM201
+            MOV TOS,W
+            PUSHM #4,IP             ; -- sep        PUSHM IP, S,T,W as IP_RET,OPCODE,OPCODEADR,sep
+            CALL #SearchARGn        ;                   first search argument without offset
+            JNZ SrchEnd             ; -- ARG            if ARG found goto SrchPopEnd
+SearchArgPo MOV #'+',TOS            ; -- '+'
+            CALL #SearchARGn        ;                   2th search argument with '+' as separator
+            JNZ ArgPlusOfst         ; -- ARG            if ARG of ARG+offset found
+SearchArgMo MOV #'-',TOS            ; -- '-'
+            CALL #SearchARGn        ;                   3th search argument with '-' as separator
+            SUB #1,&TOIN            ;                   to handle offset with its minus sign
+ArgPlusOfst PUSH TOS                ; -- ARG            save ARG on stack
+            MOV 2(RSP),TOS          ; -- sep            reload offset sep
+SrchOfst    mASM2FORTH              ;
+            .word WORDD,QNUMBER     ; -- Ofst|c-addr flag
+            .word QFBRAN,NotFound   ; -- c-addr     no return, see INTERPRET
+            mNEXTADR                ; -- Ofst
+            ADD @RSP+,TOS           ; -- Arg+Ofst
+SrchEnd     POPM #4,IP              ;               POPM W,T,S,IP     common return for SearchARG and SearchRn
+            MOV @RSP+,PC            ;66
 
 ; Arg_Double_to_single conversion needed only for OPCODE type V|VI, 2th pass.
 ARGD2S      BIT #UF9,SR             ; -- Lo Hi
@@ -133,66 +102,49 @@ ARGD2SEND   MOV @RSP+,PC            ;
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : search REG
 ; ----------------------------------------------------------------------
-
 ; 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
+ComputeIDXpREG                      ; addr -- Rn|addr
+            CALL #SearchIndex       ; -- 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 &DP,X
+            MOV TOS,0(X)            ; -- xxxx       compile ARG xxxx
+            ADD #2,&DP
             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 "xxxx(REG),"    separator = ')'
+; search REG of ",xxxx(REG)"    separator = ')'
 ; search REG of "@REG,"         separator = ',' <== PARAM120
 ; search REG of "@REG+,"        separator = '+' <== PARAM121
+SkipRSearchRn
+            ADD #1,&TOIN            ;               skip "R" in input buffer
 ; search REG of "REG,"          separator = ',' <== PARAM13
 ; search REG of ",REG"          separator = BL  <== PARAM21
-
-SearchREG   PUSHM #2,S              ;               PUSHM S,T as OPCODE, OPCODEADR
-            CMP &SOURCE_LEN,&TOIN   ;               bad case of ,xxxx without prefix &
-            JNZ SearchREG1          ;
-            MOV #BAD_CSP,PC         ;               génère une erreur bidon
-SearchREG1  PUSH &TOIN              ; -- sep        save >IN
-            ADD #1,&TOIN            ;               skip "R"
-            ASMtoFORTH              ;               search xx of Rxx
+SearchRn    MOV &TOIN,W             ;
+            PUSHM #4,IP             ;               PUSHM IP, S,T,W as IP_RET,OPCODE,OPCODEADR,TOIN
+            mASM2FORTH              ;               search xx of Rxx
             .word WORDD,QNUMBER     ;
-            .word QFBRAN,NOTaREG    ; -- xxxx       if Not a Number
-            .word   $+2             ; -- Rn         number is found
-            ADD #2,RSP              ;               remove >IN
-            CMP #16,TOS             ; -- Rn       
+            .word QFBRAN,REGNOTFOUND; -- xxxx       if Not a Number, SR(Z)=1
+            mNEXTADR                ; -- Rn         number is found
+            CMP #16,TOS             ; -- Rn
+            JNC SrchEnd             ; -- Rn         Rn is valid, remove TOIN then SrchEnd
             JC  BOUNDERROR          ;               abort if Rn out of bounds
-            JNC SearchEnd           ; -- Rn         Z=0 ==> found
 
-NOTaREG     .word   $+2             ; -- addr       Z=1
-            MOV @RSP+,&TOIN         ; -- addr       restore >IN
-            JMP SearchEnd           ; -- addr       Z=1 ==> not a register 
+REGNOTFOUND mNEXTADR                ; -- addr       SR(Z)=1, case of @REG not found,
+            MOV @RSP,&TOIN          ; -- addr       restore TOIN (to point after prefix 'R')
+            JMP SrchEnd             ; -- addr       SR(Z)=1 ==> not a register
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : INTERPRET FIRST OPERAND
 ; ----------------------------------------------------------------------
-
-; 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
-            .word   $+2             ; -- 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
+PARAM1      JNZ PARAM10             ; -- sep        if prefix <> 'R'
+            CALL #SearchRn          ;               case of "REG,"
+            JMP PARAM123            ; -- 000R       REG of "REG," found, S=OPCODE=0
+; ----------------------------------;
+PARAM10     CMP.B #'#',W            ; -- sep        W=first char
+            JNE PARAM11
+PARAM101    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 ?
@@ -206,102 +158,99 @@ PARAM10     ADD #1,&TOIN            ; -- sep        skip # prefix
             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 
+            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
+            MOV #0330h,S            ;               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
+StoreArg    MOV &DP,X              ;
+            ADD #2,&DP             ;               cell allot for arg
             MOV TOS,0(X)            ;               compile arg
+; case of "&xxxx,"                  ;               <== PARAM111
+; case of ",&xxxx"                  ;               <== PARAM110 <== PARAM201
 ; 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            ;
-            MOV @IP+,PC                   ; --            S=OPCODE,T=OPCODEADR
+            MOV @IP+,PC             ; --            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,"
-; case of ",&xxxx"                  ;               <== PARAM20
-PARAM111    ADD     #1,&TOIN        ; -- sep        skip "&" prefix
-            CALL    #SearchARG      ; -- arg        abort if not found
-            CALL    #ARGD2S         ;               skip argD_hi of opcode type V
+; case of ",&xxxx"                  ;               <== PARAM201
+PARAM111    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 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,
+            CALL    #SkipRSearchRn  ;               Z = not found
+            JNZ     PARAM123        ; -- Rn         REG of "@REG," found
+; case of "@REG+,"                  ; -- addr       search REG of "@REG+"
+PARAM121    BIS     #0010h,S        ;               change OPCODE from @REG to @REG+ type
+            MOV     #'+',TOS        ; -- sep
+            CALL    #SearchRn       ; -- Rn
+; case of "xxxx(REG),"              ;               <== PARAM13
+PARAM122                            ;               case of double separator:   +, and ),
+            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
+; case of "REG,"                    ; -- 000R       <== PARAM1
 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)
+; case of ",REG"                    ; -- 000R       <== PARAM2  (dst REG typeI)
+; case of ",xxxx(REG)"              ; -- 000R       <== PARAM21 (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        ; 
+; case of "xxxx(REG),"              ; -- sep
+PARAM13     BIS     #0010h,S        ;               AS=0b01 for indexing address
+            CALL    #ComputeIDXpREG ;               compile index xxxx and search REG of "(REG)"
+            JMP     PARAM122        ; -- Rn
+; ----------------------------------;
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER : INTERPRET 2th OPERAND
 ; ----------------------------------------------------------------------
-
-PARAM3                              ; for OPCODES TYPE III
-            MOV     #0,S            ;                       init OPCODE=0
-            MOV     &DDP,T          ;                       T=OPCODEADR
-            ADD     #2,&DDP         ;                       make room for opcode
+PARAM2      JNZ PARAM20             ; -- sep        if prefix <> 'R'
+            CALL #SearchRn          ; -- sep        case of ",REG"
+            JMP     PARAM124        ; -- 000R       REG of ",REG" found
 ; ----------------------------------;
-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.
-            .word   $+2             ; -- c-addr     search for '&' of "&xxxx
-            CMP.B   #'&',0(TOS)     ;
-            MOV     #20h,TOS        ; -- ' '        as WORD separator to find xxxx of ",&xxxx"
+PARAM20     CMP.B   #'&',W          ;
             JNE     PARAM21         ;               '&' not found
 ; case of ",&xxxx"                  ;
-PARAM20     ADD     #0082h,S        ;               change OPCODE : AD=1, dst = R2
+PARAM201    BIS     #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
+; case of ",xxxx(REG)               ; -- sep
+PARAM21     BIS     #0080h,S        ;               set AD=1
+            CALL    #ComputeIDXpREG ;               compile index xxxx and search REG of ",xxxx(REG)"
+            JMP     PARAM124        ; -- 000R       REG of ",xxxx(REG) found
+
+; ----------------------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx ASSEMBLER: reset OPCODE in S reg, set OPCODE addr in T reg,
+; move Prefix in W reg, skip prefix in input buffer. Flag SR(Z)=1 if prefix = 'R'.
+; ----------------------------------------------------------------------------------------
+InitAndSkipPrfx
+            MOV #0,S                ;                   reset OPCODE
+            MOV &DP,T              ;                   HERE --> OPCODEADR
+            ADD #2,&DP             ;                   cell allot for opcode
+; SkipPrfx                          ; --                skip all occurring char 'BL' plus one prefix
+SkipPrfx    MOV #20h,W              ; --                W=BL
+            MOV &TOIN,X             ; --
+            ADD &SOURCE_ORG,X       ;
+SKIPLOOP    CMP.B @X+,W             ; --                W=BL  does character match?
+            JZ SKIPLOOP             ; --
+            MOV.B -1(X),W           ;                   W=prefix
+            SUB &SOURCE_ORG,X       ; --
+            MOV X,&TOIN             ; --                >IN points after prefix
+            CMP.B #'R',W            ;                   preset SR(Z)=1 if prefix = 'R'
+            MOV @IP+,PC             ; 4
 
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER: OPCODE TYPE 0 : zero operand     f:-)
@@ -313,33 +262,36 @@ PARAM210    ADD     #0080h,S        ;               set AD=1
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER: OPCODES TYPE I : double operand
 ; ----------------------------------------------------------------------
-;                                               OPCODE(FEDC)
-; OPCODE(code) for TYPE I                          = 0bxxxx             opcode I
-;                                                   OPCODE(BA98)
-;                                                      = 0bxxxx         src register
-;                                                       OPCODE(7)       AD (dst addr type)
-;                                                          = 0b0        register
-;                                                          = 0b1        x(Rn),&adr
-;                                                        OPCODE(6)      size
-; OPCODE(B)  for TYPE I or TYPE II                          = 0b0       word
-;                                                           = 0b1       byte
-;                                                         OPCODE(54)    AS (src addr type)
-; OPCODE(AS) for TYPE I or OPCODE(AD) for TYPE II            = 0b00     register
-;                                                            = 0b01     x(Rn),&adr
-;                                                            = 0b10     @Rn
-;                                                            = 0b11     @Rn+
-;                                                           OPCODE(3210)
-; OPCODE(dst) for TYPE I or TYPE II                            = 0bxxxx dst register
+;               OPCODE(FEDC)
+; OPCODE(code)     = 0bxxxx             opcode
+;                   OPCODE(BA98)
+;                      = 0bxxxx         src_register,
+;                       OPCODE(7)       AD (dst addr type)
+;                          = 0b0        ,register
+;                          = 0b1        ,x(Rn),&adr
+;                        OPCODE(6)      size
+; OPCODE(B)                 = 0b0       word
+;                           = 0b1       byte
+;                         OPCODE(54)    AS (src addr type)
+; OPCODE(AS)                 = 0b00     register,
+;                            = 0b01     x(Rn),&adr,
+;                            = 0b10     @Rn,
+;                            = 0b11     @Rn+,
+;                           OPCODE(3210)
+; OPCODE(dst)                  = 0bxxxx ,dst_register
 ; ----------------------------------------------------------------------
 
 ; TYPE1DOES     -- BODYDOES      search and compute PARAM1 & PARAM2 as src and dst operands then compile instruction
-TYPE1DOES   .word   lit,',',PARAM1  ; -- BODYDOES
-            .word   PARAM2          ; -- BODYDOES           char separator (BL) included in PARAM2
-            .word   $+2             ;
-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
+TYPE1DOES   .word   lit,','
+            .word   InitAndSkipPrfx ;                       init S=0, T=DP, DP=DP+2 then skip prefix, SR(Z)=1 if prefix = 'R'
+            .word   PARAM1          ; -- BODYDOES
+            .word   BL,SkipPrfx     ;                       SR(Z)=1 if prefix = 'R'
+            .word   PARAM2          ; -- BODYDOES
+            mNEXTADR                ;
+MAKEOPCODE  MOV     @RSP+,IP
+            BIS     @TOS,S          ; -- opcode             generic opcode + customized S
+            MOV     S,0(T)          ; -- opcode             store completed opcode
+            JMP     PARAMENDOF      ; --                    then EXIT
 
             asmword "MOV"
             CALL rDODOES
@@ -417,22 +369,25 @@ MAKEOPCODE  MOV     T,X             ; -- opcode             X= OPCODEADR to comp
 ; ----------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES TYPE II : single operand
 ; ----------------------------------------------------------------------
-;                                               OPCODE(FEDCBA987)       opcodeII
-; OPCODE(code) for TYPE II                         = 0bxxxxxxxxx
-;                                                        OPCODE(6)      size
-; OPCODE(B)  for TYPE I or TYPE II                          = 0b0       word
-;                                                           = 0b1       byte
-;                                                         OPCODE(54)    (dst addr type)
-; OPCODE(AS) for TYPE I or OPCODE(AD) for TYPE II            = 0b00     register
-;                                                            = 0b01     x(Rn),&adr
-;                                                            = 0b10     @Rn
-;                                                            = 0b11     @Rn+
-;                                                           OPCODE(3210)
-; OPCODE(dst) for TYPE I or TYPE II                            = 0bxxxx dst register
+;               OPCODE(FEDCBA987)
+; OPCODE(code)     = 0bxxxxxxxxx
+;                        OPCODE(6)      size
+; OPCODE(B)                 = 0b0       word
+;                           = 0b1       byte
+;                         OPCODE(54)    (dst addr type)
+; OPCODE(AS)                 = 0b00     register
+;                            = 0b01     x(Rn),&adr
+;                            = 0b10     @Rn
+;                            = 0b11     @Rn+
+;                           OPCODE(3210)
+; OPCODE(dst)                  = 0bxxxx dst register
 ; ----------------------------------------------------------------------
 
-TYPE2DOES   .word   FBLANK,PARAM1   ; -- BODYDOES
-            .word   $+2             ;
+TYPE2DOES                           ; -- BODYDOES
+            .word   BL              ; -- BODYDOES ' '
+            .word   InitAndSkipPrfx ;
+            .word   PARAM1          ; -- BODYDOES
+            mNEXTADR                ;
             MOV     S,W             ;
             AND     #0070h,S        ;                   keep B/W & AS infos in OPCODE
             SWPB    W               ;                   (REG org --> REG dst)
@@ -471,7 +426,7 @@ BIS_ASMTYPE BIS     W,S             ; -- BODYDOES       add it in OPCODE
 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
+            mASM2FORTH              ; -- n      n = value out of bounds
             .word   DOT,XSQUOTE
             .byte 13,"out of bounds"
             .word   ABORT_TERM
@@ -501,7 +456,7 @@ BOUNDERROR                          ; <== REG number error
             CALL rDOCON
             .word   3000h
 
-            asmword "0<"            ; jump if 0<        ; use only with ?JMP ?GOTO !
+            asmword "0<"            ; jump if 0<        ; use only with ?GOTO !
             CALL rDOCON
             .word   3000h
 
@@ -523,15 +478,15 @@ BOUNDERROR                          ; <== REG number error
 
 ;ASM IF      OPCODE -- @OPCODE1
             asmword "IF"
-ASM_IF      MOV     &DDP,W
+ASM_IF      MOV     &DP,W
             MOV     TOS,0(W)        ; compile incomplete opcode
-            ADD     #2,&DDP
+            ADD     #2,&DP
             MOV     W,TOS
-            MOV @IP+,PC
+            MOV     @IP+,PC
 
 ;ASM THEN     @OPCODE --        resolve forward branch
             asmword "THEN"
-ASM_THEN    MOV     &DDP,W          ; -- @OPCODE    W=dst
+ASM_THEN    MOV     &DP,W          ; -- @OPCODE    W=dst
             MOV     TOS,Y           ;               Y=@OPCODE
 ASM_THEN1   MOV     @PSP+,TOS       ; --
             MOV     Y,X             ;
@@ -541,27 +496,27 @@ ASM_THEN1   MOV     @PSP+,TOS       ; --
             CMP     #512,W
             JC      BOUNDERRORW     ; (JHS) unsigned branch if u> 511
             BIS     W,0(Y)          ; --       [@OPCODE]=OPCODE completed
-            MOV @IP+,PC
+            MOV     @IP+,PC
 
 ;C ELSE     @OPCODE1 -- @OPCODE2    branch for IF..ELSE
             asmword "ELSE"
-ASM_ELSE    MOV     &DDP,W          ; --        W=HERE
+ASM_ELSE    MOV     &DP,W          ; --        W=HERE
             MOV     #3C00h,0(W)     ;           compile unconditionnal branch
-            ADD     #2,&DDP         ; --        DP+2
+            ADD     #2,&DP         ; --        DP+2
             SUB     #2,PSP
             MOV     W,0(PSP)        ; -- @OPCODE2 @OPCODE1
             JMP     ASM_THEN        ; -- @OPCODE2
 
 ; BEGIN     -- BEGINadr             initialize backward branch
             asmword "BEGIN"
-            MOV #HERE,PC
+            MOV #HEREXEC,PC
 
-;C UNTIL    @BEGIN OPCODE --   resolve conditional backward branch
+; UNTIL     @BEGIN OPCODE --   resolve conditional backward branch
             asmword "UNTIL"
 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
+            MOV     &DP,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)
@@ -570,22 +525,22 @@ ASM_UNTIL2  MOV     @PSP+,TOS       ;  --
             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
-            MOV @IP+,PC
+            ADD     #2,&DP
+            MOV     @IP+,PC
 
-;X AGAIN    @BEGIN --      uncond'l backward branch
+; AGAIN     @BEGIN --      uncond'l backward branch
 ;   unconditional backward branch
             asmword "AGAIN"
 ASM_AGAIN   MOV TOS,W               ;               W=@BEGIN
             MOV #3C00h,Y            ;               Y = asmcode JMP
             JMP ASM_UNTIL2          ;
 
-;C WHILE    @BEGIN OPCODE -- @WHILE @BEGIN
+; WHILE     @BEGIN OPCODE -- @WHILE @BEGIN
             asmword "WHILE"
 ASM_WHILE   mDOCOL                  ; -- @BEGIN OPCODE
             .word   ASM_IF,SWAP,EXIT
 
-;C REPEAT   @WHILE @BEGIN --     resolve WHILE loop
+; REPEAT    @WHILE @BEGIN --     resolve WHILE loop
             asmword "REPEAT"
 ASM_REPEAT  mDOCOL                  ; -- @WHILE @BEGIN
             .word   ASM_AGAIN,ASM_THEN,EXIT
@@ -594,18 +549,35 @@ ASM_REPEAT  mDOCOL                  ; -- @WHILE @BEGIN
 ; 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"
-; labels BWx and FWx must be set at the beginning of line (>IN < 8).
+; 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   .word   $+2
+;BACKWDOES   FORTHtoASM
+;            MOV @RSP+,IP
+;            MOV @TOS,TOS
+;            MOV TOS,Y               ; Y = ASMBWx
+;            MOV @PSP+,TOS           ;
+;            MOV @Y,W                ;               W = [BWx]
+;            CMP #8,&TOIN            ;               are we colon 8 or more ?
+;BACKWUSE    JHS ASM_UNTIL1          ;               yes, use this label
+;BACKWSET    MOV &DP,0(Y)           ;               no, set LABEL = DP
+;            mNEXT
+
+;; backward label 1
+;            asmword "BW1"
+;            mdodoes
+;            .word BACKWDOES
+;            .word ASMBW1            ; in RAM
+
+BACKWDOES   mNEXTADR
             MOV @RSP+,IP            ;
-            MOV TOS,Y               ; -- PFA        Y = ASMBWx addr
+            MOV TOS,Y               ; -- BODY       Y = ASMBWx addr
             MOV @PSP+,TOS           ; --
             MOV @Y,W                ;               W = LABEL
             CMP #8,&TOIN            ;               are we colon 8 or more ?
-BACKWUSE    JC  ASM_UNTIL1          ;               yes, use this label  
-BACKWSET    MOV &DDP,0(Y)           ;               no, set LABEL = DP
+BACKWUSE    JC ASM_UNTIL1           ;               yes, use this label
+BACKWSET    MOV &DP,0(Y)           ;               no, set LABEL = DP
             MOV @IP+,PC
 
 ; backward label 1
@@ -624,16 +596,37 @@ BACKWSET    MOV &DDP,0(Y)           ;               no, set LABEL = DP
             .word BACKWDOES
             .word 0
 
-FORWDOES    .word   $+2
+;FORWDOES    mNEXTADR
+;            MOV @RSP+,IP
+;            MOV &DP,W              ;
+;            MOV @TOS,TOS
+;            MOV @TOS,Y              ; -- BODY       Y=@OPCODE of FWx
+;            MOV #0,0(TOS)           ;               clear @OPCODE of FWx to erratic 2th resolution
+;            CMP #8,&TOIN            ;               are we colon 8 or more ?
+;FORWUSE     JNC ASM_THEN1           ;               no: resolve FWx with W=DP, Y=@OPCODE
+;FORWSET     MOV @PSP+,0(W)          ;               yes compile incomplete opcode
+;            ADD #2,&DP             ;                   increment DP
+;            MOV W,0(TOS)            ;                   store @OPCODE into ASMFWx
+;            MOV @PSP+,TOS           ;   --
+;            MOV @IP+,PC
+;
+;; forward label 1
+;            asmword "FW1"
+;            CALL rDODOES            ; CFA
+;            .word FORWDOES          ;
+;            .word ASMFW1            ; in RAM
+
+FORWDOES    mNEXTADR
             MOV @RSP+,IP
-            MOV &DDP,W              ;
-            MOV @TOS,Y              ; -- PFA        Y=[ASMFWx]
+            MOV &DP,W              ;
+            MOV @TOS,Y              ; -- BODY       Y=@OPCODE of FWx
+            MOV #0,0(TOS)           ;               clear @OPCODE of FWx to avoid erratic 2th resolution
             CMP #8,&TOIN            ;               are we colon 8 or more ?
-FORWUSE     JNC 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           ;   --
+FORWUSE     JNC ASM_THEN1           ;               no: resolve FWx with W=DP, Y=@OPCODE
+FORWSET     MOV @PSP+,0(W)          ;               yes compile opcode (without displacement)
+            ADD #2,&DP             ;                   increment DP
+            MOV W,0(TOS)            ;                   store @OPCODE into BODY of FWx
+            MOV @PSP+,TOS           ; --
             MOV @IP+,PC
 
 ; forward label 1
@@ -652,6 +645,15 @@ FORWSET     MOV @PSP+,0(W)          ;               yes compile incomplete opcod
             .word FORWDOES
             .word 0
 
+;ASM    GOTO <label>                   --       unconditionnal branch to label
+            asmword "GOTO"
+            SUB #2,PSP
+            MOV TOS,0(PSP)
+            MOV #3C00h,TOS          ;  -- JMP_OPCODE
+GOTONEXT    mDOCOL
+            .word   TICK            ;  -- OPCODE CFA<label>
+            .word   EXECUTE,EXIT
+
 ;ASM    <cond> ?GOTO <label>    OPCODE --       conditionnal branch to label
             asmword "?GOTO"
 INVJMP      CMP #3000h,TOS          ; invert code jump process
@@ -660,22 +662,13 @@ INVJMP      CMP #3000h,TOS          ; invert code jump process
             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
-
-;ASM    GOTO <label>                   --       unconditionnal branch to label
-            asmword "GOTO"
-            SUB #2,PSP
-            MOV TOS,0(PSP)
-            MOV #3C00h,TOS          ; asmcode JMP
             JMP GOTONEXT
 
 ; --------------------------------------------------------------------------------
 ; 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, 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
@@ -688,17 +681,17 @@ GOTONEXT    mDOCOL
 
 ; 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   .word   FBLANK,SKIP     ;                       skip spaces if any
-            .word   $+2             ; -- BODYDOES c-addr
-            ADD     #1,&TOIN        ;                       skip "#"
-            MOV     #',',TOS        ; -- BODYDOES ","
-            ASMtoFORTH
-            .word   WORDD,QNUMBER
-            .word   QFBRAN,NotFound ;                       ABORT
-            .word   PARAM3          ; -- BODYDOES 0x000N    S=OPCODE = 0x000R
-            .word   $+2
+; RxxM syntax: RxxM #n,REG  with 0 < n < 5
+
+TYPE3DOES                           ; -- BODYDOES
+            .word   SkipPrfx        ;
+            .word   LIT,','         ; -- BODYDOES ','
+            .word   WORDD,QNUMBER   ;
+            .word   QFBRAN,NotFound ;                       see INTERPRET
+            .word   BL              ; -- BODYDOES n ' '
+            .word   InitAndSkipPrfx ; -- BODYDOES n ' '
+            .word   PARAM2          ; -- BODYDOES n         S=OPCODE = 0x000R
+            mNEXTADR
             MOV     TOS,W           ; -- BODYDOES n         W = n
             MOV     @PSP+,TOS       ; -- BODYDOES
             SUB     #1,W            ;                       W = n floored to 0
@@ -707,17 +700,17 @@ TYPE3DOES   .word   FBLANK,SKIP     ;                       skip spaces if any
             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                  
+            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
             JC      BOUNDERRWM1     ;                       JC=JHS    (U>=)
-            RLAM    #4,W            ;                       W = n << 4      
-            JMP     BIS_ASMTYPE     ; BODYDOES --            
+            RLAM    #4,W            ;                       W = n << 4
+            JMP     BIS_ASMTYPE     ; BODYDOES --
 RxxMINSTRU  CMP     #4,W            ;
             JC      BOUNDERRWM1     ;                       JC=JHS    (U>=)
-            SWPB    W               ; -- BODYDOES           W = n << 8
+            SWPB    W               ;                       W = n << 8
             RLAM    #2,W            ;                       W = N << 10
             JMP     BIS_ASMTYPE     ; BODYDOES --
 
@@ -739,7 +732,6 @@ RxxMINSTRU  CMP     #4,W            ;
             asmword "POPM"
             CALL rDODOES
             .word   TYPE3DOES,1700h
-
             asmword "RRCM.A"
             CALL rDODOES
             .word   TYPE3DOES,0040h
@@ -763,163 +755,132 @@ RxxMINSTRU  CMP     #4,W            ;
 ; 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)
+; indexed instructions must be written as $xxxx(REG)
 ; --------------------------------------------------------------------------------
-
             asmword "CALLA"
             mDOCOL
-            .word FBLANK,SKIP       ; -- addr
-            .word   $+2
-            MOV &DDP,T              ;           T = DDP
-            ADD #2,&DDP             ;           make room for opcode
-            MOV.B @TOS,TOS          ; -- char   First char of opcode
+            .word   BL              ; -- sep
+            .word   InitAndSkipPrfx ; -- sep    SR(Z)=1 if prefix = 'R'
+            mNEXTADR
+            MOV @RSP+,IP
 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
+            JNZ CALLA1              ; -- sep    if prefix <> 'R'
+CALLA01     CALL #SearchRn          ; -- Rn
+CALLA02     RLAM #4,S               ;           (opcode>>4)<<4 = opcode
+            BIS TOS,S               ;           update opcode with Rn|$x
             MOV S,0(T)              ;           store opcode
-            MOV @PSP+,TOS
-            MOV @RSP+,IP 
-            MOV @IP+,PC
+            MOV @PSP+,TOS           ; --
+            MOV @IP+,PC             ;
 ;-----------------------------------;
-CALLA1      ADD #2,S                ;           136h<<4 = opcode for CALLA @REG
-            CMP.B #'@',TOS          ; -- char   Search @REG
+CALLA1      ADD #2,S                ; -- sep    136h<<4 = opcode for CALLA @REG
+            CMP.B #'@',W            ;           Search @REG
             JNZ CALLA2              ;
-            ADD #1,&TOIN            ;           skip '@'
-            MOV.B #' ',TOS          ; -- ' '
-            CALL #SearchREG         ;
-            JNZ  CALLA03            ;           if REG found, update opcode
+CALLA11     CALL #SkipRSearchRn     ;
+            JNZ  CALLA02            ;           if REG found, update opcode
 ;-----------------------------------;
             ADD #1,S                ;           137h<<4 = opcode for CALLA @REG+
-            MOV #'+',TOS            ; -- '+'
-            JMP CALLA02             ;
+            MOV #'+',TOS            ; -- sep
+            JMP CALLA01             ;
 ;-----------------------------------;
-CALLA2      ADD #2,&DDP             ;           make room for xxxx of #$x.xxxx|&$x.xxxx|$0.xxxx(REG)
-            CMP.B #'#',TOS          ;
+CALLA2      ADD #2,&DP             ; -- sep    make room for xxxx of #$x.xxxx|&$x.xxxx|$xxxx(REG)
+            CMP.B #'#',W            ;
             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
+CALLA21     CALL #SearchARG         ; -- Lo Hi
+            MOV @PSP+,2(T)          ; -- Hi     store $xxxx of #$x.xxxx|&$x.xxxx
+            JMP CALLA02             ;           update opcode with $x. and store opcode
 ;-----------------------------------;
-CALLA3      CMP.B #'&',TOS   
+CALLA3      CMP.B #'&',W            ; -- sep
             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
-    
+CALLA4      SUB #1,S                ;           135h<<4 = opcode for CALLA $xxxx(REG)
+CALLA41     CALL #SearchIndex       ; -- n
+            MOV TOS,2(T)            ; -- n      store $xxxx of $xxxx(REG)
+            MOV #')',TOS            ; -- sep
+            JMP CALLA11             ;           search Rn and update opcode
 
 ; ===============================================================
 ; 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) 
+; 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
-            .word   $+2             ;
-            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
+ACMS1       MOV @PSP+,S             ; -- sep        S=BODYDOES
+            MOV @S,S                ;               S=opcode
 ;-----------------------------------;
-ACMS10      CMP.B #'R',X            ; -- ','    
-            JNZ ACMS11              ;
-ACMS101     CALL #SearchREG         ; -- Rn         src
+ACMS10      JNZ ACMS11              ; -- sep        if prefix <> 'R'
+ACMS101     CALL #SearchRn          ; -- Rn
 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
-            MOV @RSP+,IP 
             MOV @IP+,PC             ;
 ;-----------------------------------;
-ACMS11      CMP.B #'#',X            ; -- ','        X=addr
+ACMS11      CMP.B #'#',W            ; -- sep        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)
+ACMS111     ADD #2,&DP             ;               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)
+            MOV @PSP+,2(T)          ; -- Hi         store $xxxx of #$x.xxxx|&$x.xxxx|$xxxx(REG)
             AND #0Fh,TOS            ; -- Hi         sel Hi src
             JMP ACMS102             ;
 ;-----------------------------------;
-MOVA12      CMP.B #'&',X            ; -- ','        case of MOVA &$x.xxxx
+MOVA12      CMP.B #'&',W            ; -- sep         case of MOVA &$x.xxxx
             JNZ MOVA13              ;
-            XOR #00E0h,S            ;               set MOVA &$x.xxxx, opcode                 
+            XOR #00E0h,S            ;               set MOVA &$x.xxxx, opcode
             JMP ACMS111             ;
 ;-----------------------------------;
 MOVA13      BIC #00F0h,S            ;               set MOVA @REG, opcode
-            CMP.B #'@',X            ; -- ','
+            CMP.B #'@',W            ; -- sep
             JNZ MOVA14              ;
-            ADD #1,&TOIN            ;               skip '@'
-            CALL #SearchREG         ; -- Rn 
+            CALL #SkipRSearchRn     ; -- 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
+MOVA131     CALL #SearchRn          ; -- Rn         case of MOVA @REG+,|MOVA $x.xxxx(REG),
+MOVA132     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
+MOVA14      BIS #0030h,S            ; -- sep        set xxxx(REG), opcode
+            ADD #2,&DP             ;               make room for first $xxxx of $xxxx(REG),
+            CALL #SearchIndex       ; -- n
+            MOV TOS,2(T)            ; -- n          store $xxxx as 2th word
             MOV #')',TOS            ; -- ')'
-            JMP MOVA131             ;
+            CALL #SkipRSearchRn     ; -- Rn
+            JMP MOVA132             ;
 
 ; 2th argument process ACMS2
-;-----------------------------------;
-ACMS2       mDOCOL                  ; -- OPCODE_addr 
-            .word FBLANK,SKIP       ; -- OPCODE_addr addr
-            .word   $+2             ;
-            MOV @PSP+,T             ; -- addr       T=OPCODE_addr
+;-----------------------------------; -- OPCODE_addr sep
+ACMS2       MOV @PSP+,T             ; -- sep        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
+ACMS21      JNZ MOVA22              ; -- sep        if prefix <> 'R'
+ACMS211     CALL #SearchRn          ; -- Rn
             JMP ACMS103             ;
 ;-----------------------------------;
-MOVA22      BIC #0F0h,S             ;
-            ADD #2,&DDP             ; -- ' '        make room for $xxxx
-            CMP.B #'&',X            ;
+MOVA22      BIC #0F0h,S             ; -- sep
+            ADD #2,&DP             ;               make room for $xxxx
+            CMP.B #'&',W            ;
             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
+            CALL #SearchIndex       ; -- n
+            MOV TOS,2(T)            ; -- n          write $xxxx of ,$xxxx(REG) as 2th word
             MOV #')',TOS            ; -- ")"        as WORD separator to find REG of "xxxx(REG),"
-            JMP ACMS211
+            CALL #SkipRSearchRn     ; -- Rn
+            JMP ACMS103
 
 ; --------------------------------------------------------------------------------
 ; DTCforthMSP430FR5xxx ASSEMBLER, OPCODES IV 2 operands: Adda|Cmpa|Mova|Suba (without extended word)
@@ -927,11 +888,12 @@ MOVA23      BIS #070h,S             ;               set ,xxxx(REG) opcode
 ; 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   InitAndSkipPRFX ;                       SR(Z)=1 if prefix = 'R'
             .word   ACMS1           ; -- OPCODE_addr
+            .word   BL,SkipPRFX     ;                       SR(Z)=1 if prefix = 'R'
             .word   ACMS2           ; -- OPCODE_addr
-            .word   DROP,EXIT
+            .word   DROPEXIT
 
             asmword "MOVA"
             CALL rDODOES
@@ -949,54 +911,43 @@ TYPE4DOES   .word   lit,','         ; -- BODYDOES ","        char separator for
 
 ; 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
-            .word   $+2             ;
-            MOV.B @TOS,X            ; -- sep addr       X= first char of opcode string
-            MOV @PSP+,TOS           ; -- sep
-            MOV #1800h,S            ;                   init S=Extended word
+PRMX1       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     MOV @RSP+,IP 
-            MOV @IP+,PC             ; -- Ext_Word
+PRMX10      JNZ PRMX11              ; -- sep        if prefix <> 'R'
+PRMX101     CALL #SearchRn          ; -- Rn             Rn of REG; call SearchRn  only to update >IN
+PRMX102     MOV S,TOS               ; -- EW             init|update Extended word
+PRMX103     MOV @IP+,PC             ; -- Ext_Word
 ;-----------------------------------;
 PRMX11      MOV #0,&RPT_WORD        ;                   clear RPT
-            CMP.B #'#',X            ; -- sep
+            CMP.B #'#',W            ; -- sep
             JNZ PRMX12
-PRMX111     ADD #1,&TOIN            ; -- sep            skip '#'
-PRMX112     CALL #SearchARG         ; -- Lo Hi          search $x.xxxx of #x.xxxx,
+PRMX111     CALL #SearchARG         ; -- Lo Hi          search $x.xxxx of #x.xxxx,
             ADD #2,PSP              ; -- Hi             pop unused low word
-PRMX113     AND #0Fh,TOS            ;                   
+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
+PRMX12      CMP.B #'&',W            ; -- sep
             JZ PRMX111
 ;-----------------------------------;
-PRMX13      CMP.B #'@',X            ; -- sep
+PRMX13      CMP.B #'@',W            ; -- sep
             JNZ PRMX14
-PRMX131     ADD #1,&TOIN            ; -- sep            skip '@'
-PRMX132     CALL #SearchREG         ; -- Rn             Rn of @REG,
+PRMX131     CALL #SkipRSearchRn     ; -- Rn             Rn of @REG,
             JNZ PRMX102             ;                   if Rn found
 ;-----------------------------------;
             MOV #'+',TOS            ; -- '+'
-PRMX133     ADD #1,&TOIN            ;                   skip '@'
-            CALL #SearchREG         ; -- Rn             Rn of @REG+,
+PRMX133     CALL #SearchRn          ; -- 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                  
+PRMX14      CALL #SearchIndex       ; -- n
             MOV TOS,0(PSP)          ; -- Hi Hi
 PRMX141     MOV #')',TOS            ; -- Hi ')'
-            CALL #SearchREG         ; -- Hi Rn
+            CALL #SkipRSearchRn     ; -- Hi Rn
             MOV @PSP+,TOS           ; -- Hi
             AND #0Fh,TOS
             BIS TOS,S
@@ -1004,53 +955,30 @@ PRMX141     MOV #')',TOS            ; -- Hi ')'
 ;-----------------------------------;
 
 ; PRMX2 is used for OPCODES type V (double operand) extended instructions
-        
+
 ;-----------------------------------;
-PRMX2       mDOCOL                  ; -- Extended_Word 
-            .word   FBLANK,SKIP     ; -- Extended_Word addr
-            .word   $+2             ;
-            MOV @PSP+,S             ; -- addr     S=Extended_Word
-            MOV.B @TOS,X            ; -- addr     X=first char of code instruction
-            MOV #' ',TOS            ; -- ' '
+PRMX2       MOV @PSP+,S             ; -- addr     S=Extended_Word
 ;-----------------------------------;
-PRMX20      CMP.B #'R',X            ; -- ' '
-            JZ  PRMX102             ;               extended word not to be updated  
+PRMX20      JZ  PRMX102             ; -- sep        if prefix <> 'R'
 ;-----------------------------------;
 PRMX21      MOV #0,&RPT_WORD        ;
-            CMP.B #'&',X            ;
+            CMP.B #'&',W            ;
             JNZ PRMX22              ;
-PRMX211     ADD #1,&TOIN            ; -- ' '      skip '&'
-PRMX212     CALL #SearchARG         ; -- Lo Hi
+PRMX211     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)
+PRMX22      CALL #SearchIndex       ; -- n
             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
-;            MOV @IP+,PC             ;
-;;-----------------------------------;
 
 ;-----------------------------------;
 ; UPDATE_eXtendedWord
 ;-----------------------------------;
 UPDATE_XW                           ;   BODYDOES >IN Extended_Word -- BODYDOES+2
             MOV @PSP+,&TOIN         ; -- BODYDOES EW    restore >IN at the start of instruction string
-            MOV &DDP,T              ;
-            ADD #2,&DDP             ;                   make room for extended word
+            MOV &DP,T              ;
+            ADD #2,&DP             ;                   make room for extended word
             MOV TOS,S               ;                   S = Extended_Word
             MOV @PSP+,TOS           ;
             BIS &RPT_WORD,S         ;                   update Extended_word with RPT_WORD
@@ -1074,14 +1002,10 @@ UPDATE_XW                           ;   BODYDOES >IN Extended_Word -- BODYDOES+2
 ; 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,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]
             .word   LIT,TOIN,FETCH      ; -- BODYDOES >IN
-            .word   lit,','             ; -- BODYDOES >IN ','            char separator for PRMX1
-            .word   PRMX1,PRMX2         ; -- BODYDOES >IN Extended_Word
+            .word   lit,','
+            .word   SkipPrfx,PRMX1      ; -- BODYDOES >IN ','            char separator for PRMX1
+            .word   BL,SkipPrfx,PRMX2   ; -- BODYDOES >IN 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]
 
@@ -1097,103 +1021,103 @@ TYPE5DOES                               ; -- BODYDOES
             CALL rDODOES
             .word   TYPE5DOES,40h,4040h
             asmword "ADDX"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE5DOES,40h,5000h
             asmword "ADDX.A"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE5DOES,0,5040h
             asmword "ADDX.B"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE5DOES,40h,5040h
-            asmword "ADDCX"  
-            CALL rDODOES          
+            asmword "ADDCX"
+            CALL rDODOES
             .word   TYPE5DOES,40h,6000h
             asmword "ADDCX.A"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE5DOES,0,6040h
             asmword "ADDCX.B"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE5DOES,40h,6040h
-            asmword "SUBCX"  
-            CALL rDODOES          
+            asmword "SUBCX"
+            CALL rDODOES
             .word   TYPE5DOES,40h,7000h
             asmword "SUBCX.A"
             CALL rDODOES
             .word   TYPE5DOES,0,7040h
             asmword "SUBCX.B"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE5DOES,40h,7040h
-            asmword "SUBX"   
-            CALL rDODOES          
+            asmword "SUBX"
+            CALL rDODOES
             .word   TYPE5DOES,40h,8000h
-            asmword "SUBX.A" 
-            CALL rDODOES          
+            asmword "SUBX.A"
+            CALL rDODOES
             .word   TYPE5DOES,0,8040h
-            asmword "SUBX.B" 
-            CALL rDODOES          
+            asmword "SUBX.B"
+            CALL rDODOES
             .word   TYPE5DOES,40h,8040h
-            asmword "CMPX"   
-            CALL rDODOES          
+            asmword "CMPX"
+            CALL rDODOES
             .word   TYPE5DOES,40h,9000h
-            asmword "CMPX.A" 
-            CALL rDODOES          
+            asmword "CMPX.A"
+            CALL rDODOES
             .word   TYPE5DOES,0,9040h
-            asmword "CMPX.B" 
-            CALL rDODOES          
+            asmword "CMPX.B"
+            CALL rDODOES
             .word   TYPE5DOES,40h,9040h
             asmword "DADDX"
             CALL rDODOES
             .word   TYPE5DOES,40h,0A000h
             asmword "DADDX.A"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE5DOES,0,0A040h
             asmword "DADDX.B"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE5DOES,40h,0A040h
-            asmword "BITX"   
-            CALL rDODOES          
+            asmword "BITX"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0B000h
-            asmword "BITX.A" 
-            CALL rDODOES          
+            asmword "BITX.A"
+            CALL rDODOES
             .word   TYPE5DOES,0,0B040h
-            asmword "BITX.B" 
-            CALL rDODOES          
+            asmword "BITX.B"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0B040h
-            asmword "BICX"   
-            CALL rDODOES          
+            asmword "BICX"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0C000h
-            asmword "BICX.A" 
-            CALL rDODOES          
+            asmword "BICX.A"
+            CALL rDODOES
             .word   TYPE5DOES,0,0C040h
-            asmword "BICX.B" 
-            CALL rDODOES          
+            asmword "BICX.B"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0C040h
             asmword "BISX"
             CALL rDODOES
             .word   TYPE5DOES,40h,0D000h
-            asmword "BISX.A" 
-            CALL rDODOES          
+            asmword "BISX.A"
+            CALL rDODOES
             .word   TYPE5DOES,0,0D040h
-            asmword "BISX.B" 
-            CALL rDODOES          
+            asmword "BISX.B"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0D040h
-            asmword "XORX"   
-            CALL rDODOES          
+            asmword "XORX"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0E000h
-            asmword "XORX.A" 
-            CALL rDODOES          
+            asmword "XORX.A"
+            CALL rDODOES
             .word   TYPE5DOES,0,0E040h
-            asmword "XORX.B" 
-            CALL rDODOES          
+            asmword "XORX.B"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0E040h
-            asmword "ANDX"   
-            CALL rDODOES          
+            asmword "ANDX"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0F000h
-            asmword "ANDX.A" 
-            CALL rDODOES          
+            asmword "ANDX.A"
+            CALL rDODOES
             .word   TYPE5DOES,0,0F040h
-            asmword "ANDX.B" 
-            CALL rDODOES          
+            asmword "ANDX.B"
+            CALL rDODOES
             .word   TYPE5DOES,40h,0F040h
 
 ; --------------------------------------------------------------------------------
@@ -1209,64 +1133,58 @@ TYPE5DOES                               ; -- BODYDOES
 ; all numeric arguments must be written as DOUBLE numbers (including a point) : $x.xxxx
 
 TYPE6DOES                               ; -- BODYDOES
-;            .word   LIT,TOIN,FETCH,TOR  ;               R-- >IN      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]
             .word   LIT,TOIN,FETCH      ; -- BODYDOES >IN
-            .word   FBLANK              ; -- BODYDOES >IN ' '
-            .word   PRMX1               ; -- BODYDOES >IN Extended_Word  
+            .word   BL,SkipPrfx,PRMX1   ; -- BODYDOES >IN 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
             CALL rDODOES
             .word   TYPE6DOES,40h,1000h
-            asmword "RRCX.A"            ; ZC=0; RRCX.A Rx may be repeated by prefix RPT #n|Rn 
-            CALL rDODOES          
+            asmword "RRCX.A"            ; ZC=0; RRCX.A Rx may be repeated by prefix RPT #n|Rn
+            CALL rDODOES
             .word   TYPE6DOES,0,1040h
             asmword "RRCX.B"            ; ZC=0; RRCX.B Rx may be repeated by prefix RPT #n|Rn
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,40h,1040h
             asmword "RRUX"              ; ZC=1; RRUX Rx may be repeated by prefix RPT #n|Rn
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,140h,1000h
-            asmword "RRUX.A"            ; ZC=1; RRUX.A Rx may be repeated by prefix RPT #n|Rn 
-            CALL rDODOES          
+            asmword "RRUX.A"            ; ZC=1; RRUX.A Rx may be repeated by prefix RPT #n|Rn
+            CALL rDODOES
             .word   TYPE6DOES,100h,1040h
-            asmword "RRUX.B"            ; ZC=1; RRUX.B Rx may be repeated by prefix RPT #n|Rn 
-            CALL rDODOES          
+            asmword "RRUX.B"            ; ZC=1; RRUX.B Rx may be repeated by prefix RPT #n|Rn
+            CALL rDODOES
             .word   TYPE6DOES,140h,1040h
             asmword "SWPBX"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,40h,1080h
             asmword "SWPBX.A"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,0,1080h
             asmword "RRAX"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,40h,1100h
             asmword "RRAX.A"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,0,1140h
             asmword "RRAX.B"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,40h,1140h
             asmword "SXTX"
             CALL rDODOES
             .word   TYPE6DOES,40h,1180h
-            asmword "SXTX.A" 
-            CALL rDODOES          
+            asmword "SXTX.A"
+            CALL rDODOES
             .word   TYPE6DOES,0,1180h
-            asmword "PUSHX"  
-            CALL rDODOES          
+            asmword "PUSHX"
+            CALL rDODOES
             .word   TYPE6DOES,40h,1200h
             asmword "PUSHX.A"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,0,1240h
             asmword "PUSHX.B"
-            CALL rDODOES          
+            CALL rDODOES
             .word   TYPE6DOES,40h,1240h
 
 ; ----------------------------------------------------------------------
@@ -1277,16 +1195,12 @@ TYPE6DOES                               ; -- BODYDOES
 
 RPT_WORD    .word 0
 
-            asmword "RPT"           ; RPT #n | RPT Rn     repeat n | [Rn]+1 times modulo 16
-            mdocol
-            .word FBLANK,SKIP
-            .word   $+2             ; -- 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
+            asmword "RPT"           ; RPT #n | RPT Rn     repeat n | [Rn] times modulo 16
+            mDOCOL
+            .word   BL,SkipPrfx     ; -- sep
+            mNEXTADR                ;
+            JNZ RPT1                ; -- sep        if prefix <> 'R'
+            CALL #SearchRn          ; -- Rn
             BIS #80h,TOS            ; -- $008R  R=Rn
             JMP RPT2
 RPT1        CALL #SearchARG         ; -- $xxxx
@@ -1294,5 +1208,5 @@ RPT1        CALL #SearchARG         ; -- $xxxx
             AND #0Fh,TOS            ; -- $000x
 RPT2        MOV TOS,&RPT_WORD
             MOV @PSP+,TOS
-            MOV @RSP+,IP 
+            MOV @RSP+,IP
             MOV @IP+,PC
index 24091b7..03f01f8 100644 (file)
@@ -5,72 +5,75 @@
 ; defered word ACCEPT is redirected here by the word LOAD"
 ; "defered" word CIB is redirected to SDIB (PAD if RAM<2k) by the word LOAD"
 ; sequentially move an input line ended by CRLF from SD_BUF to PAD
-;   if end of SD_BUF is reached before CRLF, asks Read_HandledFile to refill buffer with next sector
-;   then load the end of the line to PAD ptr.
+;   if end of SD_BUF is reached before CRLF, asks Read_File to refill buffer with next sector
+;   then load the end of the line to SDIB_ptr.
+; when the last buffer is loaded, the handle is automaticaly closed
 ; when all LOAD"ed files are read, redirects defered word ACCEPT to default ACCEPT and restore interpret pointers.
-; see CloseHandleT.
+; see CloseHandle.
 
 ; used variables : BufferPtr, BufferLen
-
-; ----------------------------------;
-;    FORTHWORD "SD_ACCEPT"          ; CIB CIB CPL -- CIB len
-; ----------------------------------;
+; EMIT uses only IP TOS and Y registers
+; ==================================;
+;    FORTHWORD "SD_ACCEPT"          ; SDIB_org SDIB_org CPL -- SDIB len        94 bytes
+; ==================================;
 SD_ACCEPT                           ; sequentially move from SD_BUF to SDIB (PAD if RAM=1k) a line of chars delimited by CRLF
 ; ----------------------------------; up to CPL = 80 chars
-    PUSH    IP                      ;
-    MOV     #SDA_YEMIT_RET,IP       ; set YEMIT return
+        PUSH    IP                  ;
+        MOV     #SDA_YEMIT_RET,IP   ; set YEMIT return
 ; ----------------------------------;
-StartNewLine                        ; -- CIB CIB CPL
+StartNewLine                        ; -- SDIB_org SDIB_org CPL
 ; ----------------------------------;
-    MOV &CurrentHdl,T               ; prepare a link for the next LOADed file, if any...
-    MOV &BufferPtr,HDLW_BUFofst(T)  ; ...see usage : GetFreeHandle(CheckCaseOfLoadFileToken)
+        MOV &CurrentHdl,T           ; prepare a link for a next LOADed file, if any...
+        MOV &BufferPtr,HDLW_BUFofst(T)  ; ...see usage : GetFreeHandle(CheckCaseOfLoadFileToken)
 ; ----------------------------------;
-    MOV     @PSP+,W                 ; -- CIB CPL        W=dst_ptr
-    MOV     TOS,X                   ;                   X=dst_len
-    MOV     #0,TOS                  ; -- CIB cnt
+SDA_InitDstAddr                     ;
 ; ----------------------------------;
-SDA_InitSrcAddr                     ; <== SDA_GetFileNextSector
+        MOV     @PSP+,W             ; -- SDIB_org CPL   W=SDIB_ptr
+        MOV     TOS,X               ;                   X=SDIB_len
+        MOV     #0,TOS              ; -- SDIB_org len   of moved bytes from SD_buf to SDIB
 ; ----------------------------------;
-    MOV     &BufferPtr,S            ;                   S=src_ptr
-    MOV     &BufferLen,T            ;                   T=src_len
-    JMP     SDA_ComputeChar         ;
+SDA_InitSrcAddr                     ; <== SDA_GetFileNextSect
+; ----------------------------------;
+        MOV     &BufferPtr,S        ;                   S=SD_buf_ptr
+        MOV     &BufferLen,T        ;                   T=SD_buf_len
+        JMP     SDA_ComputeChar     ;
 ; ----------------------------------;
 SDA_YEMIT_RET                       ;
 ; ----------------------------------;
-    .word   $+2                     ;
-    SUB     #2,IP                   ; 1                 restore YEMIT return
+        mNEXTADR                    ;
+        SUB     #2,IP               ; 1                 restore YEMIT return
 ; ----------------------------------;
-SDA_ComputeChar                     ; -- CIB cnt
+SDA_ComputeChar                     ; -- SDIB_org len
 ; ----------------------------------;
-    CMP     T,S                     ; 1 src_ptr >= src_len ?
-    JC      SDA_GetFileNextSector   ; 2 yes
-    MOV.B   SD_BUF(S),Y             ; 3 Y = char
-    ADD     #1,S                    ; 1 increment input BufferPtr
-    CMP.B   #32,Y                   ; 2 ascii printable char ?
-    JC      SDA_MoveChar            ; 2 yes
-    CMP.B   #10,Y                   ; 2 control char = 'LF' ?
-    JNZ     SDA_ComputeChar         ; 2 no
+        CMP     T,S                 ; 1 SD_buf_ptr >= SD_buf_len ?
+        JC      SDA_GetFileNextSect ; 2 if yes
+        MOV.B   SD_BUF(S),Y         ; 3 Y = char
+        ADD     #1,S                ; 1 increment SD_buf_ptr
+        CMP.B   #32,Y               ; 2 ascii printable char ?
+        JC      SDA_MoveChar        ; 2 yes
+        CMP.B   #10,Y               ; 2 control char = 'LF' ?
+        JNZ     SDA_ComputeChar     ; 2 no, loop back
 ; ----------------------------------;
-SDA_EndOfLine                       ; -- org cnt
+SDA_EndOfLine                       ; -- SDIB_org len
 ; ----------------------------------;
-    MOV     @RSP+,IP                ;
-    MOV     S,&BufferPtr            ; yes  save BufferPtr for next line
-    MOV     #32,S                   ; S = BL
-    JMP     ACCEPT_EOL              ; ==> output            
+        MOV S,&BufferPtr            ; yes  save SD_buf_ptr for next line
+        MOV @RSP+,IP                ;
+        MOV #32,S                   ; S = BL
+        JMP ACCEPT_EOL              ; -- SDIB_org len       ==> output
 ; ----------------------------------;
 SDA_MoveChar                        ;
 ; ----------------------------------;
-    CMP     X,TOS                   ; 1 cnt = dst_len ?
-    JZ      YEMIT                   ; 2 yes, don't move char to dst
-    MOV.B   Y,0(W)                  ; 3 move char to dst
-    ADD     #1,W                    ; 1 increment dst addr
-    ADD     #1,TOS                  ; 1 increment count of moved chars
-    JMP     YEMIT                   ; 9/6~ send echo to terminal if ECHO, do nothing if NOECHO
-; ----------------------------------; 29/26~ char loop, add 14~ for readsectorW ==> 43/40~ ==> 186/200 kbytes/s @ 8MHz
-SDA_GetFileNextSector               ; CIB cnt --
-; ----------------------------------;
-    PUSHM   #2,W                    ; save dst_ptr, dst_len
-    CALL    #Read_File              ; that resets BufferPtr
-    POPM    #2,W                    ; restore dst_ptr, dst_len
-    JMP     SDA_InitSrcAddr         ; loopback to end the line
+        CMP     X,TOS               ; 1 len = CPL ?
+        JZ      YEMIT               ; 2 yes, don't move char to dst
+        MOV.B   Y,0(W)              ; 3 move char to dst
+        ADD     #1,W                ; 1 increment SDIB_ptr
+        ADD     #1,TOS              ; 1 increment len of moved chars
+        JMP     YEMIT               ; 9/6~ send echo to terminal if ECHO, do nothing if NOECHO
+; ----------------------------------; 29/26~ char loop, add 14~ for readsectorW one char ==> 43/40~ ==> 186/200 kbytes/s @ 8MHz
+SDA_GetFileNextSect                 ; -- SDIB_org len
+; ----------------------------------;
+        PUSHM   #2,W                ; save SD_buf_ptr, SD_buf_len
+        CALL    #Read_File          ; that resets BufferPtr
+        POPM    #2,W                ; restore SD_buf_ptr, SD_buf_len
+        JMP     SDA_InitSrcAddr     ; loopback to end the line
 ; ----------------------------------;
\ No newline at end of file
index ccde9da..6dae5fb 100644 (file)
@@ -30,7 +30,7 @@
 ; First sector of physical drive (sector 0) content :
 ; ---------------------------------------------------
 ; dec@| HEX@
-; 446 |0x1BE    : partition table first record  ==> logical drive 0       
+; 446 |0x1BE    : partition table first record  ==> logical drive 0
 ; 462 |0x1CE    : partition table 2th record    ==> logical drive 1
 ; 478 |0x1DE    : partition table 3th record    ==> logical drive 2
 ; 494 |0x1EE    : partition table 4th record    ==> logical drive 3
@@ -81,7 +81,7 @@
 ; First sector of physical drive (sector 0) content :
 ; ---------------------------------------------------
 ; dec@| HEX@
-; 446 |0x1BE    : partition table first record  ==> logical drive 0       
+; 446 |0x1BE    : partition table first record  ==> logical drive 0
 ; 462 |0x1CE    : partition table 2th record    ==> logical drive 1
 ; 478 |0x1DE    : partition table 3th record    ==> logical drive 2
 ; 494 |0x1EE    : partition table 4th record    ==> logical drive 3
@@ -91,7 +91,7 @@
 ; 450 |0x1C2 = 0x0C         : type FAT32 using LBA addressing
 ; 454 |0x1C6 = 00 20 00 00  : FirstSector (of logical drive 0) = BS_FirstSector = 8192
 
-; 
+;
 ; FirstSector of logical block (sector 0) content :
 ; -------------------------------------------------
 ; dec@| HEX@ =  HEX                                                       decimal
 
 ; 32  | 0x20 = 00 C0 EC 00  : BPB_TotSec32              BPB_TotSec32    = 15515648
 ; 36  | 0x24 = 30 3B 00 00  : BPB_FATSz32               BPB_FATSz32     = 15152
-; 40  | 0x28 = 00 00        : BPB_ExtFlags              BPB_ExtFlags 
+; 40  | 0x28 = 00 00        : BPB_ExtFlags              BPB_ExtFlags
 ; 44  | 0x2C = 02 00 00 00  : BPB_RootClus              BPB_RootClus    = 2
 ; 48  | 0x30 = 01 00        : BPB_FSInfo                BPB_FSInfo      = 1
 ; 50  | 0x33 = 06 00        : BPB_BkBootSec             BPB_BkBootSec   = 6
 ; 82  | 0x52 = "FAT32"      : BS_FilSysType             BS_FilSysType   (not used)
 
-; 
+;
 ; all values below are evaluated in logical sectors
 ; FAT1           = BPB_RsvdSecCnt = 32
 ; FAT2           = BPB_RsvdSecCnt + BPB_FATSz32 = 32 + 15152 = 15184
     .restore
 
 ; ===========================================================
+; WARNING! SD_INIT DRAW BIG CURRENT; IF THE SUPPLY IS TOO WEAK
+; THE SD_CARD LOW VOLTAGE THRESHOLD MAY BE REACHED ==> SD_ERROR 8FF !
+; ===========================================================
+
+; ===========================================================
 ; Init hardware SD_Card, called by WARM
 ; ===========================================================
+
+; web search: "SDA simplified specifications"
+
 ;-----------------------------------;
-INI_HARD_SD CALL @PC+               ; link to previous INI_HARD_APP
-I_H_S_PFA   .word INIT_TERM         ; which activates all previous I/O settings and set TOS = RSTIV_MEM.
-;-----------------------------------;
-            CMP #0,TOS              ; RSTIV_MEM = WARM ?
-            JZ INI_SD_END           ; no init if RSTIV_MEM = WARM
+INIT_HARD_SD CALL @PC+              ; link to previous INI_HARD_APP
+            .word INIT_TERM         ; which activates all previous I/O settings and set TOS = RSTIV_MEM.
 ;-----------------------------------;
             BIT.B #CD_SD,&SD_CDIN   ; SD_memory in SD_Card module ?
-            JNZ INI_SD_END          ; no
+            JNZ INIT_HSD_END        ; no
 ;-----------------------------------;
             MOV #0A981h,&SD_CTLW0   ; UCxxCTL1  = CKPH, MSB, MST, SPI_3, SMCLK  + UCSWRST
-            MOV #FREQUENCY*3,&SD_BRW; UCxxBRW init SPI CLK = 333 kHz ( < 400 kHz) for SD_Card initialisation
+            MOV #FREQUENCY*3,&SD_BRW; UCxxBRW init SPI CLK = 333 kHz ( <= 400 kHz) for SD_Card initialisation
             BIS.B #CS_SD,&SD_CSDIR  ; SD Chip Select as output high
             BIS #BUS_SD,&SD_SEL     ; Configure pins as SIMO, SOMI & SCK (PxDIR.y are controlled by eUSCI module)
             BIC #1,&SD_CTLW0        ; release eUSCI from reset
 ;-----------------------------------;
-        .IF RAM_LEN < 2048          ; case of MSP430FR57xx : SD datas are in FRAM not initialized by RESET.
-            MOV #SD_LEN,X           ; clear all SD datas                      
+            MOV #SD_LEN,X           ; clear all SD datas
 ClearSDdata SUB #2,X                ; 1
-            MOV #0,SD_ORG(X)        ; 3 
+            MOV #0,SD_ORG(X)        ; 3
             JNZ ClearSDdata         ; 2
-        .ENDIF                      ;
 ;-----------------------------------;
 SD_POWER_ON
 ; ----------------------------------;
     MOV     #8,X                    ; send 8*8 = 64 clk on SPI
     CALL    #SPI_X_GET              ;
-    BIC.B   #CS_SD,&SD_CSOUT        ; preset Chip Select output low to switch in SPI one wire mode
+    BIC.B   #CS_SD,&SD_CSOUT        ; preset Chip Select output low to switch in SPI mode
 ; ----------------------------------;
-INIT_CMD0                           ; after PUC, all SD variables area is 0 filled
+INIT_CMD0                           ; SD_CMD_FRM+2 is already cleared...
 ; ----------------------------------;
     MOV     #4,S                    ; preset error 4R1 for CMD0
-    MOV     #95h,&SD_CMD_FRM        ; $(95 00 00 00 00 00)
-    MOV     #4000h,&SD_CMD_FRM+4    ; $(95 00 00 00 00 40) = CMD0 
+    MOV     #0095h,&SD_CMD_FRM      ; $(95 00 00 00 00 00)
+    MOV     #4000h,&SD_CMD_FRM+4    ; $(95 00 00 00 00 40) = CMD0
 ; ----------------------------------;
 SEND_CMD0                           ; GO_IDLE_STATE, expected SPI_R1 response = 1 = idle state
 ; ----------------------------------;
-    CALL    #sendCommandIdleRet     ;X send command, see forthMSP430FR_SD_lowLvl.asm
+    CALL    #sendCommandIdleRet     ;X send command (does little to big endian conversion), see forthMSP430FR_SD_lowLvl.asm
     JZ      INIT_CMD8               ; if idle state
 SD_INIT_ERROR                       ;
     MOV     #SD_CARD_ERROR,PC       ; ReturnError = $04R1, case of defectuous card (or insufficient SD_POWER_ON clk)
@@ -177,7 +180,7 @@ INIT_CMD8                           ; mandatory if SD_Card >= V2.x     [11:8]sup
 ; ----------------------------------;
 SEND_CMD8                           ; SEND_IF_COND; expected R1 response (first byte of SPI R7) = 01h : idle state
 ; ----------------------------------;
-    CALL    #sendCommandIdleRet     ;X time out occurs with SD_Card V1.x (and all MMC_card) 
+    CALL    #sendCommandIdleRet     ;X time out occurs with SD_Card V1.x (and all MMC_card)
 ; ----------------------------------;
     MOV     #4,X                    ; skip end of SD_Card V2.x type R7 response (4 bytes), because useless
     CALL    #SPI_X_GET              ;WX
@@ -186,7 +189,7 @@ INIT_ACMD41                         ; no more CRC needed from here
 ; ----------------------------------;
     MOV     #1,&SD_CMD_FRM          ; $(01 00 ...   set stop bit
     MOV     #0,&SD_CMD_FRM+2        ; $(01 00 00 00 ...
-;    MOV.B   #16,Y                   ; init 16 * ACMD41 repeats (power on fails with SanDisk ultra 8GB "HC I" and Transcend 2GB)
+;    MOV.B   #16,Y                   ; init 16 * ACMD41 repeats (fails with SanDisk ultra 8GB "HC I" and Transcend 2GB)
 ;    MOV.B   #32,Y                   ; init 32 * ACMD41 repeats ==> ~400ms time out
     MOV.B   #-1,Y                   ; init 255 * ACMD41 repeats ==> ~3 s time out
     MOV     #8,S                    ; preset error 8R1 for ACMD41
@@ -210,7 +213,7 @@ setBLockLength                      ; set block = 512 bytes (buffer size), usefu
     ADD     S,S                     ; preset error $10 for CMD16
 SEND_CMD16                          ; CMD16 = SET_BLOCKLEN
     MOV     #02h,&SD_CMD_FRM+2      ; $(01 00 02 00 ...)
-    MOV     #5000h,&SD_CMD_FRM+4    ; $(01 00 02 00 00 50) 
+    MOV     #5000h,&SD_CMD_FRM+4    ; $(01 00 02 00 00 50)
     CALL    #WaitIdleBeforeSendCMD  ; wait until idle then send CMD16
     JNZ     SD_INIT_ERROR           ; if W = R1 <> 0, ReturnError = $20R1 ; send command ko
 ; ----------------------------------; W = R1 = 0
@@ -220,84 +223,70 @@ SwitchSPIhighSpeed                  ; end of SD init ==> SD_CLK = SMCLK
     MOV     #0,&SD_BRW              ; UCxxBRW = 0 ==> SPI_CLK = MCLK
     BIC     #1,&SD_CTLW0            ; release from reset
 ; ----------------------------------;
-Read_EBP_FirstSector                ; W=0, BS_FirstSectorHL=0
+Read_EBP_FirstSector                ; BS_FirstSectorHL=0
 ; ----------------------------------;
+    MOV     #0,W                    ;
     MOV     #0,X                    ;
-    CALL    #readSectorWX           ; read physical first sector
+    CALL    #readSectorWX           ; read physical first sector, W=0
     MOV     #SD_BUF,Y               ;
-    MOV     454(Y),&BS_FirstSectorL ; so, sectors become logical
-    MOV     456(Y),&BS_FirstSectorH ; 
-    MOV.B   450(Y),W                ; W = partition ID 
+    MOV     454(Y),&BS_FirstSectorL ; so, from here, sectors become logical
+    MOV     456(Y),&BS_FirstSectorH ;
+    MOV.B   450(Y),S                ; S = partition ID
 ; ----------------------------------;
 TestPartitionID                     ;
 ; ----------------------------------;
-    MOV     #1,&FATtype             ; preset FAT16
-FAT16_CHS_LBA_Test                  ;
-    SUB.B   #6,W                    ; ID=06h Partition FAT16 > 32MB using CHS & LBA ?
-    JZ      Read_MBR_FirstSector    ; W = 0
-FAT16_LBA_Test                      ;
-    SUB.B   #8,W                    ; ID=0Eh Partition FAT16 using LBA ?
-    JZ      Read_MBR_FirstSector    ; W = 0
+    SUB.B   #0Ch,S                  ; ID=0Ch Partition FAT32 using LBA ?
+    JZ      Read_MBR_FirstSector    ;
+    ADD.B   #1,S                    ; ID=0Bh Partition FAT32 using CHS & LBA ?
+    JZ      Read_MBR_FirstSector    ;
+    ADD.B   #4,S                    ; ID=07h assigned to FAT 32 by MiniTools Partition Wizard....
+    JZ      Read_MBR_FirstSector    ;
+    ADD     #02007h,S               ; set ReturnError = $20 & restore ID value
+    MOV     #SD_CARD_ID_ERROR,PC    ; see: https://en.wikipedia.org/wiki/Partition_type
 ; ----------------------------------;
-    MOV     #2,&FATtype             ; set FAT32
-FAT32_LBA_Test                      ;
-    ADD.B   #2,W                    ; ID=0Ch Partition FAT32 using LBA ?
-    JZ      Read_MBR_FirstSector    ; W = 0
-FAT32_CHS_LBA_Test                  ;
-    ADD.B   #1,W                    ; ID=0Bh Partition FAT32 using CHS & LBA ?
-    JZ      Read_MBR_FirstSector    ; W = 0
-    ADD.B   #4,W                    ; ID=07h assigned to FAT 32 by MiniTools Partition Wizard....
-    JZ      Read_MBR_FirstSector    ; W = 0
-    ADD     #0200Bh,W               ;
-    MOV     W,S                     ;
-    MOV     #SD_CARD_ID_ERROR,PC    ; S = ReturnError = $20xx with xx = partition ID 
-; ----------------------------------; see: https://en.wikipedia.org/wiki/Partition_type
 Read_MBR_FirstSector                ; read first logical sector
-; ----------------------------------; W = 0
-    MOV     #0,X                    ;
+; ----------------------------------;
+    MOV     #0,X                    ; W = 0
     CALL    #readSectorWX           ; ...with the good CMD17 bytes/sectors frame ! (good switch FAT16/FAT32)
 ; ----------------------------------;
 FATxx_SetFileSystem                 ;
 ; ----------------------------------;
-    MOV.B   13(Y),&SecPerClus       ;
-    MOV     14(Y),X                 ;3 X = BPB_RsvdSecCnt
+;    MOV     44(Y),&DIRClusterL      ; init DIRcluster as FAT32 RootDIR
+    MOV     #2,&DIRClusterL         ; init DIRcluster as FAT32 RootDIR
+; ----------------------------------;
+    MOV     14(Y),X                 ;3 X = BPB_RsvdSecCnt (05FEh=1534)
     MOV     X,&OrgFAT1              ;3 set OrgFAT1
-    MOV     22(Y),W                 ; W = BPB_FATsize
-    CMP     #0,W                    ; BPB_FATsize <> 0 ?
-    JNZ     Set_FATsize             ; yes
-    MOV     36(Y),W                 ; W = BPB_FATSz32
-Set_FATsize                         ;
-    MOV     W,&FATSize              ; limited to 16384 sectors....
+; ----------------------------------;
+    MOV     36(Y),W                 ; no set W = BPB_FATSz32 (1D01h=7425)
+    MOV     W,&FATSize              ; limited to 32767 sectors....
+; ----------------------------------;
     ADD     W,X                     ;
-    MOV     X,&OrgFAT2              ; X = OrgFAT1 + FATsize = OrgFAT2
-    ADD     W,X                     ; X = OrgFAT2 + FATsize = FAT16 OrgRootDir | FAT32 OrgDatas
-    CMP     #2,&FATtype             ; FAT32?
-    JZ      FATxx_SetFileSystemNext ; yes
-FAT16_SetRootCluster                ;
-    MOV     X,&OrgRootDIR           ; only FAT16 use, is a sector used by ComputeClusFrstSect
-    ADD     #32,X                   ; OrgRootDir + RootDirSize = OrgDatas
+    MOV     X,&OrgFAT2              ; X = OrgFAT1 + FATsize = OrgFAT2 (8959)
+; ----------------------------------;
+    ADD     W,X                     ; X = OrgFAT2 + FATsize = FAT32 OrgDatas = OrgRootDIR sector = 16384
+;    MOV     X,&OrgRootDIR           ;
 FATxx_SetFileSystemNext             ;
-    SUB     &SecPerClus,X           ; OrgDatas - SecPerClus*2 = OrgClusters
-    SUB     &SecPerClus,X           ; no borrow expected
+    MOV.B   13(Y),Y                 ; Logical sectors per cluster (8)
+    MOV     Y,&SecPerClus           ;
+    SUB     Y,X                     ; OrgDatas - SecPerClus*2 = OrgClusters
+    SUB     Y,X                     ; no borrow expected
     MOV     X,&OrgClusters          ; X = virtual cluster 0 address (clusters 0 and 1 don't exist)
-    MOV     &FATtype,&DIRClusterL   ; init DIRcluster as RootDIR
-INI_SD_END                          ;
-    MOV @RSP+,PC                    ; RET
+INIT_HSD_END                        ;
+    MOV     @RSP+,PC                ; RET
 ;-----------------------------------;
 
 ; ===========================================================
-; Init SD_Card software, called by ?ABORT|RST
+; Init SD_Card software, called by INIT_FORTH
 ; ===========================================================
-;-----------------------------------; 
-INI_SOFT_SD                         ; called by INI_FORTH common part of ?ABORT|RST
 ;-----------------------------------;
-            CALL @PC+               ; link to previous INI_FORTH_APP
-RSAB_SD_PFA .word RET_ADR           ; which does nothing
+INIT_SOFT_SD                        ; called by INI_FORTH common part of ?ABORT|RST
 ;-----------------------------------;
-            MOV #HandlesLen,X       ; clear all handles                      
-ClearHandle SUB #2,X                ; 1
-            MOV #0,FirstHandle(X)   ; 3 
-            JNZ ClearHandle         ; 2
+;            CMP #0,TOS              ; USERSYS = 0 ?
+;            JZ INIT_HSD_END         ; no hardware init if USERSYS = 0 SYS
+;            MOV #HandlesLen,X       ; clear all handles
+;ClearHandle SUB #2,X                ; 1
+;            MOV #0,FirstHandle(X)   ; 3
+;            JNZ ClearHandle         ; 2
             MOV #0,&CurrentHdl      ;
-            MOV @RSP+,PC            ; RET
+            MOV #INIT_SOFT_TERM,PC  ; link to previous INI_SOFT_APP then RET
 ;-----------------------------------;
index 479cc98..2de23a0 100644 (file)
@@ -1,15 +1,22 @@
 ; -*- coding: utf-8 -*-
 ; forthMSP430FR_SD_LOAD.asm
 
-;Z SD_ACCEPT  addr addr len -- addr' len'  get line to interpret from a SD Card file
-; no interrupt allowed
-; defered word ACCEPT is redirected here by the word LOAD"
-; "defered" word CIB is redirected to SDIB (PAD if RAM<2k) by the word LOAD"
-; sequentially move an input line ended by CRLF from SD_BUF to PAD
-;   if end of SD_BUF is reached before CRLF, asks Read_HandledFile to refill buffer with next sector
-;   then load the end of the line to PAD ptr.
-; when all LOAD"ed files are read, redirects defered word ACCEPT to default ACCEPT and restore interpret pointers.
-; see CloseHandleT.
+; Tested with MSP-EXP430FR5994 launchpad
+; Copyright (C) <2019>  <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/>.
+
 
 ; used variables : BufferPtr, BufferLen
 
 ; SD card OPEN, LOAD subroutines
 ;-----------------------------------------------------------------------
 
-; used variables : BufferPtr, BufferLen
-
 ; rules for registers use
 ; S = error
 ; T = CurrentHdl, pathname
 ; W = SectorL, (RTC) TIME
 ; X = SectorH, (RTC) DATE
-; Y = BufferPtr, (DIR) EntryOfst, FAToffset
+; Y = BufferPtr, (DIR) DIREntryOfst
 
 
-; ----------------------------------;
-HDLCurClusToFAT1sectWofstY          ;WXY Input: T=currentHandle, Output: W=FATsector, Y=FAToffset, Cluster=HDL_CurCluster
-; ----------------------------------;
+; ==================================;
+HDLcurClus2FATsecWofstY             ;WXY Input: T=Handle, HDL_CurClustHL  Output: ClusterHL, FATsector, W = FATsector, Y = FAToffset
+; ==================================;
     MOV HDLL_CurClust(T),&ClusterL  ;
     MOV HDLH_CurClust(T),&ClusterH  ;
-; ----------------------------------;
-ClusterToFAT1sectWofstY             ;WXY Input : Cluster ; Output: W = FATsector, Y = FAToffset
-; ----------------------------------;
+; ==================================;
+ClusterHLtoFAT1sectWofstY           ;WXY Input : ClusterHL   Output: ClusterHL, FATsector, W = FATsector, Y = FAToffset
+; ==================================;
     MOV.B &ClusterL+1,W             ;3 W = ClusterLoHI
-    MOV.B &ClusterL,Y               ;3 Y = ClusterLoLo
-    CMP #1,&FATtype                 ;3 FAT16?
-    JZ CTF1S_end                    ;2 yes
-
+    MOV.B &ClusterL,Y               ;3 Y = ClusterLOlo
 ; input : Cluster n, max = 7FFFFF (SDcard up to 256 GB)
 ; ClusterLoLo*4 = displacement in 512 bytes sector   ==> FAToffset
 ; ClusterHiLo&ClusterLoHi +C  << 1 = relative FATsector + orgFAT1       ==> FATsector
 ; ----------------------------------;
-    MOV.B &ClusterH,X               ;  X = 0:ClusterHiLo
-    SWPB X                          ;  X = ClusterHiLo:0
-    ADD X,W                         ;  W = ClusterHiLo:ClusterLoHi  
+    MOV.B &ClusterH,X               ;  X = 0:ClusterHIlo
+    SWPB X                          ;  X = ClusterHIlo:0
+    BIS X,W                         ;  W = ClusterHIlo:ClusterLOhi
 ; ----------------------------------;
-    SWPB Y                          ;  Y = ClusterLoLo:0
-    ADD Y,Y                         ;1 Y = ClusterLoLo:0 << 1 + carry for FATsector
-    ADDC W,W                        ;  W = ClusterHiLo:ClusterLoHi << 1 = ClusterHiLo:ClusterL / 128
-    SWPB Y   
-CTF1S_end
-    ADD Y,Y                         ;  Y = 0:ClusterLoLo << 1
+    SWPB Y                          ;  Y = ClusterLOlo:0
+    ADD Y,Y                         ;1 Y = ClusterLOlo:0 << 1  (+ carry for FATsector)
+    ADDC W,W                        ;  FATsector = W = ClusterHIlo:ClusterLOhi<<1 + Carry
+    SWPB Y                          ;  Y = 0:ClusterLOlo
+    ADD Y,Y                         ;  FAToffset = Y = 0:ClusterLOlo << 1 for FAT16 and 0:ClusterLOlo<<2 for FAT32
     MOV @RSP+,PC                    ;4
 ; ----------------------------------;
 
+; ==================================;
+ReadFAT1SectorW                     ;SWX (< 65536)
+; ==================================;
+    ADD     &OrgFAT1,W              ;
+    MOV     #0,X                    ; FAT1_SectorHI = 0
+    JMP     ReadSectorWX            ;SWX read FAT1SectorW
+; ----------------------------------;
 
 ; use no registers
-; ----------------------------------; Input : Cluster, output: Sector = Cluster_first_sector
-ComputeClusFrstSect                 ; If Cluster = 1 ==> RootDirectory ==> SectorL = OrgRootDir
-; ----------------------------------; Output: SectorL of Cluster
-    MOV     #0,&SectorH             ;
-    MOV     &OrgRootDir,&SectorL    ;
-    CMP.B   #0,&ClusterH            ; clusterH <> 0 ?
-    JNE     CCFS_AllOthers          ; yes
-    CMP     #1,&ClusterL            ; clusterHL = 1 ? (FAT16 specificity)
-    JZ      CCFS_RET                ; yes, sectorL for FAT16 OrgRootDIR is done
-CCFS_AllOthers                      ;
-; ----------------------------------;
+; ==================================;
+ClusterHLtoFrstSectorHL             ; Input : ClusterHL, output: first SectorHL of ClusterHL
+; ==================================;
     .IFDEF MPY                      ; general case
 ; ----------------------------------;
     MOV     &ClusterL,&MPY32L       ;3
@@ -107,89 +107,20 @@ CCFS_RET                            ;
 ; ----------------------------------;
 
 
-; ----------------------------------;
-ComputeHDLcurrentSector             ; input: currentHandle, output: Cluster, Sector
-; ----------------------------------;
-    MOV HDLL_CurClust(T),&ClusterL  ;
-    MOV HDLH_CurClust(T),&ClusterH  ;
-    CALL #ComputeClusFrstSect       ;
-    MOV.B HDLB_ClustOfst(T),W       ;
-    ADD W,&SectorL                  ;
-    ADDC #0,&SectorH                ;
-    MOV @RSP+,PC                    ;
-; ----------------------------------;
 
-
-; ----------------------------------; input : X = countdown_of_spaces, Y = name pointer in buffer
-ParseEntryNameSpaces                ;XY
-; ----------------------------------; output: Z flag, Y is set after the last space char
-    CMP     #0,X                    ; 
-    JZ      PENSL_END               ;
-; ----------------------------------;
-ParseEntryNameSpacesLoop            ;
-; ----------------------------------;
-    CMP.B   #32,SD_BUF(Y)           ; SPACE ? 
-    JNZ     PENSL_END               ; no: RET
-    ADD     #1,Y                    ;
-    SUB     #1,X                    ;
-    JNZ     ParseEntryNameSpacesLoop;
-PENSL_END                           ;
-    MOV @RSP+,PC                    ; 
-; ----------------------------------; 
-
-
-; sequentially load in SD_BUF bytsPerSec bytes of a file opened as read or as load
-; if new bufferLen have a size <= BufferPtr, closes the file then RET.
-; if previous bufferLen had a size < bytsPerSec, closes the file and reloads previous LOADed file if exist.
-; HDLL_CurSize leaves the not yet read size 
-; All used registers must be initialized. 
 ; ==================================;
-Read_File                           ; <== SD_ACCEPT, READ
+HDLCurClusPlsOfst2sectorHL          ;SWX input: HDL (CurClust, ClustOfst) output: SectorHL
 ; ==================================;
-    MOV     &CurrentHdl,T           ;
-    MOV     #0,&BufferPtr           ; reset BufferPtr (the buffer is already read)
-; ----------------------------------;
-    CMP     #bytsPerSec,&BufferLen  ;
-    JNZ     CloseHandleT            ; because this last and incomplete sector is already read
-    SUB #bytsPerSec,HDLL_CurSize(T) ; HDLL_CurSize is decremented of one sector lenght
-    SUBC    #0,HDLH_CurSize(T)      ;
-    ADD.B   #1,HDLB_ClustOfst(T)    ; current cluster offset is incremented
-    CMP.B &SecPerClus,HDLB_ClustOfst(T) ; Cluster Bound reached ?
-    JNC SetBufLenAndLoadCurSector   ; no
-; ----------------------------------;
-;SearchNextCluster                  ; yes
-; ----------------------------------;
-    MOV.B   #0,HDLB_ClustOfst(T)    ; reset Current_Cluster sectors offset
-    CALL #HDLCurClusToFAT1sectWofstY;WXY  Output: W=FATsector, Y=FAToffset, Cluster=HDL_CurCluster
-    ADD     &OrgFAT1,W              ;
-    MOV     #0,X                    ;
-    CALL    #ReadSectorWX           ;SWX (< 65536)
-    MOV     #0,HDLH_CurClust(T)     ;
-    MOV SD_BUF(Y),HDLL_CurClust(T)  ;
-    CMP     #1,&FATtype             ; FAT16?
-    JZ SetBufLenAndLoadCurSector    ;
-    MOV SD_BUF+2(Y),HDLH_CurClust(T);
-; ==================================;
-SetBufLenAndLoadCurSector           ;WXY <== previous handle reLOAD with BufferPtr<>0
-; ==================================;
-    MOV     #bytsPerSec,&BufferLen  ; preset BufferLen
-    CMP     #0,HDLH_CurSize(T)      ; CurSize > 65535 ?
-    JNZ     LoadHDLcurrentSector    ; yes
-    CMP HDLL_CurSize(T),&BufferPtr  ; BufferPtr >= CurSize ? (BufferPtr = 0 or see RestorePreviousLoadedBuffer)
-    JC       CloseHandleT           ; yes
-    CMP #bytsPerSec,HDLL_CurSize(T) ; CurSize >= 512 ?
-    JC      LoadHDLcurrentSector    ; yes
-    MOV HDLL_CurSize(T),&BufferLen  ; no: adjust BufferLen
-; ==================================;
-LoadHDLcurrentSector                ; <=== OPEN_WRITE_APPEND
-; ==================================;
-    CALL #ComputeHDLcurrentSector   ; use no registers
+    MOV HDLL_CurClust(T),&ClusterL  ;
+    MOV HDLH_CurClust(T),&ClusterH  ;
 ; ==================================;
-ReadSector                          ;
+ClusterHL2sectorHL                  ;W input: ClusterHL, ClustOfst output: SectorHL
 ; ==================================;
-    MOV     &SectorL,W              ; Low
-    MOV     &SectorH,X              ; High
-    JMP     ReadSectorWX            ; SWX then RET
+    CALL #ClusterHLtoFrstSectorHL   ;
+    MOV.B HDLB_ClustOfst(T),W       ; byte to word conversion
+    ADD W,&SectorL                  ;
+    ADDC #0,&SectorH                ;
+    MOV @RSP+,PC                    ;
 ; ----------------------------------;
 
 
@@ -197,33 +128,32 @@ ReadSector                          ;
 ; if other open_load token, decrement token, save previous context
 
 ; OPEN subroutine
-; Input : EntryOfst, Cluster = EntryOfst(HDLL_FirstClus())
+; Input : DIREntryOfst, Cluster = DIREntryOfst(HDLL_FirstClus())
 ; init handle(HDLL_DIRsect,HDLW_DIRofst,HDLL_FirstClus,HDLL_CurClust,HDLL_CurSize)
 ; Output: Cluster = first Cluster of file, X = CurrentHdl
-; ----------------------------------; input : Cluster, EntryOfst
+; ==================================; input : Cluster, DIREntryOfst
 GetFreeHandle                       ;STWXY init handle(HDLL_DIRsect,HDLW_DIRofst,HDLL_FirstClus = HDLL_CurClust,HDLL_CurSize)
-; ----------------------------------; output : T = new CurrentHdl
+; ==================================; output : T = new CurrentHdl
     MOV #8,S                        ; prepare file already open error
     MOV #FirstHandle,T              ;
     MOV #0,X                        ; X = init previous handle as 0
 ; ----------------------------------;
 SearchHandleLoop                    ;
 ; ----------------------------------;
-    CMP.B #0,HDLB_Token(T)          ; free handle ?
-    JZ FreeHandleFound              ; yes
+    CMP.B   #0,HDLB_Token(T)        ; free handle ?
+    JZ      FreeHandleFound         ; yes
 AlreadyOpenTest                     ; no
     CMP     &ClusterH,HDLH_FirstClus(T);
     JNE     SearchNextHandle        ;
     CMP     &ClusterL,HDLL_FirstClus(T);
-    JZ      InitHandleRET           ; error 8: Already Open abort ===> 
+    JZ      OPEN_Error              ; error 8: Already Open abort ===>
 SearchNextHandle                    ;
     MOV     T,X                     ; handle is occupied, keep it in X as previous handle
     ADD     #HandleLenght,T         ;
     CMP     #HandleEnd,T            ;
     JNZ     SearchHandleLoop        ;
-    ADD     S,S                     ; 16 = no more handle error, abort ===>
-InitHandleRET                       ;
-    MOV @RSP+,PC                             ;
+    ADD     S,S                     ;
+    JMP     OPEN_Error              ; error 16 = no more handle error, abort ===>
 ; ----------------------------------;
 FreeHandleFound                     ; T = new handle, X = previous handle
 ; ----------------------------------;
@@ -247,45 +177,101 @@ CheckCaseOfLoadFileToken            ;
 ; ----------------------------------;
 InitHandle                          ;
 ; ----------------------------------;
-    MOV.B   W,HDLB_Token(T)         ; marks handle as open type: <0=LOAD, 1=READ, 2=WRITE, 4=DEL
+    MOV.B   W,HDLB_Token(T)         ; marks handle as open type: <0=LOAD, 1=READ, 2=DEL, 4=WRITE, 8=APPEND
     MOV.B   #0,HDLB_ClustOfst(T)    ; clear ClustOfst
     MOV     &SectorL,HDLL_DIRsect(T); init handle DIRsectorL
-    MOV     &SectorH,HDLH_DIRsect(T); 
-    MOV     &EntryOfst,Y            ;
+    MOV     &SectorH,HDLH_DIRsect(T);
+    MOV     &DIREntryOfst,Y         ;
     MOV     Y,HDLW_DIRofst(T)       ; init handle SD_BUF offset of DIR entry
     MOV SD_BUF+26(Y),HDLL_FirstClus(T); init handle firstcluster of file (to identify file)
-    MOV SD_BUF+20(Y),HDLH_FirstClus(T)
-    MOV SD_BUF+26(Y),HDLL_CurClust(T)  ; init handle CurrentCluster
-    MOV SD_BUF+20(Y),HDLH_CurClust(T) 
+    MOV SD_BUF+20(Y),HDLH_FirstClus(T); = 0 if new DIRentry (create write file)
+    MOV SD_BUF+26(Y),HDLL_CurClust(T); init handle CurrentCluster
+    MOV SD_BUF+20(Y),HDLH_CurClust(T); = 0 if new DIRentry (create write file)
     MOV SD_BUF+28(Y),HDLL_CurSize(T); init handle LOW currentSizeL
-    MOV SD_BUF+30(Y),HDLH_CurSize(T);
+    MOV SD_BUF+30(Y),HDLH_CurSize(T); = 0 if new DIRentry (create write file)
     MOV     #0,&BufferPtr           ; reset BufferPtr all type of files
-    CMP.B   #2,W                    ; is a WRITE file handle?
-    JZ      ComputeHDLcurrentSector ; = 2, is a WRITE file
-    JGE     InitHandleRET           ; > 2, is a file to be deleted
-    MOV     #0,HDLW_BUFofst(T)      ; < 2, is a READ or a LOAD file
+    CMP.B   #2,W                    ; del file request (2) ?
+    JZ      InitHandleRET           ;
+    JGE HDLCurClusPlsOfst2sectorHL  ; set ClusterHL and SectorHL for all WRITE requests
+; ----------------------------------;
+    MOV     #0,HDLW_BUFofst(T)      ; < 2, is a READ or a LOAD request
     CMP.B   #-1,W                   ;
     JZ      ReplaceInputBuffer      ; case of first loaded file
     JL      SaveBufferContext       ; case of other loaded file
-    JMP SetBufLenAndLoadCurSector   ; case of READ file
+    JMP     SetBufLenLoadCurSector  ; case of READ file
 ; ----------------------------------;
 ReplaceInputBuffer                  ;
 ; ----------------------------------;
-    MOV #SDIB_ORG,&CIB_ADR          ; set SD Input Buffer as Current Input Buffer before return to QUIT
+    MOV #SDIB_ORG,&CIB_ORG          ; set SD Input Buffer as Current Input Buffer before return to QUIT
     MOV #SD_ACCEPT,&PFAACCEPT       ; redirect ACCEPT to SD_ACCEPT before return to QUIT
 ; ----------------------------------;
-SaveBufferContext                   ; (see CloseHandleT) 
+SaveBufferContext                   ; (see CloseHandle)
 ; ----------------------------------;
     MOV &SOURCE_LEN,HDLW_PrevLEN(T) ; = CPL
     SUB &TOIN,HDLW_PrevLEN(T)       ; PREVLEN = CPL - >IN
     MOV &SOURCE_ORG,HDLW_PrevORG(T) ; = CIB
     ADD &TOIN,HDLW_PrevORG(T)       ; PrevORG = CIB + >IN
-    JMP SetBufLenAndLoadCurSector   ; then RET
+    JMP SetBufLenLoadCurSector      ; then RET
+; ----------------------------------;
+InitHandleRET                       ;
+; ----------------------------------;
+    MOV @RSP+,PC                    ;
 ; ----------------------------------;
 
 
+; sequentially load in SD_BUF bytsPerSec bytes of a file opened as read or as load
+; if new bufferLen have a size <= BufferPtr, closes the file then RET.
+; if previous bufferLen had a size < bytsPerSec, closes the file and reloads previous LOADed file if exist.
+; HDLL_CurSize leaves the not yet read size
+; All used registers must be initialized.
+; ==================================;
+Read_File                           ; <== SD_ACCEPT, READ
+; ==================================;
+    MOV     &CurrentHdl,T           ;
+    MOV     #0,&BufferPtr           ; reset BufferPtr (the buffer is already read)
 ; ----------------------------------;
-CloseHandleHere                     ;
+    CMP     #bytsPerSec,&BufferLen  ;
+    JNZ     CloseHandle             ; because this last and incomplete sector is already read
+    SUB #bytsPerSec,HDLL_CurSize(T) ; HDLL_CurSize is decremented of one sector lenght
+    SUBC    #0,HDLH_CurSize(T)      ;
+    ADD.B   #1,HDLB_ClustOfst(T)    ; current cluster offset is incremented
+    CMP.B &SecPerClus,HDLB_ClustOfst(T) ; Cluster Bound reached ?
+    JNC     SetBufLenLoadCurSector  ; no
+; ----------------------------------;
+;SearchNextClusterInFAT1            ;
+; ----------------------------------;
+    MOV.B   #0,HDLB_ClustOfst(T)    ; reset Current_Cluster sectors offset
+    CALL    #HDLcurClus2FATsecWofstY;WXY  Output: FATsector W=FATsector, Y=FAToffset
+    CALL    #ReadFAT1SectorW        ;SWX (< 65536)
+    MOV     #0,HDLH_CurClust(T)     ; preset HDLH_CurClust(T)=0 for FAT16
+    MOV SD_BUF(Y),HDLL_CurClust(T)  ;
+    MOV SD_BUF+2(Y),HDLH_CurClust(T); set HDLH_CurClust(T)=0 for FAT32
+; ==================================;
+SetBufLenLoadCurSector              ;WXY <== previous handle reLOAD with BufferPtr<>0
+; ==================================;
+    MOV     #bytsPerSec,&BufferLen  ; preset BufferLen
+    CMP     #0,HDLH_CurSize(T)      ; CurSize > 65535 ?
+    JNZ     LoadCurSectorHL         ; yes
+    CMP HDLL_CurSize(T),&BufferPtr  ; BufferPtr >= CurSize ? (BufferPtr = 0 or see RestorePreviousLoadedBuffer)
+    JC      CloseHandle             ; yes
+    CMP #bytsPerSec,HDLL_CurSize(T) ; CurSize >= 512 ?
+    JC      LoadCurSectorHL         ; yes
+    MOV HDLL_CurSize(T),&BufferLen  ; no: adjust BufferLen
+; ==================================;
+LoadCurSectorHL                     ;
+; ==================================;
+    CALL #HDLCurClusPlsOfst2sectorHL;SWX
+; ==================================;
+ReadSectorHL                        ;
+; ==================================;
+    MOV     &SectorL,W              ; Low
+    MOV     &SectorH,X              ; High
+    JMP     ReadSectorWX            ; SWX then RET
+; ----------------------------------;
+
+
+; ----------------------------------;
+CloseHandleT                        ;
 ; ----------------------------------;
     MOV.B #0,HDLB_Token(T)          ; release the handle
     MOV @T,T                        ; T = previous handle
@@ -296,8 +282,8 @@ CloseHandleHere                     ;
 RestorePreviousLoadedBuffer         ;
 ; ----------------------------------;
     MOV HDLW_BUFofst(T),&BufferPtr  ; restore previous BufferPtr
-    CALL #SetBufLenAndLoadCurSector ; then reload previous buffer
-    BIC #Z,SR                       ; 
+    CALL    #SetBufLenLoadCurSector ; then reload previous buffer
+    BIC #Z,SR                       ;
 ; ----------------------------------;
 CloseHandleRet                      ;
     MOV @RSP+,PC                    ; Z = 1 if no more handle
@@ -305,17 +291,28 @@ CloseHandleRet                      ;
 
 
 ; ==================================;
-CloseHandleT                        ; <== CLOSE, Read_File, TERM2SD", OPEN_DEL
+CloseHandle                         ; <== CLOSE, Read_File, TERM2SD", OPEN_DEL
 ; ==================================;
     MOV &CurrentHdl,T               ;
     CMP #0,T                        ; no handle?
     JZ CloseHandleRet               ; RET
 ; ----------------------------------;
     .IFDEF SD_CARD_READ_WRITE
-    CMP.B #2,HDLB_Token(T)          ; opened as write (updated) file ?
-    JNZ TestClosedToken             ; no
-    CALL #WriteBuffer               ;SWXY
-    CALL #OPWW_UpdateDirectory      ;SWXY
+    CMP.B #4,HDLB_Token(T)          ; WRITE file ?
+    JNZ TestClosedToken             ; no, case of DEL READ LOAD file
+;; ----------------------------------; optionnal
+;    MOV &BufferPtr,W                ;
+;FullFillZero                        ;the remainder of sector
+;    CMP     #BytsPerSec,W           ;2 buffer full ?
+;    JZ      CloseWriteHandle        ;2 remainding of buffer is full filled with 0
+;    MOV.B   #0,SD_BUF(W)            ;3
+;    ADD     #1,W                    ;1
+;    JMP     FullFillZero            ;2
+;; ----------------------------------;
+WriteBeforeClose
+    CALL #WriteSD_Buf               ;SWX
+CloseWriteHandle
+    CALL #LoadUpdateSaveDirEntry    ;SWXY
     .ENDIF                          ;
 ; ----------------------------------;
 TestClosedToken                     ;
@@ -324,7 +321,7 @@ TestClosedToken                     ;
 ; ----------------------------------;
 CaseOfAnyReadWriteDelFileIsClosed   ; token >= 0
 ; ----------------------------------;
-    JGE CloseHandleHere             ; then RET
+    JGE CloseHandleT                ; then RET
 ; ----------------------------------;
 CaseOfAnyLoadedFileIsClosed         ; -- org' len'   R-- QUIT3 dst_ptr dst_len SD_ACCEPT
 ; ----------------------------------;
@@ -335,10 +332,10 @@ RestoreSD_ACCEPTContext             ;
 ; ----------------------------------;
 ReturnOfSD_ACCEPT                   ;
 ; ----------------------------------;
-    ADD #6,RSP                      ; R-- QUIT4     empties return stack
+    ADD #6,RSP                      ; R-- QUIT3     empties return stack
     MOV @RSP+,IP                    ;               skip return to SD_ACCEPT
 ; ----------------------------------;
-    CALL #CloseHandleHere           ;               Z = 1 if no more handle
+    CALL #CloseHandleT              ;               Z = 1 if no more handle
 ; ----------------------------------;
 CheckFirstLoadedFileIsClosed        ;
 ; ----------------------------------;
@@ -347,12 +344,30 @@ CheckFirstLoadedFileIsClosed        ;
 ; ----------------------------------;
 RestoreDefaultACCEPT                ;               if no more handle, first loaded file is closed...
 ; ----------------------------------;
-    MOV #TIB_ORG,&CIB_ADR           ;               restore TIB as Current Input Buffer for next line (next QUIT)
+    MOV #TIB_ORG,&CIB_ORG           ;               restore TIB as Current Input Buffer for next line (next QUIT)
     MOV #BODYACCEPT,&PFAACCEPT      ;               restore default ACCEPT for next line (next QUIT)
     MOV #ECHO,PC                    ; -- org len    if return to Terminal ACCEPT
 ; ----------------------------------;
 
 
+; ==================================; input : X = countdown_of_spaces, Y = DIRsector_buffer ptr
+ParseEntryNameSpaces                ;XY
+; ==================================; output: Z flag, Y is set after the last space char
+    CMP     #0,X                    ;
+    JZ      PENSL_END               ;
+; ----------------------------------;
+ParseEntryNameSpacesLoop            ;
+; ----------------------------------;
+    CMP.B   #32,SD_BUF(Y)           ; SPACE ?
+    JNZ     PENSL_END               ; no: RET
+    ADD     #1,Y                    ;
+    SUB     #1,X                    ;
+    JNZ     ParseEntryNameSpacesLoop;
+PENSL_END                           ;
+    MOV @RSP+,PC                    ;
+; ----------------------------------;
+
+
    .IFDEF SD_CARD_READ_WRITE
 
 ;-----------------------------------------------------------------------
@@ -375,56 +390,59 @@ RestoreDefaultACCEPT                ;               if no more handle, first loa
 ; if pathname is a directory, change current directory.
 ; if an error is encountered, no handle is set, error message is displayed.
 
-; READ" acts also as CD dos command : 
+; READ" acts also as CD dos command :
 ;     - READ" a:\misc\" set a:\misc as current directory
 ;     - READ" a:\" reset current directory to root
 ;     - READ" ..\" change to parent directory
 
 ; to close all files type : WARM (or COLD, RESET)
 
-; ----------------------------------;
+; ==================================;
     FORTHWORDIMM "READ\34"          ; immediate
-; ----------------------------------;
+; ==================================;
 READDQ
-    MOV.B   #1,W                    ; W = OpenType
+    MOV.B   #1,W                    ; W = READ request
     JMP     Open_File               ;
 ; ----------------------------------;
 
-;Z WRITE" pathame"   --       immediate
-; open or create the file designed by pathname.
-; an error occurs if the file is already opened.
-; the last sector of the file is loaded in buffer, and bufferPtr leave the address of the first free byte.
-; compile state : compile WRITE" pathname"
-; exec state : open or create entry selected by pathname
+;Z DEL" pathame"   --       immediate
+; ==================================;
+    FORTHWORDIMM "DEL\34"           ; immediate
+; ==================================;
+DELDQ
+    MOV.B   #2,W                    ; W = DEL request
+    JMP     Open_File               ;
 ; ----------------------------------;
+
+;Z WRITE" pathame"   --       immediate
+; if file exist, free all clusters then switch handle to WRITE
+; if "no such file", open a write handle
+; ==================================;
     FORTHWORDIMM "WRITE\34"         ; immediate
-; ----------------------------------;
+; ==================================;
 WRITEDQ
-    MOV.B   #2,W                    ; W = OpenType
+    MOV.B   #4,W                    ; W = WRITE request
     JMP     Open_File               ;
 ; ----------------------------------;
 
-
-;Z DEL" pathame"   --       immediate
-; compile state : compile DEL" pathname"
-; exec state : DELETE entry selected by pathname
-
-; ----------------------------------;
-    FORTHWORDIMM "DEL\34"           ; immediate
-; ----------------------------------;
-DELDQ
-    MOV.B   #4,W                    ; W = OpenType
+;Z APPEND" pathame"   --       immediate
+; open the file designed by pathname.
+; the last sector of the file is loaded in buffer, and bufferPtr leave the address of the first free byte.
+; ==================================;
+    FORTHWORDIMM "APPEND\34"        ; immediate
+; ==================================;
+APPENDQ
+    MOV.B   #8,W                    ; W = APPEND request
     JMP     Open_File               ;
 ; ----------------------------------;
 
-
-;Z CLOSE      --     
+;Z CLOSE      --
 ; close current handle
-; ----------------------------------;
+; ==================================;
     FORTHWORD "CLOSE"               ;
-; ----------------------------------;
-    CALL    #CloseHandleT           ;
-    MOV @IP+,PC                           ;
+; ==================================;
+    CALL    #CloseHandle            ;
+    MOV @IP+,PC                     ;
 ; ----------------------------------;
 
     .ENDIF ; SD_CARD_READ_WRITE
@@ -436,20 +454,19 @@ DELDQ
 ;Z LOAD" pathame"   --       immediate
 ; compile state : compile LOAD" pathname"
 ; exec state : open a file from SD card via its pathname
-; see Open_File primitive for pathname conventions 
+; see Open_File primitive for pathname conventions
 ; the opened file becomes the new input stream for INTERPRET
 ; this command is recursive, limited only by the count of free handles (up to 8)
-; LOAD" acts also as dos command "CD" : 
+; LOAD" acts also as dos command "CD" :
 ;     - LOAD" \misc\" set a:\misc as current directory
 ;     - LOAD" \" reset current directory to root
 ;     - LOAD" ..\" change to parent directory
 
-; ----------------------------------;
+; ==================================;
     FORTHWORDIMM "LOAD\34"          ; immediate
+; ==================================;
+    MOV.B   #-1,W                   ; W = LOAD request
 ; ----------------------------------;
-    MOV.B   #-1,W                   ; W = OpenType
-; ----------------------------------;
-
 
 ; ======================================================================
 ; OPEN FILE primitive
@@ -466,12 +483,12 @@ DELDQ
 ;                   ...open the file as read and return the handle in CurrentHdl.
 ;               if the pathname is a directory, change current directory, no handle is set.
 ;               if an error is encountered, no handle is set, an error message is displayed.
-; ----------------------------------;
+; ==================================;
 Open_File                           ; --
-; ----------------------------------;
+; ==================================;
     SUB     #2,PSP                  ;
     MOV     TOS,0(PSP)              ;
-    MOV     W,TOS                   ; -- Open_type (0=LOAD", 1=READ", 2=WRITE", 4=DEL")
+    MOV     W,TOS                   ; -- Open_type (-1=LOAD", 1=READ", 2=DEL", 4=WRITE", 8=APPEND")
     CMP     #0,&STATE               ;
     JZ      OPEN_EXEC               ;
 ; ----------------------------------;
@@ -484,57 +501,49 @@ OPEN_COMP                           ;
 ; ----------------------------------;
 OPEN_EXEC                           ;
     mDOCOL                          ; if exec state
-    .word   lit,'"',WORDD,COUNT     ; -- open_type addr u
+    .word   lit,'"',WORDD,COUNT     ; -- open_type addr cnt
     .word   $+2                     ;
     MOV     @RSP+,IP                ;
 ; ----------------------------------;
-ParenOpen                           ; -- open_type HERE             HERE as pathname ptr
+ParenOpen                           ; -- open_type addr cnt
 ; ----------------------------------;
     MOV     @PSP+,rDOCON            ; rDOCON = addr = pathname PTR
     ADD     rDOCON,TOS              ; TOS = EOS (End Of String) = pathname end
     .IFDEF SD_CARD_READ_WRITE       ;
-    MOV     TOS,&EndOfPath          ; for WRITE CREATE part
+    MOV     TOS,&PathName_END       ; for WRITE CREATE part
     .ENDIF
 ; ----------------------------------;
-OPN_PathName                        ;
+;OPN_PathName                       ;
 ; ----------------------------------;
+    MOV     #2,&ClusterL            ; set root DIR cluster
+    MOV     #0,&ClusterH            ;
     MOV     #1,S                    ; error 1
-    MOV     &DIRClusterL,&ClusterL  ;
-    MOV     &DIRclusterH,&ClusterH  ;
     CMP     rDOCON,TOS              ; PTR = EOS ? (end of pathname ?)
-    JZ      OPN_NoPathName          ; yes: error 1 ===>
+    JZ      OPEN_Error              ; yes: error 1 ===>
 ; ----------------------------------;
     CMP.B   #':',1(rDOCON)          ; A: B: C: ... in pathname ?
     JNZ     OPN_AntiSlashStartTest  ; no
     ADD     #2,rDOCON               ; yes : skip drive because not used, only one SD_card
 ; ----------------------------------;
 OPN_AntiSlashStartTest              ;
-    CMP.B   #'\\',0(rDOCON)          ; "\" as first char ?
+    CMP.B   #'\\',0(rDOCON)         ; "\" as first char ?
     JNZ     OPN_SearchDirSector     ; no
     ADD     #1,rDOCON               ; yes : skip '\' char
-    MOV     &FATtype,&ClusterL      ;       FATtype = 1 as FAT16 RootDIR, FATtype = 2 = FAT32RootDIR
-    MOV     #0,&ClusterH            ;
 ; ----------------------------------;
-OPN_EndOfStringTest                 ; <=== dir found in path
+OPN_EndOfStringTest                 ;
 ; ----------------------------------;
     CMP     rDOCON,TOS              ; PTR = EOS ? (end of pathname ?)
-    JZ      OPN_SetCurrentDIR       ; yes
+    JZ      OPN_SetCurrentDIR       ; if pathname ptr = end of string
 ; ----------------------------------;
-OPN_SearchDirSector                 ;
+OPN_SearchDirSector                 ; <=== dir found in path
 ; ----------------------------------;
-    MOV     rDOCON,&Pathname        ; save Pathname ptr
-    CALL    #ComputeClusFrstSect    ; output: SectorHL
-    MOV     #32,rDODOES             ; preset countdown for FAT16 RootDIR sectors
-    CMP     #2,&FATtype             ; FAT32?
-    JZ      OPN_SetDirSectors       ; yes
-    CMP     &ClusterL,&FATtype      ; FAT16 AND RootDIR ?
-    JZ      OPN_LoadDIRsector       ; yes
-OPN_SetDirSectors                   ;
-    MOV     &SecPerClus,rDODOES     ;
+    MOV     rDOCON,&PathName_PTR    ; save Pathname ptr
+    CALL    #ClusterHLtoFrstSectorHL; output: SectorHL
+    MOV     &SecPerClus,rDODOES     ; DIR sectors = one cluster sectors
 ; ----------------------------------;
 OPN_LoadDIRsector                   ; <=== Dir Sector loopback
 ; ----------------------------------;
-    CALL    #ReadSector             ;SWX
+    CALL    #ReadSectorHL           ;SWX
 ; ----------------------------------;
     MOV     #2,S                    ; prepare no such file error
     MOV     #0,W                    ; init entries count
@@ -544,7 +553,7 @@ OPN_SearchDIRentry                  ; <=== DIR Entry loopback
     MOV     W,Y                     ; 1
     RLAM    #4,Y                    ;             --> * 16
     ADD     Y,Y                     ; 1           --> * 2
-    MOV     Y,&EntryOfst            ; EntryOfst points to first free entry
+    MOV     Y,&DIREntryOfst         ; DIREntryOfst
     CMP.B   #0,SD_BUF(Y)            ; free entry ? (end of entries in DIR)
     JZ      OPN_NoSuchFile          ; error 2 NoSuchFile, used by create ===>
     MOV     #8,X                    ; count of chars in entry name
@@ -559,14 +568,15 @@ OPN_CompareName8chars               ;
     ADD     #1,rDOCON               ; 9th char of Pathname is always a dot
 ; ----------------------------------;
 OPN_FirstCharMismatch               ;
+; ----------------------------------;
     CMP.B   #'.',-1(rDOCON)         ; FirstNotEqualChar of Pathname = dot ?
     JZ      OPN_DotFound            ;
 ; ----------------------------------;
-OPN_DotNotFound                     ; 
+OPN_DotNotFound                     ;
 ; ----------------------------------;
-    ADD     #3,X                    ; for next cases not equal chars of entry until 11 must be spaces
+    ADD     #3,X                    ; for next cases not equal chars of DIRentry until 11 must be spaces
     CALL    #ParseEntryNameSpaces   ; for X + 3 chars
-    JNZ     OPN_DIRentryMismatch    ; if a char entry <> space  
+    JNZ     OPN_DIRentryMismatch    ; if a char entry <> space
     CMP.B   #'\\',-1(rDOCON)        ; FirstNotEqualChar of Pathname = "\" ?
     JZ      OPN_EntryFound          ;
     CMP     rDOCON,TOS              ; EOS exceeded ?
@@ -574,9 +584,9 @@ OPN_DotNotFound                     ;
 ; ----------------------------------;
 OPN_DIRentryMismatch                ;
 ; ----------------------------------;
-    MOV     &pathname,rDOCON        ; reload Pathname
+    MOV     &PathName_PTR,rDOCON    ; reload PathName_PTR as it was at last OPN_SearchDirSector
     ADD     #1,W                    ; inc entry
-    CMP     #16,W                   ; 16 entry in a sector
+    CMP     #16,W                   ; 16 entries in a sector
     JNZ     OPN_SearchDIRentry      ; ===> loopback for search next DIR entry
 ; ----------------------------------;
     ADD     #1,&SectorL             ;
@@ -585,14 +595,14 @@ OPN_DIRentryMismatch                ;
     JNZ     OPN_LoadDIRsector       ; ===> loopback for search next DIR sector
 ; ----------------------------------;
     MOV     #4,S                    ;
-    JMP     OPN_EndOfDIR            ; error 4 ===> 
+    JMP     OPEN_Error              ; ENd of DIR error 4 ===>
 ; ----------------------------------;
 
 ; ----------------------------------;
 OPN_DotFound                        ; not equal chars of entry name until 8 must be spaces
 ; ----------------------------------;
     CMP.B   #'.',-2(rDOCON)         ; LastCharEqual = dot ?
-    JZ      OPN_DIRentryMismatch    ; case of first DIR entry = "." and Pathname = "..\" 
+    JZ      OPN_DIRentryMismatch    ; case of first DIR entry = "." and Pathname = "..\"
     CALL    #ParseEntryNameSpaces   ; parse X spaces, X{0,...,7}
     JNZ     OPN_DIRentryMismatch    ; if a char entry <> space
     MOV     #3,X                    ;
@@ -607,7 +617,7 @@ OPN_CompareExt3chars                ;
     JMP     OPN_EntryFound          ;
 OPN_ExtNotEqualChar                 ;
     CMP     rDOCON,TOS              ; EOS exceeded ?
-    JC      OPN_DIRentryMismatch    ; no, loop back   
+    JC      OPN_DIRentryMismatch    ; no, loop back
     CMP.B   #'\\',-1(rDOCON)        ; FirstNotEqualChar = "\" ?
     JNZ     OPN_DIRentryMismatch    ;
     CALL    #ParseEntryNameSpaces   ; parse X spaces, X{0,...,3}
@@ -615,12 +625,12 @@ OPN_ExtNotEqualChar                 ;
 ; ----------------------------------;
 OPN_EntryFound                      ; Y points on the file attribute (11th byte of entry)
 ; ----------------------------------;
-    MOV     &EntryOfst,Y            ; reload DIRentry
+    MOV     &DIREntryOfst,Y         ; reload DIRentry
     MOV     SD_BUF+26(Y),&ClusterL  ; first clusterL of file
-    MOV     SD_BUF+20(Y),&ClusterH  ; first clusterT of file, always 0 if FAT16
+    MOV     SD_BUF+20(Y),&ClusterH  ; first clusterH of file
 OPN_EntryFoundNext
     BIT.B   #10h,SD_BUF+11(Y)       ; test if Directory or File
-    JZ      OPN_FileFound           ;
+    JZ      OPN_FileFound           ; is a file
 ; ----------------------------------;
 OPN_DIRfound                        ; entry is a DIRECTORY
 ; ----------------------------------;
@@ -628,29 +638,25 @@ OPN_DIRfound                        ; entry is a DIRECTORY
     JNZ     OPN_DIRfoundNext        ;
     CMP     #0,&ClusterL            ; case of ".." entry, when parent directory is root
     JNZ     OPN_DIRfoundNext        ;
-    MOV     &FATtype,&ClusterL      ; set cluster as RootDIR cluster
+    MOV     #2,&ClusterL            ; set cluster as RootDIR cluster
 OPN_DIRfoundNext                    ;
-    CMP     rDOCON,TOS              ; EOS exceeded ?
-    JC      OPN_EndOfStringTest     ; no: (we presume that FirstNotEqualChar = "\") ==> loop back
+    CMP     rDOCON,TOS              ; EOS reached ?
+    JNZ     OPN_SearchDirSector     ; no: (we presume that FirstNotEqualChar = "\") ==> loop back
 ; ----------------------------------;
-OPN_SetCurrentDIR                   ; -- open_type ptr
+OPN_SetCurrentDIR                   ; -- open_type ptr  PathName_PTR is set on name of this DIR
 ; ----------------------------------;
     MOV     &ClusterL,&DIRClusterL  ;
     MOV     &ClusterH,&DIRclusterH  ;
-    MOV     #0,0(PSP)               ; -- open_type ptr      open_type = 0 
+    MOV     #0,0(PSP)               ; -- open_type ptr      open_type = 0
     JMP     OPN_Dir
 ; ----------------------------------;
-OPN_FileFound                       ; -- open_type ptr
+OPN_FileFound                       ; -- open_type ptr  PathName_PTR is set on name of file
 ; ----------------------------------;
-    MOV     @PSP,W                  ;   
+    MOV     @PSP,W                  ;
     CALL    #GetFreeHandle          ;STWXY init handle(HDLL_DIRsect,HDLW_DIRofst,HDLL_FirstClus = HDLL_CurClust,HDLL_CurSize)
 ; ----------------------------------; output : T = CurrentHdl*, S = ReturnError, Y = DIRentry offset
-OPN_NomoreHandle                    ; S = error 16
-OPN_alreadyOpen                     ; S = error 8
-OPN_EndOfDIR                        ; S = error 4
 OPN_NoSuchFile                      ; S = error 2
-OPN_NoPathName                      ; S = error 1
-OPN_Dir
+OPN_Dir                             ;
     MOV     #xdodoes,rDODOES        ;                   restore rDODOES
     MOV     #xdocon,rDOCON          ;                   restore rDODOES
     MOV     @PSP+,W                 ; -- ptr            W = open_type
@@ -665,7 +671,7 @@ OPN_Dir
 ;       from open(GetFreeHandle): Y = DIRentry, T = CurrentHdl
 ; output: nothing else abort on error
 ; ======================================================================
-    
+
 ; ----------------------------------;
 OPEN_QDIR                           ;
 ; ----------------------------------;
@@ -676,15 +682,16 @@ OPEN_QLOAD                          ;
 ; ----------------------------------;
     .IFDEF SD_CARD_READ_WRITE       ;
     CMP.B   #-1,W                   ; open_type = LOAD"
-    JNZ     OPEN_QREAD              ; next step
+    JNZ     OPEN_1W                 ; next step
     .ENDIF                          ;
 ; ----------------------------------; here W is free
 OPEN_LOAD                           ;
 ; ----------------------------------;
     CMP     #0,S                    ; open file happy end ?
     JNZ     OPEN_Error              ; no
-OPEN_LOAD_END
-    MOV @IP+,PC                     ;
+OPEN_LOAD_END                       ;
+    MOV #NOECHO,PC                  ;
+;    MOV @IP+,PC                     ;
 ; ----------------------------------;
 
 ; ----------------------------------;
@@ -703,43 +710,40 @@ OPEN_Error                          ; S= error
     .word   BRAN,ABORT_SD           ; to insert S error as flag, no return
 ; ----------------------------------;
 
-
     .IFDEF BOOTLOADER
+; to enable bootstrap: BOOT
+; to disable bootstrap: NOBOOT
+
+; XBOOT          [SYSRSTIV|USERSTIV] --
+; here we are after INIT_FORTH
+; performs bootstrap from SD_CARD\BOOT.4th file, ready to test SYSRSTIV|USERSYS value
+XBOOT   ;    BIT #1,TOS              ; USERSYS request ?
+        ;    JNZ AbortBoot           ;
+        ;    CMP #0,TOS              ; WARM request ?
+        ;    JZ AbortBoot            ; if yes
+            BIT.B #CD_SD,&SD_CDIN   ; SD_memory in SD_Card socket ?
+            JZ BOOT_YES             ; if yes
+AbortBoot   MOV #WARM,PC            ; goto WARM without return
+; ----------------------------------;
+BOOT_YES    CALL &HARD_APP          ; CALL HARD_APP (which includes INIT_HARD_SD)
+            MOV #PSTACK-2,PSP       ; preserve SYSRSTIV|USERSYS in TOS for BOOT.4TH tests
+            MOV #0,0(PSP)           ; set 0 for next SYS use
+            mDOCOL                  ;
+    .word XSQUOTE                   ; -- SYSRSTIV|USERSYS addr u
+    .byte 15,"LOAD\34 BOOT.4TH\34"  ; LOAD" BOOT.4TH" issues error 2 if no such file...
+;    .byte 22,"NOECHO LOAD\34 BOOT.4TH\34"  ; LOAD" BOOT.4TH" issues error 2 if no such file...
+    .word BRAN,QUIT4                ; to interpret this string, then loop back to QUIT
+; ----------------------------------;
 
-            FORTHWORD "[PFA]"       
-; [PFA]         CFA -- [PFA]        ; add source indirection to DEFERSTORE
-            ADD #2,TOS 
-            MOV @TOS,TOS
+; ==================================;
+            FORTHWORD "BOOT"        ; to enable BOOT
+; ==================================;
+            MOV #XBOOT,&PUCNEXT     ; inserts XBOOT in PUC chain.
             MOV @IP+,PC
 
-; to enable bootstrap:  ' BOOT IS WARM
-; to disable bootstrap: ' BOOT [PFA] IS WARM
-
-            FORTHWORD "BOOT"
-; BOOT          RSTIV_MEM --
-; performs bootstrap from SD_CARD\BOOT.4th file
-BOOT        MOV @PC+,X
-PFA_BOOT    .word INI_HARD_SD       ; X = INI_HARD_SD addr, 2(X) = [PFA_X] = previous INI_HARD_APP (INIT_TERM) addr , see forthMSP430FR_SD_INIT.asm
-            CMP #2,TOS              ; RSTIV_MEM <> WARM ?
-            JC QSD_MEM              ; yes
-            MOV @RSP+,PC            ; if RSTIV_MEM U< 2, return to BODYWARM
-QSD_MEM     BIT.B #CD_SD,&SD_CDIN   ; SD_memory in SD_Card socket ?
-            JZ BOOT_YES             ;
-NO_BOOT     MOV 2(X),PC             ; if no, goto previous INIT: INIT TERMINAL then ret to PFAWARM
-;---------------------------------------------------------------------------------
-; RESET 7: if RSTIV_MEM <> WARM, init TERM, init SD
-;---------------------------------------------------------------------------------
-BOOT_YES    CALL X                  ; init TERM UC first then init SD card, TOS = RSTIV_MEM
-;---------------------------------------------------------------------------------
-; END OF RESET
-;---------------------------------------------------------------------------------
-            MOV #PSTACK-2,PSP       ;
-            MOV #0,0(PSP)           ; PUSH 0 on Stack
-            MOV #0,&STATE           ; )
-            MOV #LSTACK,&LEAVEPTR   ; > same as QUIT
-            MOV #RSTACK,RSP         ; )
-            ASMtoFORTH              ;
-            .word XSQUOTE                   ; -- RSTIV_MEM addr u
-            .byte 15,"LOAD\34 BOOT.4TH\34"  ; LOAD" BOOT.4TH" issues error 2 if no such file...
-            .word BRAN,QUIT4                ; to interpret this string
-        .ENDIF
+; ==================================;
+            FORTHWORD "NOBOOT"      ; to disable BOOT
+; ==================================;
+            MOV #WARM,&PUCNEXT      ; removes XBOOT from PUC chain.
+            MOV @IP+,PC             ;
+    .ENDIF
index 400fd52..1711952 100644 (file)
@@ -22,14 +22,14 @@ ComputePhysicalSector               ; input = logical sector...
 ;Compute CMD                        ;
 ; ----------------------------------;
     MOV     #1,&SD_CMD_FRM          ;3 $(01 00 xx xx xx CMD) set stop bit in CMD frame
-    CMP     #2,&FATtype             ;3 FAT32 ?          
-    JZ      FAT32_CMD               ;2 yes
-FAT16_CMD                           ;  FAT16 : CMD17/24 byte address = Sector * BPB_BytsPerSec
-    ADD     W,W                     ;1 shift left one Sector
-    ADDC.B  X,X                     ;1
-    MOV     W,&SD_CMD_FRM+2         ;3 $(01 00 ll LL xx CMD)
-    MOV.B   X,&SD_CMD_FRM+4         ;3 $(01 00 ll LL hh CMD) 
-    JMP     WaitIdleBeforeSendCMD   ;
+;    CMP     #2,&FATtype             ;3 FAT32 ?
+;    JZ      FAT32_CMD               ;2 yes
+;FAT16_CMD                           ;  FAT16 : CMD17/24 byte address = Sector * BPB_BytsPerSec
+;    ADD     W,W                     ;1 shift left one Sector
+;    ADDC.B  X,X                     ;1
+;    MOV     W,&SD_CMD_FRM+2         ;3 $(01 00 ll LL xx CMD)
+;    MOV.B   X,&SD_CMD_FRM+4         ;3 $(01 00 ll LL hh CMD)
+;    JMP     WaitIdleBeforeSendCMD   ;
 FAT32_CMD                           ;  FAT32 : CMD17/24 sector address
     MOV.B   W,&SD_CMD_FRM+1         ;3 $(01 ll xx xx xx CMD)
     SWPB    W                       ;1
@@ -44,9 +44,9 @@ WaitIdleBeforeSendCMD               ; <=== CMD41, CMD1, CMD16 (forthMSP430FR_SD_
     ADD.B   #1,W                    ; expected value = FFh <==> MISO = 1 = SPI idle state
     JNZ WaitIdleBeforeSendCMD       ; loop back if <> FFh
 ; ==================================; W = 0 = expected R1 response = ready, for CMD41,CMD16, CMD17, CMD24
-sendCommand                         ;  
+sendCommand                         ;
 ; ==================================;
-                                    ; input : SD_CMD_FRM : {CRC,byte_l,byte_L,byte_h,byte_H,CMD} 
+                                    ; input : SD_CMD_FRM : {CRC,byte_l,byte_L,byte_h,byte_H,CMD}
                                     ;         W = expected return value
                                     ; output  W is unchanged, flag Z is positionned
                                     ; reverts CMD bytes before send : $(CMD hh LL ll 00 CRC)
@@ -54,7 +54,7 @@ sendCommand                         ;
 ; ----------------------------------;
 Send_CMD_PUT                        ; performs little endian --> big endian conversion
 ; ----------------------------------;
-    MOV.B   SD_CMD_FRM(X),&SD_TXBUF ;5 
+    MOV.B   SD_CMD_FRM(X),&SD_TXBUF ;5
     CMP     #0,&SD_BRW              ;3 full speed ?
     JZ      FullSpeedSend           ;2 yes
 Send_CMD_Loop                       ;  case of low speed during memCardInit
@@ -69,7 +69,7 @@ FullSpeedSend                       ;
                                     ; host must provide height clock cycles to complete operation
                                     ; here X=255, so wait for CMD return expected value with PUT FFh 256 times
 
-;    MOV     #4,X                    ; to pass made in PRC SD_Card init 
+;    MOV     #4,X                    ; to pass made in PRC SD_Card init
 ;    MOV     #16,X                   ; to pass Transcend SD_Card init
 ;    MOV     #32,X                   ; to pass Panasonic SD_Card init
 ;    MOV     #64,X                   ; to pass SanDisk SD_Card init
@@ -114,10 +114,10 @@ SPI_X_GET                           ; PUT(FFh) X times, output : W = last receiv
 ; ==================================;
 SPI_PUT                             ; PUT(W) X times, output : W = last received byte, X = 0
 ; ==================================;
-            SWPB W                  ;1 
+            SWPB W                  ;1
             MOV.B W,&SD_TXBUF       ;3 put W high byte then W low byte and so forth, that performs little to big endian conversion
             CMP #0,&SD_BRW          ;3 full speed ?
-            JZ FullSpeedPut         ;2 
+            JZ FullSpeedPut         ;2
 SPI_PUTWAIT BIT #RX_SD,&SD_IFG      ;3
             JZ SPI_PUTWAIT          ;2
             CMP.B #0,&SD_RXBUF      ;3 reset RX flag
@@ -129,26 +129,26 @@ SPI_PUT_END MOV.B &SD_RXBUF,W       ;3
             MOV @RSP+,PC            ;4
 ; ----------------------------------;
 
-        ASMWORD "READ_SWX"
+        ASMWORD "R_SECT_WX"         ; Read SECTor W=lo, X=Hi
 ; ==================================;
 ReadSectorWX                        ; SWX read a logical sector
 ; ==================================;
     BIS     #1,S                    ; preset sd_read error
     MOV.B   #51h,&SD_CMD_FRM+5      ; CMD17 = READ_SINGLE_BLOCK
     CALL    #RW_Sector_CMD          ; which performs logical sector to physical sector then little endian to big endian conversion
-    JNE     SD_CARD_ERROR           ; time out error if R1 <> 0 
+    JNE     SD_CARD_ERROR           ; time out error if R1 <> 0
 ; ----------------------------------;
-WaitFEhResponse                     ; wait SD_Card response FEh
+WaitFEhResponse                     ; wait for SD_Card response = FEh
 ; ----------------------------------;
     CALL #SPI_GET                   ;
-    ADD.B   #2,W                    ;1 FEh expected value
-    JZ  ReadSectorFirstByte         ; 2
+    ADD.B   #2,W                    ;1 W = 0 ?
+    JZ  ReadSectorFirstByte         ;2 yes
     JNZ WaitFEhResponse             ;2
 ; ----------------------------------;
 ReadSectorLoop                      ; get 512+1 bytes, write 512 bytes in SD_BUF
 ; ----------------------------------;
     MOV.B   &SD_RXBUF,SD_BUF-1(X)   ; 5
-ReadSectorFirstByte                 ; 
+ReadSectorFirstByte                 ; W=0
     MOV.B   #-1,&SD_TXBUF           ; 3 put FF
     NOP                             ; 1 NOPx adjusted to avoid read SD_error
     ADD     #1,X                    ; 1
@@ -161,12 +161,12 @@ ReadWriteHappyEnd                   ; <==== WriteSector
 ; ----------------------------------;
     BIC #3,S                        ; reset read and write errors
     BIS.B #CS_SD,&SD_CSOUT          ; Chip Select high
-    MOV @RSP+,PC                    ; 
+    MOV @RSP+,PC                    ; W = 0
 ; ----------------------------------;
 
     .IFDEF SD_CARD_READ_WRITE
 
-        ASMWORD "WRITE_SWX"
+        ASMWORD "W_SECT_WX"         ; Write SECTor W=lo, X=Hi
 ; ==================================;
 WriteSectorWX                       ; write a logical sector
 ; ==================================;
@@ -194,7 +194,7 @@ WriteSkipCRC16                      ; CRC16 not used in SPI mode
 CheckWriteState                     ;
 ; ----------------------------------;
     BIC.B   #0E1h,W                 ; apply mask for Data response
-    CMP.B   #4,W                    ; data accepted
+    SUB.B   #4,W                    ; data accepted
     JZ      ReadWriteHappyEnd       ;
 ; ----------------------------------;
 
@@ -203,7 +203,7 @@ CheckWriteState                     ;
 ; SD Error n°
 ; High byte
 ; 1   = CMD17    read error
-; 2   = CMD24    write error 
+; 2   = CMD24    write error
 ; 4   = CMD0     time out (GO_IDLE_STATE)
 ; 8   = ACMD41   time out (APP_SEND_OP_COND)
 ; $10 = CMD16    time out (SET_BLOCKLEN)
@@ -219,7 +219,7 @@ CheckWriteState                     ;
 ; 7th bit = parameter error
 
 ; Data Response Token
-; Every data block written to the card will be acknowledged by a data response token. 
+; Every data block written to the card will be acknowledged by a data response token.
 ; It is one byte long and has the following format:
 ; %xxxx_sss0 with bits(3-1) = Status
 ;The meaning of the status bits is defined as follows:
@@ -234,19 +234,22 @@ SD_CARD_ERROR                       ; <=== SD_INIT errors 4,8,$10 from forthMSP4
     ADD &SD_RXBUF,S                 ; add SPI(GET) return value as low byte error
 SD_CARD_ID_ERROR                    ; <=== SD_INIT error $20 from forthMSP430FR_SD_INIT.asm
     BIS.B #CS_SD,&SD_CSOUT          ; Chip Select high
-    mDOCOL                          ;
+;    mDOCOL                          ;
+    mASM2FORTH                      ;
     .word   ECHO
     .word   XSQUOTE                 ; don't use S register
     .byte   11,"< SD Error!"        ;
 ; ----------------------------------;
 ABORT_SD                            ; <=== OPEN file errors from forthMSP430FR_SD_LOAD.asm
 ; ----------------------------------;
-    .word   $+2                     ;
+    mNEXTADR                        ;
     SUB #2,PSP                      ;
     MOV TOS,0(PSP)                  ;
-    MOV #10h,&BASE                  ; select hex
+    MOV #10h,&BASEADR               ; select hex
     MOV S,TOS                       ;
-    ASMtoFORTH                      ;
+;    MOV #TIB_ORG,&CIB_ADR           ;               restore TIB as Current Input Buffer
+;    MOV #BODYACCEPT,&PFAACCEPT      ;               restore default ACCEPT
+    mASM2FORTH                      ;
     .word UDOT,ABORT_TERM           ; no return...
 ; ----------------------------------;
 
index 6637cb5..4dc59bf 100644 (file)
@@ -1,6 +1,26 @@
  ; -*- coding: utf-8 -*-
 ; DTCforthMSP430FR5xxxSD_RW.asm
 
+; and only for FR5xxx and FR6xxx with RTC_B or RTC_C hardware if you want write file with date and time.
+
+; Tested with MSP-EXP430FR5969 launchpad
+; Copyright (C) <2015>  <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/>.
+
+
+
 ; ======================================================================
 ; READ" primitive as part of OpenPathName
 ; input from open:  S = OpenError, W = open_type, SectorHL = DIRsectorHL,
 ; ======================================================================
 
 ; ----------------------------------;
-OPEN_QREAD                          ;
+OPEN_1W                             ;
     CMP     #1,W                    ; open_type = READ" ?
-    JNZ     OPEN_QWRITE             ; no : goto next step
+    JNZ     OPEN_2W                 ; no : goto next step
 ; ----------------------------------;
 OPEN_READ                           ;
 ; ----------------------------------;
     CMP     #0,S                    ; open file happy end ?
     JNZ     OPEN_Error              ; no
-    MOV @IP+,PC                     ;
+    MOV     @IP+,PC                 ; no more to do
 ; ----------------------------------;
 
 ;Z READ            -- f
@@ -26,120 +46,199 @@ OPEN_READ                           ;
 ; sectors are loaded in SD_BUF and BufferLen leave the count of loaded bytes.
 ; when the last sector of file is loaded in buffer, the handle is automatically closed and flag is true (<>0).
 
-; ----------------------------------;
+; ==================================;
     FORTHWORD "READ"                ; -- fl     closed flag
-; ----------------------------------;
+; ==================================;
 READ
     SUB     #2,PSP                  ;
     MOV     TOS,0(PSP)              ;
     MOV     &CurrentHdl,TOS         ;
     CALL    #Read_File              ;SWX
-READ_END
-    SUB     &CurrentHdl,TOS         ; -- fl     if fl <>0 (if Z=0) handle is closed
-    MOV @IP+,PC                     ;
+    SUB     &CurrentHdl,TOS         ; -- fl     if fl<>0 (if Z=0) handle is closed
+    MOV     @IP+,PC                 ;
 ; ----------------------------------;
 
 
-;-----------------------------------------------------------------------
-; WRITE" (CREATE part) subroutines
-;-----------------------------------------------------------------------
-
-; parse all FAT sectors until free cluster is found 
-; this NewCluster is marked as the end's one (-1)
+; ==================================;
+SaveSectorWtoFATs                   ;SWXY W = FATsector loaded in SD_buf
+; ==================================;
+    MOV     W,Y                     ; Y = W
+    ADD     &OrgFAT1,W              ; update FAT#1
+    CALL    #WriteFATsectorW        ;SWX
+    MOV     Y,W                     ; W = FATsector
+    ADD     &OrgFAT2,W              ; update FAT#2
+WriteFATsectorW                     ;
+    MOV     #0,X                    ;
+    MOV     #WriteSectorWX,PC       ;SWX then RET
+; ----------------------------------;
 
+; parse all FAT sectors until free cluster is found
+; this New Cluster is marked as the end's one (-1)
 
-; input : CurFATsector
+; input : W = FATSector, Y = FAToffset
 ; use SWX registers
-; output: W = new FATsector, SD_BUF = [new FATsector], NewCluster
-;         SectorL is unchanged, FATS are not updated.
+; output: updated (ClusterHL, FATsector, W = FATsector), SD_BUF = [new FATsector]
+;         SectorHL is unchanged, FATS are updated.
 ;         S = 2 --> Disk FULL error
+; ==================================;
+SearchMarkNewClusterHL              ;SWXY <== WRITE_FILE, OPEN_WRITE_CREATE, OPEN_OVERWRITE
+; ==================================;
+    MOV     #8,S                    ; preset disk full return error
+    PUSH    W                       ;3  R-- FATsector
 ; ----------------------------------;
-SearchNewCluster                    ; <== CREATE file, WRITE_File
-; ----------------------------------;
-    MOV     #2,S                    ; preset disk full return error
-    PUSH    &CurFATsector           ; last known free cluster sector
-    MOV     &FATtype,Y              ;
-    ADD     Y,Y                     ;  Y = bytes size of Cluster number (2 or 4)
-; ----------------------------------;
-LoadFATsectorInBUF                  ; <== IncrementFATsector
+LoadFATsectorLoop                   ;
 ; ----------------------------------;
-    MOV     @RSP,W                  ; W = FATsector
-    CMP     W,&FATSize              ;
-    JZ      OPW_Error               ; FATsector = FATSize ===> abort disk full
-    ADD     &OrgFAT1,W              ;
-    MOV     #0,X                    ;
-    CALL    #ReadSectorWX           ;SWX (< 65536)
-    MOV     #0,X                    ; init FAToffset
+    MOV     @RSP,W                  ;2
+    CMP     W,&FATSize              ;3
+    JZ      OPWC_DiskFull           ;2 FATsector = FATSize ===> abort disk full
+    CALL    #ReadFAT1SectorW        ;SWX load FAT_buf with (new) FATsector
 ; ----------------------------------;
-SearchFreeClustInBUF                ; <== SearchNextCluster
+SearchFreeClusterLoop               ;
 ; ----------------------------------;
-    CMP     #2,Y                    ; FAT16 Cluster size ?
-    JZ      ClusterLowWordTest      ; yes
 ClusterHighWordTest                 ;
-    CMP     #0,SD_BUF+2(X)          ; cluster address hi word = 0 ?
-    JNZ     SearchNextNewCluster    ;
+    CMP     #0,SD_BUF+2(Y)          ;3 cluster address hi word = 0 ?
+    JNZ     SearchNextNewCluster    ;2
 ClusterLowWordTest                  ;
-    CMP     #0,SD_BUF(X)            ; Cluster address lo word = 0 ?
-    JZ      GNC_FreeClusterFound    ; 
+    CMP     #0,SD_BUF(Y)            ;3 Cluster address lo word = 0 ?
+    JZ      FreeClusterFound        ;2
 SearchNextNewCluster                ;
-    ADD     Y,X                     ; increment SD_BUF offset by size of Cluster address
-    CMP     #BytsPerSec,X           ;
-    JNE     SearchFreeClustInBUF    ; loopback while X < BytsPerSec
-IncrementFATsector                  ;
-    ADD     #1,0(RSP)               ; increment FATsector
-    JMP     LoadFATsectorInBUF      ; loopback
+    ADD     #4,Y                    ;1 increment SD_BUF offset by size of Cluster address
+    CMP     #BytsPerSec,Y           ;2
+    JNC     SearchFreeClusterLoop   ;2  18/15~   loopback while X U< BytsPerSec
+IncrementFATsector                  ;1
+    ADD     #1,0(RSP)               ;3 increment FATsector
+    MOV     #0,Y                    ;  clear FAToffset
+    JMP     LoadFATsectorLoop       ;5  34/23~    loopback
+; ----------------------------------;
+FreeClusterFound                    ; X =  cluster number low word in SD_BUF = FAToffset
 ; ----------------------------------;
-GNC_FreeClusterFound                ; Y =  cluster number low word in SD_BUF = FATsector
+    MOV     @RSP,&LastFATsector     ;
+    MOV     Y,&LastFAToffset        ;
 ; ----------------------------------;
     MOV     #0,S                    ; clear error
+    MOV     #-1,SD_BUF(Y)           ; mark New Cluster low word as end cluster (0xFFFF) in SD_BUF
     MOV.B   @RSP,W                  ; W = 0:FATsectorLo
-    MOV     #-1,SD_BUF(X)           ; mark NewCluster low word as end cluster (0xFFFF) in SD_BUF
-    CMP     #2,Y                    ; Y = FAT16 size of Cluster number ?
-    JZ      FAT16EntryToClusterNum  ; yes
-    MOV     #0FFFh,SD_BUF+2(X)      ; no: mark NewCluster high word as end cluster (0x0FFF) in SD_BUF
+    MOV     #0FFFh,SD_BUF+2(Y)      ; mark New Cluster high word as end cluster (0x0FFF) in SD_BUF
 ; ----------------------------------;
-FAT32EntryToClusterNum              ; convert FAT32 cluster address to cluster number
+FAT32ClustAdrToClustNum             ; convert FAT32 cluster address to cluster number (CluNum = CluAddr / 4)
 ; ----------------------------------;
-    RRA     X                       ; X = FATOffset>>1, FAToffset is byte size
+    RRA     Y                       ; Y = FATOffset>>1, (bytes to words conversion)
     SWPB    W                       ; W = FATsectorLo:0
-    ADD     W,X                     ; X = FATsectorLo:FATOffset>>1
+    ADD     W,Y                     ; Y = FATsectorLo:FATOffset>>1
     MOV.B   1(RSP),W                ; W = FATsectorHi
     RRA     W                       ; W = FATsectorHi>>1
-    RRC     X                       ; X = (FATsectorLo:FAToffset>>1)>>1 = FATsectorLo>>1:FAToffset>>2
-    MOV     W,&NewClusterH          ; NewClusterH =  FATsectorHi>>1
-    MOV     X,&NewClusterL          ; NewClusterL = FATsectorLo>>1:FAToffset>>2
-    JMP     SearchNewClusterEnd     ; max cluster = 7FFFFF ==> 1FFFFFFF sectors ==> 256 GB
+    RRC     Y                       ; Y = (FATsectorLo:FAToffset>>1)>>1 = FATsectorLo>>1:FAToffset>>2
+    MOV     W,&ClusterH             ; ClusterH =  FATsectorHi>>1
+    MOV     Y,&ClusterL             ; ClusterL = FATsectorLo>>1:FAToffset>>2
+; ----------------------------------;
+    MOV     @RSP,W                  ; W = FATsector of new cluster
+    CALL    #SaveSectorWtoFATs      ;SWXY W = FATsector loaded in SD_buf
+    MOV     @RSP+,W                 ; W = FATsector of New Cluster
+    MOV     @RSP+,PC                ; RET
+; ----------------------------------;
+
+
+; ==================================;
+FreeAllClusters                     ;SWXY input: HDLL_FirstClus(T), output:
+; ==================================;FATs are updated
+    MOV HDLL_FirstClus(T),ClusterL  ;
+    MOV HDLH_FirstClus(T),ClusterH  ;
+    CALL #ClusterHLtoFAT1sectWofstY ;WXY    output: W = FATsector, Y=FAToffset
+    MOV     W,&LastFATsector        ;
+    MOV     Y,&LastFAToffset        ;
+    PUSH    W                       ;       R-- FATsector ptr
+; ----------------------------------;
+LoadFAT1sectorWloop                 ;
+; ----------------------------------;
+    CALL    #ReadFAT1SectorW        ;SWX
+; ----------------------------------;
+GetAndFreeCluster                   ;
+; ----------------------------------;
+    MOV     SD_BUF(Y),W             ; get [clusterLO]
+    MOV     #0,SD_BUF(Y)            ; free CLusterLO
+GetAndFreeClusterHi                 ;
+    MOV     SD_BUF+2(Y),X           ; get [clusterHI]
+    MOV     #0,SD_BUF+2(Y)          ; free CLusterHI
+ClusterHiTest
+    AND     #00FFFh,X               ; select 12 bits significant
+    CMP     #00FFFh,X               ; [ClusterHI] was = 0FFFh?
+    JNE     SearchNextCluster2free  ; no
+ClusterLoTest                       ;
+    CMP     #-1,W                   ; [ClusterLO] was = FFFFh? last cluster used for this file
+    JZ      EndOfFileCluster        ; yes
 ; ----------------------------------;
-FAT16EntryToClusterNum              ; convert FAT16 address of Cluster in cluster number
+SearchNextCluster2free              ;
 ; ----------------------------------;
-    RRA     X                       ; X = Offset>>1, offset is word < 256
-    MOV.B   X,&NewClusterL          ; X = NewCluster numberLO (byte)
-    MOV.B   W,&NewClusterL+1        ; W = NewCluster numberHI (byte)
-    MOV     #0,&NewClusterH         ;
+    MOV     W,&ClusterL             ;
+    MOV     X,&ClusterH             ;
+    CALL #ClusterHLtoFAT1sectWofstY ;WXY    W = new FATsector, new FAToffset
+    CMP     @RSP,W                  ; new FATsector = FATsector ptr ?
+    JZ      GetAndFreeCluster       ; yes loop back
+    MOV     W,X                     ; no:   swap previous new FATsectors:
+    MOV     @RSP,W                  ;       W = previous FATsector
+    MOV     X,0(RSP)                ;       R-- new FATsector
+    CALL    #SaveSectorWtoFATs      ;SWXY update FATs from SD_BUF to W = previous FATsector
+    MOV     @RSP,W                  ;       W = new FATsector
+    JMP     LoadFAT1sectorWloop     ; loop back with W = new FATsector, new FAToffset
+; ----------------------------------;
+EndOfFileCluster                    ;
 ; ----------------------------------;
-SearchNewClusterEnd                 ;
+    MOV     @RSP+,W                 ;
+    MOV     #SaveSectorWtoFATs,PC   ; update FATs
 ; ----------------------------------;
-    MOV     @RSP+,W                 ; W = FATsector
-    MOV     W,&CurFATsector         ; refresh CurrentFATsector
-    MOV @RSP+,PC                             ;
+
+; this subroutine is called by Write_File (bufferPtr=512) and CloseHandle (0 =< BufferPtr =< 512)
+; ==================================;
+WriteSD_Buf                         ;SWX input: T = CurrentHDL
+; ==================================;
+    ADD &BufferPtr,HDLL_CurSize(T)  ; update handle CurrentSizeL
+    ADDC    #0,HDLH_CurSize(T)      ;
+; ==================================;
+WriteSectorHL                       ;SWX
+; ==================================;
+    MOV     &SectorL,W              ; Low
+    MOV     &SectorH,X              ; High
+    MOV     #WriteSectorWX,PC       ; ...then RET
 ; ----------------------------------;
 
 
-; update FATs with SD_BUF content.
-; input : FATsector, FAToffset, SD_BUF = [FATsector]
-; use : SWX registers
-; ----------------------------------; else update FATsector of the old cluster
-UpdateFATsSectorW                   ;
+; ======================================================================
+; DEL" primitive as part of OpenPathName
+; All "DEL"eted clusters are freed
+; input from open:  S = OpenError, W = open_type, SectorHL = DIRsectorHL,
+;                   Buffer = [DIRsector], ClusterHL = FirstClusterHL
+;       from open(GetFreeHandle): Y = DIRentry, T = CurrentHdl
+; output: nothing (no message if open error)
+; ======================================================================
+OPEN_2W                             ;
+    CMP     #2,W                    ; open_type = DEL ?
+    JNZ     OPEN_4W                 ; no : goto next step
 ; ----------------------------------;
-    PUSH    W                       ;
-    ADD     &OrgFAT1,W              ; update FAT#1
-    MOV     #0,X                    ;
-    CALL    #WriteSectorWX          ; write a logical sector
-    MOV     @RSP+,W                 ;
-    ADD     &OrgFAT2,W              ; update FAT#2
-    MOV     #0,X                    ;
-    CALL    #WriteSectorWX          ; write a logical sector
+; 1- open file                      ; done
+; ----------------------------------;
+    CMP     #0,S                    ; open file happy end ?
+    JNE     DEL_END                 ; no: don't send message, don't abort
+; ----------------------------------;
+; 2- Delete DIR entry               ;
+; ----------------------------------;
+    MOV.B   #0E5h,SD_BUF(Y)         ;
+    CALL    #WriteSectorHL          ;SWX  write SectorHL=DIRsector
+; ----------------------------------;
+; 3- free all file clusters         ;
+; ----------------------------------;
+    CALL    #FreeAllClusters        ;SWXY input: HDLL_FirstClus(T), output: FATS are updated
+; ----------------------------------;
+; 4- Close Handle                   ;
+; ----------------------------------;
+    CALL    #CloseHandle            ;
 ; ----------------------------------;
+DEL_END                             ;
+    MOV @IP+,PC                     ;4
+; ----------------------------------;
+
+;-----------------------------------------------------------------------
+; WRITE" (CREATE part) subroutines
+;-----------------------------------------------------------------------
 
 
 
@@ -150,9 +249,9 @@ UpdateFATsSectorW                   ;
 ; modified time :   ofsset 16h = 0bhhhhhmmmmmmsssss, with : s=seconds*2, m=minutes, h=hours
 ; dates :    offset 10, 12, 18 = 0byyyyyyymmmmddddd, with : y=year-1980, m=month, d=day
 
-; ----------------------------------; input:
-GetYMDHMSforDIR                     ;X=date, W=TIME
-; ----------------------------------;
+; ==================================;
+GetYMDHMSforDIR                     ; output: X=date, W=TIME
+; ==================================;
     .IFDEF    LF_XTAL               ;
     .IFNDEF   RTC                   ; RTC_B or RTC_C select
 ; ----------------------------------;
@@ -177,12 +276,12 @@ WaitRTC                             ; yes
     MOV     #512,&OP2               ;
     ADD     &RES0,X                 ;
     .ELSEIF
-    MOV     #0,X                    ; X=DATE 
+    MOV     #0,X                    ; X=DATE
     MOV     #0,W                    ; W=TIME
     .ENDIF
     .ENDIF
 SD_RW_RET                           ;
-    MOV @RSP+,PC                             ;
+    MOV     @RSP+,PC                ;
 ; ----------------------------------;
 
 
@@ -190,24 +289,22 @@ SD_RW_RET                           ;
 ForbiddenChars ; 15 forbidden chars table + dot char
     .byte '"','*','+',',','/',':',';','<','=','>','?','[','\\',']','|','.'
 
-; ----------------------------------;
+; ==================================;
 OPWC_SkipDot                        ;
-; ----------------------------------;
+; ==================================;
     CMP     #4,X                    ;
-    JL      FillDIRentryName        ; X < 4 : no need spaces to complete name entry
+    JNC     FillDIRentryName        ; X U< 4 : no need spaces to complete name entry
     SUB     #3,X                    ;
-    CALL    #OPWC_CompleteWithSpaces; complete name entry 
-    MOV     #3,X                    ; 
-; ----------------------------------;
-
-; ----------------------------------;
+    CALL    #OPWC_CompleteWithSpaces; complete name entry
+    MOV     #3,X                    ;
+; ==================================;
 FillDIRentryName                    ;SWXY use
-; ----------------------------------;
+; ==================================;
     MOV.B   @T+,W                   ; W = char of pathname
     MOV.B   W,SD_BUF(Y)             ;     to DIRentry
 ;    CMP     #0,W                    ; end of stringZ ?
 ;    JZ      OPWC_CompleteWithSpaces ;
-    CMP     T,&EndOfPath            ; EOS < PTR ?
+    CMP     T,&PathName_END         ; EOS < PTR ?
     JNC     OPWC_CompleteWithSpaces ; yes
 ; ----------------------------------;
 SkipForbiddenChars                  ;
@@ -233,56 +330,131 @@ ForbiddenCharLoop                   ;
 ; ----------------------------------;
 OPWC_CompleteWithSpaces             ; 0 to n spaces !
 ; ----------------------------------;
-    CMP     #0,X                    ; 
+    CMP     #0,X                    ;
     JZ      OPWC_CWS_End            ;
 ; ----------------------------------;
 OPWC_CompleteWithSpaceloop          ;
 ; ----------------------------------;
     MOV.B   #' ',SD_BUF(Y)          ; remplace dot by char space
-    ADD     #1,Y                    ; increment DIRentry ptr in buffer 
+    ADD     #1,Y                    ; increment DIRentry ptr in buffer
     SUB     #1,X                    ; dec countdown of chars space
     JNZ OPWC_CompleteWithSpaceloop  ;
 OPWC_CWS_End                        ;
-    MOV @RSP+,PC                             ;
+    MOV @RSP+,PC                    ;
 ; ----------------------------------;
 
 
+; ==================================;
+LoadUpdateSaveDirEntry              ;SWXY
+; ==================================;
+    MOV     HDLL_DIRsect(T),W       ;
+    MOV     HDLH_DIRsect(T),X       ;
+    CALL    #readSectorWX           ;SWX SD_buffer = DIRsector
+    MOV     HDLW_DIRofst(T),Y       ; Y = DirEntryOffset
+    CALL    #GetYMDHMSforDIR        ; X=DATE,  W=TIME
+    MOV     X,SD_BUF+18(Y)          ; access date
+    MOV     W,SD_BUF+22(Y)          ; modified time
+    MOV     X,SD_BUF+24(Y)          ; modified date
+    MOV HDLL_CurSize(T),SD_BUF+28(Y); save new filesize
+    MOV HDLH_CurSize(T),SD_BUF+30(Y);
+    MOV     HDLL_DIRsect(T),W       ;
+    MOV     HDLH_DIRsect(T),X       ;
+    MOV     #WriteSectorWX,PC       ;SWX then RET
+; ----------------------------------;
 
+;-----------------------------------------------------------------------
+; WRITE" subroutines
+;-----------------------------------------------------------------------
+
+
+; write sequentially the buffer in the post incremented SectorHL.
+; The first time, SectorHL is initialized by WRITE".
+; All used registers must be initialized.
+; ==================================;
+Write_File                          ;STWXY <== WRITE, SD_EMIT, TERM2SD"
+; ==================================;
+    MOV     #BytsPerSec,&BufferPtr  ; write always all the buffer
+    MOV     &CurrentHdl,T           ;
+    CALL    #WriteSD_Buf            ;SWX write SD_BUF and update Handle informations only for DIRentry update
+    MOV     #0,&BufferPtr           ; reset buffer pointer
+; ----------------------------------;
+PostIncrementSector                 ;
+; ----------------------------------;
+    ADD.B   #1,HDLB_ClustOfst(T)    ; increment current Cluster offset
+    CMP.B &SecPerClus,HDLB_ClustOfst(T) ; out of bound ?
+    JNC     Write_File_End          ; no,
+; ----------------------------------;
+    CALL    #HDLcurClus2FATsecWofstY;WXY  Output: FATsector W=FATsector, Y=FAToffset
+    PUSH    Y                       ; push previous FAToffset
+    PUSH    W                       ; push previous FATsector
+; ----------------------------------;
+GetNewCluster                       ; input : T=CurrentHdl
+; ----------------------------------;
+    CALL    #SearchMarkNewClusterHL ;SWXY input: W = FATsector Y = FAToffset, output: ClusterHL, W = FATsector of New cluster
+    CMP     @RSP,W                  ; previous and new clusters are in same FATsector?
+    JZ      LinkClusters            ;     yes
+; ----------------------------------;
+UpdateNewClusterFATs                ;
+; ----------------------------------;
+;    CALL    #SaveSectorWtoFATs      ;SWXY no: already done by SearchMarkNewClusterHL
+    MOV     @RSP,W                  ; W = previous FATsector
+    CALL    #ReadFAT1SectorW        ;SWX  reload previous FATsector in buffer to link clusters
+; ----------------------------------;
+LinkClusters                        ;
+; ----------------------------------;
+    MOV     @RSP+,W                 ; W = previous FATsector
+    MOV     @RSP+,Y                 ; Y = previous FAToffset
+    MOV     &ClusterL,SD_BUF(Y)     ; store new cluster to current cluster address in previous FATsector buffer
+    MOV     &ClusterH,SD_BUF+2(Y)   ;
+    CALL    #SaveSectorWtoFATs      ;SWXY update FATs from SD_BUF to W = previous FATsector
+; ==================================;
+HDLSetCurClustSetFrstSect           ;
+; ==================================;
+    MOV     #4,HDLB_Token(T)        ; and clear ClustOfst
+; ==================================;
+HDLSetCurClustSetCurSect            ;
+; ==================================;
+    MOV &ClusterL,HDLL_CurClust(T)  ; update handle with new cluster
+    MOV &ClusterH,HDLH_CurClust(T)  ;
+Write_File_End
+    MOV #ClusterHL2sectorHL,PC      ;W set current SectorHL to be written then RET
+; ----------------------------------;
+
+;Z WRITE            --
+; sequentially write the entire SD_BUF in a file opened by WRITE"
+; ==================================;
+    FORTHWORD "WRITE"               ; in assembly : CALL #WRITE,X   CALL 2(X)
+; ==================================;
+    CALL #Write_File                ;STWXY
+    MOV @IP+,PC                     ;
+; ----------------------------------;
 
 ; ======================================================================
 ; WRITE" primitive as part of OpenPathName
 ; input from open:  S = OpenError, W = open_type, SectorHL = DIRsectorHL,
 ;                   Buffer = [DIRsector], ClusterHL = FirstClusterHL
 ;       from open(GetFreeHandle): Y = DIRentry, T = CurrentHdl
-; output: nothing else abort on error
-; error 1  : PathNameNotFound
-; error 2  : NoSuchFile       
-; error 4  : DirectoryFull  
-; error 8  : AlreadyOpen    
-; error 16 : NomoreHandle   
+; output: Current Sector is set else abort on WRITE error
+; error 4  : InvalidPathname
+; error 8  : DiskFull
 ; ======================================================================
-
-; ----------------------------------;
-OPEN_QWRITE                         ;
-    CMP     #2,W                    ; open_type = WRITE" ?
-    JNZ     OPEN_QDEL               ; no : goto next step
+OPEN_4W                             ;
+    CMP     #4,W                    ; open_type = WRITE" ?
+    JNZ     OPEN_8W                 ; no : goto next step
 ; ----------------------------------;
 ; 1 try to open                     ; done
 ; ----------------------------------;
 ; 2 select error "no such file"     ;
 ; ----------------------------------;
     CMP     #2,S                    ; "no such file" error ?
-    JZ      OPEN_WRITE_CREATE       ; yes
-    CMP     #0,S                    ; no open file error ?
-    JZ      OPEN_WRITE_APPEND       ; yes
+    JZ      OPEN_WRITE_CREATE       ; yes, Handle is to be created !
+    CMP     #0,S                    ; well opened file ?
+    JZ      OPEN_OVERWRITE          ; yes
 ; ----------------------------------;
-; Write errors                      ;
+OPWC_Write_Errors                   ;
 ; ----------------------------------;
-OPWC_InvalidPathname                ; S = 1
-OPWC_DiskFull                       ; S = 2 
-OPWC_DirectoryFull                  ; S = 4
-OPWC_AlreadyOpen                    ; S = 8
-OPWC_NomoreHandle                   ; S = 16
+OPWC_InvalidPathname                ; S = 4
+OPWC_DiskFull                       ; S = 8
 ; ----------------------------------;
 OPW_Error                           ; set ECHO, type Pathname, type #error, type "< WriteError"; no return
     mDOCOL                          ;
@@ -291,195 +463,108 @@ OPW_Error                           ; set ECHO, type Pathname, type #error, type
     .word   BRAN,ABORT_SD           ; to insert S error as flag, no return
 ; ----------------------------------;
 
-
 ; ======================================================================
-; WRITE" (CREATE part) primitive as part of OpenPathName
-; input from open:  S = NoSuchFile, W = open_type, SectorHL = DIRsectorHL,
-;                   Buffer = [DIRsector], ClusterHL = FirstClusterHL
-; output: nothing else abort on error:
-; error 1  : InvalidPathname
-; error 2  : DiskFull       
-; error 4  : DirectoryFull  
-; error 8  : AlreadyOpen    
-; error 16 : NomoreHandle   
+; WRITE" primitive as part of OpenPathName
+; All "DEL"eted clusters are freed
+; input from open:  W = open_type, SectorHL = DIRsectorHL,
+;                   Buffer = [DIRsector], ClusterHL = FirstCluster
+;       from open(GetFreeHandle): Y = DIRentry, T = CurrentHdl,
+; output: nothing (no message if open error)
 ; ======================================================================
 
+
+; ==================================;
+OPEN_WRITE_CREATE                   ; a new Handle is to be created
+; ==================================;
+; 1- open file                      ; done
 ; ----------------------------------;
-OPEN_WRITE_CREATE                   ;
-; ----------------------------------;
-; 3 get free cluster                ;
-; ----------------------------------; input: FATsector
-    CALL    #SearchNewCluster       ;SWXY output:  W = new FATsector loaded in buffer,NewCluster 
-    MOV     &NewClusterL,&ClusterL  ;
-    MOV     &NewClusterH,&ClusterH  ;
-    CALL    #UpdateFATsSectorW      ;SWX update FATs with buffer
+; 2 get free cluster                ;
 ; ----------------------------------;
-    CALL    #ReadSector             ; reload DIRsector
-    MOV     &EntryOfst,Y            ; reload entry offset (first free entry in DIR)
+    MOV     #0,W                    ; init FATsector = 0, search new cluster
+    MOV     #0,Y                    ; init FAToffset
+    CALL    #SearchMarkNewClusterHL ;WXY  output: updated (ClusterHL, FATsector, W = FATsector), SD_BUF = [new FATsector]
 ; ----------------------------------;
-; 4 init DIRentryAttributes         ;
+; 3 init DIRentryAttributes         ;
 ; ----------------------------------;
-OPWC_SetEntryAttribute              ; (cluster=DIRcluster!)
+    CALL    #ReadSectorHL           ; reload DIRsector
+    MOV     &DIREntryOfst,Y         ; Y = entry offset (first free entry in DIR)
     MOV.B   #20h,SD_BUF+11(Y)       ; file attribute = file
     CALL    #GetYMDHMSforDIR        ;WX  X=DATE,  W=TIME
     MOV     #0,SD_BUF+12(Y)         ; nt reserved = 0 and centiseconds are 0
     MOV     W,SD_BUF+14(Y)          ; time of creation
     MOV     X,SD_BUF+16(Y)          ; date of creation      20/08/2001
-    MOV     X,SD_BUF+18(Y)          ; date of access        20/08/2001
-    MOV     &ClusterH,SD_BUF+20(Y)  ; as first Cluster Hi 
-    MOV     &ClusterL,SD_BUF+26(Y)  ; as first cluster LO   
-    MOV     #0,SD_BUF+28(Y)         ; file lenghtLO  = 0 
-    MOV     #0,SD_BUF+30(Y)         ; file lenghtHI  = 0 
-; ----------------------------------;
-; 5 create DIRentryName             ;
-; ----------------------------------;
-    MOV     #1,S                    ; preset pathname error
-    MOV     &Pathname,T             ; here, pathname is "xxxxxxxx.yyy" format
-;    CMP.B   #0,0(T)                 ; forbidden null string
-    CMP     T,&EndOfPath            ;
-    JZ      OPWC_InvalidPathname    ; write error 1
+;    MOV     X,SD_BUF+18(Y)          ; date of access        20/08/2001
+    MOV     &ClusterH,SD_BUF+20(Y)  ; as first Cluster Hi
+    MOV     &ClusterL,SD_BUF+26(Y)  ; as first cluster LO
+    MOV     #0,SD_BUF+28(Y)         ; set file_sizeLO  = 0
+    MOV     #0,SD_BUF+30(Y)         ; set file_sizeHI  = 0
+; ----------------------------------;
+; 4 create DIRentryName             ; file name format "xxxxxxxx.yyy"
+; ----------------------------------;
+    MOV     #4,S                    ; preset pathname error
+    MOV     &PathName_PTR,T         ; here, PathName_PTR is set to file name
+    CMP     T,&PathName_END         ; end of string reached ?
+    JZ      OPWC_InvalidPathname    ; yes write error 1
     CMP.B   #'.',0(T)               ; forbidden "." in first
     JZ      OPWC_InvalidPathname    ; write error 1
     MOV     #11,X                   ; X=countdown of chars entry
     CALL    #FillDIRentryName       ;STWXY
 ; ----------------------------------;
-; 6 save DIRsector                  ;
+; 5 update DIRsector                ;
 ; ----------------------------------;
-    CALL    #WriteSector            ;SWX update DIRsector
+    CALL    #WriteSectorHL          ;SWX update DIRsector
 ; ----------------------------------;
 ; 7 Get free handle                 ;
 ; ----------------------------------;
-    MOV     #2,W                    ;
-    CALL    #GetFreeHandle          ; output : S = handle error, CurCluster and CurSector are set
-; ----------------------------------;
-    CMP     #0,S                    ; no error ?
-    JNZ     OPWC_NomoreHandle       ; ==> abort with error 16
-    MOV @IP+,PC                           ; --
-; ----------------------------------;
-
-;-----------------------------------------------------------------------
-; WRITE" subroutines
-;-----------------------------------------------------------------------
-
-; SectorL is unchanged
-; ----------------------------------;
-OPWW_UpdateDirectory                ; <== CloseHandleT
-; ----------------------------------; Input : current Handle
-    MOV     HDLL_DIRsect(T),W       ;
-    MOV     HDLH_DIRsect(T),X       ;
-    CALL    #readSectorWX           ;SWX buffer = DIRsector
-    CALL    #GetYMDHMSforDIR        ; X=DATE,  W=TIME
-    MOV     HDLW_DIRofst(T),Y       ; Y = DirEntryOffset
-    MOV     X,SD_BUF+18(Y)          ; access date
-    MOV     W,SD_BUF+22(Y)          ; modified time
-    MOV     X,SD_BUF+24(Y)          ; modified date
-OPWW_UpdateEntryFileSize            ;
-    MOV HDLL_CurSize(T),SD_BUF+28(Y); save new filesize
-    MOV HDLH_CurSize(T),SD_BUF+30(Y);
-    MOV     HDLL_DIRsect(T),W       ; 
-    MOV     HDLH_DIRsect(T),X       ;
-    MOV     #WriteSectorWX,PC       ;SWX then RET
-; ----------------------------------;
-
-; this subroutine is called by Write_File (bufferPtr=512) and CloseHandleT (0 =< BufferPtr =< 512)
-; ==================================; 
-WriteBuffer                         ;STWXY input: T = CurrentHDL
-; ==================================; 
-    ADD &BufferPtr,HDLL_CurSize(T)  ; update handle CurrentSizeL
-    ADDC    #0,HDLH_CurSize(T)      ;
-; ==================================;
-WriteSector                         ;SWX
-; ==================================;
-    MOV     &SectorL,W              ; Low
-    MOV     &SectorH,X              ; High
-    MOV     #WriteSectorWX,PC       ; ...then RET
+    MOV     #4,W                    ; get handle for write
+    CALL    #GetFreeHandle          ; output : CurCluster and CurSector are set
+    MOV     @IP+,PC                 ; --
 ; ----------------------------------;
 
-
-
-; write sequentially the buffer in the post incremented SectorHL.
-; The first time, SectorHL is initialized by WRITE".
-; All used registers must be initialized.
 ; ==================================;
-Write_File                          ; <== WRITE, SD_EMIT, TERM2SD"
+OPEN_OVERWRITE                      ; handle exists
 ; ==================================;
-    MOV     #BytsPerSec,&BufferPtr  ; write always all the buffer
-    MOV     &CurrentHdl,T           ;
-    CALL    #WriteBuffer            ; write SD_BUF and update Handle informations only for DIRentry update 
-    MOV     #0,&BufferPtr           ; reset buffer pointer
-; ----------------------------------;
-PostIncrementSector                 ;
-; ----------------------------------;
-    ADD.B   #1,HDLB_ClustOfst(T)    ; increment current Cluster offset
-    CMP.B &SecPerClus,HDLB_ClustOfst(T) ; out of bound ?
-    JNZ     Write_File_End          ; no, 
-; ----------------------------------;
-GetNewCluster                       ; input : T=CurrentHdl
-; ----------------------------------;
-    MOV.B   #0,HDLB_ClustOfst(T)    ; reset handle ClusterOffset
-    CALL #HDLCurClusToFAT1sectWofstY;WXY Output: W=FATsector, Y=FAToffset, Cluster=HDL_CurCluster
-    PUSH    Y                       ; push current FAToffset
-    PUSH    W                       ; push current FATsector
-    CALL    #SearchNewCluster       ;SWXY  output: W = new FATsector loaded in buffer, NewCluster 
-    CMP     @RSP,W                  ; current and new clusters are in same FATsector?
-    JZ      LinkClusters            ;     yes 
-UpdateNewClusterFATs                ;
-    CALL    #UpdateFATsSectorW      ;SWX  no: UpdateFATsSectorW with buffer of new FATsector
-    MOV     @RSP,W                  ; W = current FATsector
-    ADD     &OrgFAT1,W              ;
-    MOV     #0,X                    ;
-    CALL    #ReadSectorWX           ;SWX (< 65536)
-LinkClusters                        ;
-    MOV     @RSP+,W                 ; W = current FATsector
-    MOV     @RSP+,Y                 ; pop current FAToffset
-    MOV     &NewClusterL,SD_BUF(Y)  ; store new cluster to current cluster address in current FATsector buffer
-    CMP     #1,&FATtype             ; FAT16?
-    JZ UpdatePreviousClusterFATs    ; yes
-    MOV     &NewClusterH,SD_BUF+2(Y);
-UpdatePreviousClusterFATs           ;
-    CALL    #UpdateFATsSectorW      ;SWX update FATS with current FATsector buffer
-UpdateHandleCurCluster              ;
-    MOV &NewClusterL,HDLL_CurClust(T)  ; update handle with new cluster
-    MOV &NewClusterH,HDLH_CurClust(T) ;
-;    CALL #ComputeHDLcurrentSector   ; set Cluster first Sector as next Sector to be written
-;    MOV #OPWW_UpdateDirectory,PC    ; update DIRentry to avoid cluster lost, then RET
-Write_File_End
-    MOV #ComputeHDLcurrentSector,PC ; set current Cluster Sector as next Sector to be written then RET
-; ----------------------------------;
-
-;Z WRITE            -- 
-; sequentially write the entire SD_BUF in a file opened by WRITE"
+; free all file clusters            ;
 ; ----------------------------------;
-    FORTHWORD "WRITE"               ; in assembly : CALL &WRITE+2
-; ----------------------------------;
-    CALL #Write_File                ;
-    MOV @IP+,PC                     ;
+    CALL    #FreeAllClusters        ;SWXY input: HDLL_FirstClus(T), output: FATS are updated
+    MOV     #0,HDLL_CurSize(T)      ; clear currentSize
+    MOV     #0,HDLH_CurSize(T)      ;
+    MOV HDLL_FirstClus(T),ClusterL  ; Set ClusterHL
+    MOV HDLH_FirstClus(T),ClusterH  ;
+    CALL #ClusterHLtoFAT1sectWofstY ;WXY    output: W = FATsector, Y=FAToffset
+    CALL    #SearchMarkNewClusterHL ;SWXY input: W = FATsector, Y = FAToffset output: ClusterHL, W = updated new FATsector loaded in SD_BUF
+    CALL #HDLSetCurClustSetFrstSect ;
+    MOV     @IP+,PC                 ; --
 ; ----------------------------------;
 
 
 ; ======================================================================
-; WRITE" (APPEND part) primitive as part of OpenPathName
-; input from open:  S = OpenError, W = open_type, SectorHL = DIRsectorHL,
+; APPEND" primitive as part of OpenPathName
+; input from open:  SectorHL = DIRsectorHL,
 ;                   Buffer = [DIRsector], ClusterHL = FirstClusterHL
 ;       from open(GetFreeHandle): Y = DIRentry, T = CurrentHdl
 ; output: nothing else abort on error
-; error 2  : DiskFull       
+; error 2  : DiskFull
 ; ======================================================================
-
-; ----------------------------------;
-OPEN_WRITE_APPEND                   ;
-; ----------------------------------;
+OPEN_8W                             ;
+    CMP     #2,S                    ; "no such file" error ?
+    JZ      OPEN_WRITE_CREATE       ; yes
+    CMP     #0,S                    ; well opened file ?
+    JNZ     OPWC_Write_Errors       ; no
+; ==================================;
+OPEN_WRITE_APPEND                   ; yes
+; ==================================;
 ; 1- open file                      ; done
 ; ----------------------------------;
-; 2- compute missing Handle infos   ;
+    MOV.B  #4,HDLB_Token(T)         ; update HDLB_Token(T)
 ; ----------------------------------;
 ; 2.1- Compute Sectors count        ; Sectors = HDLL_CurSize/512
 ; ----------------------------------;
-    MOV.B   HDLL_CurSize+1(T),Y     ;Y = 0:CurSizeLOHi
-    MOV.B   HDLH_CurSize(T),X       ;X = 0:CurSizeHILo 
-    SWPB    X                       ;X = CurSizeHIlo:0 
+    MOV.B   HDLL_CurSize+1(T),Y     ;Y = 0:CurSizeLOHi (bytes)
+    MOV.B   HDLH_CurSize(T),X       ;X = 0:CurSizeHILo
+    SWPB    X                       ;X = CurSizeHIlo:0
     ADD     Y,X                     ;X = CurSizeHIlo:CurSizeLOhi
-    MOV.B   HDLH_CurSize+1(T),Y     ;Y:X = CurSize / 256
+    MOV.B   HDLH_CurSize+1(T),Y     ;Y:X = CurSize / 256 (bytes)
 ; ----------------------------------;
 ; 2.2 Compute Clusters Count        ;
 ; ----------------------------------;
@@ -499,153 +584,52 @@ DIVSECPERSPC2                       ;
     SUB #1,S                        ;1 CNT-1
     JGE DIVSECPERSPC2               ;2 4~ loopback     Wlo = OFFSET, X = CLU_LO, Y = CLU_HI
 ; ----------------------------------;
-    MOV &CurrentHDL,T               ;3  reload Handle ptr  
-; ----------------------------------;
-; 2.3- Compute last Cluster         ; X = Clusters numberLO, Y = Clusters numberHI 
+; 2.3- Compute Current Cluster      ; X = ClusterCountLO, Y = ClusterCountHI
 ; ----------------------------------;
+    MOV &CurrentHDL,T               ;3  reload Handle ptr
     ADD  HDLL_FirstClus(T),X        ;
     ADDC HDLH_FirstClus(T),Y        ;
     MOV X,HDLL_CurClust(T)          ;  update handle
     MOV Y,HDLH_CurClust(T)          ;
 ; ----------------------------------;
-; 2.4- Compute Sectors offset       ;
+; 2.4- load current sectorHL        ;
 ; ----------------------------------;
-    MOV.B W,HDLB_ClustOfst(T)       ;3  update handle with W = REMlo = sectors offset in last cluster
+    MOV.B W,HDLB_ClustOfst(T)       ;3  update handle with W = REM8 = sectors offset in last cluster
+    CALL #LoadCurSectorHL           ;SWX in SD_buf
 ; ----------------------------------;
-; 3- load last sector in SD_BUF     ;
+; 2.5- Compute SD_Buf ptr           ;
 ; ----------------------------------;
-    MOV HDLL_CurSize(T),W           ; example : W = 1013
-    BIC #01FFh,HDLL_CurSize(T)      ; substract 13 from HDLL_CurSize, because loaded in buffer
-    AND #01FFh,W                    ; W = 13
-    MOV W,&BufferPtr                ; init Buffer Pointer with 13
-    CALL #LoadHDLcurrentSector      ;SWX
-    MOV @IP+,PC                     ; BufferPtr = first free byte offset
+    MOV HDLL_CurSize(T),W           ; example :  W = $A313 bytes
+    BIC #01FFh,HDLL_CurSize(T)      ; HDLL_CurSize = $A200 bytes
+    AND #01FFh,W                    ; remainder  W = $0113 bytes
+    MOV W,&BufferPtr                ; init Buffer Pointer with $0113
 ; ----------------------------------;
-
-
-; ======================================================================
-; DEL" primitive as part of OpenPathName
-; All "DEL"eted clusters are freed
-; If next DIRentry in same sector is free, DIRentry is freed, else hidden.
-; input from open:  S = OpenError, W = open_type, SectorHL = DIRsectorHL,
-;                   Buffer = [DIRsector], ClusterHL = FirstClusterHL
-;       from open(GetFreeHandle): Y = DIRentry, T = CurrentHdl
-; output: nothing (no message if open error)
-; ======================================================================
-
-
-OPEN_QDEL                           ;
-;    CMP     #4,W                    ;   open_type = DEL"
-;    JNZ     OPEN_8W                 ;
-; ----------------------------------;
-OPEN_DEL                            ;
-; ----------------------------------;
-; 1- open file                      ; done
-; ----------------------------------;
-    CMP     #0,S                    ; open file happy end ?
-    JNE     DEL_END                ; no: don't send message
-; ----------------------------------;
-; 2- Delete DIR entry               ; "delete" entry with 00h if next entry in same DIRsector is free, else "hide" entry with 05Eh
-; ----------------------------------;
-SelectFreeEntry                     ; nothing to do: S = 0 ready for free entry!
-; ----------------------------------;
-    CMP     #BytsPerSec-32,Y        ; Entry >= last entry in DIRsector ?
-    JC      SelectHideEntry         ; yes:  next DIR entry is out of sector
-    CMP.B   #0,SD_BUF+32(Y)         ; no:   next DIR entry in DIRsector is free?
-    JZ      WriteDelEntry           ;       yes
-; ----------------------------------;
-SelectHideEntry                     ;       no
-; ----------------------------------;
-    MOV.B   #0E5h,S                 ;
-; ----------------------------------;
-WriteDelEntry
-; ----------------------------------;
-    MOV.B   S,SD_BUF(Y)             ; 
-    CALL    #WriteSector            ;SWX  write SectorHL=DIRsector
-; ----------------------------------;
-; 3- free all file clusters         ; Cluster = FirstCluster
-; ----------------------------------;
-ComputeClusterSectWofstY            ;     
-    CALL    #ClusterToFAT1sectWofstY;WXY    W = FATsector, Y=FAToffset
-    MOV     W,&CurFATsector         ; update CurrentFATsector
-; ----------------------------------;
-LoadFAT1sector
-; ----------------------------------;
-    MOV     W,T                     ; T = W = current FATsector memory
-    ADD     &OrgFAT1,W              ;
-    MOV     #0,X                    ;
-    CALL    #ReadSectorWX           ;SWX (< 65536)
-; ----------------------------------;
-GetAndFreeClusterLo                 ;
-; ----------------------------------;
-    MOV     SD_BUF(Y),W             ; get [clusterLO]
-    MOV     #0,SD_BUF(Y)            ; free CLusterLO
-ClusterTestSelect                   ;
-    CMP     #1,&FATtype             ; FAT16 ?
-    JZ      ClusterLoTest           ; yes
-GetAndFreeClusterHi                 ;
-    MOV     SD_BUF+2(Y),X           ; get [clusterHI]
-    MOV     #0,SD_BUF+2(Y)          ; free CLusterHI
-ClusterHiTest
-    AND     #00FFFh,X               ; select 12 bits significant
-    CMP     #00FFFh,X               ; [ClusterHI] was = 0FFFh?
-    JNE     SearchNextCluster2free  ; no
-ClusterLoTest                  
-    CMP     #-1,W                   ; [ClusterLO] was = FFFFh?
-    JZ      EndOfFileClusters       ; yes 
-; ----------------------------------;
-SearchNextCluster2free
-; ----------------------------------;
-    MOV     W,&ClusterL             ;
-    MOV     X,&ClusterH             ;
-    CALL    #ClusterToFAT1sectWofstY;WXY
-    CMP     W,T                     ; new FATsector = current FATsector memory ?
-    JZ      GetAndFreeClusterLo     ; yes loop back
-    PUSH    W                       ; no: save new FATsector...
-    MOV     T,W                     ; ...before update current FATsector
-    CALL    #UpdateFATsSectorW      ;SWX
-    MOV     @RSP+,W                 ; restore new current FATsector
-    JMP     LoadFAT1sector          ; loop back with Y = FAToffset
-; ----------------------------------;
-EndOfFileClusters                   ;
-; ----------------------------------;
-    MOV     T,W                     ; T = W = current FATsector
-    CALL    #UpdateFATsSectorW      ;SWX
-; ----------------------------------;
-; 3- Close Handle                   ;
-; ----------------------------------;
-    CALL    #CloseHandleT           ;
-; ----------------------------------;
-DEL_END                             ;
-    MOV @IP+,PC                     ;4
+    MOV @IP+,PC                     ; BufferPtr = first free byte offset
 ; ----------------------------------;
 
 
-
     .IFNDEF TERMINAL_I2C ; if UART_TERMINAL
 
 ; first TERATERM sends the command TERM2SD" file.ext" to FastForth which returns XOFF at the end of the line.
 ; then when XON is sent below, TERATERM sends "file.ext" up to XOFF sent by TERM2SD" (slices of 512 bytes),
 ; then TERATERM sends char EOT that closes the file on SD_CARD.
 
-    FORTHWORD "TERM2SD\34"
-    mDOCOL
-    .word   DELDQ                   ;                   DEL file if already exist
-    .word   lit,2                   ; -- open_type
-    .word   HERE,COUNT              ; -- open_type addr cnt
-    .word   PARENOPEN               ;                   reopen same filepath but as write
-    .word   $+2                     ;
-    MOV     @RSP+,IP                ;
+; ==================================;
+    FORTHWORD "TERM2SD\34"          ;
+; ==================================;
+    mDOCOL                          ;
+    .word   WRITEDQ                 ;  if already exist FreeAllClusters else create it as WRITE file
+    mNEXTADR                        ;
 ; ----------------------------------;
-T2S_GetSliceLoop                    ;   tranfert by slices of 512 bytes terminal input to file on SD_CARD via SD_BUF 
+T2S_GetSliceLoop                    ;   tranfert by slices of 512 bytes from terminal input to file on SD_CARD via SD_BUF
 ; ----------------------------------;
     MOV     #0,W                    ;1  reset W = BufferPtr
     CALL    #RXON                   ;   use no registers
 ; ----------------------------------;
-T2S_FillBufferLoop                  ;
+T2S_Get_a_Char_Loop                 ;
 ; ----------------------------------;
     BIT     #RX_TERM,&TERM_IFG      ;3 new char in TERMRXBUF ?
-    JZ      T2S_FillBufferLoop      ;2
+    JZ      T2S_Get_a_Char_Loop     ;2
     MOV.B   &TERM_RXBUF,X           ;3
     MOV.B   X,&TERM_TXBUF
     CMP.B   #4,X                    ;1 EOT sent by TERATERM ?
@@ -653,25 +637,38 @@ T2S_FillBufferLoop                  ;
     MOV.B   X,SD_BUF(W)             ;3
     ADD     #1,W                    ;1
     CMP     #BytsPerSec-1,W         ;2
-    JNC     T2S_FillBufferLoop      ;2 W < BytsPerSec-1    21 cycles char loop
     JZ      T2S_XOFF                ;2 W = BytsPerSec-1    send XOFF after RX 511th char
+    JNC     T2S_Get_a_Char_Loop     ;2 W < BytsPerSec-1    21 cycles char loop (476 kBds/MHz)
 ; ----------------------------------;
 T2S_WriteFile                       ;2 W = BytsPerSec
 ; ----------------------------------;
-    CALL    #Write_File             ;TSWXY write all the buffer
-    JMP     T2S_GetSliceLoop        ;2 
+    CALL    #Write_File             ;STWXY write all the buffer
+    JMP     T2S_GetSliceLoop        ;2
 ; ----------------------------------;
 T2S_XOFF                            ;  27 cycles between XON and XOFF
 ; ----------------------------------;
     CALL    #RXOFF                  ;4  use no registers
-    JMP     T2S_FillBufferLoop      ;2  loop back once to get last char
+    JMP     T2S_Get_a_Char_Loop     ;2  loop back once to get char sent by TERMINAL during XOFF time
 ; ----------------------------------;
-T2S_End_Of_File                     ;
+T2S_End_Of_File                     ;  wait CR before sending XOFF
+; ----------------------------------;
+T2S_Wait_CR                         ; warning! EOT must be followed by CR+LF (TERM2SD" used with I2C_FastForth)
+; ----------------------------------;
+    CMP.B   #0Dh,&TERM_RXBUF        ; also clears RX_IFG !
+    JZ      T2S_Wait_CR             ; wait CR
 ; ----------------------------------;
     CALL    #RXOFF                  ;4  use no registers
+; ----------------------------------;
+T2S_Wait_LF                         ; warning! EOT must be followed by CR+LF (TERM2SD" used with I2C_FastForth)
+; ----------------------------------;
+    CMP.B   #0Ah,&TERM_RXBUF        ; also clears RX_IFG !
+    JZ      T2S_Wait_LF             ; wait LF
+; ----------------------------------;
     MOV     W,&BufferPtr            ;3
-    CALL    #CloseHandleT           ;4
-    MOV @IP+,PC                     ;4
+    CALL    #CloseHandle            ;4
+; ----------------------------------;
+    MOV     @RSP+,IP                ;
+    MOV     @IP+,PC                 ;4
 ; ----------------------------------;
 
     .ELSE ; if I2C_TERMINAL
@@ -680,59 +677,75 @@ T2S_End_Of_File                     ;
 ; then when RXON is sent below, I2C_Master sends "file.ext" line by line
 ; then TERATERM sends char EOT that closes the file on SD_CARD.
 
+; ==================================;
     FORTHWORD "TERM2SD\34"          ; here, I2C_Master is reSTARTed in RX mode
-    mDOCOL
-    .word   DELDQ                   ;                   DEL file if already exist
-    .word   lit,2                   ; -- open_type
-    .word   HERE,COUNT              ; -- open_type addr cnt
-    .word   PARENOPEN               ;                   reopen same filepath but as write
-    .word   $+2                     ;
+; ==================================;
+    mDOCOL                          ;
+    .word   WRITEDQ                 ; if already exist FreeAllClusters else create it as WRITE file
+    mNEXTADR                        ;
 ; ----------------------------------;
-    CALL    #RXON                   ; send I2C Ctrl_Char $00 to I2C_Master
+    MOV     #0,W                    ; reset W = SD_Buf_Ptr
+    MOV.B   #0Ah,IP                 ; IP = char 'LF'
 ; ----------------------------------;
-T2S_ClearBuffer                     ;
+T2S_GetLineLoop                     ; tranfert line by line from terminal input to SD_BUF
 ; ----------------------------------;
-    MOV     #0,W                    ;1  reset W = BufferPtr
+    CALL    #RXON                   ; use Y reg; send I2C Ctrl_Char $00 to request I2C_Master to switch from RX to TX
+; ----------------------------------;
+T2S_Get_a_Char_Loop                 ;
 ; ----------------------------------;
-T2S_FillBufferLoop                  ;   move by slices of 512 bytes from TERMINAL input to file on SD_CARD via SD_BUF 
+T2S_Q_BufferFull                    ; test it before to take data in RX buffer and so to do SCL strech low during Write_File !!!!
+; ----------------------------------;
+    CMP     #BytsPerSec,W           ;2 buffer full ?
+    JNC     T2S_Get_a_Char          ;2 no
+; ----------------------------------;
+T2S_WriteFile                       ;  tranfert all 512 bytes of SD_BUF to the opened file in SD_CARD
+; ----------------------------------;  SCL is stretched low by Slave (it's my)
+    CALL    #Write_File             ;STWXY Write_File write always all the buffer
+    MOV     #0,W                    ;  reset SD_Buf_Ptr
+; ----------------------------------;
+T2S_Get_a_Char                      ;
 ; ----------------------------------;
     BIT     #RX_TERM,&TERM_IFG      ;3 new char in TERMRXBUF ?
-    JZ      T2S_FillBufferLoop      ;2 no
-    MOV.B   &TERM_RXBUF,X           ;3
-    CMP.B   #4,X                    ;1 EOT sent by TERMINAL (teraterm.exe) ?
+    JZ      T2S_Get_a_Char          ;2 no
+    MOV.B   &TERM_RXBUF,X           ;3 SCL is released here
+; ----------------------------------;
+T2S_Q_EOF                           ;
+; ----------------------------------;
+    CMP.B   #4,X                    ;1 EOF sent by TERMINAL (teraterm.exe) ?
     JZ      T2S_End_Of_File         ;2 yes
     MOV.B   X,SD_BUF(W)             ;3
     ADD     #1,W                    ;1
-    CMP.B   #0Ah,X                  ;2 Char LF ?
-    JNZ     T2S_Q_BufferFull        ;2 no
 ; ----------------------------------;
-T2S_GetNewLine                      ; here I2C_Master automatically (re)START in RX mode, one char must be sent to
-; ----------------------------------; clear I2C_Slave UCSTTIFG, so we must send LF a minima
-    ASMtoFORTH                      ;
-    .word   CR                      ; (CR+LF instead of LF is sent to beautify TERMINAL display, if ECHO is ON obviously)
-    .word   $+2                     ;
-    CALL    #RXON                   ; send I2C Ctrl_Char $00 to I2C_Master
+T2S_Q_Char_LF                       ; when Master send the Ack on char 'LF', it reStarts automatically in RX mode
 ; ----------------------------------;
-T2S_Q_BufferFull                    ;
+    CMP.B   IP,X                    ;1 Char LF received ?
+    JNZ     T2S_Get_a_Char_Loop     ;2 no, 22 cycles loop back (< 1us @ 24 MHz)
 ; ----------------------------------;
-    CMP     #BytsPerSec,W           ;2 buffer full ?
-    JNC     T2S_FillBufferLoop      ;2 no    21 cycles char loop
+T2S_Send_CR                         ; because I2C_Master doesn't echo it on TERMINAL
+; ----------------------------------;
+    BIT     #TX_TERM,&TERM_IFG      ;
+    JZ      T2S_Send_CR             ; wait TX buffer empty
+    MOV.B   #0Dh,&TERM_TXBUF        ; send CR to beautify TERMINAL display (if ECHO is ON, obviously)
+; ----------------------------------;
+T2S_Send_LF                         ; because I2C_Master doesn't echo it on TERMINAL
 ; ----------------------------------;
-T2S_WriteFile                       ;2 yes
+    BIT     #TX_TERM,&TERM_IFG      ;
+    JZ      T2S_Send_LF             ; wait TX buffer empty
+    MOV.B   IP,&TERM_TXBUF          ; send LF to beautify TERMINAL display (if ECHO is ON, obviously)
 ; ----------------------------------;
-    CALL    #Write_File             ;4 TSWXY write all the buffer
-    JMP     T2S_ClearBuffer         ;2 
+    JMP     T2S_GetLineLoop         ;
 ; ----------------------------------;
 T2S_End_Of_File                     ;
 ; ----------------------------------;
-    BIT     #RX_TERM,&TERM_IFG      ;3 new char in TERMRXBUF ?
-    JZ      T2S_End_Of_File         ;2 no
-    CMP.B   #0Ah,&TERM_RXBUF        ;4 Char LF ?
-    JNZ     T2S_End_Of_File         ;    
+T2S_Wait_LF                         ; warning! EOT is followed by CR+LF, because I2C_Master uses LF to switch from TX to RX
 ; ----------------------------------;
-    MOV     W,&BufferPtr            ;3
-    CALL    #CloseHandleT           ;4
-    MOV     @RSP+,IP                ; moved here because ASMtoFORTH use above
+    CMP.B   IP,&TERM_RXBUF          ; and also clears RX_IFG !
+    JNZ     T2S_Wait_LF             ;
+; ----------------------------------; here I2C_Master switches from TX to RX
+    MOV     W,&BufferPtr            ; to add it to HDLL_CurSize
+    CALL    #CloseHandle            ;   tranfert SD_BUF to last sector of opened file in SD_CARD then close it
+; ----------------------------------;
+    MOV     @RSP+,IP                ;
     MOV     @IP+,PC                 ;
 ; ----------------------------------;
 
index a28736b..e051b3e 100644 (file)
@@ -1,40 +1,38 @@
 ; -*- coding: utf-8 -*-
-
+;
 ; ---------------------------------------
-; TERMINAL driver for FastForth target
+; UART TERMINAL driver for FastForth target
 ; ---------------------------------------
-;                     +---------------------------+
-; ------              |    +-----------------+    |
-; WIRING              |    |    +--------+   |    |
-; ------              |    |    |        |   |    |
-; FastForth target   TXD  RXD  RTS <--> CTS TXD  RXD  UARTtoUSB <--> COMx <--> TERMINAL
-; -----------------------------------------------------------------------------------------
-; MSP_EXP430FR5739   P2.0 P2.1 P2.2                   PL2303TA                 TERATERM.EXE
-; MSP_EXP430FR5969   P2.0 P2.1 P4.1                   PL2303HXD
-; MSP_EXP430FR5994   P2.0 P2.1 P4.2                   CP2102
-; MSP_EXP430FR6989   P3.4 P3.5 P3.0   
-; MSP_EXP430FR4133   P1.0 P1.1 P2.3   
-; CHIPSTICK_FR2433   P1.4 P1.5 P3.2       
-; MSP_EXP430FR2433   P1.4 P1.5 P1.0       
+;
+;                     +---------------------------------------+
+;                     |    +-----------------------------+    |
+;                     |    |    +------(option)-----+    |    |
+;                     |    |    |                   |    |    |
+; FastForth target:  TXD  RXD  RTS  connected to : CTS  TXD  RXD of UARTtoUSB <--> COMx <--> TERMINAL
+; ----------------   ---  ---  ---                 ---  ---  ---    -------------------------------------
+; MSP_EXP430FR5739   P2.0 P2.1 P2.2                                 PL2303TA                 TERATERM.EXE
+; MSP_EXP430FR5969   P2.0 P2.1 P4.1                                 PL2303HXD
+; MSP_EXP430FR5994   P2.0 P2.1 P4.2                                 CP2102
+; MSP_EXP430FR6989   P3.4 P3.5 P3.0
+; MSP_EXP430FR4133   P1.0 P1.1 P2.3
+; CHIPSTICK_FR2433   P1.4 P1.5 P3.2
+; MSP_EXP430FR2433   P1.4 P1.5 P1.0
 ; MSP_EXP430FR2355   P4.3 P4.2 P2.0
 ; LP_MSP430FR2476    P1.4 P1.5 P6.1
-
-
+;
 ;-------------------------------------------------------------------------------
-; UART TERMINAL: QABORT ABORT_TERM COLD_TERM INI_TERM RXON RXOFF
+; UART TERMINAL: QABORT COLD_TERM INIT_TERM RXON RXOFF
 ;-------------------------------------------------------------------------------
-; define run-time part of ABORT"
-;Z ?ABORT   xi f c-addr u --      abort & print msg.
-;            FORTHWORD "?ABORT"
+
+; define run-time part of ABORT"    ; if f is true display msg. then abort current process
 QABORT      CMP #0,2(PSP)           ; -- f c-addr u         test flag f
-            JNZ ABORT_TERM          ;
+            JNZ ABORT_TERM          ;               see forthMSP430FR_TERM_xxxx.asm below
 THREEDROP   ADD #4,PSP              ; -- u
-            MOV @PSP+,TOS           ; -- 
-            MOV @IP+,PC             ;
+            JMP DROP                ;
 ; ----------------------------------;
-ABORT_TERM                          ; exit from downloading file then reinit some variables via INI_FORTH
+UART_ABORT_TERM                     ; exit from downloading then reinit some variables via INIT_FORTH
 ; ----------------------------------;
-            CALL #RXON              ; PFA resume downloading source file if any
+ABORT_TERM  CALL #RXON              ; resume downloading source file if any
 A_UART_LOOP BIC #RX_TERM,&TERM_IFG  ; clear RX_TERM
             MOV &FREQ_KHZ,Y         ; 1000, 2000, 4000, 8000, 16000, 240000
 A_USB_LOOPJ MOV #65,X               ; 2~        <-------+ linux with minicom seems very very slow...
@@ -44,49 +42,31 @@ A_USB_LOOPI SUB #1,X                ; 1~        <---+   |  ==> ((65*3)+5)*1000 =
             JNZ A_USB_LOOPJ         ; 2~ 200~ loop -----+
             BIT #RX_TERM,&TERM_IFG  ; 4 new char in TERMRXBUF after A_USB_LOOPJ delay ?
             JNZ A_UART_LOOP         ; 2 yes, the input stream is still active: loop back
-            CALL #INI_FORTH         ; common ?ABORT|RST subroutine
-; ----------------------------------;
-            .word   lit,LINE,FETCH  ; -- f c-addr u line    fetch line number before set ECHO !
-            .word   ECHO            ;
+            CALL #INIT_FORTH        ;                   common ?ABORT|PUC subroutine to init DEFERed definitions
+                                    ;                   cnt is a byte, always positive. If cnt = 0 no RST_RET.
+            .word   DUP             ;
+            .word   QFBRAN,ABORT_END;                       display nothing, don't force ECHO if ABORT" empty string
+            .word   ECHO            ;                       force ECHO
             .word   XSQUOTE         ;
-            .byte   4,27,"[7m"      ;                       type ESC[7m    (set reverse video)
-            .word   TYPE            ;  
-; ----------------------------------;
-            .word   QDUP,QFBRAN     ;                                 do nothing if line = 0
-            .word   ABORT_TYPE      ;
+            .byte   4,27,"[7m"      ;
+            .word   TYPE            ;                       type ESC [7m    (set reverse video)
 ; ----------------------------------;
-; Display error "line:xxx"          ; -- f c-addr u line
+; Display QABORT|WARM message       ; <== WARM jumps here
 ; ----------------------------------;
-            .word   XSQUOTE         ; -- f c-addr u line c-addr1 u1   displays the line where error occured
-            .byte   15,"LAST.4TH, line " ;
-            .word   TYPE            ; -- f c-addr u line
-            .word   UDOT            ; -- f c-addr u
-; ----------------------------------;
-; Display ABORT message             ; <== WARM jumps here
-; ----------------------------------;
-ABORT_TYPE  .word   TYPE            ; -- f              type abort message
+ABORT_TYPE  .word   TYPE            ; -- f                  type QABORT|WARM message
             .word   XSQUOTE         ; -- f c-addr u
             .byte   4,27,"[0m"      ;
-            .word   TYPE            ; -- f              set normal video
-            .word   ABORT           ; no return
-
-
-; ----------------------------------;
-COLD_TERM                           ; default STOP_APP: wait TERMINAL idle
-; ----------------------------------;
-UART_COLD_TERM
-            BIT #1,&TERM_STATW      ;3
-            JNZ COLD_TERM           ;2 loop back while TERM_UART is busy
-            MOV @RSP+,PC            ;  return to software_BOR
+            .word   TYPE            ; -- f                  set normal video
+ABORT_END   .word   ABORT           ; -- f                  no return
 ; ----------------------------------;
 
+;-------------------------------------------------------------------------------
+; INIT TERMinal then enable I/O     ;
+;-------------------------------------------------------------------------------
+UART_INIT_TERM                      ; see MSP430FRxxxx.pat file
 ; ----------------------------------;
-INIT_TERM                           ; TOS = RSTIV_MEM
-; ----------------------------------;
-UART_INIT_TERM                      ;
-    CMP #2,TOS                      ;
-    JNC UART_INIT_TERM_END          ; no INIT_TERM if RSTIV_MEM U< 2 (WARM)
-; ----------------------------------;
+INIT_TERM                           ; TOS = USERSYS, don't change it
+    CALL #COLD_TERM                 ; wait while TERM_UART is busy
     MOV #0081h,&TERM_CTLW0          ; UC SWRST + UCLK = SMCLK
     MOV &TERMBRW_RST,&TERM_BRW      ; init value in FRAM
     MOV &TERMMCTLW_RST,&TERM_MCTLW  ; init value in FRAM
@@ -94,118 +74,129 @@ UART_INIT_TERM                      ;
     BIC #1,&TERM_CTLW0              ; release UC_TERM from reset...
     BIS #WAKE_UP,&TERM_IE           ; then enable interrupt for wake up on terminal input
     BIC #LOCKLPM5,&PM5CTL0          ; activate all previous I/O settings.
-UART_INIT_TERM_END
     MOV @RSP+,PC                    ; RET
 ; ----------------------------------;
 
-
-; ----------------------------------;
-RXON                                ; default BACKGND_APP 
-; ----------------------------------;
-UART_RXON   JMP RXON_EXE            ; Software and/or hardware flow control, to start Terminal UART for one line
-; ----------------------------------;
-
 ; ----------------------------------;
-RXOFF                               ; Software and/or hardware flow control, to stop Terminal UART comunication
+UART_COLD_TERM                      ; default STOP_APP: wait TERMINAL idle
 ; ----------------------------------;
-UART_RXOFF                          ;
-    .IFDEF TERMINAL3WIRES           ;   first software flow control
-RXOFF_LOOP  BIT #TX_TERM,&TERM_IFG  ;3      wait the sending of last char
-            JZ RXOFF_LOOP           ;2
-            MOV #19,&TERM_TXBUF     ;4      move XOFF char into TX_buf
-    .ENDIF                          ;
-    .IFDEF TERMINAL4WIRES           ;   and hardware flow control after
-            BIS.B #RTS,&HANDSHAKOUT ;3     set RTS high
-    .ENDIF                          ;
-            MOV @RSP+,PC            ;4 to CR_NEXT, ...or user defined
+WAIT_UART_IDLE
+COLD_TERM   BIT #1,&TERM_STATW      ;3 uart busy ?
+            JNZ COLD_TERM           ;2 loop back while TERM_UART is busy
 ; ----------------------------------;
-
+UART_INIT_SOFT                      ;
 ; ----------------------------------;
-RXON_EXE
+INIT_SOFT_TERM
+            MOV @RSP+,PC            ; does nothing by default
 ; ----------------------------------;
-    .IFDEF TERMINAL3WIRES           ;   first software flow control
-RXON_LOOP   BIT #TX_TERM,&TERM_IFG  ;3      wait the sending of last char, useless at high baudrates
-            JZ RXON_LOOP            ;2
-            MOV #17,&TERM_TXBUF     ;4  move char XON into TX_buf
-    .ENDIF                          ;
-    .IFDEF TERMINAL4WIRES           ;   and hardware flow control after
-            BIC.B #RTS,&HANDSHAKOUT ;3      set RTS low
-    .ENDIF                          ;
-            MOV @RSP+,PC            ;4  to BACKGND (End of file download or quiet input) or AKEYREAD...
-; ----------------------------------;   ... (get next line of file downloading), or user defined
 
-
-;===============================================================================
-            FORTHWORD "WIPE"        ; software DEEP_RESET
-;===============================================================================
-WIPE        MOV #-1,&RSTIV_MEM      ; negative value ==> DEEP_RESET
-            JMP COLD
-
-;===============================================================================
-            FORTHWORD "COLD"
-;===============================================================================
-;Z COLD     --      performs a software RESET
-; as pin RST is replaced by pin NMI, RESET by pin activation is redirected here via USER NMI vector
-; that allows actions to be performed before executing software BOR.
-COLD        CALL @PC+               ; COLD first calls STOP_APP, in this instance: CALL #COLD_TERM by default
-PFACOLD     .word COLD_TERM         ; INI_COLD_DEF: default value set by WIPE. see forthMSP430FR_TERM_xxxx.asm
-            BIT.B #IO_WIPE,&WIPE_IN ; hardware Deep_RESET request (low) ?
-            JNZ COLDEXE             ; no
-            MOV #-1,&RSTIV_MEM      ; yes, set negative value to force DEEP_RESET
-COLDEXE     MOV #0A504h,&PMMCTL0    ; performs software_BOR, see RESET in forthMSP430FR.asm
-; ----------------------------------;
-
-;-----------------------------------;
-            FORTHWORD "WARM"        ;
-;-----------------------------------;
-;Z WARM     xi --                   ; the end of RESET
-;-----------------------------------;
-WARM                                ;
 ;-------------------------------------------------------------------------------
-; RESET 7: if RSTIV_MEM <> WARM, init TERM and enable I/O
+; UART TERMINAL : WARM SYS COLD
 ;-------------------------------------------------------------------------------
-            CALL @PC+               ; init TERM, only if TOS U>= 2 (RSTIV_MEM <> WARM)
-    .IFNDEF SD_CARD_LOADER          ;
-PFAWARM     .word INIT_TERM         ; INI_HARD_APP default value, init TERM UC, unlock I/O's, TOS = RSTIV_MEM
-    .ELSE
-PFAWARM     .word INI_HARD_SD       ; init SD Card + init TERM, see forthMSP430FR_SD_INIT.asm
-    .ENDIF                          ; TOS = RSTIV_MEM
-;-----------------------------------;
-WARM_DISPLAY                        ; TOS = RSTIV_MEM value
-    ASMtoFORTH
+; ----------------------------------; thanks to INIT_FORTH, WARM implements the choice
+UART_WARM                           ; made by the user with SYS|hardwareRST|DEEP_reset
+;-----------------------------------; regarding the state of the software.
+WARM        CALL &HARD_APP          ;
+            mASM2FORTH              ;
+    .word   ECHO                    ;
     .word   XSQUOTE
     .byte   7,13,10,27,"[7m#"       ; CR + cmd "reverse video" + #
     .word   TYPE
-    .word   DOT                     ; display TOS = RSTIV_MEM value
+    .word   DOT                     ; display TOS = USERSYS value
     .word   XSQUOTE
-    .byte   25,"FastForth ©J.M.Thoorens "
+    .byte   25,"FastForth ",169,"J.M.Thoorens, "
     .word   TYPE
-    .word   LIT,FRAM_FULL,HERE,MINUS,UDOT
+    .word   LIT,FRAM_FULL
+    .word   HEREXEC,MINUS,UDOT
     .word   XSQUOTE
     .byte   10,"bytes free"
-    .word   BRAN,ABORT_TYPE         ; without return
+    .word   BRAN,ABORT_TYPE         ; without return!
+;-----------------------------------;
+
+;-----------------------------------;
+            FORTHWORD "SYS"         ; n --      software RST, DEEP_RST, COLD, WARM
+;-----------------------------------;
+            CMP #0,TOS              ;
+            JL SYSEND               ; if -n SYS  ==> COLD + DEEP_RESET
+            JZ NOPUC                ; if [0] SYS
+            BIT #1,TOS              ;
+            JNC SYSEND              ; if +n SYS (+n even)
+NOPUC       PUSH #WARM              ;
+            PUSH RSP                ; Push address of WARM address
+            JMP INIT_FORTH          ; if +n SYS (+n odd)  ==> INIT_FORTH --> WARM -->  WARM display
+SYSEND      MOV TOS,&USERSYS        ; ==> COLD --> PUC --> INIT_FORTH --> WARM -->  WARM display
+;===============================================================================
+COLD        ; <--- USER_NMI vector <--- <RESET> and <RESET> + <SW1> (DEEP_RESET)
+;===============================================================================
+; as pin RST is replaced by pin NMI, RESET by pin activation is redirected here via USER NMI vector
+; that allows actions to be performed before executing software BOR.
+            CALL &COLD_APP          ; to stop APPlication before reset
+            BIT.B #SW1,&SW1_IN      ; <SW1> pressed ?
+            JNZ COLDEXE             ; no
+            MOV #-1,&USERSYS        ; yes, set negative value to force DEEP_RESET
+COLDEXE     MOV #0A504h,&PMMCTL0    ; performs software_BOR ------------------------+
+;===============================================================================    |
+RESET                               ; <-- RST vect. <-- SYS_failures PUC POR BOR <--+
+;===============================================================================
+; PUC 1: replace pin RESET by pin NMI, stops WDT_RESET
+;-------------------------------------------------------------------------------
+            BIS #3,&SFRRPCR         ; pin RST becomes pin NMI with falling edge, so SYSRSTIV = 4
+            BIS #10h,&SFRIE1        ; enable NMI interrupt ==> hardware RESET is redirected to COLD.
+            MOV #5A80h,&WDTCTL      ; disable WDT RESET
+;-------------------------------------------------------------------------------
+; PUC 2: INIT STACK
+;-------------------------------------------------------------------------------
+            MOV #RSTACK,RSP         ; init return stack
+            MOV #PSTACK,PSP         ; init parameter stack
+;-------------------------------------------------------------------------------
+; PUC 3: I/O, RAM, RTC, CS, SYS initialisation limited to FastForth usage.
+;          All unused I/O are set as input with pullup resistor.
+;-------------------------------------------------------------------------------
+        .include "TargetInit.asm"   ; include target specific init code
+;-------------------------------------------------------------------------------
+; PUC 4: init RAM to 0
+;-------------------------------------------------------------------------------
+            MOV #RAM_LEN,X          ; 2 RAM_LEN must be even and > 1, obviously.
+INITRAMLOOP SUB #2,X                ; 1
+            MOV #0,RAM_ORG(X)       ; 3
+            JNZ INITRAMLOOP         ; 2     6 cycles loop !
+;-------------------------------------------------------------------------------
+; PUC 5: GET SYSRSTIV and SYS_USER  ; X = 0
+;-------------------------------------------------------------------------------
+            MOV &SYSRSTIV,X         ; X <-- SYSRSTIV <-- 0
+            MOV &USERSYS,TOS        ; TOS = USERSYS
+            MOV #0,&USERSYS         ; clear USERSYS
+            AND #-1,TOS             ;
+            JNZ PUC6                ; if TOS <> 0, keep USERSYS value
+            MOV X,TOS               ; TOS <-- SYSRSTIV
+;-------------------------------------------------------------------------------
+; PUC 6: START FORTH engine
+;-------------------------------------------------------------------------------
+PUC6        CALL #INIT_FORTH        ; common part of QABORT|PUC
+PUCNEXT     .WORD WARM              ; no return. May be redirected by BOOT.
+;-----------------------------------;
 
 ;-------------------------------------------------------------------------------
-; INTERPRETER INPUT
+; INTERPRETER INPUT: ACCEPT KEY EMIT ECHO NOECHO
 ;-------------------------------------------------------------------------------
             FORTHWORD "ACCEPT"
+;-----------------------------------;
 ;https://forth-standard.org/standard/core/ACCEPT
 ;C ACCEPT  addr addr len -- addr len'  get line at addr to interpret len' chars
 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
 ; ----------------------------------;
 ; ACCEPT part I prepare TERMINAL_INT;
 ; ----------------------------------;
-            MOV TOS,X               ;1 -- addr len
+BODYACCEPT  MOV TOS,X               ;1 -- addr len
             MOV @PSP,TOS            ;2 -- org ptr
             ADD TOS,X               ;1 -- org ptr   X = buf_end
             MOV #0Dh,W              ;2              W = 'CR' to speed up char loop in part II
             MOV #20h,T              ;2              T = 'BL' to speed up char loop in part II
             MOV IP,S                ;               S = ACCEPT_ret
-            MOV #CR_NEXT,IP         ;2             IP = XOFF_ret
+            MOV #CR_NEXT,IP         ;2              IP = XOFF_ret
             PUSHM #5,IP             ;5              PUSHM IP,S,T,W,X       r-- XOFF_ret ACCEPT_ret BL CR buf_end
-            JMP SLEEP               ;2              which calls RXON before falling down to LPMx mode
+            JMP SLEEP               ;2
 ; ----------------------------------;
 
 ; **********************************;
@@ -214,18 +205,26 @@ TERMINAL_INT                        ; <--- TEMR RX interrupt vector, delayed by
 ; (ACCEPT) part II under interrupt  ; Org Ptr -- len'
 ; ----------------------------------;
             ADD #4,RSP              ;1  remove SR and PC from stack, SR flags are lost (unused by FORTH interpreter)
-            POPM #4,IP              ;6  POPM W=buffer_bound, T=0Dh, S=20h, IP=ACCEPT_RET r-- XOFF_ret 
-; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv;
-; starts the 2th stopwatch          ;
-; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
+            POPM #3,IP              ;6  POPM W=buffer_bound, T=0Dh, S=20h, IP=ACCEPT_RET r-- XOFF_ret
+; ----------------------------------;
 AKEYREAD    MOV.B &TERM_RXBUF,Y     ;3  read character into Y, RX_TERM is cleared
 ; ----------------------------------;
             CMP.B T,Y               ;1      CR ?
-            JZ RXOFF                ;2      then RET to CR_NEXT
-; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv;+ 12   to send RXOFF
-; stops the first stopwatch         ;=      first bottleneck, best case result: 25~ + LPMx wake_up time..
-; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
-            CMP.B S,Y               ;1      printable char ?
+            JNZ AKEYRDNNEXT         ;2      no
+; ----------------------------------;
+RXOFF                               ; Software|hardware flow control to stop RX UART    r-- ACCEPT_ret CR_NEXT
+; ----------------------------------;
+    .IFDEF TERMINAL3WIRES           ;   first software flow control
+RXOFF_LOOP  BIT #TX_TERM,&TERM_IFG  ;3      wait the sending of last char
+            JZ RXOFF_LOOP           ;2
+            MOV #19,&TERM_TXBUF     ;4      move XOFF char into TX_buf
+    .ENDIF                          ;
+    .IFDEF TERMINAL4WIRES           ;   and hardware flow control after
+            BIS.B #RTS,&HANDSHAKOUT ;3  set RTS high
+    .ENDIF                          ;
+            MOV @RSP+,PC            ;4 to CR_NEXT
+; ----------------------------------;
+AKEYRDNNEXT CMP.B S,Y               ;1      printable char ?
             JC ASTORETEST           ;2      yes
 ; ----------------------------------;
             CMP.B #8,Y              ;1      char = BS ?
@@ -241,37 +240,24 @@ AKEYREAD    MOV.B &TERM_RXBUF,Y     ;3  read character into Y, RX_TERM is cleare
 ; end of backspace                  ;
 ; ----------------------------------;
 ASTORETEST  CMP W,TOS               ; 1 Bound is reached ?
-            JZ YEMIT                ; 2 yes: send echo then loopback
-            MOV.B Y,0(TOS)          ; 3 no: store char @ Ptr, send echo then loopback
+            JC YEMIT                ; 2 yes: don't store char @ Ptr, don't increment TOS
+            MOV.B Y,0(TOS)          ; 3 no: store char @ Ptr
             ADD #1,TOS              ; 1     increment Ptr
 ; ----------------------------------;
 WAITaKEY    BIT #RX_TERM,&TERM_IFG  ; 3 new char in TERMRXBUF ?
             JNZ AKEYREAD            ; 2 yes
-; vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv;
-; stops the 2th stopwatch           ; best case result: 26~/22~ (with/without echo) ==> 385/455 kBds/MHz
-; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
             JZ WAITaKEY             ; 2 no
 ; ----------------------------------;
-
-; ----------------------------------;
 ; return of RXOFF
 ; ----------------------------------;
 CR_NEXT     SUB @PSP+,TOS           ; -- len'
-; ----------------------------------;
-            MOV #LPM0+GIE,&LPM_MODE ;               reset LPM_MODE to default mode LPM0 for next line of input stream
-; ----------------------------------;
 WAITLF      BIT #RX_TERM,&TERM_IFG  ;               char 'LF' is received ?
             JZ WAITLF               ;               no
             MOV.B &TERM_RXBUF,Y     ;               yes, clear RX_int flag after LF received
 ; ----------------------------------;
-ACCEPT_EOL  CMP #0,&LINE            ;               if LINE <> 0 increment LINE             
-            JZ ACCEPT_END           ;
-            ADD #1,&LINE            ;
-ACCEPT_END  
-; ----------------------------------;
-            MOV S,Y                 ;               output a BL on TERMINAL (for the case of error occuring)
-            JMP YEMIT               ;               before interpret line
-; **********************************;
+ACCEPT_EOL  MOV S,Y                 ;               output a BL on TERMINAL (for the case of error occuring)
+            JMP YEMIT               ;               before return to ABORT to interpret line
+; **********************************;               UF9 to UF11 are reset.
 
 ; ------------------------------------------------------------------------------
 ; TERMINAL I/O, input part
@@ -281,9 +267,22 @@ ACCEPT_END
 ; KEY      -- c      wait character from input device ; primary DEFERred word
 KEY         MOV @PC+,PC             ;4  Code Field Address (CFA) of KEY
 PFAKEY      .word   BODYKEY         ;   Parameter Field Address (PFA) of KEY, with default value
-BODYKEY     SUB #2,PSP              ;1  push old TOS..
+BODYKEY     PUSH #KEYNEXT           ;
+; ----------------------------------;
+RXON                                ; default BACKGND_APP
+; ----------------------------------;
+    .IFDEF TERMINAL3WIRES           ;   first software flow control
+RXON_LOOP   BIT #TX_TERM,&TERM_IFG  ;3      wait the sending of last char, useless at high baudrates
+            JZ RXON_LOOP            ;2
+            MOV #17,&TERM_TXBUF     ;4  move char XON into TX_buf
+    .ENDIF                          ;
+    .IFDEF TERMINAL4WIRES           ;   and hardware flow control after
+            BIC.B #RTS,&HANDSHAKOUT ;3      set RTS low
+    .ENDIF                          ;
+            MOV @RSP+,PC            ;4  to BACKGND (End of file download or quiet input) or AKEYREAD...
+; ----------------------------------;   ... (get next line of file downloading), or user defined
+KEYNEXT     SUB #2,PSP              ;1  push old TOS..
             MOV TOS,0(PSP)          ;3  ..onto stack
-            CALL #RXON
 KEYLOOP     BIT #RX_TERM,&TERM_IFG  ; loop if bit0 = 0 in interupt flag register
             JZ KEYLOOP              ;
             MOV &TERM_RXBUF,TOS     ;
@@ -306,18 +305,16 @@ YEMIT      BIT #TX_TERM,&TERM_IFG   ; 3 wait the sending end of previous char, u
 YEMIT1      BIT.B #CTS,&HANDSHAKIN  ;
             JNZ YEMIT1
         .ENDIF
-QYEMIT      .word   48C2h           ;3 48C2h = MOV.B Y,&<next_adr>
-            .word   TERM_TXBUF      ; 3 MOV Y,&TERMTXBUF
+QYEMIT      MOV.B Y,&TERM_TXBUF     ; 3 may be replaced by MOV @IP+,PC with NOECHO
             MOV @IP+,PC             ;
 
             FORTHWORD "ECHO"
 ;Z ECHO     --      connect terminal output (default)
 ECHO        MOV #48C2h,&QYEMIT      ; 48C2h = MOV.B Y,&<next_adr>
-            MOV #0,&LINE            ;
             MOV @IP+,PC
 
             FORTHWORD "NOECHO"
 ;Z NOECHO   --      disconnect terminal output
 NOECHO      MOV #NEXT,&QYEMIT       ;  NEXT = 4030h = MOV @IP+,PC
-            MOV #1,&LINE            ;
             MOV @IP+,PC
+
index 2bda341..3316ab5 100644 (file)
 ; -*- coding: utf-8 -*-
-
-
+;
 ; ---------------------------------------------------
 ; TERMINAL driver for I2CFastForth target (I2C Slave)
 ; ---------------------------------------------------
-
-;      hardware                                                         Software                 
-;      I2C Slave                                                        I2C Master
-;     
-; I2CFastForth target SCL     SDA   connected to:   SCL     SDA  of  UART to I2C bridge
-; ------------------  ----    ----                  ----    ----     ------------------
-; MSP_EXP430FR5739    P1.7    P1.6                  P4.1    P4.0     MSP_EXP430FR5739  
-; MSP_EXP430FR5969    P1.7    P1.6                  P1.3    P1.2     MSP_EXP430FR5969  
-; MSP_EXP430FR5994    P7.1    P7.0                  P8.1    P8.2     MSP_EXP430FR5994  
-; MSP_EXP430FR6989    P1.7    P1.6                  P1.5    P1.3     MSP_EXP430FR6989  
-; MSP_EXP430FR4133    P5.3    P5.2                  P8.3    P8.2     MSP_EXP430FR4133  
-; CHIPSTICK_FR2433    P1.3    P1.2                  P2.2    P2.0     CHIPSTICK_FR2433  
-; MSP_EXP430FR2433    P1.3    P1.2                  P3.1    P3.2     MSP_EXP430FR2433  
-; MSP_EXP430FR2355    P1.3    P1.2                  P3.3    P3.2     MSP_EXP430FR2355  
-; LP_MSP430FR2476     P4.3    P4.4                  P3.3    P3.2     LP_MSP430FR2476   
+;          |
+;          |           GND------------------------------GND
+;          |           Vcc-------------o---o------------Vcc
+;          |                           |   |
+;          |                           3   3
+;          |                           k   k
+;          v                           3   3
+;   I2C_FastForth                      |   |                        UARTI2C        +---------------------------------------+
+;      hardware         +--------------|---o-------------+          Software       |    +-----------------------------+    |
+;      I2C Slave        |      +-------o----------+      |          I2C Master     |    |    +------(option)-----+    |    |
+;                       |      |                  |      |                         |    |    |                   |    |    |
+; I2CFastForth target  SCL    SDA  connected to: SDA    SCL of UART to I2C bridge TXD  RXD  RTS  connected to : CTS  TXD  RXD  UARTtoUSB <--> COMx <--> TERMINAL
+; ------------------   ----   ----               ----   ----   ------------------ ---  ---  ---                 ---  ---  ---  -------------------------------------
+; MSP_EXP430FR5739     P1.7   P1.6               P4.0   P4.1   MSP_EXP430FR5739   P2.0 P2.1 P2.2                               PL2303TA                 TERATERM.EXE
+; MSP_EXP430FR5969     P1.7   P1.6               P1.2   P1.3   MSP_EXP430FR5969   P2.0 P2.1 P4.1                               PL2303HXD
+; MSP_EXP430FR5994     P7.1   P7.0               P8.2   P8.1   MSP_EXP430FR5994   P2.0 P2.1 P4.2                               CP2102
+; MSP_EXP430FR6989     P1.7   P1.6               P1.3   P1.5   MSP_EXP430FR6989   P3.4 P3.5 P3.0
+; MSP_EXP430FR4133     P5.3   P5.2               P8.2   P8.3   MSP_EXP430FR4133   P1.0 P1.1 P2.3
+; CHIPSTICK_FR2433     P1.3   P1.2               P2.0   P2.2   CHIPSTICK_FR2433   P1.4 P1.5 P3.2
+; MSP_EXP430FR2433     P1.3   P1.2               P3.2   P3.1   MSP_EXP430FR2433   P1.4 P1.5 P1.0
+; MSP_EXP430FR2355     P1.3   P1.2               P3.2   P3.3   MSP_EXP430FR2355   P4.3 P4.2 P2.0
+; LP_MSP430FR2476      P4.3   P4.4               P3.2   P3.3   LP_MSP430FR2476    P1.4 P1.5 P6.1
 ;
 ; don't forget to link 3V3 and GND on each side and to add 3k3 pullup resistors on SDA and SCL.
-
+;
 ;-------------------------------------------------------------------------------
-; I2C TERMINAL: QABORT ABORT_TERM INI_TERM COLD_TERM RXON I2C_CTRL_CH
+; I2C TERMINAL: QABORT ABORT_TERM INIT_TERM COLD_TERM RXON I2C_CTRL_CH
 ;-------------------------------------------------------------------------------
-; define run-time part of ABORT"
-;Z ?ABORT   xi f c-addr u --           abort & print msg.
-;            FORTHWORD "?ABORT"
-QABORT      CMP #0,2(PSP)           ; -- f c-addr u         test flag f
-            JNZ ABORT_TERM          ;
-THREEDROP   ADD #4,PSP              ; -- u
-            MOV @PSP+,TOS           ; -- 
-            MOV @IP+,PC             ;
-; ----------------------------------;
-ABORT_TERM                          ; exit from downloading then reinit some variables via INI_FORTH
-; ----------------------------------;
-            MOV.B #2,Y              ; -- f c-addr u         ABORT request Ctrl_Char = $02
-            CALL #I2C_CTRL_CH       ;                       send it to I2C_Master which will run QABORT_TERM on its side
-; ----------------------------------;
-            PUSH TOS                ;
-            CALL #INI_FORTH         ;
-; ----------------------------------;
-; display line of error if NOECHO   ;
-; ----------------------------------;
-            .word   lit,LINE,FETCH  ; -- f c-addr u line    fetch line number before set ECHO !
-            .word   ECHO            ;
-            .word   RFROM           ; -- f c-addr u line u 
-            .word   QFBRAN,ABORT_END;                       display nothing if ABORT" with empty string
-            .word   XSQUOTE         ; -- f c-addr u line 
+
+; ?ABORT defines run-time part of ABORT"
+QABORT      CMP #0,2(PSP)           ; -- f addr cnt     if f is true abort current process then display ABORT" msg.
+            JNZ ABORT_TERM          ;                   see forthMSP430FR_TERM_xxxx.asm below
+THREEDROP   ADD #4,PSP              ; -- cnt
+            JMP DROP                ;
+; ----------------------------------;
+I2C_ABORT_TERM                      ; exit from downloading then reinit FORTH variables via INIT_FORTH
+; ----------------------------------;
+ABORT_TERM  MOV #2,Y                ;                   send $02 as Ctrl_Char ?ABORT
+            CALL #I2C_CTRL_CH       ;
+            CALL #INIT_FORTH        ;                   common ?ABORT|PUC subroutine to init DEFERed definitions + INIT_FORTH
+            .word   DUP             ; -- f addr cnt cnt
+            .word   QFBRAN,ABORT_END; -- f addr 0       if cnt = 0 display nothing
+            .word   ECHO            ;                   force ECHO
+            .word   XSQUOTE         ;
             .byte   5,27,"[7m",'@'  ;
             .word   TYPE            ;                       cmd "reverse video" + displays "@"
             .word   LIT,I2CSLAVEADR ;
-            .word   FETCH,DOT       ;                       displays <I2C_Slave_Address>
-            .word   QDUP,QFBRAN     ;                       don't display line if line = 0 (ECHO was ON)
-            .word   ABORT_TYPE      ;
-            .word   XSQUOTE         ; -- f c-addr u line c-addr1 u1   displays the line where error occured
-            .byte   15,"LAST.4TH, line " ;
-            .word   TYPE            ; -- f c-addr u line
-            .word   UDOT            ; -- f c-addr u
-; ----------------------------------;
-; Display ABORT|WARM message        ; <== WARM jumps here
-; ----------------------------------;
-ABORT_TYPE  .word   TYPE            ; -- f              display abort|warm message
-            .word   XSQUOTE         ; -- f c-addr u
+            .word   FETCH,DOT       ;                       displays I2C_Slave_Address<<1
+; ----------------------------------;
+; Display ABORT|WARM message        ; -- f addr cnt     <== WARM jumps here
+; ----------------------------------;
+ABORT_TYPE  .word   TYPE            ; -- f              display QABORT|WARM message
+            .word   XSQUOTE         ;
             .byte   4,27,"[0m"      ;
-            .word   TYPE            ; -- f              set normal video
-ABORT_END   .word   ABORT           ; -- f              no return
+            .word   TYPE            ;                   set normal video
+ABORT_END   .word   ABORT           ; -- f|f addr 0     no return
 ; ----------------------------------;
 
+RXON                                ; called by SLEEP before CPU sleeping down.
 ; ----------------------------------;
-INIT_TERM                           ; TOS = RSTIV_MEM
-; ----------------------------------;
-I2C_INIT_TERM
-        CMP #2,TOS                  ;
-        JNC I2C_INIT_TERM_END       ; no INIT_TERM if RSTIV_MEM U< 2 (WARM)
+I2C_ACCEPT  MOV.B #0,Y              ; ACCEPT request Ctrl_Char = $00
 ; ----------------------------------;
-        BIS #07C0h,&TERM_CTLW0      ; set I2C_Slave in RX mode to receive I2C_address
-        MOV &I2CSLAVEADR,Y          ; init value found in FRAM INFO
-        RRA Y                       ; I2C Slave address without R/W bit 
-        BIS #400h,Y                 ; enable I2COA0 Slave address
-        MOV Y,&TERM_I2COA0          ;
-        BIS.B #BUS_TERM,&TERM_SEL   ; Configure pins TERM_I2C
-        BIC #1,&TERM_CTLW0          ; release UC_TERM from reset...
-        BIS #WAKE_UP,&TERM_IE       ; then enable interrupt for wake up on terminal input
-        BIC #LOCKLPM5,&PM5CTL0      ; activate all previous I/O settings.
-I2C_INIT_TERM_END
+I2C_CTRL_CH BIT #TX_TERM,&TERM_IFG  ; send it to I2C_Master_RX to restart it in TX mode
+            JZ I2C_CTRL_CH          ; wait TX buffer empty
+            MOV.B Y,&TERM_TXBUF     ; send Ctrl_Char
+WAITCHAREND BIT #4,&TERM_IFG        ; I2C_Master (re)STARTed ?
+            JZ WAITCHAREND          ; loop back if no
 ; ----------------------------------;
-COLD_TERM                           ; nothing to do
+I2C_COLD_TERM
 ; ----------------------------------;
-        MOV @RSP+,PC                ;
+COLD_TERM                           ; does nothing by default
 ; ----------------------------------;
-
-
+I2C_INIT_SOFT                       ;
 ; ----------------------------------;
-RXON                                ; send ctrl_char $00 as ACCEPT request
+INIT_SOFT_TERM
+            MOV @RSP+,PC            ; does nothing by default
 ; ----------------------------------;
-I2C_RXON    MOV.B #0,Y              ; ACCEPT request Ctrl_Char = $00
 
+;-------------------------------------------------------------------------------
+; INIT TERMinal then enable I/O
+;-------------------------------------------------------------------------------
 ; ----------------------------------;
-I2C_CTRL_CH                         ; send it to I2C_Master_RX to restart it in TX mode
+I2C_INIT_TERM                       ;
 ; ----------------------------------;
-        BIT #TX_TERM,&TERM_IFG      ;3
-        JZ I2C_CTRL_CH              ;2 wait TX buffer empty
-        MOV.B Y,&TERM_TXBUF         ;3 send Ctrl_Char
-WAITCHAREND 
-        BIT #4,&TERM_IFG            ; I2C_Master (re)STARTed ?
-        JZ WAITCHAREND              ; no
+INIT_TERM                           ; TOS = USERSYS, don't change
+        BIS #07C0h,&TERM_CTLW0      ; set I2C_Slave in RX mode to receive I2C_address
+        MOV &I2CSLAVEADR,Y          ; init value found in FRAM INFO
+        RRA Y                       ; I2C Slave address without R/W bit
+        BIS #400h,Y                 ; enable I2COA0 Slave address
+        MOV Y,&TERM_I2COA0          ;
+        BIS.B #BUS_TERM,&TERM_SEL   ; Configure pins TERM_I2C
+        BIC #1,&TERM_CTLW0          ; release UC_TERM from reset...
+        BIS #WAKE_UP,&TERM_IE       ; then enable interrupt for wake up on START
+        BIC #LOCKLPM5,&PM5CTL0      ; activate all previous I/O settings.
         MOV @RSP+,PC                ;
 ; ----------------------------------;
-; I2C_CTRL_CHAR sends a CTRL_Char that asks I2C_Master RX to (re)START in TX mode.
-; As TI tells nothing about I2C_Slave UCSTTIFG ON --> OFF,
-; it is assumed that the Slave clears itself UCSTTIFG after the first character has been exchanged.
 
 ;-------------------------------------------------------------------------------
-; I2C TERMINAL : WIPE COLD WARM ACCEPT KEY EMIT ECHO NOECHO
+; I2C TERMINAL : WARM SYS COLD
 ;-------------------------------------------------------------------------------
 
 ;-----------------------------------;
-            FORTHWORD "WIPE"        ; software DEEP_RESET
-;-----------------------------------;
-WIPE        MOV #-1,&RSTIV_MEM      ; negative value forces DEEP_RESET
-            JMP COLD
-
-; ----------------------------------;
-            FORTHWORD "COLD"        ; performs a software reset
-; ----------------------------------;
-; as pin RST is replaced by pin NMI, RESET by pin activation is redirected here via USER NMI vector
-; that allows specific actions before executing software BOR.
-COLD        CALL @PC+               ; COLD first calls STOP_APP, in this instance: CALL #COLD_TERM by default
-PFACOLD     .word COLD_TERM         ; PFACOLD default value set by WIPE.
-BODYCOLD    BIT.B #IO_WIPE,&WIPE_IN ; hardware Deep_RESET request (low) ?
-            JNZ COLDEXE             ; no
-            MOV #-1,&RSTIV_MEM      ; yes, set negative value to force DEEP_RESET
-COLDEXE     MOV #0A504h,&PMMCTL0    ; performs software_BOR --> RST_vector --> RESET in forthMSP430FR.asm
-; ----------------------------------;
-
-;-----------------------------------;
-            FORTHWORD "WARM"        ;
+;            FORTHWORD "WARM"       ; (n) --
 ;-----------------------------------;
-;Z WARM     xi --                   ; the end of RESET
-;-----------------------------------;
-WARM                                ;
-;-------------------------------------------------------------------------------
-; RESET 7: if RSTIV_MEM <> WARM, init TERM and enable I/O
-;-------------------------------------------------------------------------------
-            CALL @PC+               ; init TERM, only if TOS U>= 2 (RSTIV_MEM <> WARM)
-    .IFNDEF SD_CARD_LOADER          ;
-PFAWARM     .word INIT_TERM         ; INI_HARD_APP default value, init TERM UC, unlock I/O's, TOS = RSTIV_MEM
-    .ELSE
-PFAWARM     .word INI_HARD_SD       ; init SD Card + init TERM, see forthMSP430FR_SD_INIT.asm
-    .ENDIF                          ; TOS = RSTIV_MEM
+I2C_WARM                            ;
 ;-----------------------------------;
-WARM_DISPLAY                        ; TOS = RSTIV_MEM value
-    MOV.B  #3,Y                     ; WARM request Ctrl_Char = $03
-    CALL #I2C_CTRL_CH               ; send it to I2C_Master to reSTART in RX mode
-    ASMtoFORTH
+WARM        CALL &HARD_APP          ; init HARD_APP, i.e. UART_TERMinal then unlock IO's
+            mASM2FORTH              ; display a message then goto QUIT (without return):
+    .word   ECHO                    ;
     .word   XSQUOTE
     .byte   7,13,10,27,"[7m@"       ; CR+LF + cmd "reverse video" + @
     .word   TYPE
-    .word   LIT,I2CSLAVEADR,FETCH,DOT
+    .word   LIT,I2CSLAVEADR,FETCH
+    .word   DOT                     ; display decimal I2C_address<<1
     .word   LIT,'#',EMIT
-    .word   DOT                     ; display signed RSTIV_MEM
+    .word   DOT                     ; display signed USERSYS
     .word   XSQUOTE
-    .byte   25,"FastForth ©J.M.Thoorens "
+    .byte   25,"FastForth ",169,"J.M.Thoorens, "
     .word   TYPE
-    .word   LIT,FRAM_FULL,HERE,MINUS,UDOT
+    .word   LIT,FRAM_FULL
+    .word   HEREXEC,MINUS,UDOT      ; number of...
     .word   XSQUOTE
-    .byte   10,"bytes free"
-    .word   BRAN,ABORT_TYPE         ; without return!
+    .byte   10,"bytes free"         ; bytes free
+    .word   BRAN,ABORT_TYPE         ; no return
+;-----------------------------------;
 
-; ----------------------------------;
-            FORTHWORD "ACCEPT"
+;-----------------------------------;
+            FORTHWORD "SYS"         ; n --      software RST, DEEP_RST, COLD, WARM
+;-----------------------------------;
+            CMP #0,TOS              ;
+            JL SYSEND               ; if -n SYS  ==> COLD + DEEP_RESET
+            JZ NOPUC                ; if [0] SYS
+            BIT #1,TOS              ;
+            JNC SYSEND              ; if +n SYS (+n even)
+NOPUC       PUSH #WARM              ; push WARM address
+            PUSH RSP                ; Push address of WARM address
+            JMP INIT_FORTH          ; if +n SYS (+n odd)  ==> INIT_FORTH --> WARM -->  WARM display
+SYSEND      MOV TOS,&USERSYS        ; ==> COLD --> PUC --> INIT_FORTH --> WARM -->  WARM display
+;===============================================================================
+COLD        ; <--- USER_NMI vector <--- <RESET> and <RESET> + <SW1> (DEEP_RESET)
+;===============================================================================
+; as pin RST is replaced by pin NMI by RESET below, hardware RESET is redirected here via USER NMI vector
+; that allows specific actions before executing software BOR:
+            CALL &COLD_APP          ; to stop APPlication before reset
+            BIT.B #SW1,&SW1_IN      ; <SW1> pressed ?
+            JNZ COLDEXE             ; no
+            MOV #-1,&USERSYS        ; yes, force USERSYS negative value to do DEEP_RESET
+COLDEXE     MOV #0A504h,&PMMCTL0    ; performs software_BOR ------------------------+
+;===============================================================================    |
+RESET                               ; <-- RST vect. <-- SYS_failures PUC POR BOR <--+
+;===============================================================================
+; PUC 1: replace pin RESET by pin NMI, stops WDT_RESET
+;-------------------------------------------------------------------------------
+            BIS #3,&SFRRPCR         ; pin RST becomes pin NMI with falling edge, so SYSRSTIV = 4
+            BIS #10h,&SFRIE1        ; enable NMI interrupt ==> hardware RESET is redirected to COLD.
+            MOV #5A80h,&WDTCTL      ; disable WDT RESET
+;-------------------------------------------------------------------------------
+; PUC 2: INIT STACK
+;-------------------------------------------------------------------------------
+            MOV #RSTACK,RSP         ; init return stack
+            MOV #PSTACK,PSP         ; init parameter stack
+;-------------------------------------------------------------------------------
+; PUC 3: I/O, RAM, RTC, CS, SYS initialisation limited to FastForth usage.
+;          All unused I/O are set as input with pullup resistor.
+;-------------------------------------------------------------------------------
+        .include "TargetInit.asm"   ; include target specific init code
+;-------------------------------------------------------------------------------
+; PUC 4: init RAM to 0
+;-------------------------------------------------------------------------------
+            MOV #RAM_LEN,X          ; 2 RAM_LEN must be even and > 1, obviously.
+INITRAMLOOP SUB #2,X                ; 1
+            MOV #0,RAM_ORG(X)       ; 3
+            JNZ INITRAMLOOP         ; 2     6 cycles loop !
+;-------------------------------------------------------------------------------
+; PUC 5: GET SYSRSTIV and SYS_USER
+;-------------------------------------------------------------------------------
+            MOV &USERSYS,TOS        ; TOS = USERSYS
+            MOV #0,&USERSYS         ; clear USERSYS
+            AND #-1,TOS             ;
+            JNZ PUC6                ; if TOS <> 0, keep USERSYS value
+            MOV &SYSRSTIV,TOS       ; TOS <-- SYSRSTIV <-- 0
+;-------------------------------------------------------------------------------
+; PUC 6: START FORTH engine
+;-------------------------------------------------------------------------------
+PUC6        CALL #INIT_FORTH        ; common part of QABORT|PUC
+PUCNEXT     .WORD WARM              ; no return. May be replaced by XBOOT.
+;-----------------------------------;
+
+;-------------------------------------------------------------------------------
+; INTERPRETER INPUT: ACCEPT KEY EMIT ECHO NOECHO
+;-------------------------------------------------------------------------------
+            FORTHWORD "ACCEPT"      ;
 ; ----------------------------------;
 ;https://forth-standard.org/standard/core/ACCEPT
 ;C ACCEPT  addr addr len -- addr len'  get line at addr to interpret len' chars
@@ -185,29 +208,23 @@ BODYACCEPT                          ;  BODY of ACCEPT = default execution of ACC
             MOV @PSP,TOS            ;2 -- org ptr                                               )
             ADD TOS,W               ;1 -- org ptr   W=buf_end                                   )
             MOV #0Ah,T              ;2              T = 'LF' 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   ) 
-            PUSHM #4,IP             ;6              PUSH IP,S,T,W  r-- IP, 'BL', 'LF', buf_end  )
-;vvvvvvvvvvvvv OPTION vvvvvvvvvvvvvv;
-;            BIC.B #LED1,&LED1_DIR   ;           Red led OFF,
-;            BIC.B #LED1,&LED1_OUT   ;           end of Slave TX
-;^^^^^^^^^^^^^ OPTION ^^^^^^^^^^^^^^;
-            JMP SLEEP               ;            which calls RXON before goto sleep
+            MOV #20h,S              ;2              S = 'BL' to speed up char loop in part II   )
+            PUSHM #4,IP             ;6              PUSH IP,S,T,W  R-- IP, 'BL', 'LF', buf_end  )
+            JMP SLEEP               ;2
 ; ----------------------------------;
 
+; As TI says nothing about the reset of the UCSTTIFG flag by the I2C_Slave,
+; it is assumed that it clears it as soon as the first byte has been exchanged.
 ; **********************************;
-TERMINAL_INT                        ; <--- START interrupt vector, bus is stalled, waiting ACK first char by I2C_Slave RX
+TERMINAL_INT                        ; down to LPM4  <--- START interrupt vector, bus is stalled, waiting ACK first char by I2C_Slave RX
 ; **********************************;
 ; (ACCEPT) part II under interrupt  ; Org Ptr --
 ; ----------------------------------;
             ADD #4,RSP              ;1      remove SR and PC from stack, SR flags are lost (unused by FORTH interpreter)
-            BIC #WAKE_UP,&TERM_IFG  ;       clear UCSTTIFG before return to SLEEP (because not cleared by RX_TERM reading)
+            BIC #WAKE_UP,&TERM_IFG  ;       clear UCSTTIFG before return to SLEEP (instead of RXBUF access to clear it)
             BIT #10h,&TERM_CTLW0    ;4      test UCTR
             JNZ SLEEP               ;       if I2C_Master RX, loop back to SLEEP
             POPM #4,IP              ;6      POPM  IP=ret_IP,W=src_end,T=0Ah,S=20h
-;vvvvvvvvvvvvv OPTION vvvvvvvvvvvvvv;
-;            BIS.B #LED2,&LED2_OUT   ;       green led ON,
-;            BIS.B #LED2,&LED2_DIR   ;       start of Slave RX
-;^^^^^^^^^^^^^ OPTION ^^^^^^^^^^^^^^;
 QNEWCHAR    BIT #RX_TERM,&TERM_IFG  ;3      test RX BUF IFG
             JZ QNEWCHAR             ;2      wait RX BUF full
 ; ----------------------------------;
@@ -219,90 +236,74 @@ AKEYREAD    MOV.B &TERM_RXBUF,Y     ;3      read char into Y, RX_IFG is cleared,
             JC ASTORETEST           ;2      jump if char U>= BL
 ; ----------------------------------;
             CMP.B #8,Y              ;       char = BS ?
-            JNZ QNEWCHAR            ;       case of all other control chars
+            JNZ QNEWCHAR            ;       case of all other control chars: skip it
 ; ----------------------------------;
-; start of backspace                ;       made only by an human
+; case of backspace                 ;       made only by an human
 ; ----------------------------------;
             CMP @PSP,TOS            ;       Ptr = Org ?
             JZ QNEWCHAR             ;       yes: do nothing else
             SUB #1,TOS              ;       no : dec Ptr
-            JMP QNEWCHAR
+            JMP QNEWCHAR            ;
 ; ----------------------------------;
 ASTORETEST  CMP W,TOS               ; 1     end of buffer is reached ?
-            JZ QNEWCHAR             ; 2     yes: loopback
+            JC QNEWCHAR             ; 2     yes: don't store char @ dst_Ptr, don't increment TOS
             MOV.B Y,0(TOS)          ; 3     no: store char @ dst_Ptr
             ADD #1,TOS              ; 1     increment dst_Ptr
-            JMP QNEWCHAR
-; ----------------------------------;
-LF_NEXT                             ; -- Org Ptr
-; ----------------------------------;
-            SUB @PSP+,TOS           ; -- len'
-; ----------------------------------;
-;           MOV #LPMx+GIE,&LPM_MODE ;       no need to redefine LPM_MODE because I2C START works down to LPM4 mode
-; ----------------------------------;       after the sent of 'LF', I2C_Master automaticaly reSTARTs in RX mode:
-            CALL #WAITCHAREND       ;       wait I2C_Master (re)START RX
-;vvvvvvvvvvvvv OPTION vvvvvvvvvvvvvv;
-;            BIC.B #LED2,&LED2_DIR   ;       green led OFF,
-;            BIC.B #LED2,&LED2_OUT   ;       end of Slave RX
-;            BIS.B #LED1,&LED1_DIR   ;       Red led ON,
-;            BIS.B #LED1,&LED1_OUT   ;       start of Slave TX
-;^^^^^^^^^^^^^ OPTION ^^^^^^^^^^^^^^;
-ACCEPT_EOL  CMP #0,&LINE            ;            
-            JZ ACCEPT_END           ;
-            ADD #1,&LINE            ;       if LINE <> 0 increment LINE
-ACCEPT_END                          ;
-; ----------------------------------;
-            MOV S,Y                 ;       output a BL on TERMINAL (for the case of error occuring)
+            JMP QNEWCHAR            ;
+; ----------------------------------;
+LF_NEXT     SUB @PSP+,TOS           ; -- len'
+ACCEPT_EOL  MOV S,Y                 ;       output a BL on TERMINAL (for the case of error occuring)
             JMP YEMIT               ;       before line interpreting
 ; **********************************;
 
 ; ----------------------------------;
-            FORTHWORD "KEY"
+            FORTHWORD "KEY"         ;
 ; ----------------------------------;
 ; https://forth-standard.org/standard/core/KEY
 ; KEY      -- c      wait character from input device ; primary DEFERred word
 KEY         MOV @PC+,PC             ; Code Field Address (CFA) of KEY
 PFAKEY      .word BODYKEY           ; Param Field Address (PFA) of KEY, with its default value
-BODYKEY     SUB #2,PSP              ;           push old TOS..
+BODYKEY     MOV.B #1,Y              ; KEY request Ctrl_Char = $01
+            CALL #I2C_CTRL_CH       ; send it to I2C_Master to restart its UART in RX mode
+            SUB #2,PSP              ;           push old TOS..
             MOV TOS,0(PSP)          ;           ..onto stack
-            MOV.B #1,Y              ; KEY request Ctrl_Char = $01
-            CALL #I2C_CTRL_CH       ; send it to I2C_Master to restart UART in RX mode
 BKEYLOOP    BIT #RX_TERM,&TERM_IFG  ;           received char ?
             JZ BKEYLOOP             ;           wait char received
             MOV &TERM_RXBUF,TOS     ; -- char
+            CALL #RXON              ; send Ctrl_Char $00 to I2C_Master to restart its UART in TX mode
 BKEYEND     MOV @IP+,PC             ; -- char
+; ----------------------------------;
 
 ; ----------------------------------;
-            FORTHWORD "EMIT"
+            FORTHWORD "EMIT"        ;
 ; ----------------------------------;
 ; https://forth-standard.org/standard/core/EMIT
 ; EMIT     c --    output character to an output device ; primary DEFERred word
 EMIT        MOV @PC+,PC             ;3 Code Field Address (CFA) of EMIT
 PFAEMIT     .word BODYEMIT          ;  Parameter Field Address (PFA) of EMIT, with its default value
-BODYEMIT    MOV TOS,Y               ;1 sends character to the default output TERMINAL
+BODYEMIT
+            MOV TOS,Y               ;1 sends character to the default output TERMINAL
             MOV @PSP+,TOS           ;2
 YEMIT       BIT #TX_TERM,&TERM_IFG  ;3
             JZ YEMIT                ;2 wait TX buffer empty
-QYEMIT      .word   48C2h           ;3 48C2h = MOV.B Y,&<next_adr>
-            .word   TERM_TXBUF      ;
+QYEMIT      MOV.B Y,&TERM_TXBUF     ;3 may be replaced by MOV @IP+,PC with NOECHO
 YEMITEND    MOV @IP+,PC             ;4 11 words
+; ----------------------------------;
 
 ; ----------------------------------;
-            FORTHWORD "ECHO"
+            FORTHWORD "ECHO"        ; connect EMIT to TERMINAL (default)
 ; ----------------------------------;
-;Z ECHO     --      connect EMIT to TERMINAL (default)
 ECHO        MOV #48C2h,&QYEMIT      ; 48C2h = MOV.B Y,&<next_adr>
-            MOV #0,&LINE            ;
             MOV #5,Y                ; ECHO request Ctrl_Char = $05
-ECHOEND     CALL #I2C_CTRL_CH       ; send it to I2C_Master to do it echo char to TERMINAL
-            MOV @IP+,PC
+ECHOEND     CALL #I2C_CTRL_CH       ;
+            MOV @IP+,PC             ;
+; ----------------------------------;
 
 ; ----------------------------------;
-            FORTHWORD "NOECHO"
+            FORTHWORD "NOECHO"      ; disconnect EMIT to TERMINAL
 ; ----------------------------------;
-;Z NOECHO   --      disconnect EMIT to TERMINAL
-NOECHO      MOV #4D30h,&QYEMIT      ;  NEXT = 4D30h = MOV @IP+,PC
-            MOV #1,&LINE            ;
+NOECHO      MOV #4D30h,&QYEMIT      ; NEXT = 4D30h = MOV @IP+,PC
             MOV #4,Y                ; NOECHO request Ctrl_Char = $04
-            JMP ECHOEND             ; send it to I2C_Master, to not do it echo to TERMINAL
+            JMP ECHOEND             ;
+; ----------------------------------;
 
index b1d80fa..647a8dc 100644 (file)
 ; -*- coding: utf-8 -*-
 ;
-
 ; ---------------------------------------
-; TERMINAL driver for FastForth target
+; UART TERMINAL driver for FastForth target
 ; ---------------------------------------
-;                     +---------------------------+
-; ------              |    +-----------------+    |
-; WIRING              |    |    +--------+   |    |
-; ------              |    |    |        |   |    |
-; FastForth target   TXD  RXD  RTS <--> CTS TXD  RXD  UARTtoUSB <--> COMx <--> TERMINAL
-; -----------------------------------------------------------------------------------------
-; MSP_EXP430FR5739   P2.0 P2.1 P2.2                   PL2303TA                 TERATERM.EXE
-; MSP_EXP430FR5969   P2.0 P2.1 P4.1                   PL2303HXD
-; MSP_EXP430FR5994   P2.0 P2.1 P4.2                   CP2102
-; MSP_EXP430FR6989   P3.4 P3.5 P3.0   
-; MSP_EXP430FR4133   P1.0 P1.1 P2.3   
-; CHIPSTICK_FR2433   P1.4 P1.5 P3.2       
-; MSP_EXP430FR2433   P1.4 P1.5 P1.0       
+;
+;                     +---------------------------------------+
+;                     |    +-----------------------------+    |
+;                     |    |    +------(option)-----+    |    |
+;                     |    |    |                   |    |    |
+; FastForth target:  TXD  RXD  RTS  connected to : CTS  TXD  RXD of UARTtoUSB <--> COMx <--> TERMINAL
+; ----------------   ---  ---  ---                 ---  ---  ---    -------------------------------------
+; MSP_EXP430FR5739   P2.0 P2.1 P2.2                                 PL2303TA                 TERATERM.EXE
+; MSP_EXP430FR5969   P2.0 P2.1 P4.1                                 PL2303HXD/GC
+; MSP_EXP430FR5994   P2.0 P2.1 P4.2                                 CP2102
+; MSP_EXP430FR6989   P3.4 P3.5 P3.0
+; MSP_EXP430FR4133   P1.0 P1.1 P2.3
+; CHIPSTICK_FR2433   P1.4 P1.5 P3.2
+; MSP_EXP430FR2433   P1.4 P1.5 P1.0
 ; MSP_EXP430FR2355   P4.3 P4.2 P2.0
 ; LP_MSP430FR2476    P1.4 P1.5 P6.1
 ;
 ;-------------------------------------------------------------------------------
-; UART TERMINAL: QABORT ABORT_TERM COLD_TERM INI_TERM RXON RXOFF
+; UART TERMINAL: QABORT INIT_TERM COLD_TERM
 ;-------------------------------------------------------------------------------
-; define run-time part of ABORT"
-;Z ?ABORT   xi f c-addr u --      abort & print msg.
-;            FORTHWORD "?ABORT"
-QABORT      CMP #0,2(PSP)           ; -- f c-addr u         test flag f
-            JNZ ABORT_TERM          ;
-THREEDROP   ADD #4,PSP              ; -- u
-            MOV @PSP+,TOS           ; -- 
-            MOV @IP+,PC             ;
-; ----------------------------------;
-ABORT_TERM                          ; exit from downloading file then reinit some variables via INI_FORTH
-; ----------------------------------;
-            CALL #RXON              ; PFA resume downloading source file if any
+
+; this define run-time part of ABORT"    if f is true display msg. then abort current process
+QABORT      CMP #0,2(PSP)           ; -- f addr cnt         test flag f
+            JNZ ABORT_TERM          ;               see forthMSP430FR_TERM_xxxx.asm below
+THREEDROP   ADD #4,PSP              ; -- cnt
+            JMP DROP                ;
+; ----------------------------------;
+UART_ABORT_TERM                     ; exit from downloading, execute INIT_FORTH then display message if any
+; ----------------------------------;
+ABORT_TERM  CALL #RXON              ; resume downloading source file if any
 A_UART_LOOP BIC #RX_TERM,&TERM_IFG  ; clear RX_TERM
-            MOV &FREQ_KHZ,Y         ; 1000, 2000, 4000, 8000, 16000, 240000
-A_USB_LOOPJ MOV #65,X               ; 2~        <-------+ linux with minicom seems very very slow...
-A_USB_LOOPI SUB #1,X                ; 1~        <---+   |  ==> ((65*3)+5)*1000 = 200ms delay
-            JNZ A_USB_LOOPI         ; 2~ 3~ loop ---+   | to refill its USB buffer
+            MOV &FREQ_KHZ,Y         ; 1000, 2000, 4000, 8000, 16000, 24000
+A_USB_LOOPJ MOV #65,X               ; 2~           <----+ linux with minicom seems very very slow...
+A_USB_LOOPI SUB #1,X                ; 1~         <--+   | to refill its USB buffer
+            JNZ A_USB_LOOPI         ; 2~ 3~ loop ---+   |
             SUB #1,Y                ; 1~                |
-            JNZ A_USB_LOOPJ         ; 2~ 200~ loop -----+
-            BIT #RX_TERM,&TERM_IFG  ; 4 new char in TERMRXBUF after A_USB_LOOPJ delay ?
+            JNZ A_USB_LOOPJ         ; 2~ 200~ loop -----+  ((65*3)+5)*1000 = 200ms delay
+            BIT #RX_TERM,&TERM_IFG  ; 4 new char in TERMRXBUF after 200ms delay ?
             JNZ A_UART_LOOP         ; 2 yes, the input stream is still active: loop back
-            CALL #INI_FORTH         ; common ?ABORT|RST, "hybrid" subroutine with return to FORTH interpreter
+            CALL #INIT_FORTH        ;                   common ?ABORT|PUC subroutine
+                                    ;                   TOS = cnt (byte), always positive. No RST_RET if cnt = 0.
+            .word   DUP             ; -- f addr cnt cnt
+            .word   QFBRAN,ABORT_END; -- f addr 0       don't force ECHO if ABORT" is an empty string
+            .word   ECHO            ; -- f addr cnt     force ECHO
+            .word   XSQUOTE         ;
+            .byte   4,27,"[7m"      ;
+            .word   TYPE            ;                   ESC [7m = set reverse video
 ; ----------------------------------;
-; display line of error if NOECHO   ;
+; Display QABORT|WARM message       ; <== WARM jumps here
 ; ----------------------------------;
-            .word   lit,LINE,FETCH  ; -- f c-addr u line    fetch line number before set ECHO !
-            .word   ECHO            ;
+ABORT_TYPE  .word   TYPE            ; -- f              type QABORT|WARM message
             .word   XSQUOTE         ;
-            .byte   4,27,"[7m"      ;                       type ESC[7m    (set reverse video)
-            .word   TYPE            ;  
-            .word   QDUP,QFBRAN     ;                       don't display line if line = 0 (ECHO was ON)
-            .word   ABORT_TYPE      ;
-            .word   XSQUOTE         ; -- f c-addr u line c-addr1 u1   displays the line where error occured
-            .byte   15,"LAST.4TH, line " ;
-            .word   TYPE            ; -- f c-addr u line
-            .word   UDOT            ; -- f c-addr u
-; ----------------------------------;
-; Display ABORT|WARM message        ; <== WARM jumps here
-; ----------------------------------;
-ABORT_TYPE  .word   TYPE            ; -- f              type abort message
-            .word   XSQUOTE         ; -- f c-addr u
             .byte   4,27,"[0m"      ;
-            .word   TYPE            ; -- f              set normal video
-            .word   ABORT           ; without return
+            .word   TYPE            ;                   ESC [0m = set normal video
+ABORT_END   .word   ABORT           ; -- f              no return
 ; ----------------------------------;
 
-; ----------------------------------;
-COLD_TERM                           ; default STOP_APP: wait TERMINAL idle
-; ----------------------------------;
-UART_COLD_TERM                      ;
-            BIT #1,&TERM_STATW      ;3 uart busy ?
-            JNZ COLD_TERM           ;2 loop back while TERM_UART is busy
-            MOV @RSP+,PC            ;  return to software_BOR
-; ----------------------------------;
+;-------------------------------------------------------------------------------
+; INIT TERMinal then enable I/O
+;-------------------------------------------------------------------------------
 
 ; ----------------------------------;
-INIT_TERM                           ; TOS = RSTIV_MEM
-; ----------------------------------;
 UART_INIT_TERM                      ;
-    CMP #2,TOS                      ;
-    JNC UART_INIT_TERM_END          ; no INIT_TERM if RSTIV_MEM U< 2 (WARM|ABORT)
 ; ----------------------------------;
-    MOV #0081h,&TERM_CTLW0          ; UC SWRST + UCLK = SMCLK
+INIT_TERM
+    CALL #WAIT_UART_IDLE            ; wait while TERM_UART is busy
+    MOV #0081h,&TERM_CTLW0          ; 8 bits, UC SWRST + UCLK = SMCLK, max 6MBds
+;    MOV #1081h,&TERM_CTLW0          ; 7 bits, UC SWRST + UCLK = SMCLK, max 4MBds
     MOV &TERMBRW_RST,&TERM_BRW      ; init value in FRAM INFO
     MOV &TERMMCTLW_RST,&TERM_MCTLW  ; init value in FRAM INFO
     BIS.B #BUS_TERM,&TERM_SEL       ; Configure pins TERM_UART|TERM_I2C
     BIC #1,&TERM_CTLW0              ; release UC_TERM from reset...
     BIS #WAKE_UP,&TERM_IE           ; then enable interrupt for wake up on terminal input
     BIC #LOCKLPM5,&PM5CTL0          ; activate all previous I/O settings.
-UART_INIT_TERM_END
     MOV @RSP+,PC                    ; RET
 ; ----------------------------------;
 
-
-; ----------------------------------;
-UART_RXON   JMP RXON_EXE            ; Software and/or hardware flow control, to start Terminal UART for one line
-; ----------------------------------;
-
 ; ----------------------------------;
-RXOFF                               ; Software and/or hardware flow control, to stop Terminal UART comunication
-; ----------------------------------;
-UART_RXOFF                          ;
-    .IFDEF TERMINAL3WIRES           ;   first software flow control
-RXOFF_LOOP  BIT #TX_TERM,&TERM_IFG  ;3      wait the sending of last char
-            JZ RXOFF_LOOP           ;2
-            MOV #19,&TERM_TXBUF     ;4      move XOFF char into TX_buf
-    .ENDIF                          ;
-    .IFDEF TERMINAL4WIRES           ;   and hardware flow control after
-            BIS.B #RTS,&HANDSHAKOUT ;3  set RTS high
-    .ENDIF                          ;
-            MOV @RSP+,PC            ;4 to CR_NEXT, ...or user defined
+UART_COLD_TERM                      ; default STOP_APP: wait TERMINAL idle
 ; ----------------------------------;
-
+WAIT_UART_IDLE
+COLD_TERM   BIT #1,&TERM_STATW      ;3 uart busy ?
+            JNZ COLD_TERM           ;2 loop back while TERM_UART is busy
 ; ----------------------------------;
-RXON                                ; default BACKGND_APP 
+UART_INIT_SOFT                      ;
 ; ----------------------------------;
-RXON_EXE
+INIT_SOFT_TERM
+            MOV @RSP+,PC            ; does nothing
 ; ----------------------------------;
-    .IFDEF TERMINAL3WIRES           ;   first software flow control
-RXON_LOOP   BIT #TX_TERM,&TERM_IFG  ;3      wait the sending of last char, useless at high baudrates
-            JZ RXON_LOOP            ;2
-            MOV #17,&TERM_TXBUF     ;4  move char XON into TX_buf
-    .ENDIF                          ;
-    .IFDEF TERMINAL4WIRES           ;   and hardware flow control after
-            BIC.B #RTS,&HANDSHAKOUT ;3      set RTS low
-    .ENDIF                          ;
-            MOV @RSP+,PC            ;4  to BACKGND (End of file download or quiet input) or AKEYREAD...
-; ----------------------------------;   ... (get next line of file downloading), or user defined
-
 
 ;-------------------------------------------------------------------------------
-; UART TERMINAL : WIPE COLD WARM ACCEPT KEY EMIT ECHO NOECHO
+; UART TERMINAL : WARM SYS COLD RESET
 ;-------------------------------------------------------------------------------
 
 ;-----------------------------------;
-            FORTHWORD "WIPE"        ; software DEEP_RESET
+;           FORTHWORD "WARM"        ; (n) --
+;-----------------------------------; thanks to INIT_FORTH, WARM implements the choice
+UART_WARM                           ; made by the user with SYS|hardwareRST|DEEP_reset
+;-----------------------------------; regarding the state of the software.
+WARM        CALL &HARD_APP          ;
+            mASM2FORTH              ;
+    .word   ECHO                    ;
+    .word   XSQUOTE
+    .byte   7,13,10,27,"[7m#"       ; CR + cmd "reverse video" + #
+    .word   TYPE
+    .word   DOT                     ; display TOS = USERSYS value
+    .word   XSQUOTE
+    .byte   25,"FastForth ",169,"J.M.Thoorens, "
+    .word   TYPE
+    .word   LIT,FRAM_FULL
+    .word   HEREXEC,MINUS,UDOT
+    .word   XSQUOTE
+    .byte   10,"bytes free"
+    .word   BRAN,ABORT_TYPE         ; without return
 ;-----------------------------------;
-WIPE        MOV #-1,&RSTIV_MEM      ; negative value ==> DEEP_RESET
-            JMP COLD
 
 ;-----------------------------------;
-            FORTHWORD "COLD"
+            FORTHWORD "SYS"         ; n --      software RST, DEEP_RST, COLD, WARM
 ;-----------------------------------;
-;Z COLD     --      performs a software RESET
+            CMP #0,TOS              ;
+            JL SYSEND               ; if -n SYS  ==> COLD + DEEP_RESET
+            JZ NOPUC                ; if [0] SYS ==> INIT_FORTH --> WARM -->  WARM display
+            BIT #1,TOS              ;
+            JNC SYSEND              ; if +n SYS (+n even)
+NOPUC       PUSH #WARM              ;
+            PUSH RSP                ; Push address of WARM address
+            JMP INIT_FORTH          ; if +n SYS (+n odd)  ==> INIT_FORTH --> WARM -->  WARM display
+SYSEND      MOV TOS,&USERSYS        ; ==> COLD --> PUC --> INIT_FORTH --> WARM -->  WARM display
+;===============================================================================
+COLD        ; <--- USER_NMI vector <--- <RESET> and <RESET> + <SW1> (DEEP_RESET)
+;===============================================================================
 ; as pin RST is replaced by pin NMI, RESET by pin activation is redirected here via USER NMI vector
 ; that allows actions to be performed before executing software BOR.
-COLD        CALL @PC+               ; COLD first calls STOP_APP, in this instance: CALL #COLD_TERM by default
-PFACOLD     .word COLD_TERM         ; INI_COLD_DEF: default value set by WIPE. see forthMSP430FR_TERM_xxxx.asm
-            BIT.B #IO_WIPE,&WIPE_IN ; hardware Deep_RESET request (low) ?
+            CALL &COLD_APP          ; to stop APPlication before reset
+            BIT.B #SW1,&SW1_IN      ; <SW1> pressed ?
             JNZ COLDEXE             ; no
-            MOV #-1,&RSTIV_MEM      ; yes, set negative value to force DEEP_RESET
-COLDEXE     MOV #0A504h,&PMMCTL0    ; performs software_BOR --> RST_vector --> RESET in forthMSP430FR.asm
-; ----------------------------------;
-
-;-----------------------------------;
-            FORTHWORD "WARM"        ;
-;-----------------------------------;
-;Z WARM     xi --                   ; common part of WARM|PUC
-;-----------------------------------;
-WARM                                ;
+            MOV #-1,&USERSYS        ; yes, set negative value to force DEEP_RESET
+COLDEXE     MOV #0A504h,&PMMCTL0    ; performs software_BOR ------------------------+
+;===============================================================================    |
+RESET                               ; <-- RST vect. <-- SYS_failures PUC POR BOR <--+
+;===============================================================================
+; PUC 1: replace pin RESET by pin NMI, stops WDT_RESET
 ;-------------------------------------------------------------------------------
-; PUC 7: if RSTIV_MEM <> WARM, init TERM and enable I/O
+            BIS #3,&SFRRPCR         ; pin NMI with falling edge replaces pin RST, so SYSRSTIV = 4
+            BIS #10h,&SFRIE1        ; enable NMI pin interrupt ==> hardware RESET is redirected to COLD.
+            MOV #5A80h,&WDTCTL      ; disable WDT RESET
 ;-------------------------------------------------------------------------------
-            CALL @PC+               ; init TERM, only if TOS U>= 2 (RSTIV_MEM <> WARM)
-    .IFNDEF SD_CARD_LOADER          ;
-PFAWARM     .word INIT_TERM         ; INI_HARD_APP default value, init TERM UC, unlock I/O's, TOS = RSTIV_MEM
-    .ELSE
-PFAWARM     .word INI_HARD_SD       ; init SD Card + init TERM, see forthMSP430FR_SD_INIT.asm
-    .ENDIF                          ; TOS = RSTIV_MEM
+; PUC 2: INIT STACK
+;-------------------------------------------------------------------------------
+            MOV #PSTACK,PSP         ; init parameter stack
+            MOV #RSTACK,RSP         ; init return stack
+;-------------------------------------------------------------------------------
+; PUC 3: I/O, RAM, RTC, CS, SYS initialisation limited to FastForth usage.
+;          All unused I/O are set as input with pullup resistor.
+;-------------------------------------------------------------------------------
+        .include "TargetInit.asm"   ; include target specific init code
+;-------------------------------------------------------------------------------
+; PUC 4: init RAM to 0
+;-------------------------------------------------------------------------------
+            MOV #RAM_LEN,X          ; 2 RAM_LEN must be even and > 1, obviously.
+INITRAMLOOP SUB #2,X                ; 1
+            MOV #0,RAM_ORG(X)       ; 3
+            JNZ INITRAMLOOP         ; 2 6 cycles loop !
+;-------------------------------------------------------------------------------
+; PUC 5: GET SYSRSTIV and SYS_USER
+;-------------------------------------------------------------------------------
+            MOV &SYSRSTIV,X         ; X <-- SYSRSTIV <-- 0
+            MOV &USERSYS,TOS        ; TOS = USERSYS
+            MOV #0,&USERSYS         ; clear USERSYS
+            AND #-1,TOS             ;
+            JNZ PUC6                ; if TOS <> 0, keep USERSYS value
+            MOV X,TOS               ; TOS <-- SYSRSTIV
+;-------------------------------------------------------------------------------
+; PUC 6: START FORTH engine
+;-------------------------------------------------------------------------------
+PUC6        CALL #INIT_FORTH        ; common part of QABORT|PUC
+PUCNEXT     .WORD WARM              ; no return. May be redirected by BOOT.
 ;-----------------------------------;
-WARM_DISPLAY                        ; TOS = RSTIV_MEM value
-    ASMtoFORTH                      ; display a message then goto QUIT, without return
-    .word   XSQUOTE
-    .byte   7,13,10,27,"[7m#"       ; CR + cmd "reverse video" + #
-    .word   TYPE
-    .word   DOT                     ; display TOS = RSTIV_MEM value
-    .word   XSQUOTE
-    .byte   25,"FastForth ©J.M.Thoorens "
-    .word   TYPE
-    .word   LIT,FRAM_FULL,HERE,MINUS,UDOT
-    .word   XSQUOTE
-    .byte   10,"bytes free"
-    .word   BRAN,ABORT_TYPE
-; ----------------------------------;
 
-;-----------------------------------;
-            FORTHWORD "ACCEPT"
+;-------------------------------------------------------------------------------
+; INTERPRETER INPUT: ACCEPT KEY EMIT ECHO NOECHO
+;-------------------------------------------------------------------------------
+            FORTHWORD "ACCEPT"      ;
 ;-----------------------------------;
 ;https://forth-standard.org/standard/core/ACCEPT
-;C ACCEPT  addr addr len -- addr len'  from REFILL, get line at addr to interpret len' chars
+;C ACCEPT  addr addr len -- addr len'  get line at addr to interpret len' chars
 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
 ; ----------------------------------;
-; ACCEPT part I prepare TERMINAL_INT;               this version allows to RX one char (LF) after sending XOFF 
+; ACCEPT part I prepare TERMINAL_INT;               this version allows to RX one char (LF) after sending XOFF
 ; ----------------------------------;
-            MOV TOS,Y               ;1 -- addr len
+BODYACCEPT  MOV TOS,Y               ;1 -- org len   Y = len
             MOV @PSP,TOS            ;2 -- org ptr
-            ADD TOS,Y               ;1 -- org ptr   Y = buf_end                                 )
-            MOV #0Dh,X              ;2              X = 'CR' to speed up char loop in part II   )
-            MOV #20h,W              ;2              W = 'BL' to speed up char loop in part II   >
-            MOV #YEMIT_NEXT,T       ;2              T = return for QYEMIT                       )
-            MOV #CR_NEXT,S          ;2              S = CR_NEXT                                 )
+            ADD TOS,Y               ;1 -- org ptr   Y = buf_end
+            MOV #0Dh,X              ;2              X = 'CR' to speed up char loop in part II
+            MOV #20h,W              ;2              W = 'BL' to speed up char loop in part II
+            MOV #YEMIT_NEXT,T       ;2              T = return for QYEMIT
+            MOV #CR_NEXT,S          ;2              S = CR_NEXT
             PUSHM #6,IP             ;8              PUSHM IP,S,T,W,X,Y       r-- ACCEPT_ret CR_NEXT YEMIT_NEXT BL CR buf_end
-            JMP SLEEP               ;2              which calls RXON before falling down to LPMx mode
+            JMP SLEEP               ;2              send RXON then shut down to LPM0 sleeping mode
 ; ----------------------------------;
 
 ; **********************************;
-TERMINAL_INT                        ; <--- TEMR RX interrupt vector, delayed by the LPMx wake up time
+TERMINAL_INT                        ; <--- TERM RX buffer full interrupt vector, delayed by the LPM0 wake up time
 ; **********************************;      if wake up time increases, max bauds rate decreases...
-; ACCEPT part II under interrupt    ; Org Ptr -- len'
+; ACCEPT part II under interrupt    ; Org Ptr -- len'       all SR flags are cleared
 ; ----------------------------------;
-            ADD #4,RSP              ;1  remove SR and PC from stack, cleared flags: V SCG1 OSCOFF CPUOFF GIE N Z C
-            POPM #4,IP              ;6  POPM W=buffer_bound, T=0Dh, S=20h, IP=YEMIT_NEXT       r-- ACCEPT_ret CR_NEXT 
+            ADD #4,RSP              ;1  remove SR and PC from stack
+            POPM #4,IP              ;6  POPM W=buffer_bound, T=0Dh, S=20h, IP=YEMIT_NEXT    r-- ACCEPT_ret CR_NEXT
 ; ----------------------------------;
 AKEYREAD    MOV.B &TERM_RXBUF,Y     ;3  read character into Y, RX_TERM is cleared
 ; ----------------------------------;
             CMP.B T,Y               ;1      CR ?
-            JZ RXOFF                ;2      then RET to CR_NEXT
-            CMP.B S,Y               ;1      printable char ? 
+            JNZ AKEYRDNNEXT         ;2      no
+; ----------------------------------;
+RXOFF                               ; Software|hardware flow control to stop RX UART    r-- ACCEPT_ret CR_NEXT
+; ----------------------------------;
+    .IFDEF TERMINAL3WIRES           ;   first software flow control
+RXOFF_LOOP  BIT #TX_TERM,&TERM_IFG  ;3      wait the sending of last char
+            JZ RXOFF_LOOP           ;2
+            MOV #19,&TERM_TXBUF     ;4      move XOFF char into TX_buf
+    .ENDIF                          ;
+    .IFDEF TERMINAL4WIRES           ;   and hardware flow control after
+            BIS.B #RTS,&HANDSHAKOUT ;3  set RTS high
+    .ENDIF                          ;
+            MOV @RSP+,PC            ;4 to CR_NEXT
+; ----------------------------------;
+AKEYRDNNEXT CMP.B S,Y               ;1      printable char ?
             JC ASTORETEST           ;2      yes
 ; ----------------------------------;
             CMP.B #8,Y              ;1      char = BS ?
@@ -233,10 +241,10 @@ AKEYREAD    MOV.B &TERM_RXBUF,Y     ;3  read character into Y, RX_TERM is cleare
             CMP @PSP,TOS            ;       Ptr = Org ?
             JZ WAITaKEY             ;       yes: do nothing
             SUB #1,TOS              ;       no : dec Ptr
-            JMP YEMIT               ;       don't store BS
+            JMP YEMIT               ;       don't store BS, return to YEMIT_NEXT
 ; ----------------------------------;
 ASTORETEST  CMP W,TOS               ; 1 Bound is reached ?
-            JZ YEMIT                ; 2 yes: don't store char @ Ptr
+            JC YEMIT                ; 2 yes: don't store char @ Ptr, don't increment TOS
             MOV.B Y,0(TOS)          ; 3 no: store char @ Ptr
             ADD #1,TOS              ; 1     increment Ptr
 ; ----------------------------------;
@@ -246,8 +254,7 @@ YEMIT       BIT #TX_TERM,&TERM_IFG  ; 3 wait the sending end of previous char, u
 YEMIT1      BIT.B #CTS,&HANDSHAKIN  ; 3 CTS is pulled low if unwired.
             JNZ YEMIT1              ; 2
         .ENDIF                      ;
-QYEMIT      .word   48C2h           ; 48C2h = MOV.B Y,&<next_adr>
-            .word   TERM_TXBUF      ; 3
+QYEMIT      MOV.B Y,&TERM_TXBUF     ; 3 may be replaced by MOV @IP+,PC with NOECHO
             MOV @IP+,PC             ; 4
 ; ----------------------------------;
 YEMIT_NEXT  .word $+2               ; 0 YEMII NEXT address
@@ -257,27 +264,17 @@ WAITaKEY    BIT #RX_TERM,&TERM_IFG  ; 3 new char in TERMRXBUF ?
             JNZ AKEYREAD            ; 2 yes, loop = 34~/31~ by char (with/without echo) ==> 294/322 kBds/MHz
             JMP WAITaKEY            ; 2 no
 ; ----------------------------------;
-
-; ----------------------------------;
-; return of RXOFF                   ; --- Org Ptr   r-- ACCEPT_NEXT 
+; return of RXOFF                   ; --- Org Ptr   R-- ACCEPT_NEXT
 ; ----------------------------------;
 CR_NEXT     SUB @PSP+,TOS           ; -- len'
-            MOV @RSP+,IP            ;
-; ----------------------------------;
-            MOV #LPM0+GIE,&LPM_MODE ;               reset LPM_MODE to default mode LPM0 for next line of input stream
-; ----------------------------------;
+            MOV @RSP+,IP            ;               R--
 WAITLF      BIT #RX_TERM,&TERM_IFG  ;               char 'LF' is received ?
             JZ WAITLF               ;               no
-            MOV.B &TERM_RXBUF,Y     ;               yes, clear RX_int flag after LF received
-; ----------------------------------;
-ACCEPT_EOL  CMP #0,&LINE            ;               if LINE <> 0 increment LINE             
-            JZ ACCEPT_END           ;
-            ADD #1,&LINE            ;
-ACCEPT_END  
+            MOV.B &TERM_RXBUF,Y     ;               yes, clear RX_IFG flag after LF received
 ; ----------------------------------;
-            MOV S,Y                 ;               output a BL on TERMINAL (for the case of error occuring)
-            JMP YEMIT               ;               before return to ABORT to interpret line
-; **********************************;               UF9 to UF11 are reset.
+ACCEPT_EOL  MOV S,Y                 ;               output a BL on TERMINAL (for the case of error occuring)
+            JMP YEMIT               ;               before return to QUIT to interpret line
+; **********************************;               UF9 to UF11 will be resetted.
 
 ;-----------------------------------;
             FORTHWORD "KEY"
@@ -286,13 +283,26 @@ ACCEPT_END
 ; KEY      -- c      wait character from input device ; primary DEFERred word
 KEY         MOV @PC+,PC             ;4  Code Field Address (CFA) of KEY
 PFAKEY      .word   BODYKEY         ;   Parameter Field Address (PFA) of KEY, with default value
-BODYKEY     SUB #2,PSP              ;1  push old TOS..
+BODYKEY     PUSH #KEYNEXT           ;
+; ----------------------------------;
+RXON                                ; default BACKGND_APP
+; ----------------------------------;
+    .IFDEF TERMINAL3WIRES           ;   first software flow control
+RXON_LOOP   BIT #TX_TERM,&TERM_IFG  ;3      wait the sending of last char, useless at high baudrates
+            JZ RXON_LOOP            ;2
+            MOV #17,&TERM_TXBUF     ;4  move char XON into TX_buf
+    .ENDIF                          ;
+    .IFDEF TERMINAL4WIRES           ;   and hardware flow control after
+            BIC.B #RTS,&HANDSHAKOUT ;3      set RTS low
+    .ENDIF                          ;
+            MOV @RSP+,PC            ;4  to BACKGND (End of file download or quiet input) or AKEYREAD...
+; ----------------------------------;   ... (get next line of file downloading), or user defined
+KEYNEXT     SUB #2,PSP              ;1  push old TOS..
             MOV TOS,0(PSP)          ;3  ..onto stack
-            CALL #RXON
 KEYLOOP     BIT #RX_TERM,&TERM_IFG  ; loop if bit0 = 0 in interupt flag register
             JZ KEYLOOP              ;
-            MOV &TERM_RXBUF,TOS     ;
             CALL #RXOFF             ;
+            MOV &TERM_RXBUF,TOS     ;
             MOV @IP+,PC
 
 ;-----------------------------------;
@@ -311,7 +321,6 @@ BODYEMIT    MOV TOS,Y               ;1 output character to the default output: T
 ;-----------------------------------;
 ;Z ECHO     --      connect terminal output (default)
 ECHO        MOV #48C2h,&QYEMIT      ; 48C2h = MOV.B Y,&<next_adr>
-            MOV #0,&LINE            ;
             MOV @IP+,PC
 
 ;-----------------------------------;
@@ -319,5 +328,5 @@ ECHO        MOV #48C2h,&QYEMIT      ; 48C2h = MOV.B Y,&<next_adr>
 ;-----------------------------------;
 ;Z NOECHO   --      disconnect terminal output
 NOECHO      MOV #4D30h,&QYEMIT      ;  NEXT = 4D30h = MOV @IP+,PC
-            MOV #1,&LINE            ;
             MOV @IP+,PC
+
index da9ae18..677d1d2 100644 (file)
@@ -18,7 +18,7 @@
 ; PR2 - TEST
 ; PR3 - VCC
 ; PR4 - UART0 RX
-; PR5 - UART0 TX   
+; PR5 - UART0 TX
 ; PR6 - /RST
 
 ; ChipStick Header PL1
@@ -27,8 +27,8 @@
 ; P2 - 20 - P3.2
 ; P3 -  4 - P1.5 UCA0 RX/SOMI
 ; P4 -  3 - P1.4 UCA0 TX/SIMO
-; P5 -  5 - P1.6 UCA0 CLK    
-; P6 - 13 - P2.3 
+; P5 -  5 - P1.6 UCA0 CLK
+; P6 - 13 - P2.3
 ; P7 - 12 - P3.0
 ; P8 -  7 - P1.0 UCB0 STE
 ; P9 -  8 - P1.1 UCB0 CLK
@@ -65,9 +65,9 @@
 ; P3.1 -                        LED1
 
 ; P2.1  -             PL2.2  -  SW1
-; P2.0  -             PL2.3  -  SW2 
+; P2.0  -             PL2.3  -  SW2
 
-;                                 +--4k7-< DeepRST <-- GND 
+;                                 +--4k7-< DeepRST <-- GND
 ;                                 |
 ; P1.4  - UCA0 TXD    PL1.4  -  <-+-> RX  UARTtoUSB bridge
 ; P1.5  - UCA0 RXD    PL1.3  -  <---- TX  UARTtoUSB bridge
 ; P1.1  - UCB0 CLK    PL1.9  -  ----> CLK SPI_RAM
 ; P1.2  - UCB0 SIMO   PL1.10 -  ----> SI  SPI_RAM
 ; P1.3  - UCB0 SOMI   PL2.10 -  <---- S0  SPI_RAM
-        
-        
+
+
 ; P1.1  - UCB0 CLK    PL1.9  -  ----> SD_CLK
 ; P1.2  - UCB0 SIMO   PL1.10 -  ----> SD_SDI
 ; P1.3  - UCB0 SOMI   PL2.10 -  <---- SD_SDO
 ; P2.3  -             PL1.6  -  <---- SD_CD (Card Detect)
 ; P2.2  -             PL2.9  -  ----> SD_CS (Card Select)
-        
+
 ; P1.2  - UCB0 SDA    PL1.10 -  <---> SDA I2C Slave
 ; P1.3  - UCB0 SCL    PL2.10 -  ----> SCL I2C Slave
-        
+
 ; P2.2  -             PL2.9  -  ----> SCL I2C SoftMaster
 ; P2.0  -             PL2.3  -  <---> SDA I2C SoftMaster
-        
-; P1.0  - UCB0 STE    PL1.8  -  <---- TSSOP32236 (IR RC5) 
+
+; P1.0  - UCB0 STE    PL1.8  -  <---- TSSOP32236 (IR RC5)
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : I/O
 
             MOV #-1,&PAOUT  ; OUT1 for all pins
             BIS #-1,&PAREN  ; all pins with pull resistors
-          
+
 ; PORT1 usage
 
     .IFDEF UCB0_TERM        ;
@@ -127,13 +127,13 @@ BUS_SD      .equ 000Eh      ; pins P1.1 as UCB0CLK, P1.2 as UCB0SIMO & P1.3 as U
 TERM_IN     .equ P1IN
 TERM_SEL    .equ P1SEL0
 TERM_REN    .equ P1REN
-TXD         .equ 10h        ; P1.4 = TXD + FORTH Deep_RST pin
+TXD         .equ 10h        ; P1.4
 RXD         .equ 20h        ; P1.5
 BUS_TERM    .equ 30h
     .ENDIF
 
-WIPE_IN     .equ    P1IN
-IO_WIPE     .equ    10h     ; P1.4 = FORTH Deep_RST pin
+SW1_IN     .equ    P1IN
+SW1        .equ    10h     ; P1.4 = FORTH Deep_RST pin
 
     .IFDEF UCA0_SD
 BUS_SD    .equ 0070h        ; pins P1.4,P1.5,P1.6
@@ -145,7 +145,7 @@ SD_REN    .equ PAREN
 CD_SD       .equ 8          ; P2.3 as Card Detect
 SD_CDIN     .equ P2IN
 
-CS_SD       .equ 4          ; P2.2 as Card Select   
+CS_SD       .equ 4          ; P2.2 as Card Select
 SD_CSOUT    .equ P2OUT
 SD_CSDIR    .equ P2DIR
 
@@ -163,7 +163,7 @@ HANDSHAKIN  .equ    P3IN
 CTS         .equ    1           ; P3.0
 RTS         .equ    4           ; P3.2
 
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; CTS is not used by FORTH terminal
 ; configure RTS as output high to disable RX TERM during start FORTH
 
@@ -174,11 +174,11 @@ RTS         .equ    4           ; P3.2
             MOV.B #0FDh,&P3OUT  ; all pins with pullup resistors and LED1 = output low
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P3DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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
             BIC.B #CTS,&P3OUT   ; CTS input pulled down
         .ENDIF  ; TERMINAL5WIRES
@@ -198,7 +198,7 @@ RTS         .equ    4           ; P3.2
 ; POWER ON RESET SYS config
 ; ----------------------------------------------------------------------
 
-; SYS code                                  
+; SYS code
 ;    BIC #1,&SYSCFG0 ; enable write program in FRAM
     MOV #0A500h,&SYSCFG0 ; enable write MAIN and INFO
 
@@ -208,161 +208,39 @@ RTS         .equ    4           ; P3.2
 
 ; CS code for EXP430FR2433
 
-; to measure REFO frequency, output ACLK on P2.2: 
+; to measure REFO frequency, output ACLK on P2.2:
 ;    BIS.B #4,&P2SEL1
 ;    BIS.B #4,&P2DIR
 ; result : REFO = 32.69kHz
 
-; ===================================================================
-; need to adjust FLLN (and DCO) for each device of MSP430fr2xxx family ?
-; (no problem with MSP430FR5xxx families without FLL).
-; ===================================================================
-
-    .IF FREQUENCY = 0.25
-
-            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     #200Dh,&CSCTL2      ; Set FLLD=2 (DCOCLKCDIV=DCO/4),set FLLN=0Dh
-                                        ; fCOCLKDIV = 32768 x (13+1) = 0.459 MHz ; measured :  MHz
-;            MOV     #200Eh,&CSCTL2      ; Set FLLD=2 (DCOCLKCDIV=DCO/4),set FLLN=0Eh
-                                        ; fCOCLKDIV = 32768 x (14+1) = 0.491 MHz ; measured :  MHz
-            MOV     #200Fh,&CSCTL2      ; Set FLLD=2 (DCOCLKCDIV=DCO/4),set FLLN=0Fh
-                                        ; fCOCLKDIV = 32768 x (15+1) = 0.524 MHz ; measured :  MHz
-; =====================================
-            MOV     #4,X
-
-    .ELSEIF 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
-
+    .IFDEF LF_XTAL
+;           MOV     #0000h,&CSCTL3  ; FLL select XT1, FLLREFDIV=0 (default value)
+            MOV     #0000h,&CSCTL4  ; ACLOCK select XT1, MCLK & SMCLK select DCOCLKDIV
+            BIS.B   #03,&P2SEL0     ; P2.0 as XOUT, P2.1 as XIN
+    .ELSE
+            BIS     #0010h,&CSCTL3  ; FLL select REFCLOCK
+            MOV     #0200h,&CSCTL4  ; ACLOCK select VLOCLK, MCLK & SMCLK select DCOCLKDIV (default value)
+    .ENDIF
+            BIC.B   #-1,&CSCTL1     ; clear DCORSEL (Set 1MHZ DCORSEL), DCOFTRIM=0, ENable MODulation to reduce EMI
+    .IF FREQUENCY = 1               ; nothing else to do
     .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
-
+            BIS.B   #2,&CSCTL1      ; Set 2MHZ DCORSEL
     .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
-
+            BIS.B   #4,&CSCTL1      ; Set 4MHZ DCORSEL
     .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
-; ===================================================================
-; CHIPSTICK_FR2433 : TLV area corrupted when welding ? 
-; ===================================================================
-            MOV     #00FCh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=FCh
-                                        ; fCOCLKDIV = 32768 x (252+1) = 8.290 MHz  <============ why ?
-
-; =====================================
-            MOV     #128,X
-
+            BIS.B   #6,&CSCTL1      ; Set 8MHZ DCORSEL
+    .ELSEIF FREQUENCY = 12
+            BIS.B   #8,&CSCTL1      ; Set 12MHZ DCORSEL
     .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
-
+            BIS.B   #10,&CSCTL1     ; Set 16MHZ DCORSEL
     .ELSEIF
-    .error "bad frequency setting, only 0.5,1,2,4,8,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
-
-            BIS.B   #03,&P2SEL0         ; P2.0 as XOUT, P2.1 as XIN
-
-    .ELSE
-            BIS     #0010h,&CSCTL3      ; FLL select REFCLOCK
-;           MOV     #0100h,&CSCTL4      ; ACLOCK select REFO, MCLK & SMCLK select DCOCLKDIV (default value)
+    .error "bad frequency setting, only 1,2,4,8,12,16 MHz"
     .ENDIF
-
-ClockWaitX  MOV     #4375,Y         ; wait 0.42s before starting after POR
-                                    ;       ...because FLL lock time = 280 ms
+;            MOV #INT(FREQUENCY*1000000/32768)-1,&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight lower
+            MOV #INT(FREQUENCY*1000000/32768),&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight upper
+            MOV     #128,X          ; 128* 3 ms = 384 ms delay, because FLL lock time = 280 ms
+ClockWaitX  MOV     &FREQ_KHZ,Y     ;
 ClockWaitY  SUB     #1,Y            ;1
-            JNZ     ClockWaitY      ;2 4375x3 = 13125 cycles delay = 13.125ms @ 1MHz
-            SUB     #1,X            ; x 32 @ 1 MHZ = 330ms
+            JNZ     ClockWaitY      ;2 FREQ_KHZ x 3 ==> 3ms
+            SUB     #1,X            ;
             JNZ     ClockWaitX      ;
-
-;WAITFLL     BIT #300h,&CSCTL7       ; wait FLL lock
-;            JNZ WAITFLL
-
index 26bdd63..21a4dd2 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for ChipStick_FR2433!      to change file type
 !
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
@@ -20,9 +20,9 @@
 ! P3.1 -                        LED1
 !
 ! P2.1  -             PL2.2  -  SW1
-! P2.0  -             PL2.3  -  SW2 
+! P2.0  -             PL2.3  -  SW2
 !
-!                                 +--4k7-< DeepRST <-- GND 
+!                                 +--4k7-< DeepRST <-- GND
 !                                 |
 ! P1.4  - UCA0 TXD    PL1.4  -  <-+-> RX  UARTtoUSB bridge
 ! P1.5  - UCA0 RXD    PL1.3  -  <---- TX  UARTtoUSB bridge
 ! P1.1  - UCB0 CLK    PL1.9  -  ----> CLK SPI_RAM
 ! P1.2  - UCB0 SIMO   PL1.10 -  ----> SI  SPI_RAM
 ! P1.3  - UCB0 SOMI   PL2.10 -  <---- S0  SPI_RAM
-!       
-!       
+!
+!
 ! P1.1  - UCB0 CLK    PL1.9  -  ----> SD_CLK
 ! P1.2  - UCB0 SIMO   PL1.10 -  ----> SD_SDI
 ! P1.3  - UCB0 SOMI   PL2.10 -  <---- SD_SDO
 ! P2.3  -             PL1.6  -  <---- SD_CD (Card Detect)
 ! P2.2  -             PL2.9  -  ----> SD_CS (Card Select)
-!       
+!
 ! P1.2  - UCB0 SDA    PL1.10 -  <---> SDA I2C Slave
 ! P1.3  - UCB0 SCL    PL2.10 -  ----> SCL I2C Slave
-!       
+!
 ! P2.2  -             PL2.9  -  ----> SCL I2C SoftMaster
 ! P2.0  -             PL2.3  -  <---> SDA I2C SoftMaster
-!       
-! P1.0  - UCB0 STE    PL1.8  -  <---- TSSOP32236 (IR RC5) 
+!
+! P1.0  - UCB0 STE    PL1.8  -  <---- TSSOP32236 (IR RC5)
 
 
 ! ============================================
 ! FORTH I/O :
 ! ============================================
-!TERMINAL 
+!TERMINAL
 BUS_TERM=\$30!      ; P1.4 = TX, P1.5 = RX
 
 TERM_IN=\$200!
@@ -62,21 +62,21 @@ TERM_SEL=\$20A!     \SEL0
 TERM_VEC=\$FFE4!    \ UCA0
 WAKE_UP=1!          \ RX int
 
-TERM_CTLW0=\$500!   \ eUSCI_A control word 0        
-TERM_CTLW1=\$502!   \ eUSCI_A control word 1        
-TERM_BRW=\$506!         
-TERM_BR0=\$506!     \ eUSCI_A baud rate 0           
-TERM_BR1=\$507!     \ eUSCI_A baud rate 1           
-TERM_MCTLW=\$508!   \ eUSCI_A modulation control    
-TERM_STATW=\$50A!   \ eUSCI_A status                
-TERM_RXBUF=\$50C!   \ eUSCI_A receive buffer        
-TERM_TXBUF=\$50E!   \ eUSCI_A transmit buffer       
-TERM_ABCTL=\$510!   \ eUSCI_A LIN control           
-TERM_IRTCTL=\$512!  \ eUSCI_A IrDA transmit control 
-TERM_IRRCTL=\$513!  \ eUSCI_A IrDA receive control  
-TERM_IE=\$51A!      \ eUSCI_A interrupt enable      
-TERM_IFG=\$51C!     \ eUSCI_A interrupt flags       
-TERM_IV=\$51E!      \ eUSCI_A interrupt vector word 
+TERM_CTLW0=\$500!   \ eUSCI_A control word 0
+TERM_CTLW1=\$502!   \ eUSCI_A control word 1
+TERM_BRW=\$506!
+TERM_BR0=\$506!     \ eUSCI_A baud rate 0
+TERM_BR1=\$507!     \ eUSCI_A baud rate 1
+TERM_MCTLW=\$508!   \ eUSCI_A modulation control
+TERM_STATW=\$50A!   \ eUSCI_A status
+TERM_RXBUF=\$50C!   \ eUSCI_A receive buffer
+TERM_TXBUF=\$50E!   \ eUSCI_A transmit buffer
+TERM_ABCTL=\$510!   \ eUSCI_A LIN control
+TERM_IRTCTL=\$512!  \ eUSCI_A IrDA transmit control
+TERM_IRRCTL=\$513!  \ eUSCI_A IrDA receive control
+TERM_IE=\$51A!      \ eUSCI_A interrupt enable
+TERM_IFG=\$51C!     \ eUSCI_A interrupt flags
+TERM_IV=\$51E!      \ eUSCI_A interrupt vector word
 
 RTS=4!              ; P3.2
 CTS=1!              ; P3.0
@@ -90,19 +90,19 @@ LED1_OUT=\$222!
 LED1=\$02!          P3.1
 
 SW1_IN=\$201!
-SW1=\$02!           P2.1    
+SW1=\$02!           P2.1
 
 WIPE_IN=\$201!
-IO_WIPE=\$02!       P2.1    
+IO_WIPE=\$02!       P2.1
 
 SW2_IN=\$201!
 SW2=\$01!           P2.0
 
 
-IR_IN=\$200!  
-IR_OUT=\$202! 
-IR_DIR=\$204! 
-IR_REN=\$208! 
+IR_IN=\$200!
+IR_OUT=\$202!
+IR_DIR=\$204!
+IR_REN=\$208!
 IR_IES=\$218!
 IR_IE=\$21A!
 IR_IFG=\$21C!
@@ -116,7 +116,7 @@ I2CSM_DIR=\$205!
 I2CSM_REN=\$207!
 SMSDA=\$01!         P2.0
 SMSCL=\$04!         P2.2
-SM_BUS=\$05!    
+SM_BUS=\$05!
 
 I2CSMM_IN=\$201!
 I2CSMM_OUT=\$203!
@@ -124,7 +124,7 @@ I2CSMM_DIR=\$205!
 I2CSMM_REN=\$207!
 SMMSDA=\$01!        P2.0
 SMMSCL=\$04!        P2.2
-SMM_BUS=\$05!    
+SMM_BUS=\$05!
 
 I2CMM_IN=\$200!
 I2CMM_OUT=\$202!
@@ -160,7 +160,7 @@ S_BUS=\$C0!
 CD_SD=8!        ; P2.3 as Card Detect
 SD_CDIN=\$201!
 
-CS_SD=4!        ; P2.2 as Card Select     
+CS_SD=4!        ; P2.2 as Card Select
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
index 94d81ca..64cced6 100644 (file)
@@ -27,72 +27,91 @@ TOS=R14!
 PSP=R15!
 
 ! forth words filter
-D\.R=D\.R
-
-M\*=M\*
-M\+=M\+
-
+\"\s*\"=\"\s*\"!            ." xxxx" filter
+S\"\s*\"=S\"\s*\"!          S" xxxx" filter
+s\"\s*\"=S\"\s*\"!          s" xxxx" filter
+\(\s*\)=\(\s*\)!            ( xxxx) and .( xxxx) filter
+abort\"\s*\"=ABORT\"\s*\"!  abort" xxxx" filter
+ABORT\"\s*\"=ABORT\"\s*\"!  ABORT" xxxx" filter
+!
+D\.R=D\.R!
+!
+M\*=M\*!
+M\+=M\+!
+!
 R\>=R\>!
 R\@=R\@!
 \>R=\>R!
-
+!
 S\>=S\>!
 \>S=\>S!
 S\<=S\<!
 S\>\==S\>\=!
 \.S=\.S!
-S\"=S\"!
-S\_=S\_!
-
+\s\_=\S\_!                  s_   filter
+\S\_=\S\_!                  S_   filter
+!
 \<\#=\<\#!
 \#S=\#S!
 \#\>=\#\>!
-
+!
 T\{=T\{!
 \}T=\}T!
-
+!
 U\.R=U\.R!
-
+!
 ! ASCII numbers interpreter complement
-\'NUL\'=\$00!
-\'SOH\'=\$01!
-\'STX\'=\$02!
-\'ETX\'=\$03!
-\'EOT\'=\$04!
-\'ENQ\'=\$05!
-\'ACK\'=\$06!
-\'BEL\'=\$07!
-\'BS\'=\$08!    Backspace
-\'HT\'=\$09!    Horizontal Tabulation
-\'LF\'=\$0A!
-\'VT\'=\$0B!
-\'FF\'=\$0C!    
-\'CR\'=\$0D!
-\'SO\'=\$0E!
-\'SI\'=\$0F!
-\'DLE\'=\$10!
-\'DC1\'=\$11!   XON
-\'DC2\'=\$12!
-\'DC3\'=\$13!   XOFF
-\'DC4\'=\$14!
-\'NAK\'=\$15!
-\'SYN\'=\$16!
-\'ETB\'=\$17!
-\'CAN\'=\$18!
-\'EM\'=\$19!
-\'SUB\'=\$1A!
-\'ESC\'=\$1B!
-\'FS\'=\$1C!
-\'GS\'=\$1D!
-\'RS\'=\$1E!
-\'US\'=\$1F!
-\'SP\'=\$20!
-\'\'\'=\$27!'  QNUMBER can't interpret ''' !
-\'DEL\'=\$7F!
-
-\(RTS\)=\(RTS\)!
-\(CTS\)=\(CTS\)!
-
+'NUL'=\$00!
+'SOH'=\$01!
+'STX'=\$02!
+'ETX'=\$03!
+'EOT'=\$04!
+'ENQ'=\$05!
+'ACK'=\$06!
+'BEL'=\$07!
+'BS'=\$08!    Backspace
+'HT'=\$09!    Horizontal Tabulation
+'LF'=\$0A!
+'VT'=\$0B!
+'FF'=\$0C!
+'CR'=\$0D!
+'SO'=\$0E!
+'SI'=\$0F!
+'DLE'=\$10!
+'DC1'=\$11!
+'XON'=\$11!
+'DC2'=\$12!
+'DC3'=\$13!
+'XOFF'=\$13!
+'DC4'=\$14!
+'NAK'=\$15!
+'SYN'=\$16!
+'ETB'=\$17!
+'CAN'=\$18!
+'EM'=\$19!
+'SUB'=\$1A!
+'ESC'=\$1B! escape char
+'FS'=\$1C!
+'GS'=\$1D!
+'RS'=\$1E!
+'US'=\$1F!
+'SP'=\$20!
+'DEL'=\$7F!
+'R'='R'!
+'Q'='Q'!
+'P'='P'!
+'M'='M'!
+'Y'='Y'!
+'X'='X'!
+'W'='W'!
+'T'='T'!
+'S'='S'!
+(SW1)=(SW1)!
+(SW2)=(SW2)!
+(RST)=(RST)!
+\/RTS=\/RTS!
+\/CTS=\/CTS!
+XON\/XOFF=XON\/XOFF!
 
 ! ============================================
 ! SR bits :
@@ -100,15 +119,15 @@ U\.R=U\.R!
 \#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  
+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
+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
 
 LPM4=\$F0! SR(LPM4)
 LPM3=\$D0! SR(LPM3)
@@ -116,12 +135,6 @@ LPM2=\$90! SR(LPM2)
 LPM1=\$50! SR(LPM1)
 LPM0=\$10! SR(LPM0)
 
-LPM4\+GIE=\$F8! SR(LPM4+GIE)
-LPM3\+GIE=\$D8! SR(LPM3+GIE)
-LPM2\+GIE=\$98! SR(LPM2+GIE)
-LPM1\+GIE=\$58! SR(LPM1+GIE)
-LPM0\+GIE=\$18! SR(LPM0+GIE)
-
 ! ============================================
 ! PORTx, Reg  bits :
 ! ============================================
@@ -150,9 +163,15 @@ RETA=MOVA \@R1+,R0! \ MOVA @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   
-
-ABORT=ALLOT\+8!             Empty the data stack and perform the function of QUIT
-QUIT=ALLOT\+\$0E!           interpret line by line the input stream
-ABORT\"=ABORT\"!
+NEXT=MOV \@R13+,R0! \ MOV @IP+,PC
+\'\ \\=\'\ \\!      \ to compile INTERPRET in CORE_ANS.f
+DODOES=\$1285!
+DOCON=\$1286!
+DOVAR=\$1287!
 
+! ============================================
+! ADD-ON flags :
+! ============================================
+FLOORED=\$8000!
+LF_XTAL=\$4000!
+HMPY=1!
\ No newline at end of file
index d6c9a0a..5b3e2a4 100644 (file)
@@ -7,36 +7,36 @@
 
 ;     J101 Target    J101    eZ-FET             UARTtoUSB
 ;
-;            DVSS 14 o--o 13 GND  
+;            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            |         _   
+;     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.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     
+; 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            
+; P5.4/UCB1STE/TA3CLK/A11
 ; P3.5/UCB1CLK/TB0TRG/CAP3.1
-; P4.5/UCB0SOMI/UCB0SCL/TA3.2         
+; P4.5/UCB0SOMI/UCB0SCL/TA3.2
 ; P1.3/UCB0SOMI/UCB0SCL/MCLK/A3
 ; P1.2/UCB0SIMO/UCB0SDA/TA0.2/A2/VEREF-
 ;
 ; 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                      
+; 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 
+; P5.7/TA2.1/COMP0.2
 ; P3.7/TA3.2/CAP2.0
 ;
 ; J4 - right int.
-; P5.2/UCA0TXD/UCA0SIMO/TB0.4                       
+; 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
@@ -78,8 +78,8 @@
 ; P2.4/UCA1CLK/CAP1.1
 ;
 ; switch-keys:
-; P4.0/TA3.1/CAP2.1                 - S1 
-; P2.3/TA2.0/CAP0.2                 - S2 
+; P4.0/TA3.1/CAP2.1                 - S1
+; P2.3/TA2.0/CAP0.2                 - S2
 ; /RST                              - S3
 ;
 ; XTAL LF 32768 Hz
@@ -114,8 +114,8 @@ LED2        .equ    1
             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 
+; P1.4  UCA0-TXD    --> USB2UART RXD
+; P1.5  UCA0-RXD    <-- USB2UART TXD
 TERM_IN     .equ P1IN
 TERM_SEL    .equ P1SEL0
 TERM_REN    .equ P1REN
@@ -127,7 +127,7 @@ BUS_TERM    .equ 30h
 CD_SD       .equ 080h   ; P1.7 as Card Detect
 SD_CDIN     .equ P1IN
 
-CS_SD       .equ 040h   ; P1.6 as Card Select 
+CS_SD       .equ 040h   ; P1.6 as Card Select
 SD_CSOUT    .equ P1OUT
 SD_CSDIR    .equ P1DIR
 
@@ -137,7 +137,7 @@ SD_SEL      .equ PASEL0 ; to configure UCA1
 SD_REN      .equ PAREN  ; to configure pullup resistors
     .ENDIF
 
-; P2.3/TA2.0/CAP0.2                 - S2 
+; P2.3/TA2.0/CAP0.2                 - S2
 SW2_IN      .equ    P2IN
 SW2         .equ    8
 
@@ -163,8 +163,6 @@ BUS_TERM    .equ    0Ch     ; P3.2=SDA P3.3=SCL
 ; S1 - P4.0
 SW1_IN      .equ    P4IN
 SW1         .equ    1       ; P4.0 = S1
-WIPE_IN     .equ    P4IN
-IO_WIPE     .equ    1       ; P4.0 = S1 = FORTH Deep_RST pin
 
 
 ; LED2B - J8 - P4.7
@@ -198,11 +196,11 @@ CTS         .equ    4           ; P6.2
             MOV     #0FFFCh,&PCOUT  ; all pins with pull up resistors else P5.0 (LED2G) P5.1 (LED2R)
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P6DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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
             BIC.B #CTS,&P6OUT   ; CTS input pulled down
         .ENDIF  ; TERMINAL5WIRES
@@ -220,7 +218,7 @@ CTS         .equ    4           ; P6.2
 ; ----------------------------------------------------------------------
 ; POWER ON RESET SYS config
 ; ----------------------------------------------------------------------
-; SYS code                                  
+; SYS code
 ;    BIC #1,&SYSCFG0 ; enable write program in FRAM
     MOV #0A500h,&SYSCFG0 ; enable write MAIN and INFO
 
@@ -229,125 +227,40 @@ CTS         .equ    4           ; P6.2
 ; ----------------------------------------------------------------------
 ; CS code for MSP430FR2476
 
-; to measure REFO frequency, output ACLK on P2.2: 
+; to measure REFO frequency, output ACLK on P2.2:
 ;    BIS.B #4,&P2SEL1
 ;    BIS.B #4,&P2DIR
 ; result : REFO = xx.xx kHz
 
-; =====================================
-    .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
-; =====================================
-    .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
-; =====================================
-    .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
-; =====================================
-    .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
-; =====================================
-    .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
-
-; =====================================
-    .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
-; =====================================
-    .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
-; =====================================
-    .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
             BIS.B   #03,&P2SEL0         ; P2.0 as XOUT, P2.1 as XIN
     .ELSE
             BIS     #0010h,&CSCTL3      ; FLL select REFCLOCK
-            MOV     #0200h,&CSCTL4      ; ACLOCK select VLOCLK, MCLK & SMCLK select DCOCLKDIV (default value)
+;            MOV     #0100h,&CSCTL4      ; ACLOCK select REFO, MCLK & SMCLK select DCOCLKDIV (default value)
     .ENDIF
-
+            BIC.B   #-1,&CSCTL1     ; clear DCORSEL (Set 1MHZ DCORSEL), DCOFTRIM=0, ENable MODulation to reduce EMI
+    .IF FREQUENCY = 1                   ; nothing else to do
+    .ELSEIF FREQUENCY = 2
+            BIS.B   #2,&CSCTL1          ; Set 2MHZ DCORSEL
+    .ELSEIF FREQUENCY = 4
+            BIS.B   #4,&CSCTL1          ; Set 4MHZ DCORSEL
+    .ELSEIF FREQUENCY = 8
+            BIS.B   #6,&CSCTL1          ; Set 8MHZ DCORSEL
+    .ELSEIF FREQUENCY = 12
+            BIS.B   #8,&CSCTL1          ; Set 12MHZ DCORSEL
+    .ELSEIF FREQUENCY = 16
+            BIS.B   #10,&CSCTL1         ; Set 16MHZ DCORSEL
+    .ELSEIF FREQUENCY = 20
+            BIS.B   #12,&CSCTL1         ; Set 20MHZ DCORSEL
+    .ELSEIF FREQUENCY = 24
+            BIS.B   #14,&CSCTL1         ; Set 24MHZ DCORSEL
+    .ELSEIF
+    .error "bad frequency setting, only 1,2,4,8,12,16,20,24 MHz"
+    .ENDIF
+;            MOV #INT(FREQUENCY*1000000/32768)-1,&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight lower
+            MOV #INT(FREQUENCY*1000000/32768),&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight upper
             MOV     #92,X           ; 96* 3 ms = 288 ms delay, because FLL lock time = 200 ms
 ClockWaitX  MOV     &FREQ_KHZ,Y     ;
 ClockWaitY  SUB     #1,Y            ;1
index 36293a8..ccd03f0 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for LP_MSP430FR2476!      to change file type
 !
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
 ! ===================================================================================
 ! 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  
+!            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            |         _   
+!     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     
+! 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            
+! P5.4/UCB1STE/TA3CLK/A11
 ! P3.5/UCB1CLK/TB0TRG/CAP3.1
-! P4.5/UCB0SOMI/UCB0SCL/TA3.2         
+! P4.5/UCB0SOMI/UCB0SCL/TA3.2
 ! P1.3/UCB0SOMI/UCB0SCL/MCLK/A3
 ! P1.2/UCB0SIMO/UCB0SDA/TA0.2/A2/VEREF-
 !
 ! 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                      
+! 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 
+! 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.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
@@ -83,8 +83,8 @@
 ! P2.4/UCA1CLK/CAP1.1
 !
 ! switch-keys:
-! P4.0/TA3.1/CAP2.1                 - S1 
-! P2.3/TA2.0/CAP0.2                 - S2 
+! P4.0/TA3.1/CAP2.1                 - S1
+! P2.3/TA2.0/CAP0.2                 - S2
 ! /RST                              - S3
 !
 ! XTAL LF 32768 Hz
 !
 ! P4.0 - Switch S1             <--- LCD contrast + (finger :-)
 ! P2.3 - Switch S2             <--- LCD contrast - (finger ;-)
-!                                  
+!
 !  GND -                       <-------+---0V0---------->  1 LCD_Vss
 !  VCC -                       >------ | --3V6-----+---->  2 LCD_Vdd
 !                                      |           |
 ! P1.1 -                J3     <---------red------------> 12 LCD_DB5
 ! P1.2 -                J1     <---------orange---------> 13 LCD_DB5
 ! P1.3 -                J1     <---------yellow---------> 14 LCD_DB7
-!        
-!                                +--4k7-< DeepRST <-- GND 
+!
+!                                +--4k7-< DeepRST <-- GND
 !                                |
 ! P1.4 - UCA0 TXD      J101.8  <-+->white--> RX   UARTtoUSB bridge
 ! P1.5 - UCA0 RXD      J101.10 <----green--- TX   UARTtoUSB bridge
 !  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.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) ───┐
 !                                                                      └┌───┐
 ! ============================================
 ! FORTH I/O :
 ! ============================================
-!TERMINAL 
+!TERMINAL
 BUS_TERM=\$30!      ; P1.4 = TX, P1.5 = RX
 
 TERM_IN=\$200!
@@ -175,21 +175,21 @@ TERM_SEL=\$20A!     \SEL0
 TERM_VEC=\$FFE4!    \ UCA0
 WAKE_UP=1!          \ RX int
 
-TERM_CTLW0=\$500!   \ eUSCI_A control word 0        
-TERM_CTLW1=\$502!   \ eUSCI_A control word 1        
-TERM_BRW=\$506!         
-TERM_BR0=\$506!     \ eUSCI_A baud rate 0           
-TERM_BR1=\$507!     \ eUSCI_A baud rate 1           
-TERM_MCTLW=\$508!   \ eUSCI_A modulation control    
-TERM_STATW=\$50A!   \ eUSCI_A status                
-TERM_RXBUF=\$50C!   \ eUSCI_A receive buffer        
-TERM_TXBUF=\$50E!   \ eUSCI_A transmit buffer       
-TERM_ABCTL=\$510!   \ eUSCI_A LIN control           
-TERM_IRTCTL=\$512!  \ eUSCI_A IrDA transmit control 
-TERM_IRRCTL=\$513!  \ eUSCI_A IrDA receive control  
-TERM_IE=\$51A!      \ eUSCI_A interrupt enable      
-TERM_IFG=\$51C!     \ eUSCI_A interrupt flags       
-TERM_IV=\$51E!      \ eUSCI_A interrupt vector word 
+TERM_CTLW0=\$500!   \ eUSCI_A control word 0
+TERM_CTLW1=\$502!   \ eUSCI_A control word 1
+TERM_BRW=\$506!
+TERM_BR0=\$506!     \ eUSCI_A baud rate 0
+TERM_BR1=\$507!     \ eUSCI_A baud rate 1
+TERM_MCTLW=\$508!   \ eUSCI_A modulation control
+TERM_STATW=\$50A!   \ eUSCI_A status
+TERM_RXBUF=\$50C!   \ eUSCI_A receive buffer
+TERM_TXBUF=\$50E!   \ eUSCI_A transmit buffer
+TERM_ABCTL=\$510!   \ eUSCI_A LIN control
+TERM_IRTCTL=\$512!  \ eUSCI_A IrDA transmit control
+TERM_IRRCTL=\$513!  \ eUSCI_A IrDA receive control
+TERM_IE=\$51A!      \ eUSCI_A interrupt enable
+TERM_IFG=\$51C!     \ eUSCI_A interrupt flags
+TERM_IV=\$51E!      \ eUSCI_A interrupt vector word
 
 RTS=2!                  P6.1
 CTS=4!                  P6.2
@@ -199,7 +199,7 @@ HANDSHAKOUT=\$243!
 CD_SD=\$80!             P1.7 as Card Detect
 SD_CDIN=\$200!
 
-CS_SD=\$40!             P1.6 as Card Select     
+CS_SD=\$40!             P1.6 as Card Select
 SD_CSOUT=\$202!
 SD_CSDIR=\$204!
 
@@ -219,7 +219,7 @@ LED1_DIR=\$244!
 LED1=2!                 P5.1 red led
 
 SW1_IN=\$221!
-SW1=1!                  P4.0 = S1 
+SW1=1!                  P4.0 = S1
 WIPE_IN\$221!
 IO_WIPE=1!              P4.0 = S1 = FORTH Deep_RST pin
 
@@ -264,10 +264,10 @@ 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_IN=\$201!
+IR_OUT=\$203!
+IR_DIR=\$205!
+IR_REN=\$209!
 IR_IES=\$219!
 IR_IE=\$21B!
 IR_IFG=\$21D!
@@ -285,7 +285,7 @@ I2CSM_DIR=\$224!
 I2CSM_REN=\$226!
 SMSDA=4!                P3.2
 SMSCL=8!                P3.3
-SM_BUS=\$0C!    
+SM_BUS=\$0C!
 
 !Software I2C_Multi_Master
 I2CSMM_IN=\$220!
@@ -294,7 +294,7 @@ I2CSMM_DIR=\$224!
 I2CSMM_REN=\$226!
 SMMSDA=4!               P3.2
 SMMSCL=8!               P3.3
-SMM_BUS=\$0C!    
+SMM_BUS=\$0C!
 
 !hardware I2C_Multi_Master
 I2CMM_IN=\$221!
@@ -342,12 +342,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$580!   USCI_B1 Control Word Register 0
 I2CM_CTLW1=\$582!   USCI_B1 Control Word Register 1
 I2CM_BRW=\$586!     USCI_B1 Baud Word Rate 0
-I2CM_STATW=\$588!   USCI_B1 status word 
-I2CM_TBCNT=\$58A!   USCI_B1 byte counter threshold  
+I2CM_STATW=\$588!   USCI_B1 status word
+I2CM_TBCNT=\$58A!   USCI_B1 byte counter threshold
 I2CM_RXBUF=\$58C!   USCI_B1 Receive Buffer 8
 I2CM_TXBUF=\$58E!   USCI_B1 Transmit Buffer 8
 I2CM_I2COA0=\$594!  USCI_B1 I2C Own Address 0
-I2CM_ADDRX=\$59C!   USCI_B1 Received Address Register 
+I2CM_ADDRX=\$59C!   USCI_B1 Received Address Register
 I2CM_I2CSA=\$5A0!   USCI_B1 I2C Slave Address
 I2CM_IE=\$5AA!      USCI_B1 Interrupt Enable
 I2CM_IFG=\$5AC!     USCI_B1 Interrupt Flags Register
@@ -355,12 +355,12 @@ I2CM_IFG=\$5AC!     USCI_B1 Interrupt Flags Register
 I2CS_CTLW0=\$580!   USCI_B1 Control Word Register 0
 I2CS_CTLW1=\$582!   USCI_B1 Control Word Register 1
 I2CS_BRW=\$586!     USCI_B1 Baud Word Rate 0
-I2CS_STATW=\$588!   USCI_B1 status word 
-I2CS_TBCNT=\$58A!   USCI_B1 byte counter threshold  
+I2CS_STATW=\$588!   USCI_B1 status word
+I2CS_TBCNT=\$58A!   USCI_B1 byte counter threshold
 I2CS_RXBUF=\$58C!   USCI_B1 Receive Buffer 8
 I2CS_TXBUF=\$58E!   USCI_B1 Transmit Buffer 8
 I2CS_I2COA0=\$594!  USCI_B1 I2C Own Address 0
-I2CS_ADDRX=\$59C!   USCI_B1 Received Address Register 
+I2CS_ADDRX=\$59C!   USCI_B1 Received Address Register
 I2CS_I2CSA=\$5A0!   USCI_B1 I2C Slave Address
 I2CS_IE=\$5AA!      USCI_B1 Interrupt Enable
 I2CS_IFG=\$5AC!     USCI_B1 Interrupt Flags Register
index 708fb65..4e52a47 100644 (file)
@@ -44,61 +44,89 @@ INFO_LEN=\$0200!
 ! You can check the addresses below by comparing their values in DTCforthMSP430FRxxxx.lst
 ! those addresses are usable with the symbolic assembler
 ! ----------------------------------------------
-! FastForth INFO
+! FastForth INFO addresses
 ! ----------------------------------------------
 FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of default INI_SOFT_APP
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+!
+INIT_DOXXX=\$182C!      MOV #INIT_DOXXX,X       \ te restore DOxxx registers
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+!
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
-TLV_ORG=\$1A00!     Device Descriptor Info (Tag-Lenght-Value)
+TLV_ORG=\$1A00!         Device Descriptor Info (Tag-Lenght-Value)
 TLV_LEN=\$0032!
 DEVICEID=\$1A04!
-
+!
 ! ============================================
 ! RAM
 ! ============================================
 RAM_ORG=\$2000!
 RAM_LEN=\$1000!
-
+!
 ! ----------------------------------------------
 ! FORTH RAM areas :
 ! ----------------------------------------------
@@ -106,55 +134,51 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_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
-! ----------------------
+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!       base address for HOLDS
+HOLD_BASE=\$21B2!       BASE HOLD area, grow down
+!
 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
+LAST_NFA=\$21B4!
+LAST_THREAD=\$21B6!
+LAST_CFA=\$21B8!
+LAST_PSP=\$21BA!
+!
+STATEADR=\$21BC!        Interpreter state
+BASEADR=\$21BE!
+CAPS=\$21C0 !
+!
+SOURCE_LEN=\$21C2!      len of input stream
+SOURCE_ORG=\$21C4!      adr of input stream
+TOIN=\$21C6!            >IN
+DP=\$21C8!              dictionary ptr
+!
+LASTVOC=\$21CA!         keep VOC-LINK
+CURRENT=\$21CC!         CURRENT dictionnary ptr
+CONTEXT=\$21CE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
 !21E0! 28 RAM bytes free
 ! ---------------------------------------
-
+!
 ! ---------------------------------------
 ! SD buffer
 ! ---------------------------------------
@@ -162,7 +186,7 @@ SD_BUF_I2ADR=\$21FC!
 SD_BUF_I2CNT=\$21FE!
 SD_BUF=\$2200!      \ SD_Card buffer
 SD_BUF_END=\$2400!
-
+!
 ! ---------------------------------------
 ! FAT16 FileSystemInfos
 ! ---------------------------------------
@@ -175,7 +199,7 @@ OrgFAT2=\$240C!
 OrgRootDir=\$240E!
 OrgClusters=\$2410!         Sector of Cluster 0
 SecPerClus=\$2412!
-
+!
 ! ---------------------------------------
 ! SD command
 ! ---------------------------------------
@@ -188,7 +212,7 @@ SD_CMD_FRM4=\$2418! HH:CMD  word access
 SD_CMD_FRM5=\$2419! CMD     byte access
 SectorL=\$241A!     2 words
 SectorH=\$241C!
-
+!
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
@@ -244,12 +268,12 @@ 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
+HDLW_BUFofst=22!    SD BUFFER offset ; used by LOAD" and by WRITE"
+HDLW_PrevLEN=24!    CIB LEN of previous handle
+HDLW_PrevORG=26!    CIB ORG of previous handle
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=28!
 FirstHandle=\$2438!
@@ -267,50 +291,59 @@ SD_LEN=\$16E!
 ! FRAM MAIN
 ! ============================================
 MAIN_ORG=\$8000!            Code space start
-
+! ----------------------------------------------
 SLEEP=\$8000!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$800A!                 CODE compiled by LITERAL
-XSQUOTE=\$8014!             CODE compiled by S" and S_
-HEREXEC=\$8028!             CODE HERE and BEGIN execute address
-QFBRAN=\$8034!              CODE compiled by IF UNTIL
-BRAN=\$803A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$803C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$803E!                 CODE compiled by DO
-XPLOOP=\$804E!              CODE compiled by +LOOP
-XLOOP=\$8060!               CODE compiled by LOOP
-MUSMOD=\$8066!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$8078!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$8080!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$80AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$80AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$80BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$80CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$80D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$80E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$80EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$801E!             CODE compiled by S" and S_
+HEREXEC=\$8032!             CODE HERE and BEGIN execute address
+MUSMOD=\$803E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$8050!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$8058!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$8082!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$8084!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$8094!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$80A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$80AC!              CODE compiled by IF UNTIL
+BRAN=\$80B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$80B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$80B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$80C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$80F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$812A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$8136!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$80D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$8108!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$8112!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
+!-------------------------------------------------------------------------------
+! UART FASTFORTH
+!-------------------------------------------------------------------------------
+UART_INIT_TERM=\$8154!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$817E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$8184!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_WARM=\$8186!           WARM address
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$8194!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$819C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$81C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$81C8!          ASM CODE, called by ACCEPT before RX char LF.
+! I2C FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$81B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$818E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$81BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$81BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+I2C_ACCEPT=\$8144!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$8146!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$8156!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$8156!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$8158!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$8180!            WARM address
 !-------------------------------------------------------------------------------
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR2355
 ! ----------------------------------------------
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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_SIG1=\$FF80!       if 0 (electronic fuse=0) enable JTAG/SBW ! reset by -1 SYS and by S1+<reset>
 JTAG_SIG2=\$FF82!       if JTAG_SIG <> |0xFFFFFFFF, 0x00000000|, SBW and JTAG are locked
 BSL_SIG1=\$FF84!
 BSL_SIG2=\$FF86!
@@ -325,7 +358,7 @@ JTAG_PASSWORD=\$FF88!   256 bits
 BSL_PASSWORD=\$FFE0!    256 bits
 VECT_ORG=\$FFCE!         FFCE-FFFF :  24 vectors + reset
 VECT_LEN=\$32!
-
+! ----------------------------------------------
 P4_VEC=\$FFCE!
 P3_VEC=\$FFD0!
 P2_VEC=\$FFD2!
@@ -333,7 +366,7 @@ P1_VEC=\$FFD4!
 SAC1SAC3_VEC=\$FFD6!
 SAC0SAC2_VEC=\$FFD8!
 ECOMPX_VEC=\$FFDA!
-ADC10_VEC=\$FFDC!
+ADC12_VEC=\$FFDC!
 EUSCI_B1_VEC=\$FFDE!
 EUSCI_B0_VEC=\$FFE0!
 EUSCI_A1_VEC=\$FFE2!
@@ -424,6 +457,7 @@ CSCTL8=\$190!       \ CS control 8
 
 
 FRCTLCTL0=\$1A0!    \ FRAM control 0
+FRCTLCTL0_H=\$1A1!  \ FRAM control 0_H: FRAM password byte = $A5
 GCCTL0=\$1A4!       \ General control 0
 GCCTL1=\$1A6!       \ General control 1
 
@@ -719,16 +753,16 @@ ICCILSR7=\$6C12! \ Interrupt Compare Controller Interrupt Level Setting Register
 
 
 
-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
+ADC12CTL0=\$700!    \ ADC12_B Control register 0
+ADC12CTL1=\$702!    \ ADC12_B Control register 1
+ADC12CTL2=\$704!    \ ADC12_B Control register 2
+ADC12LO=\$706!      \ ADC12_B Window Comparator Low Threshold
+ADC12HI=\$708!      \ ADC12_B Window Comparator High Threshold
+ADC12MCTL0=\$70A!   \ ADC12_B Memory Control Register 0
+ADC12MEM0=\$712!    \ ADC12_B Conversion Memory Register
+ADC12IE=\$71A!      \ ADC12_B Interrupt Enable
+ADC12IFG=\$71C!     \ ADC12_B Interrupt Flags
+ADC12IV=\$71E!      \ ADC12_B Interrupt Vector Word
 
 ADCON=\$10!
 ADCSTART=\$03!
index d117a81..e7d4ddb 100644 (file)
@@ -22,9 +22,9 @@ FR2_FAMILY
 ; ----------------------------------------------
 PAGESIZE        .equ 512         ; MPU unit
 ; ----------------------------------------------
-; BSL                           
+; BSL
 ; ----------------------------------------------
-BSL1            .equ 01000h 
+BSL1            .equ 01000h
 BSL2            .equ 0FFC00h
 ; ----------------------------------------------
 ; FRAM                          ; INFO B, TLV
@@ -52,7 +52,7 @@ BSL_SIG1        .equ 0FF84h      ;
 BSL_SIG2        .equ 0FF86h      ;
 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits
 BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
-I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address 
+I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
@@ -72,25 +72,25 @@ VECT_LEN        .equ 26h
 
 ;   .org    INTVECT         ; FFDA-FFFF 18 vectors + reset
 ;
-;           .word  reset        ; FFDAh - P2       
-;           .word  reset        ; FFDCh - P1       
-;           .word  reset        ; FFDEh - ADC10    
-;           .word  reset        ; FFE0h - eUSCI_B0 
-;           .word  reset        ; FFE2h - eUSCI_A1 
-;           .word  reset        ; FFE4h - eUSCI_A0 
-;           .word  reset        ; FFE6h - WDT      
-;           .word  reset        ; FFE8h - RTC      
-;           .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    
+;           .word  reset        ; FFDAh - P2
+;           .word  reset        ; FFDCh - P1
+;           .word  reset        ; FFDEh - ADC10
+;           .word  reset        ; FFE0h - eUSCI_B0
+;           .word  reset        ; FFE2h - eUSCI_A1
+;           .word  reset        ; FFE4h - eUSCI_A0
+;           .word  reset        ; FFE6h - WDT
+;           .word  reset        ; FFE8h - RTC
+;           .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
 ; ----------------------------------------------------------------------
 ; MSP430FR2433 Peripheral File Map
 ; ----------------------------------------------------------------------
@@ -131,21 +131,21 @@ 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        
-      
+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
 ; ...
 
@@ -198,7 +198,7 @@ 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 
+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
@@ -212,7 +212,7 @@ 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 
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT3
@@ -227,10 +227,10 @@ P3SEL1      .equ PB_SFR + 0Ch    ; Port 3 Selection 1
 ; ----------------------------------------------------------------------
 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 
+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
@@ -313,7 +313,7 @@ TERM_STATW      .equ eUSCI_B0_SFR + 08h     ; USCI_B0 Status Word
 TERM_RXBUF      .equ eUSCI_B0_SFR + 0Ch     ; USCI_B0 Receive Buffer 8
 TERM_TXBUF      .equ eUSCI_B0_SFR + 0Eh     ; USCI_B0 Transmit Buffer 8
 TERM_I2COA0     .equ eUSCI_B0_SFR + 14h     ; USCI_B0 I2C Own Address 0
-TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register 
+TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register
 TERM_I2CSA      .equ eUSCI_B0_SFR + 20h     ; USCI_B0 I2C Slave Address
 TERM_IE         .equ eUSCI_B0_SFR + 2Ah     ; USCI_B0 Interrupt Enable
 TERM_IFG        .equ eUSCI_B0_SFR + 2Ch     ; USCI_B0 Interrupt Flags Register
index 61b51fd..abc9ad6 100644 (file)
@@ -30,48 +30,73 @@ INFO_LEN=\$0200!
 ! You can check the addresses below by comparing their values in DTCforthMSP430FRxxxx.lst
 ! those addresses are usable with the symbolic assembler
 ! ----------------------------------------------
-! FastForth INFO
+! FastForth INFO addresses
 ! ----------------------------------------------
 FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
@@ -79,7 +104,6 @@ TLV_ORG=\$1A00!     Device Descriptor Info (Tag-Lenght-Value)
 TLV_LEN=\$0080!
 DEVICEID=\$1A04!
 
-
 ! ============================================
 ! RAM
 ! ============================================
@@ -93,53 +117,49 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_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
-! ---------------------------------------
+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!       base address for HOLDS
+HOLD_BASE=\$21B2!       BASE HOLD area, grow down
+!
 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
+LAST_NFA=\$21B4!
+LAST_THREAD=\$21B6!
+LAST_CFA=\$21B8!
+LAST_PSP=\$21BA!
+!
+STATEADR=\$21BC!        Interpreter state
+BASEADR=\$21BE!
+CAPS=\$21C0 !
+!
+SOURCE_LEN=\$21C2!      len of input stream
+SOURCE_ORG=\$21C4!      adr of input stream
+TOIN=\$21C6!            >IN
+DP=\$21C8!              dictionary ptr
+!
+LASTVOC=\$21CA!         keep VOC-LINK
+CURRENT=\$21CC!         CURRENT dictionnary ptr
+CONTEXT=\$21CE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
-!21E0! 28 RAM bytes free 
+!21E0! 28 RAM bytes free
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -151,7 +171,7 @@ SD_BUF=\$2200!      \ SD_Card buffer
 BUFEND=\$2400!
 
 ! ---------------------------------------
-! FAT16 FileSystemInfos 
+! FAT16 FileSystemInfos
 ! ---------------------------------------
 FATtype=\$2402!
 BS_FirstSectorL=\$2404!
@@ -179,7 +199,7 @@ SectorH=\$241C!
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$241E! 
+BufferPtr=\$241E!
 BufferLen=\$2420!
 
 ! ---------------------------------------
@@ -187,8 +207,8 @@ BufferLen=\$2420!
 ! ---------------------------------------
 ClusterL=\$2422!     16 bits wide (FAT16)
 ClusterH=\$2424!     16 bits wide (FAT16)
-NewClusterL=\$2426!  16 bits wide (FAT16) 
-NewClusterH=\$2428!  16 bits wide (FAT16) 
+NewClusterL=\$2426!  16 bits wide (FAT16)
+NewClusterH=\$2428!  16 bits wide (FAT16)
 CurFATsector=\$242A!
 
 ! ---------------------------------------
@@ -196,7 +216,7 @@ CurFATsector=\$242A!
 ! ---------------------------------------
 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!  
+EntryOfst=\$2430!
 
 ! ---------------------------------------
 ! Handle Pointer
@@ -212,7 +232,7 @@ EndOfPath=\$2436!
 ! ---------------------------------------
 ! Handle structure
 ! ---------------------------------------
-! three handle tokens : 
+! three handle tokens :
 ! token = 0 : free handle
 ! token = 1 : file to read
 ! token = 2 : file updated (write)
@@ -236,7 +256,7 @@ HDLW_PrevLEN=24!    previous LEN
 HDLW_PrevORG=26!    previous ORG
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=28!
 FirstHandle=\$2438!
@@ -257,51 +277,59 @@ MAIN_ORG=\$C400!        Code space start
 
 SLEEP=\$C400!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$C40A!                 CODE compiled by LITERAL
-XSQUOTE=\$C414!             CODE compiled by S" and S_
-HEREXEC=\$C428!             CODE HERE and BEGIN execute address
-QFBRAN=\$C434!              CODE compiled by IF UNTIL
-BRAN=\$C43A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$C43C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$C43E!                 CODE compiled by DO
-XPLOOP=\$C44E!              CODE compiled by +LOOP
-XLOOP=\$C460!               CODE compiled by LOOP
-MUSMOD=\$C466!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$C478!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$C480!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$C4AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$C4AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$C4BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$C4CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$C4D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$C4E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$C4EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$C41E!             CODE compiled by S" and S_
+HEREXEC=\$C432!             CODE HERE and BEGIN execute address
+MUSMOD=\$C43E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$C450!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$C458!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$C482!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$C484!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$C494!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$C4A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$C4AC!              CODE compiled by IF UNTIL
+BRAN=\$C4B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$C4B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$C4B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$C4C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$C4F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$C52A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$C536!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$C4D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$C508!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$C512!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$C594!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$C59C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$C5C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$C5C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$C5B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$C58E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$C5BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$C5BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$C554!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$C57E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$C584!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$C586!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$C544!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$C546!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$C556!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$C556!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$C558!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$C580!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR2433
 ! ----------------------------------------------
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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!        
+BSL_SIG1=\$FF84!
+BSL_SIG2=\$FF86!
 I2CSLA0=\$FFA2!         UCBxI2COA0 default value address
 I2CSLA1=\$FFA4!         UCBxI2COA1 default value address
 I2CSLA2=\$FFA6!         UCBxI2COA2 default value address
@@ -371,41 +399,41 @@ 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 
+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  
+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
 
@@ -448,54 +476,54 @@ P3REN=\$226!
 P3SEL0=\$22A!
 P3SEL1=\$22C!
 
-RTCCTL=\$300!       \ RTC control                                  
-RTCIV=\$304!        \ RTC interrupt vector word                       
-RTCMOD=\$308!       \ RTC modulo                                       
-RTCCNT=\$30C!       \ RTC counter register    
+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   
-TA2R=\$410!         \ TA2 counter register        
-TA2CCR0=\$412!      \ Capture/compare register 0  
-TA2CCR1=\$414!      \ Capture/compare register 1  
-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   
-TA3R=\$450!         \ TA3 counter register        
-TA3CCR0=\$452!      \ Capture/compare register 0  
-TA3CCR1=\$454!      \ Capture/compare register 1  
-TA3EX0=\$460!       \ TA3 expansion register 0    
-TA3IV=\$46E!        \ TA3 interrupt vector        
+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
+TA2R=\$410!         \ TA2 counter register
+TA2CCR0=\$412!      \ Capture/compare register 0
+TA2CCR1=\$414!      \ Capture/compare register 1
+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
+TA3R=\$450!         \ TA3 counter register
+TA3CCR0=\$452!      \ Capture/compare register 0
+TA3CCR1=\$454!      \ Capture/compare register 1
+TA3EX0=\$460!       \ TA3 expansion register 0
+TA3IV=\$46E!        \ TA3 interrupt vector
 
 MPY=\$4C0!          \ 16-bit operand 1 - multiply
 MPYS=\$4C2!         \ 16-bit operand 1 - signed multiply
@@ -522,89 +550,89 @@ 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     
+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
 
 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            
+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!
index d506fb3..745bf42 100644 (file)
@@ -25,7 +25,7 @@ FR2_FAMILY
 ; ----------------------------------------------
 PAGESIZE        .equ 512         ; MPU unit
 ; ----------------------------------------------
-; BSL                           
+; BSL
 ; ----------------------------------------------
 BSL1            .equ 01000h     ; to 17FFh
 CapTivateLib    .equ 0C0000h    ; to 0C3FFFh
@@ -42,7 +42,7 @@ TLV_LEN         .equ 00080h      ;
 ; RAM
 ; ----------------------------------------------
 RAM_ORG         .equ 02000h     ; to 3FFFh
-RAM_LEN         .equ 02000h     ; 
+RAM_LEN         .equ 02000h     ;
 ; ----------------------------------------------
 ; FRAM
 ; ----------------------------------------------
@@ -58,7 +58,7 @@ BSL_SIG2        .equ 0FF86h      ;
 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits
 BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
 BSL_I2C_ADRE    .equ 0FFA0h      ;
-I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address 
+I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
@@ -79,34 +79,34 @@ VECT_LEN        .equ 38h
 
 ;   .org    INTVECT         ; FFDA-FFFF 27 vectors + reset
 ;
-;           .word  reset        ; 0FFC8h - CapTivate       
-;           .word  reset        ; 0FFCAh - eCOMP0       
-;           .word  reset        ; 0FFCCh - P6       
-;           .word  reset        ; 0FFCEh - P5       
-;           .word  reset        ; 0FFD0h - P4       
-;           .word  reset        ; 0FFD2h - P3       
-;           .word  reset        ; 0FFD4h - P2       
-;           .word  reset        ; 0FFD6h - P1       
-;           .word  reset        ; 0FFD8h - ADC10    
-;           .word  reset        ; 0FFDAh - eUSCI_B1 
-;           .word  reset        ; 0FFDCh - eUSCI_B0 
-;           .word  reset        ; 0FFDEh - eUSCI_A1 
-;           .word  reset        ; 0FFE0h - eUSCI_A0 
-;           .word  reset        ; 0FFE2h - WDT      
-;           .word  reset        ; 0FFE4h - RTC      
-;           .word  reset        ; 0FFE6h - TB0_x    
-;           .word  reset        ; 0FFE8h - TB0_0    
-;           .word  reset        ; 0FFEAh - TA3_x    
-;           .word  reset        ; 0FFECh - TA3_0    
-;           .word  reset        ; 0FFEEh - TA2_x    
-;           .word  reset        ; 0FFF0h - TA2_0    
-;           .word  reset        ; 0FFF2h - TA1_x    
-;           .word  reset        ; 0FFF4h - TA1_0    
-;           .word  reset        ; 0FFF6h - TA0_x    
-;           .word  reset        ; 0FFF8h - TA0_0    
-;           .word  reset        ; 0FFFAh - UserNMI  
-;           .word  reset        ; 0FFFCh - SysNMI   
-;           .word  reset        ; 0FFFEh - Reset    
+;           .word  reset        ; 0FFC8h - CapTivate
+;           .word  reset        ; 0FFCAh - eCOMP0
+;           .word  reset        ; 0FFCCh - P6
+;           .word  reset        ; 0FFCEh - P5
+;           .word  reset        ; 0FFD0h - P4
+;           .word  reset        ; 0FFD2h - P3
+;           .word  reset        ; 0FFD4h - P2
+;           .word  reset        ; 0FFD6h - P1
+;           .word  reset        ; 0FFD8h - ADC10
+;           .word  reset        ; 0FFDAh - eUSCI_B1
+;           .word  reset        ; 0FFDCh - eUSCI_B0
+;           .word  reset        ; 0FFDEh - eUSCI_A1
+;           .word  reset        ; 0FFE0h - eUSCI_A0
+;           .word  reset        ; 0FFE2h - WDT
+;           .word  reset        ; 0FFE4h - RTC
+;           .word  reset        ; 0FFE6h - TB0_x
+;           .word  reset        ; 0FFE8h - TB0_0
+;           .word  reset        ; 0FFEAh - TA3_x
+;           .word  reset        ; 0FFECh - TA3_0
+;           .word  reset        ; 0FFEEh - TA2_x
+;           .word  reset        ; 0FFF0h - TA2_0
+;           .word  reset        ; 0FFF2h - TA1_x
+;           .word  reset        ; 0FFF4h - TA1_0
+;           .word  reset        ; 0FFF6h - TA0_x
+;           .word  reset        ; 0FFF8h - TA0_0
+;           .word  reset        ; 0FFFAh - UserNMI
+;           .word  reset        ; 0FFFCh - SysNMI
+;           .word  reset        ; 0FFFEh - Reset
 
 ; ----------------------------------------------------------------------
 ; MSP430FR2476 Peripheral File Map
@@ -134,7 +134,7 @@ 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          
+eCOMP_SFR       .equ 08F0h
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : LOCK PMM_LOCKLPM5
@@ -152,21 +152,21 @@ 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        
-      
+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
 ; ...
 
@@ -225,7 +225,7 @@ 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 
+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
@@ -239,7 +239,7 @@ 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 
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT3/4
@@ -266,7 +266,7 @@ 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 
+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
@@ -278,7 +278,7 @@ 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 
+P4IV        .equ PB_SFR + 1Eh    ; Port 4 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT5/6
@@ -301,7 +301,7 @@ 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 
+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
@@ -317,15 +317,15 @@ 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 
+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 
+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
@@ -402,7 +402,7 @@ TERM_STATW      .equ eUSCI_B1_SFR + 08h     ; USCI_B1 Status Word
 TERM_RXBUF      .equ eUSCI_B1_SFR + 0Ch     ; USCI_B1 Receive Buffer 8
 TERM_TXBUF      .equ eUSCI_B1_SFR + 0Eh     ; USCI_B1 Transmit Buffer 8
 TERM_I2COA0     .equ eUSCI_B1_SFR + 14h     ; USCI_B1 I2C Own Address 0
-TERM_ADDRX      .equ eUSCI_B1_SFR + 1Ch     ; USCI_B1  Received Address Register 
+TERM_ADDRX      .equ eUSCI_B1_SFR + 1Ch     ; USCI_B1  Received Address Register
 TERM_I2CSA      .equ eUSCI_B1_SFR + 20h     ; USCI_B1 I2C Slave Address
 TERM_IE         .equ eUSCI_B1_SFR + 2Ah     ; USCI_B1 Interrupt Enable
 TERM_IFG        .equ eUSCI_B1_SFR + 2Ch     ; USCI_B1 Interrupt Flags Register
index b3b4235..a671a15 100644 (file)
@@ -47,42 +47,67 @@ FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
@@ -103,52 +128,47 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_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
-! ----------------------
-
+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!       base address for HOLDS
+HOLD_BASE=\$21B2!       BASE HOLD area, grow down
+!
 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
+LAST_NFA=\$21B4!
+LAST_THREAD=\$21B6!
+LAST_CFA=\$21B8!
+LAST_PSP=\$21BA!
+!
+STATEADR=\$21BC!        Interpreter state
+BASEADR=\$21BE!
+CAPS=\$21C0 !
+!
+SOURCE_LEN=\$21C2!      len of input stream
+SOURCE_ORG=\$21C4!      adr of input stream
+TOIN=\$21C6!            >IN
+DP=\$21C8!              dictionary ptr
+!
+LASTVOC=\$21CA!         keep VOC-LINK
+CURRENT=\$21CC!         CURRENT dictionnary ptr
+CONTEXT=\$21CE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
 !21E0! 28 RAM bytes free
 ! ---------------------------------------
@@ -162,7 +182,7 @@ SD_BUF=\$2200!      \ SD_Card buffer
 BUFEND=\$2400!
 
 ! ---------------------------------------
-! FAT16 FileSystemInfos 
+! FAT16 FileSystemInfos
 ! ---------------------------------------
 FATtype=\$2402!
 BS_FirstSectorL=\$2404!
@@ -190,7 +210,7 @@ SectorH=\$241C!
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$241E! 
+BufferPtr=\$241E!
 BufferLen=\$2420!
 
 ! ---------------------------------------
@@ -198,8 +218,8 @@ BufferLen=\$2420!
 ! ---------------------------------------
 ClusterL=\$2422!     16 bits wide (FAT16)
 ClusterH=\$2424!     16 bits wide (FAT16)
-NewClusterL=\$2426!  16 bits wide (FAT16) 
-NewClusterH=\$2428!  16 bits wide (FAT16) 
+NewClusterL=\$2426!  16 bits wide (FAT16)
+NewClusterH=\$2428!  16 bits wide (FAT16)
 CurFATsector=\$242A!
 
 ! ---------------------------------------
@@ -207,7 +227,7 @@ CurFATsector=\$242A!
 ! ---------------------------------------
 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!  
+EntryOfst=\$2430!
 
 ! ---------------------------------------
 ! Handle Pointer
@@ -223,7 +243,7 @@ EndOfPath=\$2436!
 ! ---------------------------------------
 ! Handle structure
 ! ---------------------------------------
-! three handle tokens : 
+! three handle tokens :
 ! token = 0 : free handle
 ! token = 1 : file to read
 ! token = 2 : file updated (write)
@@ -247,7 +267,7 @@ HDLW_PrevLEN=24!    previous LEN
 HDLW_PrevORG=26!    previous ORG
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=28!
 FirstHandle=\$2438!
@@ -268,41 +288,49 @@ MAIN_ORG=\$8000!            Code space start
 
 SLEEP=\$8000!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$800A!                 CODE compiled by LITERAL
-XSQUOTE=\$8014!             CODE compiled by S" and S_
-HEREXEC=\$8028!             CODE HERE and BEGIN execute address
-QFBRAN=\$8034!              CODE compiled by IF UNTIL
-BRAN=\$803A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$803C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$803E!                 CODE compiled by DO
-XPLOOP=\$804E!              CODE compiled by +LOOP
-XLOOP=\$8060!               CODE compiled by LOOP
-MUSMOD=\$8066!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$8078!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$8080!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$80AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$80AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$80BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$80CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$80D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$80E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$80EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$801E!             CODE compiled by S" and S_
+HEREXEC=\$8032!             CODE HERE and BEGIN execute address
+MUSMOD=\$803E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$8050!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$8058!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$8082!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$8084!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$8094!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$80A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$80AC!              CODE compiled by IF UNTIL
+BRAN=\$80B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$80B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$80B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$80C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$80F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$812A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$8136!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$80D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$8108!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$8112!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$8194!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$819C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$81C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$81C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$81B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$818E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$81BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$81BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$8154!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$817E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$8184!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$8186!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$8144!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$8146!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$8156!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$8156!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$8158!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$8180!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR2476
@@ -311,8 +339,8 @@ FRAM_FULL=\$FF40!       64 bytes are sufficient considering what can be compiled
 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!        
+BSL_SIG1=\$FF84!
+BSL_SIG2=\$FF86!
 BSL_I2C_ADRE=\$FFA0!
 I2CSLA0=\$FFA2!         UCBxI2COA0 default value address
 I2CSLA1=\$FFA4!         UCBxI2COA1 default value address
@@ -323,38 +351,6 @@ 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!
@@ -383,10 +379,6 @@ U_NMI_VEC=\$FFFA!
 S_NMI_VEC=\$FFFC!
 RST_VEC=\$FFFE!
 
-
-
-
-
 ! ----------------------------------------------------------------------
 ! MSP430FR2433 Peripheral File Map
 ! ----------------------------------------------------------------------
@@ -404,6 +396,7 @@ RST_VEC=\$FFFE!
 !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
@@ -418,41 +411,41 @@ 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 
+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  
+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
 
@@ -547,77 +540,77 @@ 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    
+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        
+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
@@ -644,110 +637,110 @@ 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     
+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            
+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!
index 09461ee..64b31d4 100644 (file)
@@ -38,40 +38,65 @@ TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
 I2CSLAVEADR1=\$1804!    
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP   
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT   
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT  
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
@@ -92,51 +117,47 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_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
-! ---------------------------------------
+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!       base address for HOLDS
+HOLD_BASE=\$21B2!       BASE HOLD area, grow down
+!
 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
+LAST_NFA=\$21B4!
+LAST_THREAD=\$21B6!
+LAST_CFA=\$21B8!
+LAST_PSP=\$21BA!
+!
+STATEADR=\$21BC!        Interpreter state
+BASEADR=\$21BE!
+CAPS=\$21C0 !
+!
+SOURCE_LEN=\$21C2!      len of input stream
+SOURCE_ORG=\$21C4!      adr of input stream
+TOIN=\$21C6!            >IN
+DP=\$21C8!              dictionary ptr
+!
+LASTVOC=\$21CA!         keep VOC-LINK
+CURRENT=\$21CC!         CURRENT dictionnary ptr
+CONTEXT=\$21CE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
 !21E0! 28 RAM bytes free 
 ! ---------------------------------------
@@ -256,46 +277,54 @@ MAIN_ORG=\$C400!        Code space start
 
 SLEEP=\$C400!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$C40A!                 CODE compiled by LITERAL
-XSQUOTE=\$C414!             CODE compiled by S" and S_
-HEREXEC=\$C428!             CODE HERE and BEGIN execute address
-QFBRAN=\$C434!              CODE compiled by IF UNTIL
-BRAN=\$C43A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$C43C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$C43E!                 CODE compiled by DO
-XPLOOP=\$C44E!              CODE compiled by +LOOP
-XLOOP=\$C460!               CODE compiled by LOOP
-MUSMOD=\$C466!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$C478!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$C480!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$C4AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$C4AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$C4BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$C4CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$C4D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$C4E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$C4EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$C41E!             CODE compiled by S" and S_
+HEREXEC=\$C432!             CODE HERE and BEGIN execute address
+MUSMOD=\$C43E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$C450!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$C458!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$C482!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$C484!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$C494!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$C4A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$C4AC!              CODE compiled by IF UNTIL
+BRAN=\$C4B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$C4B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$C4B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$C4C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$C4F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$C52A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$C536!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$C4D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$C508!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$C512!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$C594!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$C59C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$C5C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$C5C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$C5B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$C58E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$C5BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$C5BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$C554!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$C57E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$C584!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$C586!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$C544!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$C546!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$C556!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$C556!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$C558!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$C580!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR2633
 ! ----------------------------------------------
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
index 8823ca4..e968bd7 100644 (file)
@@ -41,7 +41,7 @@ JTAG_SIG1       .equ 0FF80h      ; if 0 (electronic fuse=0) enable JTAG/SBW ; re
 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG <> |0xFFFFFFFF, 0x00000000|, SBW and JTAG are locked
 BSL_SIG1        .equ 0FF84h      ;
 BSL_SIG2        .equ 0FF86h      ;
-I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address 
+I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
@@ -63,21 +63,21 @@ BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
 ;
 ;    .org    INTVECT         ; FFE2-FFFF 14 vectors + reset
 ;
-;            .word  reset        ; 0FFE2h - LCD      
-;            .word  reset        ; 0FFE4h - P2       
-;            .word  reset        ; 0FFE6h - P1       
-;            .word  reset        ; 0FFE8h - ADC10    
-;            .word  reset        ; 0FFEAh - eUSCI_B0 
-;            .word  reset        ; 0FFECh - eUSCI_A0 
-;            .word  reset        ; 0FFEEh - WDT      
-;            .word  reset        ; 0FFF0h - RTC      
-;            .word  reset        ; 0FFF2h - TA1_x    
-;            .word  reset        ; 0FFF4h - TA1_0    
-;            .word  reset        ; 0FFF6h - TA0_x    
-;            .word  reset        ; 0FFF8h - TA0_0    
-;            .word  reset        ; 0FFFAh - UserNMI  
-;            .word  reset        ; 0FFFCh - SysNMI   
-;            .word  reset        ; 0FFFEh - Reset    
+;            .word  reset        ; 0FFE2h - LCD
+;            .word  reset        ; 0FFE4h - P2
+;            .word  reset        ; 0FFE6h - P1
+;            .word  reset        ; 0FFE8h - ADC10
+;            .word  reset        ; 0FFEAh - eUSCI_B0
+;            .word  reset        ; 0FFECh - eUSCI_A0
+;            .word  reset        ; 0FFEEh - WDT
+;            .word  reset        ; 0FFF0h - RTC
+;            .word  reset        ; 0FFF2h - TA1_x
+;            .word  reset        ; 0FFF4h - TA1_0
+;            .word  reset        ; 0FFF6h - TA0_x
+;            .word  reset        ; 0FFF8h - TA0_0
+;            .word  reset        ; 0FFFAh - UserNMI
+;            .word  reset        ; 0FFFCh - SysNMI
+;            .word  reset        ; 0FFFEh - Reset
 
 
 ; ----------------------------------------------------------------------
@@ -121,21 +121,21 @@ 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        
-      
+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
 ; ...
 ; ----------------------------------------------------------------------
@@ -170,7 +170,7 @@ 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 
+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
@@ -184,7 +184,7 @@ 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 
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT3/4
@@ -291,10 +291,10 @@ CSCTL8      .equ CS_SFR + 10h   ; Clock System Control Register 8
 ; ----------------------------------------------------------------------
 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 
+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
 
 
     .IFDEF UCA0_TERM
@@ -342,7 +342,7 @@ TERM_STATW      .equ eUSCI_B0_SFR + 08h     ; USCI_B0 Status Word
 TERM_RXBUF      .equ eUSCI_B0_SFR + 0Ch     ; USCI_B0 Receive Buffer 8
 TERM_TXBUF      .equ eUSCI_B0_SFR + 0Eh     ; USCI_B0 Transmit Buffer 8
 TERM_I2COA0     .equ eUSCI_B0_SFR + 14h     ; USCI_B0 I2C Own Address 0
-TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register 
+TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register
 TERM_I2CSA      .equ eUSCI_B0_SFR + 20h     ; USCI_B0 I2C Slave Address
 TERM_IE         .equ eUSCI_B0_SFR + 2Ah     ; USCI_B0 Interrupt Enable
 TERM_IFG        .equ eUSCI_B0_SFR + 2Ch     ; USCI_B0 Interrupt Flags Register
index afd11f3..0133a80 100644 (file)
@@ -32,42 +32,67 @@ FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
@@ -88,53 +113,49 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_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
-! ---------------------------------------
+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!       base address for HOLDS
+HOLD_BASE=\$21B2!       BASE HOLD area, grow down
+!
 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
+LAST_NFA=\$21B4!
+LAST_THREAD=\$21B6!
+LAST_CFA=\$21B8!
+LAST_PSP=\$21BA!
+!
+STATEADR=\$21BC!        Interpreter state
+BASEADR=\$21BE!
+CAPS=\$21C0 !
+!
+SOURCE_LEN=\$21C2!      len of input stream
+SOURCE_ORG=\$21C4!      adr of input stream
+TOIN=\$21C6!            >IN
+DP=\$21C8!              dictionary ptr
+!
+LASTVOC=\$21CA!         keep VOC-LINK
+CURRENT=\$21CC!         CURRENT dictionnary ptr
+CONTEXT=\$21CE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
-!21E0! 28 RAM bytes free 
+!21E0! 28 RAM bytes free
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -146,7 +167,7 @@ SD_BUF=\$2200!      \ SD_Card buffer
 BUFEND=\$2400!
 
 ! ---------------------------------------
-! FAT16 FileSystemInfos 
+! FAT16 FileSystemInfos
 ! ---------------------------------------
 FATtype=\$2402!
 BS_FirstSectorL=\$2404!
@@ -174,7 +195,7 @@ SectorH=\$241C!
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$241E! 
+BufferPtr=\$241E!
 BufferLen=\$2420!
 
 ! ---------------------------------------
@@ -182,8 +203,8 @@ BufferLen=\$2420!
 ! ---------------------------------------
 ClusterL=\$2422!     16 bits wide (FAT16)
 ClusterH=\$2424!     16 bits wide (FAT16)
-NewClusterL=\$2426!  16 bits wide (FAT16) 
-NewClusterH=\$2428!  16 bits wide (FAT16) 
+NewClusterL=\$2426!  16 bits wide (FAT16)
+NewClusterH=\$2428!  16 bits wide (FAT16)
 CurFATsector=\$242A!
 
 ! ---------------------------------------
@@ -191,7 +212,7 @@ CurFATsector=\$242A!
 ! ---------------------------------------
 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!  
+EntryOfst=\$2430!
 
 ! ---------------------------------------
 ! Handle Pointer
@@ -207,7 +228,7 @@ EndOfPath=\$2436!
 ! ---------------------------------------
 ! Handle structure
 ! ---------------------------------------
-! three handle tokens : 
+! three handle tokens :
 ! token = 0 : free handle
 ! token = 1 : file to read
 ! token = 2 : file updated (write)
@@ -231,7 +252,7 @@ HDLW_PrevLEN=24!    previous LEN
 HDLW_PrevORG=26!    previous ORG
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=28!
 FirstHandle=\$2438!
@@ -252,51 +273,59 @@ MAIN_ORG=\$C400!        Code space start
 
 SLEEP=\$C400!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$C40A!                 CODE compiled by LITERAL
-XSQUOTE=\$C414!             CODE compiled by S" and S_
-HEREXEC=\$C428!             CODE HERE and BEGIN execute address
-QFBRAN=\$C434!              CODE compiled by IF UNTIL
-BRAN=\$C43A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$C43C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$C43E!                 CODE compiled by DO
-XPLOOP=\$C44E!              CODE compiled by +LOOP
-XLOOP=\$C460!               CODE compiled by LOOP
-MUSMOD=\$C466!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$C478!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$C480!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$C4AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$C4AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$C4BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$C4CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$C4D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$C4E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$C4EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$C41E!             CODE compiled by S" and S_
+HEREXEC=\$C432!             CODE HERE and BEGIN execute address
+MUSMOD=\$C43E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$C450!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$C458!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$C482!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$C484!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$C494!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$C4A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$C4AC!              CODE compiled by IF UNTIL
+BRAN=\$C4B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$C4B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$C4B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$C4C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$C4F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$C52A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$C536!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$C4D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$C508!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$C512!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$C594!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$C59C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$C5C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$C5C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$C5B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$C58E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$C5BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$C5BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$C554!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$C57E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$C584!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$C586!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$C544!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$C546!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$C556!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$C556!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$C558!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$C580!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR4133
 ! ----------------------------------------------
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
-BSL_SIG1=\$FF84!  
-BSL_SIG2=\$FF86!  
+BSL_SIG1=\$FF84!
+BSL_SIG2=\$FF86!
 I2CSLA0=\$FFA2!         UCBxI2COA0 default value address
 I2CSLA1=\$FFA4!         UCBxI2COA1 default value address
 I2CSLA2=\$FFA6!         UCBxI2COA2 default value address
@@ -333,42 +362,42 @@ 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 
+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  
+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
 
@@ -454,7 +483,7 @@ P8DIR=\$265!
 P8REN=\$267!
 P8SEL0=\$26B!
 
-CAPTIO0CTL=\$2EE!   \ Capacitive Touch IO 0 control      
+CAPTIO0CTL=\$2EE!   \ Capacitive Touch IO 0 control
 
 
 
@@ -462,178 +491,178 @@ TACLR=4!
 TAIFG=1!
 CCIFG=1!
 
-TA0CTL=\$300!       \ TA0 control                 
-TA0CCTL0=\$302!     \ Capture/compare control 0   
-TA0CCTL1=\$304!     \ Capture/compare control 1   
-TA0CCTL2=\$306!     \ Capture/compare control 2   
-TA0R=\$310!         \ TA0 counter register        
-TA0CCR0=\$312!      \ Capture/compare register 0  
-TA0CCR1=\$314!      \ Capture/compare register 1  
-TA0CCR2=\$316!      \ Capture/compare register 2  
-TA0EX0=\$320!       \ TA0 expansion register 0    
-TA0IV=\$32E!        \ TA0 interrupt vector        
-
-TA1CTL=\$340!       \ TA1 control                 
-TA1CCTL0=\$342!     \ Capture/compare control 0   
-TA1CCTL1=\$344!     \ Capture/compare control 1   
-TA1CCTL2=\$346!     \ Capture/compare control 2   
-TA1R=\$350!         \ TA1 counter register        
-TA1CCR0=\$352!      \ Capture/compare register 0  
-TA1CCR1=\$354!      \ Capture/compare register 1  
-TA1CCR2=\$356!      \ Capture/compare register 2  
-TA1EX0=\$360!       \ TA1 expansion register 0    
-TA1IV=\$36E!        \ TA1 interrupt vector        
-
-RTCCTL=\$3C0!       \ RTC control                                  
-RTCIV=\$3C4!        \ RTC interrupt vector word                       
-RTCMOD=\$3C8!       \ RTC modulo                                       
-RTCCNT=\$3CC!       \ RTC counter register    
-
-
-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 
-
-
-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     
+TA0CTL=\$300!       \ TA0 control
+TA0CCTL0=\$302!     \ Capture/compare control 0
+TA0CCTL1=\$304!     \ Capture/compare control 1
+TA0CCTL2=\$306!     \ Capture/compare control 2
+TA0R=\$310!         \ TA0 counter register
+TA0CCR0=\$312!      \ Capture/compare register 0
+TA0CCR1=\$314!      \ Capture/compare register 1
+TA0CCR2=\$316!      \ Capture/compare register 2
+TA0EX0=\$320!       \ TA0 expansion register 0
+TA0IV=\$32E!        \ TA0 interrupt vector
+
+TA1CTL=\$340!       \ TA1 control
+TA1CCTL0=\$342!     \ Capture/compare control 0
+TA1CCTL1=\$344!     \ Capture/compare control 1
+TA1CCTL2=\$346!     \ Capture/compare control 2
+TA1R=\$350!         \ TA1 counter register
+TA1CCR0=\$352!      \ Capture/compare register 0
+TA1CCR1=\$354!      \ Capture/compare register 1
+TA1CCR2=\$356!      \ Capture/compare register 2
+TA1EX0=\$360!       \ TA1 expansion register 0
+TA1IV=\$36E!        \ TA1 interrupt vector
+
+RTCCTL=\$3C0!       \ RTC control
+RTCIV=\$3C4!        \ RTC interrupt vector word
+RTCMOD=\$3C8!       \ RTC modulo
+RTCCNT=\$3CC!       \ RTC counter register
+
+
+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
+
+
+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
 
 UCTXACK=\$20!
 UCTR=\$10!
 
-LCDCTL0=\$600!      \ LCD control register 0   
-LCDCTL1=\$602!      \ LCD control register 1   
-LCDBLKCTL=\$604!    \ LCD blink control register     
-LCDMEMCTL=\$606!    \ LCD memory control register     
-LCDVCTL=\$608!      \ LCD voltage control register   
-LCDPCTL0=\$60A!     \ LCD port control 0    
-LCDPCTL1=\$60C!     \ LCD port control 1    
-LCDPCTL2=\$60E!     \ LCD port control 2    
-LCDCSS0=\$614!      \ LCD COM/SEG select register   
-LCDCSS1=\$616!      \ LCD COM/SEG select register   
-LCDCSS2=\$618!      \ LCD COM/SEG select register   
-LCDIV=\$61E!        \ LCD interrupt vector 
-LCDM0=\$620!        \ LCD memory 0 
-LCDM1=\$621!        \ LCD memory 1 
-LCDM2=\$622!        \ LCD memory 2 
-LCDM3=\$623!        \ LCD memory 3 
-LCDM4=\$624!        \ LCD memory 4 
-LCDM5=\$625!        \ LCD memory 5 
-LCDM6=\$626!        \ LCD memory 6 
-LCDM7=\$627!        \ LCD memory 7 
-LCDM8=\$628!        \ LCD memory 8 
-LCDM9=\$629!        \ LCD memory 9 
-LCDM10=\$62A!       \ LCD memory 10 
-LCDM11=\$62B!       \ LCD memory 11 
-LCDM12=\$62C!       \ LCD memory 12 
-LCDM13=\$62D!       \ LCD memory 13 
-LCDM14=\$62E!       \ LCD memory 14 
-LCDM15=\$62F!       \ LCD memory 15 
-LCDM16=\$630!       \ LCD memory 16 
-LCDM17=\$631!       \ LCD memory 17 
-LCDM18=\$632!       \ LCD memory 18 
-LCDM19=\$633!       \ LCD memory 19  
-LCDM20=\$634!       \ LCD memory 20 
-LCDM21=\$635!       \ LCD memory 21 
-LCDM22=\$636!       \ LCD memory 22 
-LCDM23=\$637!       \ LCD memory 23 
-LCDM24=\$638!       \ LCD memory 24 
-LCDM25=\$639!       \ LCD memory 25 
-LCDM26=\$63A!       \ LCD memory 26 
-LCDM27=\$63B!       \ LCD memory 27 
-LCDM28=\$63C!       \ LCD memory 28 
-LCDM29=\$63D!       \ LCD memory 29  
-LCDM30=\$63E!       \ LCD memory 30 
-LCDM31=\$63F!       \ LCD memory 31 
-LCDM32=\$640!       \ LCD memory 32 
-LCDM33=\$641!       \ LCD memory 33 
-LCDM34=\$642!       \ LCD memory 34 
-LCDM35=\$643!       \ LCD memory 35 
-LCDM36=\$644!       \ LCD memory 36 
-LCDM37=\$645!       \ LCD memory 37 
-LCDM38=\$646!       \ LCD memory 38 
-LCDM39=\$647!       \ LCD memory 39  
-LCDBM0=\$640!       \ LCD blinking memory 0 
-LCDBM1=\$641!       \ LCD blinking memory 1 
-LCDBM2=\$642!       \ LCD blinking memory 2 
-LCDBM3=\$643!       \ LCD blinking memory 3 
-LCDBM4=\$644!       \ LCD blinking memory 4 
-LCDBM5=\$645!       \ LCD blinking memory 5 
-LCDBM6=\$646!       \ LCD blinking memory 6 
-LCDBM7=\$647!       \ LCD blinking memory 7 
-LCDBM8=\$648!       \ LCD blinking memory 8 
-LCDBM9=\$649!       \ LCD blinking memory 9 
-LCDBM10=\$64A!      \ LCD blinking memory 10 
-LCDBM11=\$64B!      \ LCD blinking memory 11 
-LCDBM12=\$64C!      \ LCD blinking memory 12 
-LCDBM13=\$64D!      \ LCD blinking memory 13 
-LCDBM14=\$64E!      \ LCD blinking memory 14 
-LCDBM15=\$64F!      \ LCD blinking memory 15 
-LCDBM16=\$650!      \ LCD blinking memory 16 
-LCDBM17=\$651!      \ LCD blinking memory 17 
-LCDBM18=\$652!      \ LCD blinking memory 18 
-LCDBM19=\$653!      \ LCD blinking memory 19 
-
-
-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            
+LCDCTL0=\$600!      \ LCD control register 0
+LCDCTL1=\$602!      \ LCD control register 1
+LCDBLKCTL=\$604!    \ LCD blink control register
+LCDMEMCTL=\$606!    \ LCD memory control register
+LCDVCTL=\$608!      \ LCD voltage control register
+LCDPCTL0=\$60A!     \ LCD port control 0
+LCDPCTL1=\$60C!     \ LCD port control 1
+LCDPCTL2=\$60E!     \ LCD port control 2
+LCDCSS0=\$614!      \ LCD COM/SEG select register
+LCDCSS1=\$616!      \ LCD COM/SEG select register
+LCDCSS2=\$618!      \ LCD COM/SEG select register
+LCDIV=\$61E!        \ LCD interrupt vector
+LCDM0=\$620!        \ LCD memory 0
+LCDM1=\$621!        \ LCD memory 1
+LCDM2=\$622!        \ LCD memory 2
+LCDM3=\$623!        \ LCD memory 3
+LCDM4=\$624!        \ LCD memory 4
+LCDM5=\$625!        \ LCD memory 5
+LCDM6=\$626!        \ LCD memory 6
+LCDM7=\$627!        \ LCD memory 7
+LCDM8=\$628!        \ LCD memory 8
+LCDM9=\$629!        \ LCD memory 9
+LCDM10=\$62A!       \ LCD memory 10
+LCDM11=\$62B!       \ LCD memory 11
+LCDM12=\$62C!       \ LCD memory 12
+LCDM13=\$62D!       \ LCD memory 13
+LCDM14=\$62E!       \ LCD memory 14
+LCDM15=\$62F!       \ LCD memory 15
+LCDM16=\$630!       \ LCD memory 16
+LCDM17=\$631!       \ LCD memory 17
+LCDM18=\$632!       \ LCD memory 18
+LCDM19=\$633!       \ LCD memory 19
+LCDM20=\$634!       \ LCD memory 20
+LCDM21=\$635!       \ LCD memory 21
+LCDM22=\$636!       \ LCD memory 22
+LCDM23=\$637!       \ LCD memory 23
+LCDM24=\$638!       \ LCD memory 24
+LCDM25=\$639!       \ LCD memory 25
+LCDM26=\$63A!       \ LCD memory 26
+LCDM27=\$63B!       \ LCD memory 27
+LCDM28=\$63C!       \ LCD memory 28
+LCDM29=\$63D!       \ LCD memory 29
+LCDM30=\$63E!       \ LCD memory 30
+LCDM31=\$63F!       \ LCD memory 31
+LCDM32=\$640!       \ LCD memory 32
+LCDM33=\$641!       \ LCD memory 33
+LCDM34=\$642!       \ LCD memory 34
+LCDM35=\$643!       \ LCD memory 35
+LCDM36=\$644!       \ LCD memory 36
+LCDM37=\$645!       \ LCD memory 37
+LCDM38=\$646!       \ LCD memory 38
+LCDM39=\$647!       \ LCD memory 39
+LCDBM0=\$640!       \ LCD blinking memory 0
+LCDBM1=\$641!       \ LCD blinking memory 1
+LCDBM2=\$642!       \ LCD blinking memory 2
+LCDBM3=\$643!       \ LCD blinking memory 3
+LCDBM4=\$644!       \ LCD blinking memory 4
+LCDBM5=\$645!       \ LCD blinking memory 5
+LCDBM6=\$646!       \ LCD blinking memory 6
+LCDBM7=\$647!       \ LCD blinking memory 7
+LCDBM8=\$648!       \ LCD blinking memory 8
+LCDBM9=\$649!       \ LCD blinking memory 9
+LCDBM10=\$64A!      \ LCD blinking memory 10
+LCDBM11=\$64B!      \ LCD blinking memory 11
+LCDBM12=\$64C!      \ LCD blinking memory 12
+LCDBM13=\$64D!      \ LCD blinking memory 13
+LCDBM14=\$64E!      \ LCD blinking memory 14
+LCDBM15=\$64F!      \ LCD blinking memory 15
+LCDBM16=\$650!      \ LCD blinking memory 16
+LCDBM17=\$651!      \ LCD blinking memory 17
+LCDBM18=\$652!      \ LCD blinking memory 18
+LCDBM19=\$653!      \ LCD blinking memory 19
+
+
+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!
index 68e0263..69b9ee4 100644 (file)
@@ -47,7 +47,7 @@ JTAG_SIG1       .equ 0FF80h      ; if 0 (electronic fuse=0) enable JTAG/SBW; mus
 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG1=0xAAAA, length of password string @ JTAG_PASSWORD
 BSL_SIG1        .equ 0FF84h      ;
 BSL_SIG2        .equ 0FF86h      ;
-I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address 
+I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
@@ -104,10 +104,10 @@ BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
 SFR_SFR         .equ 0100h           ; Special function
 PMM_SFR         .equ 0120h           ; PMM
 FRAM_SFR        .equ 0140h           ; FRAM control
-CRC16_SFR       .equ 0150h   
+CRC16_SFR       .equ 0150h
 WDT_A_SFR       .equ 015Ch           ; Watchdog
 CS_SFR          .equ 0160h
-SYS_SFR         .equ 0180h           ; SYS 
+SYS_SFR         .equ 0180h           ; SYS
 REF_SFR         .equ 01B0h           ; REF
 PA_SFR          .equ 0200h           ; PORT1/2
 PJ_SFR          .equ 0320h           ; PORTJ
@@ -226,7 +226,7 @@ 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 
+P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word
 P1SELC      .equ PA_SFR + 16h    ; Port 1 SELection Complement
 P1IES       .equ PA_SFR + 18h    ; Port 1 Interrupt Edge Select
 P1IE        .equ PA_SFR + 1Ah    ; Port 1 Interrupt Enable
@@ -242,7 +242,7 @@ P2SELC      .equ PA_SFR + 17h    ; Port 2 SELection Complement
 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 
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
 
     .IFDEF UCB0_SD
 SD_SEL      .equ PASEL1     ; word access, to configure UCB0
@@ -272,13 +272,13 @@ WIPE_IN     .equ    P2IN
 IO_WIPE     .equ 1          ; P2.0 = TX + FORTH Deep_RST pin
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; 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    P2OUT
 HANDSHAKIN  .equ    P2IN
 RTS         .equ    4       ; P2.2
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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    8       ; P2.3
         .ENDIF
@@ -288,7 +288,7 @@ SD_CDIN     .equ P2IN
 SD_CSOUT    .equ P2OUT
 SD_CSDIR    .equ P2DIR
 CD_SD       .equ 8          ; P2.3 as SD Card Detect
-CS_SD       .equ 10h        ; P2.4 as SD Chip Select    
+CS_SD       .equ 10h        ; P2.4 as SD Chip Select
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORTJ
@@ -351,10 +351,10 @@ 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
 
-MPUCTL0     .equ MPU_SFR + 00h  ; MPU control 0             
-MPUCTL1     .equ MPU_SFR + 02h  ; MPU control 1             
-MPUSEG      .equ MPU_SFR + 04h  ; MPU Segmentation Register 
-MPUSAM      .equ MPU_SFR + 06h  ; MPU access management     
+MPUCTL0     .equ MPU_SFR + 00h  ; MPU control 0
+MPUCTL1     .equ MPU_SFR + 02h  ; MPU control 1
+MPUSEG      .equ MPU_SFR + 04h  ; MPU Segmentation Register
+MPUSAM      .equ MPU_SFR + 06h  ; MPU access management
 
     .IFDEF UCA0_TERM
 ; ----------------------------------------------------------------------
@@ -387,7 +387,7 @@ TERM_STATW      .equ eUSCI_B0_SFR + 08h     ; USCI_B0 Status Word
 TERM_RXBUF      .equ eUSCI_B0_SFR + 0Ch     ; USCI_B0 Receive Buffer 8
 TERM_TXBUF      .equ eUSCI_B0_SFR + 0Eh     ; USCI_B0 Transmit Buffer 8
 TERM_I2COA0     .equ eUSCI_B0_SFR + 14h     ; USCI_B0 I2C Own Address 0
-TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register 
+TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register
 TERM_I2CSA      .equ eUSCI_B0_SFR + 20h     ; USCI_B0 I2C Slave Address
 TERM_IE         .equ eUSCI_B0_SFR + 2Ah     ; USCI_B0 Interrupt Enable
 TERM_IFG        .equ eUSCI_B0_SFR + 2Ch     ; USCI_B0 Interrupt Flags Register
index 97bd663..a108d4d 100644 (file)
@@ -33,42 +33,67 @@ FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ---------------------------------------
 ! FAT16 FileSystemInfos
 ! ---------------------------------------
@@ -154,7 +179,7 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 HDLW_PrevLEN=24!    previous LEN
 HDLW_PrevORG=26!    previous ORG
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=4!
 HandleLenght=28!
 FirstHandle=\$1890!
@@ -183,7 +208,7 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_LEN=\#84! bytes
 HOLD_SIZE=\#34! bytes
 
 !SD_card Input Buffer = PAD
@@ -195,46 +220,41 @@ SDIB_LEN=\$54!
 ! ---------------------------------------
 ! FastForth RAM memory map (= 1k)
 ! ---------------------------------------
-LEAVEPTR=\$1C00!    \ Leave-stack pointer, init by QUIT
-LSATCK=\$1C00!      \ leave stack,      grow up
-PSTACK=\$1C80!      \ parameter stack,  grow down
-RSTACK=\$1CE0!      \ Return stack,     grow down
-
-PAD_I2CADR=\$1CE0!  \ RX I2C address
-PAD_I2CCNT=\$1CE2!  \ count max
-PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
-
-TIB_I2CADR=\$1D38!  \ TX I2C address
-TIB_I2CCNT=\$1D3A!  \ count of bytes
-TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
-
-HOLDS_ORG=\$1D90!   \ a good address for HOLDS
-HOLD_BASE=\$1DB2!   \ BASE HOLD area, grow down
-
-! ----------------------
-! NOT SAVED VARIABLES
-! ----------------------
-
+LEAVEPTR=\$1C00!        Leave-stack pointer, init by QUIT
+LSATCK=\$1C00!          leave stack,      grow up
+PSTACK=\$1C80!          parameter stack,  grow down
+RSTACK=\$1CE0!          Return stack,     grow down
+!
+PAD_I2CADR=\$1CE0!      RX I2C address
+PAD_I2CCNT=\$1CE2!      count max
+PAD_ORG=\$1CE4!         user scratch pad buffer, 84 bytes, grow up
+!
+TIB_I2CADR=\$1D38!      TX I2C address
+TIB_I2CCNT=\$1D3A!      count of bytes
+TIB_ORG=\$1D3C!         Terminal input buffer, 84 bytes, grow up
+!
+HOLDS_ORG=\$1D90!       base address for HOLDS
+HOLD_BASE=\$1DB2!       BASE HOLD area, grow down
+!
 HP=\$1DB2!              HOLD ptr
-CAPS=\$1DB4!            CAPS ON/OFF flag, must be set to -1 before first reset !
-LAST_NFA=\$1DB6!
-LAST_THREAD=\$1DB8!
-LAST_CFA=\$1DBA!
-LAST_PSP=\$1DBC!
+LAST_NFA=\$1DB4!
+LAST_THREAD=\$1DB6!
+LAST_CFA=\$1DB8!
+LAST_PSP=\$1DBA!
+!
+STATEADR=\$1DBC!        Interpreter state
+BASEADR=\$1DBE!         base
+CAPS=\$1DC0!            CAPS ON/OFF
+!
+SOURCE_LEN=\$1DC2!      len of input stream
+SOURCE_ORG=\$1DC4!      adr of input stream
+TOIN=\$1DC6!            >IN
+DP=\$1DC8!              dictionary ptr
+!
+LASTVOC=\$1DCA!         keep VOC-LINK
+CURRENT=\$1DCC!         CURRENT dictionnary ptr
+CONTEXT=\$1DCE!         CONTEXT dictionnary space (8 CELLS)
 
-STATEADR=\$1DBE!          Interpreter state
-
-SOURCE_LEN=\$1DC0!      len of input stream
-SOURCE_ORG=\$1DC2!      adr of input stream
-TOIN=\$1DC4!            >IN
-DP=\$1DC6!              dictionary ptr
-
-LASTVOC=\$1DC8!         keep VOC-LINK
-CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
-CURRENT=\$1DDA!         CURRENT dictionnary ptr
-
-BASEADR=\$1DDC!           numeric base, must be defined before first reset !
-LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
 ! ---------------------------------------
 !1DE0! 28 RAM bytes free
 ! ---------------------------------------
@@ -256,46 +276,54 @@ MAIN_LEN=\$3E00!        15.5 k FRAM
 
 SLEEP=\$C200!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$C20A!                 CODE compiled by LITERAL
-XSQUOTE=\$C214!             CODE compiled by S" and S_
-HEREXEC=\$C228!             CODE HERE and BEGIN execute address
-QFBRAN=\$C234!              CODE compiled by IF UNTIL
-BRAN=\$C23A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$C23C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$C23E!                 CODE compiled by DO
-XPLOOP=\$C24E!              CODE compiled by +LOOP
-XLOOP=\$C260!               CODE compiled by LOOP
-MUSMOD=\$C266!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$C278!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$C280!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$C2AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$C2AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$C2BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$C2CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$C2D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$C2E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$C2EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$C21E!             CODE compiled by S" and S_
+HEREXEC=\$C232!             CODE HERE and BEGIN execute address
+MUSMOD=\$C23E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$C250!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$C258!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$C282!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$C284!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$C294!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$C2A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$C2AC!              CODE compiled by IF UNTIL
+BRAN=\$C2B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$C2B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$C2B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$C2C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$C2F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$C32A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$C336!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$C2D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$C308!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$C312!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$C394!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$C39C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$C3C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$C3C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$C3B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$C38E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$C3BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$C3BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$C354!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$C37E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$C384!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$C386!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$C344!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$C346!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$C356!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$C356!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$C358!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$C380!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR5738
 ! ----------------------------------------------
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
@@ -467,27 +495,27 @@ 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        
+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
index 03e50c1..a84076a 100644 (file)
@@ -48,7 +48,7 @@ JTAG_SIG1       .equ 0FF80h      ; if 0 (electronic fuse=0) enable JTAG/SBW; mus
 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG1=0xAAAA, length of password string @ JTAG_PASSWORD
 BSL_SIG1        .equ 0FF84h      ;
 BSL_SIG2        .equ 0FF86h      ;
-I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address 
+I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
@@ -109,10 +109,10 @@ BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
 SFR_SFR         .equ 0100h           ; Special function
 PMM_SFR         .equ 0120h           ; PMM
 FRAM_SFR        .equ 0140h           ; FRAM control
-CRC16_SFR       .equ 0150h   
+CRC16_SFR       .equ 0150h
 WDT_A_SFR       .equ 015Ch           ; Watchdog
 CS_SFR          .equ 0160h
-SYS_SFR         .equ 0180h           ; SYS 
+SYS_SFR         .equ 0180h           ; SYS
 REF_SFR         .equ 01B0h           ; REF
 PA_SFR          .equ 0200h           ; PORT1/2
 PB_SFR          .equ 0220h           ; PORT3/4
@@ -239,7 +239,7 @@ 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 
+P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word
 P1SELC      .equ PA_SFR + 16h    ; Port 1 SELection Complement
 P1IES       .equ PA_SFR + 18h    ; Port 1 Interrupt Edge Select
 P1IE        .equ PA_SFR + 1Ah    ; Port 1 Interrupt Enable
@@ -255,7 +255,7 @@ P2SELC      .equ PA_SFR + 17h    ; Port 2 SELection Complement
 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 
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT3/4
@@ -360,10 +360,10 @@ RES3      .equ MPY_SFR + 2Ah    ; 32x32-bit result 3 */
 MPY32CTL0 .equ MPY_SFR + 2Ch    ; MPY32 control register 0
 
 
-MPUCTL0     .equ MPU_SFR + 00h  ; MPU control 0             
-MPUCTL1     .equ MPU_SFR + 02h  ; MPU control 1             
-MPUSEG      .equ MPU_SFR + 04h  ; MPU Segmentation Register 
-MPUSAM      .equ MPU_SFR + 06h  ; MPU access management     
+MPUCTL0     .equ MPU_SFR + 00h  ; MPU control 0
+MPUCTL1     .equ MPU_SFR + 02h  ; MPU control 1
+MPUSEG      .equ MPU_SFR + 04h  ; MPU Segmentation Register
+MPUSAM      .equ MPU_SFR + 06h  ; MPU access management
 
 
     .IFDEF UCA0_TERM
@@ -410,7 +410,7 @@ TERM_STATW      .equ eUSCI_B0_SFR + 08h     ; USCI_B0 Status Word
 TERM_RXBUF      .equ eUSCI_B0_SFR + 0Ch     ; USCI_B0 Receive Buffer 8
 TERM_TXBUF      .equ eUSCI_B0_SFR + 0Eh     ; USCI_B0 Transmit Buffer 8
 TERM_I2COA0     .equ eUSCI_B0_SFR + 14h     ; USCI_B0 I2C Own Address 0
-TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register 
+TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register
 TERM_I2CSA      .equ eUSCI_B0_SFR + 20h     ; USCI_B0 I2C Slave Address
 TERM_IE         .equ eUSCI_B0_SFR + 2Ah     ; USCI_B0 Interrupt Enable
 TERM_IFG        .equ eUSCI_B0_SFR + 2Ch     ; USCI_B0 Interrupt Flags Register
index 057f04f..26ae408 100644 (file)
@@ -37,42 +37,67 @@ FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ---------------------------------------
 ! FAT16 FileSystemInfos
 ! ---------------------------------------
@@ -158,7 +183,7 @@ HDLW_BUFofst=22!    BUFFER offset ; used by LOAD" and by WRITE"
 HDLW_PrevLEN=24!    previous LEN
 HDLW_PrevORG=26!    previous ORG
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=4!
 HandleLenght=28!
 FirstHandle=\$1890!
@@ -187,7 +212,7 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_LEN=\#84! bytes
 HOLD_SIZE=\#34! bytes
 
 !SD_card Input Buffer = PAD
@@ -199,48 +224,43 @@ SDIB_LEN=\$54!
 ! ----------------------------------------------
 ! FastForth RAM memory map (= 1k):
 ! ----------------------------------------------
-LEAVEPTR=\$1C00!    \ Leave-stack pointer, init by QUIT
-LSATCK=\$1C00!      \ leave stack,      grow up
-PSTACK=\$1C80!      \ parameter stack,  grow down
-RSTACK=\$1CE0!      \ Return stack,     grow down
-
-PAD_I2CADR=\$1CE0!  \ RX I2C address
-PAD_I2CCNT=\$1CE2!  \ count max
-PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
-
-TIB_I2CADR=\$1D38!  \ TX I2C address 
-TIB_I2CCNT=\$1D3A!  \ count of bytes
-TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
-
-HOLDS_ORG=\$1D90!   \ a good address for HOLDS
-HOLD_BASE=\$1DB2!   \ BASE HOLD area, grow down
-
-! ----------------------
-! NOT SAVED VARIABLES
-! ----------------------
-
+LEAVEPTR=\$1C00!        Leave-stack pointer, init by QUIT
+LSATCK=\$1C00!          leave stack,      grow up
+PSTACK=\$1C80!          parameter stack,  grow down
+RSTACK=\$1CE0!          Return stack,     grow down
+!
+PAD_I2CADR=\$1CE0!      RX I2C address
+PAD_I2CCNT=\$1CE2!      count max
+PAD_ORG=\$1CE4!         user scratch pad buffer, 84 bytes, grow up
+!
+TIB_I2CADR=\$1D38!      TX I2C address
+TIB_I2CCNT=\$1D3A!      count of bytes
+TIB_ORG=\$1D3C!         Terminal input buffer, 84 bytes, grow up
+!
+HOLDS_ORG=\$1D90!       base address for HOLDS
+HOLD_BASE=\$1DB2!       BASE HOLD area, grow down
+!
 HP=\$1DB2!              HOLD ptr
-CAPS=\$1DB4!            CAPS ON/OFF flag, must be set to -1 before first reset !
-LAST_NFA=\$1DB6!
-LAST_THREAD=\$1DB8!
-LAST_CFA=\$1DBA!
-LAST_PSP=\$1DBC!
-
-STATEADR=\$1DBE!          Interpreter state
-
-SOURCE_LEN=\$1DC0!      len of input stream
-SOURCE_ORG=\$1DC2!      adr of input stream
-TOIN=\$1DC4!            >IN
-DP=\$1DC6!              dictionary ptr
-
-LASTVOC=\$1DC8!         keep VOC-LINK
-CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
-CURRENT=\$1DDA!         CURRENT dictionnary ptr
-
-BASEADR=\$1DDC!           numeric base, must be defined before first reset !
-LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
+LAST_NFA=\$1DB4!
+LAST_THREAD=\$1DB6!
+LAST_CFA=\$1DB8!
+LAST_PSP=\$1DBA!
+!
+STATEADR=\$1DBC!        Interpreter state
+BASEADR=\$1DBE!         base
+CAPS=\$1DC0!            CAPS ON/OFF
+!
+SOURCE_LEN=\$1DC2!      len of input stream
+SOURCE_ORG=\$1DC4!      adr of input stream
+TOIN=\$1DC6!            >IN
+DP=\$1DC8!              dictionary ptr
+!
+LASTVOC=\$1DCA!         keep VOC-LINK
+CURRENT=\$1DCC!         CURRENT dictionnary ptr
+CONTEXT=\$1DCE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
-!1DE0! 28 RAM bytes free 
+!1DE0! 28 RAM bytes free
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -260,46 +280,54 @@ MAIN_LEN=\$3E00!        15.5 k FRAM
 
 SLEEP=\$C200!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$C20A!                 CODE compiled by LITERAL
-XSQUOTE=\$C214!             CODE compiled by S" and S_
-HEREXEC=\$C228!             CODE HERE and BEGIN execute address
-QFBRAN=\$C234!              CODE compiled by IF UNTIL
-BRAN=\$C23A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$C23C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$C23E!                 CODE compiled by DO
-XPLOOP=\$C24E!              CODE compiled by +LOOP
-XLOOP=\$C260!               CODE compiled by LOOP
-MUSMOD=\$C266!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$C278!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$C280!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$C2AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$C2AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$C2BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$C2CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$C2D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$C2E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$C2EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$C21E!             CODE compiled by S" and S_
+HEREXEC=\$C232!             CODE HERE and BEGIN execute address
+MUSMOD=\$C23E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$C250!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$C258!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$C282!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$C284!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$C294!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$C2A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$C2AC!              CODE compiled by IF UNTIL
+BRAN=\$C2B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$C2B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$C2B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$C2C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$C2F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$C32A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$C336!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$C2D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$C308!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$C312!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$C394!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$C39C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$C3C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$C3C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$C3B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$C38E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$C3BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$C3BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$C354!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$C37E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$C384!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$C386!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$C344!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$C346!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$C356!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$C356!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$C358!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$C380!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR5739
 ! ----------------------------------------------
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
@@ -352,41 +380,41 @@ SFRIFG1=\$102!      \ SFR flag register
 SFRRPCR=\$104!      \ SFR reset pin control
 
 PMMCTL0=\$120!      \ PMM Control 0
-PMMIFG=\$12A!       \ PMM interrupt flags 
+PMMIFG=\$12A!       \ PMM interrupt flags
 PM5CTL0=\$130!      \ PM5 Control 0
 
-FRCTLCTL0=\$140!    \ FRAM control 0    
-GCCTL0=\$144!       \ General control 0 
-GCCTL1=\$146!       \ General control 1 
+FRCTLCTL0=\$140!    \ FRAM control 0
+GCCTL0=\$144!       \ General control 0
+GCCTL1=\$146!       \ General control 1
 
-CRC16DI=\$150!      \ CRC data input                  
-CRCDIRB=\$152!      \ CRC data input reverse byte     
-CRCINIRES=\$154!    \ CRC initialization and result   
-CRCRESR=\$156!      \ CRC result reverse byte  
+CRC16DI=\$150!      \ CRC data input
+CRCDIRB=\$152!      \ CRC data input reverse byte
+CRCINIRES=\$154!    \ CRC initialization and result
+CRCRESR=\$156!      \ CRC result reverse byte
 
 WDTCTL=\$15C!        \ WDT control register
 
 CSCTL0=\$160!       \ CS control 0
-CSCTL0_H=\$161!     \ 
-CSCTL1=\$162!       \ CS control 1 
-CSCTL2=\$164!       \ CS control 2 
-CSCTL3=\$166!       \ CS control 3 
-CSCTL4=\$168!       \ CS control 4 
-CSCTL5=\$16A!       \ CS control 5 
-CSCTL6=\$16C!       \ CS control 6 
-
-SYSCTL=\$180!       \ System control              
-SYSJMBC=\$186!      \ JTAG mailbox control        
-SYSJMBI0=\$188!     \ JTAG mailbox input 0        
-SYSJMBI1=\$18A!     \ JTAG mailbox input 1        
-SYSJMBO0=\$18C!     \ JTAG mailbox output 0       
-SYSJMBO1=\$18E!     \ JTAG mailbox output 1       
-SYSBERRIV=\$198!    \ Bus Error vector generator  
-SYSUNIV=\$19A!      \ User NMI vector generator   
-SYSSNIV=\$19C!      \ System NMI vector generator 
-SYSRSTIV=\$19E!     \ Reset vector generator      
-
-REFCTL=\$1b0!       \ Shared reference control 
+CSCTL0_H=\$161!     \
+CSCTL1=\$162!       \ CS control 1
+CSCTL2=\$164!       \ CS control 2
+CSCTL3=\$166!       \ CS control 3
+CSCTL4=\$168!       \ CS control 4
+CSCTL5=\$16A!       \ CS control 5
+CSCTL6=\$16C!       \ CS control 6
+
+SYSCTL=\$180!       \ System control
+SYSJMBC=\$186!      \ JTAG mailbox control
+SYSJMBI0=\$188!     \ JTAG mailbox input 0
+SYSJMBI1=\$18A!     \ JTAG mailbox input 1
+SYSJMBO0=\$18C!     \ JTAG mailbox output 0
+SYSJMBO1=\$18E!     \ JTAG mailbox output 1
+SYSBERRIV=\$198!    \ Bus Error vector generator
+SYSUNIV=\$19A!      \ User NMI vector generator
+SYSSNIV=\$19C!      \ System NMI vector generator
+SYSRSTIV=\$19E!     \ Reset vector generator
+
+REFCTL=\$1b0!       \ Shared reference control
 
 PAIN=\$200!
 PAOUT=\$202!
@@ -473,86 +501,86 @@ TBCLR=4!
 TBIFG=1!
 CCIFG=1!
 
-TA0CTL=\$340!       \ TA0 control                 
-TA0CCTL0=\$342!     \ Capture/compare control 0   
-TA0CCTL1=\$344!     \ Capture/compare control 1   
-TA0CCTL2=\$346!     \ Capture/compare control 2   
-TA0R=\$350!         \ TA0 counter register        
-TA0CCR0=\$352!      \ Capture/compare register 0  
-TA0CCR1=\$354!      \ Capture/compare register 1  
-TA0CCR2=\$356!      \ Capture/compare register 2  
-TA0EX0=\$360!       \ TA0 expansion register 0    
-TA0IV=\$36E!        \ TA0 interrupt vector        
-
-TA1CTL=\$380!       \ TA1 control                 
-TA1CCTL0=\$382!     \ Capture/compare control 0   
-TA1CCTL1=\$384!     \ Capture/compare control 1   
-TA1CCTL2=\$386!     \ Capture/compare control 2   
-TA1R=\$390!         \ TA1 counter register        
-TA1CCR0=\$392!      \ Capture/compare register 0  
-TA1CCR1=\$394!      \ Capture/compare register 1  
-TA1CCR2=\$396!      \ Capture/compare register 2  
-TA1EX0=\$3A0!       \ TA1 expansion register 0    
-TA1IV=\$3AE!        \ TA1 interrupt vector        
-
-TB0CTL=\$3C0!       \ TB0 control                 
-TB0CCTL0=\$3C2!     \ Capture/compare control 0   
-TB0CCTL1=\$3C4!     \ Capture/compare control 1   
-TB0CCTL2=\$3C6!     \ Capture/compare control 2   
-TB0R=\$3D0!         \ TB0 counter register        
-TB0CCR0=\$3D2!      \ Capture/compare register 0  
-TB0CCR1=\$3D4!      \ Capture/compare register 1  
-TB0CCR2=\$3D6!      \ Capture/compare register 2  
-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        
+TA0CTL=\$340!       \ TA0 control
+TA0CCTL0=\$342!     \ Capture/compare control 0
+TA0CCTL1=\$344!     \ Capture/compare control 1
+TA0CCTL2=\$346!     \ Capture/compare control 2
+TA0R=\$350!         \ TA0 counter register
+TA0CCR0=\$352!      \ Capture/compare register 0
+TA0CCR1=\$354!      \ Capture/compare register 1
+TA0CCR2=\$356!      \ Capture/compare register 2
+TA0EX0=\$360!       \ TA0 expansion register 0
+TA0IV=\$36E!        \ TA0 interrupt vector
+
+TA1CTL=\$380!       \ TA1 control
+TA1CCTL0=\$382!     \ Capture/compare control 0
+TA1CCTL1=\$384!     \ Capture/compare control 1
+TA1CCTL2=\$386!     \ Capture/compare control 2
+TA1R=\$390!         \ TA1 counter register
+TA1CCR0=\$392!      \ Capture/compare register 0
+TA1CCR1=\$394!      \ Capture/compare register 1
+TA1CCR2=\$396!      \ Capture/compare register 2
+TA1EX0=\$3A0!       \ TA1 expansion register 0
+TA1IV=\$3AE!        \ TA1 interrupt vector
+
+TB0CTL=\$3C0!       \ TB0 control
+TB0CCTL0=\$3C2!     \ Capture/compare control 0
+TB0CCTL1=\$3C4!     \ Capture/compare control 1
+TB0CCTL2=\$3C6!     \ Capture/compare control 2
+TB0R=\$3D0!         \ TB0 counter register
+TB0CCR0=\$3D2!      \ Capture/compare register 0
+TB0CCR1=\$3D4!      \ Capture/compare register 1
+TB0CCR2=\$3D6!      \ Capture/compare register 2
+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                                   
-RTCCTL2=\$4A2!      \ RTC control 2                                   
-RTCCTL3=\$4A3!      \ RTC control 3                                   
-RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control                         
-RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control                         
-RTCPS0=\$4AC!       \ RTC prescaler 0                                 
-RTCPS1=\$4AD!       \ RTC prescaler 1                                 
-RTCIV=\$4AE!        \ RTC interrupt vector word                       
-RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,     
-RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,     
-RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,      
-RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW, 
-RTCDAY=\$4B4!       \ RTC days                                        
+RTCCTL0=\$4A0!      \ RTC control 0
+RTCCTL1=\$4A1!      \ RTC control 1
+RTCCTL2=\$4A2!      \ RTC control 2
+RTCCTL3=\$4A3!      \ RTC control 3
+RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control
+RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control
+RTCPS0=\$4AC!       \ RTC prescaler 0
+RTCPS1=\$4AD!       \ RTC prescaler 1
+RTCIV=\$4AE!        \ RTC interrupt vector word
+RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,
+RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,
+RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,
+RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW,
+RTCDAY=\$4B4!       \ RTC days
 RTCMON=\$4B5!       \ RTC month
-RTCYEAR=\$4B6!                                       
-RTCYEARL=\$4B6!     \ RTC year low                                    
-RTCYEARH=\$4B7!     \ RTC year high                                   
-RTCAMIN=\$4B8!      \ RTC alarm minutes                               
-RTCAHOUR=\$4B9!     \ RTC alarm hours                                 
-RTCADOW=\$4BA!      \ RTC alarm day of week                           
-RTCADAY=\$4BB!      \ RTC alarm days                                  
-BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register               
-BCD2BIN=\$4BE!      \ BCD-to-binary conversion register               
+RTCYEAR=\$4B6!
+RTCYEARL=\$4B6!     \ RTC year low
+RTCYEARH=\$4B7!     \ RTC year high
+RTCAMIN=\$4B8!      \ RTC alarm minutes
+RTCAHOUR=\$4B9!     \ RTC alarm hours
+RTCADOW=\$4BA!      \ RTC alarm day of week
+RTCADAY=\$4BB!      \ RTC alarm days
+BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register
+BCD2BIN=\$4BE!      \ BCD-to-binary conversion register
 RTCHOLD=\$40!
 RTCRDY=\$10!
 
@@ -582,102 +610,102 @@ MPY32CTL0=\$4EC!    \ MPY32 control register 0
 
 DMAIFG=8!
 
-DMA0CTL=\$500!      \ DMA channel 0 control                   
-DMA0SAL=\$502!      \ DMA channel 0 source address low        
-DMA0SAH=\$504!      \ DMA channel 0 source address high       
-DMA0DAL=\$506!      \ DMA channel 0 destination address low   
-DMA0DAH=\$508!      \ DMA channel 0 destination address high  
-DMA0SZ=\$50A!       \ DMA channel 0 transfer size             
-DMA1CTL=\$510!      \ DMA channel 1 control                   
-DMA1SAL=\$512!      \ DMA channel 1 source address low        
-DMA1SAH=\$514!      \ DMA channel 1 source address high       
-DMA1DAL=\$516!      \ DMA channel 1 destination address low   
-DMA1DAH=\$518!      \ DMA channel 1 destination address high  
-DMA1SZ=\$51A!       \ DMA channel 1 transfer size             
-DMA2CTL=\$520!      \ DMA channel 2 control                   
-DMA2SAL=\$522!      \ DMA channel 2 source address low        
-DMA2SAH=\$524!      \ DMA channel 2 source address high       
-DMA2DAL=\$526!      \ DMA channel 2 destination address low   
-DMA2DAH=\$528!      \ DMA channel 2 destination address high  
-DMA2SZ=\$52A!       \ DMA channel 2 transfer size             
-DMACTL0=\$530!      \ DMA module control 0                    
-DMACTL1=\$532!      \ DMA module control 1                    
-DMACTL2=\$534!      \ DMA module control 2                    
-DMACTL3=\$536!      \ DMA module control 3                    
-DMACTL4=\$538!      \ DMA module control 4                    
-DMAIV=\$53A!        \ DMA interrupt vector                    
-
-MPUCTL0=\$5A0!      \ MPU control 0             
-MPUCTL1=\$5A2!      \ MPU control 1             
-MPUSEG=\$5A4!       \ MPU Segmentation Register 
-MPUSAM=\$5A6!       \ MPU access management     
-
-UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0        
-UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1        
-UCA0BRW=\$5C6!         
-UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0           
-UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1           
-UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control    
-UCA0STAT=\$5CA!     \ eUSCI_A status                
-UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer        
-UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer       
-UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control           
-UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control 
-UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control  
-UCA0IE=\$5DA!       \ eUSCI_A interrupt enable      
-UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags       
-UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word 
-
-UCA1CTLW0=\$5E0!    \ eUSCI_A control word 0        
-UCA1CTLW1=\$5E2!    \ eUSCI_A control word 1        
-UCA1BRW=\$5E6!         
-UCA1BR0=\$5E6!      \ eUSCI_A baud rate 0           
-UCA1BR1=\$5E7!      \ eUSCI_A baud rate 1           
-UCA1MCTLW=\$5E8!    \ eUSCI_A modulation control    
-UCA1STAT=\$5EA!     \ eUSCI_A status                
-UCA1RXBUF=\$5EC!    \ eUSCI_A receive buffer        
-UCA1TXBUF=\$5EE!    \ eUSCI_A transmit buffer       
-UCA1ABCTL=\$5F0!    \ eUSCI_A LIN control           
-UCA1IRTCTL=\$5F2!   \ eUSCI_A IrDA transmit control 
-UCA1IRRCTL=\$5F3!   \ eUSCI_A IrDA receive control  
-UCA1IE=\$5FA!       \ eUSCI_A interrupt enable      
-UCA1IFG=\$5FC!      \ eUSCI_A interrupt flags       
-UCA1IV=\$5FE!       \ eUSCI_A interrupt vector word 
-
-UCB0CTLW0=\$640!    \ eUSCI_B control word 0          
-UCB0CTLW1=\$642!    \ eUSCI_B control word 1 
-UCB0BRW=\$646!         
-UCB0BR0=\$646!      \ eUSCI_B bit rate 0              
-UCB0BR1=\$647!      \ eUSCI_B bit rate 1              
-UCB0STATW=\$648!    \ eUSCI_B status word 
-UCBCNT0=\$649!      \ eUSCI_B hardware count           
-UCB0TBCNT=\$64A!    \ eUSCI_B byte counter threshold  
-UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer          
-UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer         
-UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0       
-UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1       
-UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2       
-UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3       
-UCB0ADDRX=\$65C!    \ eUSCI_B received address        
-UCB0ADDMASK=\$65E!  \ eUSCI_B address mask            
-UCB0I2CSA=\$660!    \ eUSCI I2C slave address         
-UCB0IE=\$66A!       \ eUSCI interrupt enable          
-UCB0IFG=\$66C!      \ eUSCI interrupt flags           
-UCB0IV=\$66E!       \ eUSCI interrupt vector word     
+DMA0CTL=\$500!      \ DMA channel 0 control
+DMA0SAL=\$502!      \ DMA channel 0 source address low
+DMA0SAH=\$504!      \ DMA channel 0 source address high
+DMA0DAL=\$506!      \ DMA channel 0 destination address low
+DMA0DAH=\$508!      \ DMA channel 0 destination address high
+DMA0SZ=\$50A!       \ DMA channel 0 transfer size
+DMA1CTL=\$510!      \ DMA channel 1 control
+DMA1SAL=\$512!      \ DMA channel 1 source address low
+DMA1SAH=\$514!      \ DMA channel 1 source address high
+DMA1DAL=\$516!      \ DMA channel 1 destination address low
+DMA1DAH=\$518!      \ DMA channel 1 destination address high
+DMA1SZ=\$51A!       \ DMA channel 1 transfer size
+DMA2CTL=\$520!      \ DMA channel 2 control
+DMA2SAL=\$522!      \ DMA channel 2 source address low
+DMA2SAH=\$524!      \ DMA channel 2 source address high
+DMA2DAL=\$526!      \ DMA channel 2 destination address low
+DMA2DAH=\$528!      \ DMA channel 2 destination address high
+DMA2SZ=\$52A!       \ DMA channel 2 transfer size
+DMACTL0=\$530!      \ DMA module control 0
+DMACTL1=\$532!      \ DMA module control 1
+DMACTL2=\$534!      \ DMA module control 2
+DMACTL3=\$536!      \ DMA module control 3
+DMACTL4=\$538!      \ DMA module control 4
+DMAIV=\$53A!        \ DMA interrupt vector
+
+MPUCTL0=\$5A0!      \ MPU control 0
+MPUCTL1=\$5A2!      \ MPU control 1
+MPUSEG=\$5A4!       \ MPU Segmentation Register
+MPUSAM=\$5A6!       \ MPU access management
+
+UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0
+UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1
+UCA0BRW=\$5C6!
+UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0
+UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1
+UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control
+UCA0STAT=\$5CA!     \ eUSCI_A status
+UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer
+UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer
+UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control
+UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control
+UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control
+UCA0IE=\$5DA!       \ eUSCI_A interrupt enable
+UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags
+UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word
+
+UCA1CTLW0=\$5E0!    \ eUSCI_A control word 0
+UCA1CTLW1=\$5E2!    \ eUSCI_A control word 1
+UCA1BRW=\$5E6!
+UCA1BR0=\$5E6!      \ eUSCI_A baud rate 0
+UCA1BR1=\$5E7!      \ eUSCI_A baud rate 1
+UCA1MCTLW=\$5E8!    \ eUSCI_A modulation control
+UCA1STAT=\$5EA!     \ eUSCI_A status
+UCA1RXBUF=\$5EC!    \ eUSCI_A receive buffer
+UCA1TXBUF=\$5EE!    \ eUSCI_A transmit buffer
+UCA1ABCTL=\$5F0!    \ eUSCI_A LIN control
+UCA1IRTCTL=\$5F2!   \ eUSCI_A IrDA transmit control
+UCA1IRRCTL=\$5F3!   \ eUSCI_A IrDA receive control
+UCA1IE=\$5FA!       \ eUSCI_A interrupt enable
+UCA1IFG=\$5FC!      \ eUSCI_A interrupt flags
+UCA1IV=\$5FE!       \ eUSCI_A interrupt vector word
+
+UCB0CTLW0=\$640!    \ eUSCI_B control word 0
+UCB0CTLW1=\$642!    \ eUSCI_B control word 1
+UCB0BRW=\$646!
+UCB0BR0=\$646!      \ eUSCI_B bit rate 0
+UCB0BR1=\$647!      \ eUSCI_B bit rate 1
+UCB0STATW=\$648!    \ eUSCI_B status word
+UCBCNT0=\$649!      \ eUSCI_B hardware count
+UCB0TBCNT=\$64A!    \ eUSCI_B byte counter threshold
+UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer
+UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer
+UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0
+UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1
+UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2
+UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3
+UCB0ADDRX=\$65C!    \ eUSCI_B received address
+UCB0ADDMASK=\$65E!  \ eUSCI_B address mask
+UCB0I2CSA=\$660!    \ eUSCI I2C slave address
+UCB0IE=\$66A!       \ eUSCI interrupt enable
+UCB0IFG=\$66C!      \ eUSCI interrupt flags
+UCB0IV=\$66E!       \ eUSCI interrupt vector word
 
 UCTXACK=\$20!
 UCTR=\$10!
 
-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            
+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!
@@ -685,9 +713,9 @@ ADCSTART=\$03!
 CDIFG=1!
 CDIIFG=2!
 
-CDCTL0=\$8C0!       \ Comparator_D control register 0     
-CDCTL1=\$8C2!       \ Comparator_D control register 1     
-CDCTL2=\$8C4!       \ Comparator_D control register 2     
-CDCTL3=\$8C6!       \ Comparator_D control register 3     
-CDINT=\$8CC!        \ Comparator_D interrupt register     
-CDIV=\$8CE!         \ Comparator_D interrupt vector word  
+CDCTL0=\$8C0!       \ Comparator_D control register 0
+CDCTL1=\$8C2!       \ Comparator_D control register 1
+CDCTL2=\$8C4!       \ Comparator_D control register 2
+CDCTL3=\$8C6!       \ Comparator_D control register 3
+CDINT=\$8CC!        \ Comparator_D interrupt register
+CDIV=\$8CE!         \ Comparator_D interrupt vector word
index 90f331b..ce112e6 100644 (file)
@@ -26,7 +26,7 @@ DEVICE = "MSP430FR5948"
 ; ----------------------------------------------
 PAGESIZE        .equ 512         ; MPU unit
 ; ----------------------------------------------
-; BSL                         
+; BSL
 ; ----------------------------------------------
 BSL             .equ 1000h
 ; ----------------------------------------------
@@ -64,7 +64,7 @@ BSL_SIG2        .equ 0FF86h      ;
 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits max
 IPE_SIG_VALID   .equ 0FF88h      ; one word
 IPE_STR_PTR_SRC .equ 0FF8Ah      ; one word
-I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address 
+I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
@@ -270,7 +270,7 @@ P1SELC      .equ PA_SFR + 16h    ; Port 1 SELection Complement
 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
-P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word 
+P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word
 
 P2IN        .equ PA_SFR + 01h    ; Port 2 INput
 P2OUT       .equ PA_SFR + 03h    ; Port 2 OUTput
@@ -282,15 +282,15 @@ P2SELC      .equ PA_SFR + 17h    ; Port 2 SELection Complement
 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 
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
 
 
 WIPE_IN     .equ P2IN
 IO_WIPE     .equ 1      ; P2.0 = FORTH Deep_RST pin
 
     .IFDEF UCA0_TERM
-; P2.0  UCA0-TXD    --> USB2UART RXD    
-; P2.1  UCA0-RXD    <-- USB2UART TXD 
+; P2.0  UCA0-TXD    --> USB2UART RXD
+; P2.1  UCA0-RXD    <-- USB2UART TXD
 TXD         .equ 1      ; P2.0 = TX + FORTH Deep_RST pin
 RXD         .equ 2      ; P2.1 = RX
 BUS_TERM    .equ 3
@@ -307,13 +307,13 @@ BUS_SD      .equ 04C0h  ; pins P2.2 as UCB0CLK, P1.6 as UCB0SIMO & P1.7 as UCB0S
 
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; 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    P2OUT
 HANDSHAKIN  .equ    P2IN
 RTS         .equ    4           ; P2.2
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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  8             ; P2.3
         .ENDIF  ; TERMINAL5WIRES
@@ -346,7 +346,7 @@ 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 
+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
@@ -358,7 +358,7 @@ 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 
+P4IV        .equ PB_SFR + 1Eh    ; Port 4 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORTJ
@@ -467,7 +467,7 @@ TERM_STATW      .equ eUSCI_B0_SFR + 08h     ; USCI_B0 Status Word
 TERM_RXBUF      .equ eUSCI_B0_SFR + 0Ch     ; USCI_B0 Receive Buffer 8
 TERM_TXBUF      .equ eUSCI_B0_SFR + 0Eh     ; USCI_B0 Transmit Buffer 8
 TERM_I2COA0     .equ eUSCI_B0_SFR + 14h     ; USCI_B0 I2C Own Address 0
-TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register 
+TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register
 TERM_I2CSA      .equ eUSCI_B0_SFR + 20h     ; USCI_B0 I2C Slave Address
 TERM_IE         .equ eUSCI_B0_SFR + 2Ah     ; USCI_B0 Interrupt Enable
 TERM_IFG        .equ eUSCI_B0_SFR + 2Ch     ; USCI_B0 Interrupt Flags Register
index fcb2420..32d54d2 100644 (file)
@@ -32,42 +32,67 @@ FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
@@ -88,55 +113,49 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_LEN=\#84! bytes
 HOLD_SIZE=\#34! bytes
 
 ! ---------------------------------------
 ! FastForth RAM memory map (>= 1k)
 ! ---------------------------------------
-LEAVEPTR=\$1C00!    \ Leave-stack pointer, init by QUIT
-LSATCK=\$1C00!      \ leave stack,      grow up
-PSTACK=\$1C80!      \ parameter stack,  grow down
-RSTACK=\$1CE0!      \ Return stack,     grow down
-
-PAD_I2CADR=\$1CE0!  \ RX I2C address
-PAD_I2CCNT=\$1CE2!  \ count max
-PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
-
-TIB_I2CADR=\$1D38!  \ TX I2C address 
-TIB_I2CCNT=\$1D3A!  \ count of bytes
-TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
-
-HOLDS_ORG=\$1D90!   \ base address for HOLDS
-HOLD_BASE=\$1DB2!   \ BASE HOLD area, grow down
-
-! ----------------------
-! NOT SAVED VARIABLES
-! ----------------------
-
+LEAVEPTR=\$1C00!        Leave-stack pointer, init by QUIT
+LSATCK=\$1C00!          leave stack,      grow up
+PSTACK=\$1C80!          parameter stack,  grow down
+RSTACK=\$1CE0!          Return stack,     grow down
+!
+PAD_I2CADR=\$1CE0!      RX I2C address
+PAD_I2CCNT=\$1CE2!      count max
+PAD_ORG=\$1CE4!         user scratch pad buffer, 84 bytes, grow up
+!
+TIB_I2CADR=\$1D38!      TX I2C address
+TIB_I2CCNT=\$1D3A!      count of bytes
+TIB_ORG=\$1D3C!         Terminal input buffer, 84 bytes, grow up
+!
+HOLDS_ORG=\$1D90!       base address for HOLDS
+HOLD_BASE=\$1DB2!       BASE HOLD area, grow down
+!
 HP=\$1DB2!              HOLD ptr
-CAPS=\$1DB4!            CAPS ON/OFF flag, must be set to -1 before first reset !
-LAST_NFA=\$1DB6!
-LAST_THREAD=\$1DB8!
-LAST_CFA=\$1DBA!
-LAST_PSP=\$1DBC!
-
-STATEADR=\$1DBE!        Interpreter state
-
-SOURCE_LEN=\$1DC0!      len of input stream
-SOURCE_ADR=\$1DC2!      adr of input stream
-TOIN=\$1DC4!            >IN
-DP=\$1DC6!              dictionary ptr
-
-LASTVOC=\$1DC8!         keep VOC-LINK
-CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
-CURRENT=\$1DDA!         CURRENT dictionnary ptr
-
-BASEADR=\$1DDC!         numeric base, must be defined before first reset !
-LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
-
+LAST_NFA=\$1DB4!
+LAST_THREAD=\$1DB6!
+LAST_CFA=\$1DB8!
+LAST_PSP=\$1DBA!
+!
+STATEADR=\$1DBC!        Interpreter state
+BASEADR=\$1DBE!         base
+CAPS=\$1DC0!            CAPS ON/OFF
+!
+SOURCE_LEN=\$1DC2!      len of input stream
+SOURCE_ORG=\$1DC4!      adr of input stream
+TOIN=\$1DC6!            >IN
+DP=\$1DC8!              dictionary ptr
+!
+LASTVOC=\$1DCA!         keep VOC-LINK
+CURRENT=\$1DCC!         CURRENT dictionnary ptr
+CONTEXT=\$1DCE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
-!1DE0! 28 RAM bytes free 
+!1DE0! 28 RAM bytes free
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -148,7 +167,7 @@ SD_BUF=\$1E00!      \ SD_Card buffer
 BUFEND=\$2000!
 
 ! ---------------------------------------
-! FAT16 FileSystemInfos 
+! FAT16 FileSystemInfos
 ! ---------------------------------------
 FATtype=\$2002!
 BS_FirstSectorL=\$2004!
@@ -176,7 +195,7 @@ SectorH=\$201C!
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$201E! 
+BufferPtr=\$201E!
 BufferLen=\$2020!
 
 ! ---------------------------------------
@@ -184,16 +203,16 @@ BufferLen=\$2020!
 ! ---------------------------------------
 ClusterL=\$2022!     16 bits wide (FAT16)
 ClusterH=\$2024!     16 bits wide (FAT16)
-NewClusterL=\$2026!  16 bits wide (FAT16) 
-NewClusterH=\$2028!  16 bits wide (FAT16) 
-CurFATsector=\$202A! 
+NewClusterL=\$2026!  16 bits wide (FAT16)
+NewClusterH=\$2028!  16 bits wide (FAT16)
+CurFATsector=\$202A!
 
 ! ---------------------------------------
 ! DIR entry
 ! ---------------------------------------
 DIRclusterL=\$202C!  contains the Cluster of current directory ; 1 if FAT16 root directory
 DIRclusterH=\$202E!  contains the Cluster of current directory ; 1 if FAT16 root directory
-EntryOfst=\$2030!  
+EntryOfst=\$2030!
 
 ! ---------------------------------------
 ! Handle Pointer
@@ -209,7 +228,7 @@ EndOfPath=\$2036!
 ! ---------------------------------------
 ! Handle structure
 ! ---------------------------------------
-! three handle tokens : 
+! three handle tokens :
 ! token = 0 : free handle
 ! token = 1 : file to read
 ! token = 2 : file updated (write)
@@ -233,7 +252,7 @@ HDLW_PrevLEN=24!    previous LEN
 HDLW_PrevORG=26!    previous ORG
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=28!
 FirstHandle=\$2038!
@@ -257,51 +276,59 @@ MAIN_LEN=\$BC00!        47 k FRAM
 
 SLEEP=\$4400!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$440A!                 CODE compiled by LITERAL
-XSQUOTE=\$4414!             CODE compiled by S" and S_
-HEREXEC=\$4428!             CODE HERE and BEGIN execute address
-QFBRAN=\$4434!              CODE compiled by IF UNTIL
-BRAN=\$443A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$443C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$443E!                 CODE compiled by DO
-XPLOOP=\$444E!              CODE compiled by +LOOP
-XLOOP=\$4460!               CODE compiled by LOOP
-MUSMOD=\$4466!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$4478!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$4480!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$44AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$44AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$44BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$44CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$44D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$44E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$44EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$441E!             CODE compiled by S" and S_
+HEREXEC=\$4432!             CODE HERE and BEGIN execute address
+MUSMOD=\$443E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$4450!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$4458!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$4482!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$4484!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$4494!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$44A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$44AC!              CODE compiled by IF UNTIL
+BRAN=\$44B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$44B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$44B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$44C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$44F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$452A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$4536!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$44D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$4508!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$4512!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$4594!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$459C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$45C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$45C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$45B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$458E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$45BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$45BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$4554!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$457E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$4584!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$4586!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$4544!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$4546!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$4556!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$4556!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$4558!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$4580!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR5948
 ! ----------------------------------------------
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
-BSL_SIG1=\$FF84!  
-BSL_SIG2=\$FF86!  
+BSL_SIG1=\$FF84!
+BSL_SIG2=\$FF86!
 I2CSLA0=\$FFA2!         UCBxI2COA0 default value address
 I2CSLA1=\$FFA4!         UCBxI2COA1 default value address
 I2CSLA2=\$FFA6!         UCBxI2COA2 default value address
@@ -348,39 +375,39 @@ SFRIFG1=\$102!      \ SFR flag register
 SFRRPCR=\$104!      \ SFR reset pin control
 
 PMMCTL0=\$120!      \ PMM Control 0
-PMMIFG=\$12A!       \ PMM interrupt flags 
+PMMIFG=\$12A!       \ PMM interrupt flags
 PM5CTL0=\$130!      \ PM5 Control 0
 
-FRCTLCTL0=\$140!    \ FRAM control 0    
-GCCTL0=\$144!       \ General control 0 
-GCCTL1=\$146!       \ General control 1 
+FRCTLCTL0=\$140!    \ FRAM control 0
+GCCTL0=\$144!       \ General control 0
+GCCTL1=\$146!       \ General control 1
 
-CRC16DI=\$150!      \ CRC data input                  
-CRCDIRB=\$152!      \ CRC data input reverse byte     
-CRCINIRES=\$154!    \ CRC initialization and result   
-CRCRESR=\$156!      \ CRC result reverse byte  
+CRC16DI=\$150!      \ CRC data input
+CRCDIRB=\$152!      \ CRC data input reverse byte
+CRCINIRES=\$154!    \ CRC initialization and result
+CRCRESR=\$156!      \ CRC result reverse byte
 
 WDTCTL=\$15C!        \ WDT control register
 
-CSCTL0=\$160!       \ CS control 0 
-CSCTL1=\$162!       \ CS control 1 
-CSCTL2=\$164!       \ CS control 2 
-CSCTL3=\$166!       \ CS control 3 
-CSCTL4=\$168!       \ CS control 4 
-CSCTL5=\$16A!       \ CS control 5 
-CSCTL6=\$16C!       \ CS control 6 
-
-SYSCTL=\$180!       \ System control              
-SYSJMBC=\$186!      \ JTAG mailbox control        
-SYSJMBI0=\$188!     \ JTAG mailbox input 0        
-SYSJMBI1=\$18A!     \ JTAG mailbox input 1        
-SYSJMBO0=\$18C!     \ JTAG mailbox output 0       
-SYSJMBO1=\$18E!     \ JTAG mailbox output 1       
-SYSUNIV=\$19A!      \ User NMI vector generator   
-SYSSNIV=\$19C!      \ System NMI vector generator 
-SYSRSTIV=\$19E!     \ Reset vector generator      
-
-REFCTL=\$1B0!       \ Shared reference control 
+CSCTL0=\$160!       \ CS control 0
+CSCTL1=\$162!       \ CS control 1
+CSCTL2=\$164!       \ CS control 2
+CSCTL3=\$166!       \ CS control 3
+CSCTL4=\$168!       \ CS control 4
+CSCTL5=\$16A!       \ CS control 5
+CSCTL6=\$16C!       \ CS control 6
+
+SYSCTL=\$180!       \ System control
+SYSJMBC=\$186!      \ JTAG mailbox control
+SYSJMBI0=\$188!     \ JTAG mailbox input 0
+SYSJMBI1=\$18A!     \ JTAG mailbox input 1
+SYSJMBO0=\$18C!     \ JTAG mailbox output 0
+SYSJMBO1=\$18E!     \ JTAG mailbox output 1
+SYSUNIV=\$19A!      \ User NMI vector generator
+SYSSNIV=\$19C!      \ System NMI vector generator
+SYSRSTIV=\$19E!     \ Reset vector generator
+
+REFCTL=\$1B0!       \ Shared reference control
 
 PAIN=\$200!
 PAOUT=\$202!
@@ -467,90 +494,90 @@ TBCLR=2!
 TBIFG=1!
 CCIFG=1!
 
-TA0CTL=\$340!       \ TA0 control                 
-TA0CCTL0=\$342!     \ Capture/compare control 0   
-TA0CCTL1=\$344!     \ Capture/compare control 1   
-TA0CCTL2=\$346!     \ Capture/compare control 2   
-TA0R=\$350!         \ TA0 counter register        
-TA0CCR0=\$352!      \ Capture/compare register 0  
-TA0CCR1=\$354!      \ Capture/compare register 1  
-TA0CCR2=\$356!      \ Capture/compare register 2  
-TA0EX0=\$360!       \ TA0 expansion register 0    
-TA0IV=\$36E!        \ TA0 interrupt vector        
-
-TA1CTL=\$380!       \ TA1 control                 
-TA1CCTL0=\$382!     \ Capture/compare control 0   
-TA1CCTL1=\$384!     \ Capture/compare control 1   
-TA1CCTL2=\$386!     \ Capture/compare control 2   
-TA1R=\$390!         \ TA1 counter register        
-TA1CCR0=\$392!      \ Capture/compare register 0  
-TA1CCR1=\$394!      \ Capture/compare register 1  
-TA1CCR2=\$396!      \ Capture/compare register 2  
-TA1EX0=\$3A0!       \ TA1 expansion register 0    
-TA1IV=\$3AE!        \ TA1 interrupt vector        
-
-TB0CTL=\$3C0!       \ TB0 control                 
-TB0CCTL0=\$3C2!     \ Capture/compare control 0   
-TB0CCTL1=\$3C4!     \ Capture/compare control 1   
-TB0CCTL2=\$3C6!     \ Capture/compare control 2   
-TB0CCTL3=\$3C8!     \ Capture/compare control 3   
-TB0CCTL4=\$3CA!     \ Capture/compare control 4   
-TB0CCTL5=\$3CC!     \ Capture/compare control 5   
-TB0CCTL6=\$3CE!     \ Capture/compare control 6   
-TB0R=\$3D0!         \ TB0 counter register        
-TB0CCR0=\$3D2!      \ Capture/compare register 0  
-TB0CCR1=\$3D4!      \ Capture/compare register 1  
-TB0CCR2=\$3D6!      \ Capture/compare register 2  
-TB0CCR3=\$3D8!      \ Capture/compare register 3  
-TB0CCR5=\$3DA!      \ Capture/compare register 4 
-TB0CCR5=\$3DC!      \ Capture/compare register 5  
-TB0CCR6=\$3DE!      \ Capture/compare register 6  
-TB0EX0=\$3E0!       \ TB0 expansion register 0    
-TB0IV=\$3EE!        \ TB0 interrupt vector        
-
-TA2CTL=\$400!       \ TA2 control                 
-TA2CCTL0=\$402!     \ Capture/compare control 0   
-TA2CCTL1=\$404!     \ Capture/compare control 1   
-TA2R=\$410!         \ TA2 counter register        
-TA2CCR0=\$412!      \ Capture/compare register 0  
-TA2CCR1=\$414!      \ Capture/compare register 1  
-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   
-TA3R=\$450!         \ TA3 counter register        
-TA3CCR0=\$452!      \ Capture/compare register 0  
-TA3CCR1=\$454!      \ Capture/compare register 1  
-TA3EX0=\$460!       \ TA3 expansion register 0    
-TA3IV=\$46E!        \ TA3 interrupt vector  
+TA0CTL=\$340!       \ TA0 control
+TA0CCTL0=\$342!     \ Capture/compare control 0
+TA0CCTL1=\$344!     \ Capture/compare control 1
+TA0CCTL2=\$346!     \ Capture/compare control 2
+TA0R=\$350!         \ TA0 counter register
+TA0CCR0=\$352!      \ Capture/compare register 0
+TA0CCR1=\$354!      \ Capture/compare register 1
+TA0CCR2=\$356!      \ Capture/compare register 2
+TA0EX0=\$360!       \ TA0 expansion register 0
+TA0IV=\$36E!        \ TA0 interrupt vector
+
+TA1CTL=\$380!       \ TA1 control
+TA1CCTL0=\$382!     \ Capture/compare control 0
+TA1CCTL1=\$384!     \ Capture/compare control 1
+TA1CCTL2=\$386!     \ Capture/compare control 2
+TA1R=\$390!         \ TA1 counter register
+TA1CCR0=\$392!      \ Capture/compare register 0
+TA1CCR1=\$394!      \ Capture/compare register 1
+TA1CCR2=\$396!      \ Capture/compare register 2
+TA1EX0=\$3A0!       \ TA1 expansion register 0
+TA1IV=\$3AE!        \ TA1 interrupt vector
+
+TB0CTL=\$3C0!       \ TB0 control
+TB0CCTL0=\$3C2!     \ Capture/compare control 0
+TB0CCTL1=\$3C4!     \ Capture/compare control 1
+TB0CCTL2=\$3C6!     \ Capture/compare control 2
+TB0CCTL3=\$3C8!     \ Capture/compare control 3
+TB0CCTL4=\$3CA!     \ Capture/compare control 4
+TB0CCTL5=\$3CC!     \ Capture/compare control 5
+TB0CCTL6=\$3CE!     \ Capture/compare control 6
+TB0R=\$3D0!         \ TB0 counter register
+TB0CCR0=\$3D2!      \ Capture/compare register 0
+TB0CCR1=\$3D4!      \ Capture/compare register 1
+TB0CCR2=\$3D6!      \ Capture/compare register 2
+TB0CCR3=\$3D8!      \ Capture/compare register 3
+TB0CCR5=\$3DA!      \ Capture/compare register 4
+TB0CCR5=\$3DC!      \ Capture/compare register 5
+TB0CCR6=\$3DE!      \ Capture/compare register 6
+TB0EX0=\$3E0!       \ TB0 expansion register 0
+TB0IV=\$3EE!        \ TB0 interrupt vector
+
+TA2CTL=\$400!       \ TA2 control
+TA2CCTL0=\$402!     \ Capture/compare control 0
+TA2CCTL1=\$404!     \ Capture/compare control 1
+TA2R=\$410!         \ TA2 counter register
+TA2CCR0=\$412!      \ Capture/compare register 0
+TA2CCR1=\$414!      \ Capture/compare register 1
+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
+TA3R=\$450!         \ TA3 counter register
+TA3CCR0=\$452!      \ Capture/compare register 0
+TA3CCR1=\$454!      \ Capture/compare register 1
+TA3EX0=\$460!       \ TA3 expansion register 0
+TA3IV=\$46E!        \ TA3 interrupt vector
 
 !                   \ RTC_B
-RTCCTL0=\$4A0!      \ RTC control 0                     
-RTCCTL1=\$4A1!      \ RTC control 1                                
-RTCCTL2=\$4A2!      \ RTC control 2                              
-RTCCTL3=\$4A3!      \ RTC control 3                       
-RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control                         
-RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control                         
-RTCPS0=\$4AC!       \ RTC prescaler 0                                 
-RTCPS1=\$4AD!       \ RTC prescaler 1                                 
-RTCIV=\$4AE!        \ RTC interrupt vector word                       
-RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,     
-RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,     
-RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,      
-RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW, 
-RTCDAY=\$4B4!       \ RTC days                                        
-RTCMON=\$4B5!       \ RTC month                                       
-RTCYEAR=\$4B6!                                       
-RTCYEARL=\$4B6!     \ RTC year low                                    
-RTCYEARH=\$4B7!     \ RTC year high                                   
-RTCAMIN=\$4B8!      \ RTC alarm minutes                               
-RTCAHOUR=\$4B9!     \ RTC alarm hours                                 
-RTCADOW=\$4BA!      \ RTC alarm day of week                           
-RTCADAY=\$4BB!      \ RTC alarm days                                  
-BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register               
-BCD2BIN=\$4BE!      \ BCD-to-binary conversion register  
+RTCCTL0=\$4A0!      \ RTC control 0
+RTCCTL1=\$4A1!      \ RTC control 1
+RTCCTL2=\$4A2!      \ RTC control 2
+RTCCTL3=\$4A3!      \ RTC control 3
+RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control
+RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control
+RTCPS0=\$4AC!       \ RTC prescaler 0
+RTCPS1=\$4AD!       \ RTC prescaler 1
+RTCIV=\$4AE!        \ RTC interrupt vector word
+RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,
+RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,
+RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,
+RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW,
+RTCDAY=\$4B4!       \ RTC days
+RTCMON=\$4B5!       \ RTC month
+RTCYEAR=\$4B6!
+RTCYEARL=\$4B6!     \ RTC year low
+RTCYEARH=\$4B7!     \ RTC year high
+RTCAMIN=\$4B8!      \ RTC alarm minutes
+RTCAHOUR=\$4B9!     \ RTC alarm hours
+RTCADOW=\$4BA!      \ RTC alarm day of week
+RTCADAY=\$4BB!      \ RTC alarm days
+BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register
+BCD2BIN=\$4BE!      \ BCD-to-binary conversion register
 RTCHOLD=\$40!
 RTCRDY=\$10!
 
@@ -580,178 +607,178 @@ MPY32CTL0=\$4EC!    \ MPY32 control register 0
 
 DMAIFG=8!
 
-DMACTL0=\$500!      \ DMA module control 0                    
-DMACTL1=\$502!      \ DMA module control 1                    
-DMACTL2=\$504!      \ DMA module control 2                    
-DMACTL3=\$506!      \ DMA module control 3                    
-DMACTL4=\$508!      \ DMA module control 4                    
-DMAIV=\$50A!        \ DMA interrupt vector                    
-
-DMA0CTL=\$510!      \ DMA channel 0 control                   
-DMA0SAL=\$512!      \ DMA channel 0 source address low        
-DMA0SAH=\$514!      \ DMA channel 0 source address high       
-DMA0DAL=\$516!      \ DMA channel 0 destination address low   
-DMA0DAH=\$518!      \ DMA channel 0 destination address high  
-DMA0SZ=\$51A!       \ DMA channel 0 transfer size             
-
-DMA1CTL=\$520!      \ DMA channel 1 control                   
-DMA1SAL=\$522!      \ DMA channel 1 source address low        
-DMA1SAH=\$524!      \ DMA channel 1 source address high       
-DMA1DAL=\$526!      \ DMA channel 1 destination address low   
-DMA1DAH=\$528!      \ DMA channel 1 destination address high  
-DMA1SZ=\$52A!       \ DMA channel 1 transfer size             
-
-DMA2CTL=\$530!      \ DMA channel 2 control                   
-DMA2SAL=\$532!      \ DMA channel 2 source address low        
-DMA2SAH=\$534!      \ DMA channel 2 source address high       
-DMA2DAL=\$536!      \ DMA channel 2 destination address low   
-DMA2DAH=\$538!      \ DMA channel 2 destination address high  
-DMA2SZ=\$53A!       \ DMA channel 2 transfer size             
-
-
-MPUCTL0=\$5A0!      \ MPU control 0             
-MPUCTL1=\$5A2!      \ MPU control 1             
-MPUSEGB2=\$5A4!     \ MPU Segmentation Border2 
-MPUSEGB1=\$5A6!     \ MPU Segmentation Border1 
-MPUSAM=\$5A8!       \ MPU access management     
-MPUIPC0=\$5AA!      \ MPU IP control 0                      
-MPUIPSEGB2=\$5AC!   \ MPU IP Encapsulation Segment Border 2 
-MPUIPSEGB1=\$5AE!   \ MPU IP Encapsulation Segment Border 1 
-
-UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0        
-UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1        
-UCA0BRW=\$5C6!         
-UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0           
-UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1           
-UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control    
-UCA0STAT=\$5CA!     \ eUSCI_A status                
-UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer        
-UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer       
-UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control           
-UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control 
-UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control  
-UCA0IE=\$5DA!       \ eUSCI_A interrupt enable      
-UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags       
-UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word 
-
-UCA1CTLW0=\$5E0!    \ eUSCI_A control word 0        
-UCA1CTLW1=\$5E2!    \ eUSCI_A control word 1        
-UCA1BRW=\$5E6!         
-UCA1BR0=\$5E6!      \ eUSCI_A baud rate 0           
-UCA1BR1=\$5E7!      \ eUSCI_A baud rate 1           
-UCA1MCTLW=\$5E8!    \ eUSCI_A modulation control    
-UCA1STAT=\$5EA!     \ eUSCI_A status                
-UCA1RXBUF=\$5EC!    \ eUSCI_A receive buffer        
-UCA1TXBUF=\$5EE!    \ eUSCI_A transmit buffer       
-UCA1ABCTL=\$5F0!    \ eUSCI_A LIN control           
-UCA1IRTCTL=\$5F2!   \ eUSCI_A IrDA transmit control 
-UCA1IRRCTL=\$5F3!   \ eUSCI_A IrDA receive control  
-UCA1IE=\$5FA!       \ eUSCI_A interrupt enable      
-UCA1IFG=\$5FC!      \ eUSCI_A interrupt flags       
-UCA1IV=\$5FE!       \ eUSCI_A interrupt vector word 
-
-UCB0CTLW0=\$640!    \ eUSCI_B control word 0          
-UCB0CTLW1=\$642!    \ eUSCI_B control word 1 
-UCB0BRW=\$646!         
-UCB0BR0=\$646!      \ eUSCI_B bit rate 0              
-UCB0BR1=\$647!      \ eUSCI_B bit rate 1              
-UCB0STATW=\$648!    \ eUSCI_B status word 
-UCBCNT0=\$649!      \ eUSCI_B hardware count           
-UCB0TBCNT=\$64A!    \ eUSCI_B byte counter threshold  
-UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer          
-UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer         
-UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0       
-UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1       
-UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2       
-UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3       
-UCB0ADDRX=\$65C!    \ eUSCI_B received address        
-UCB0ADDMASK=\$65E!  \ eUSCI_B address mask            
-UCB0I2CSA=\$660!    \ eUSCI I2C slave address         
-UCB0IE=\$66A!       \ eUSCI interrupt enable          
-UCB0IFG=\$66C!      \ eUSCI interrupt flags           
-UCB0IV=\$66E!       \ eUSCI interrupt vector word     
+DMACTL0=\$500!      \ DMA module control 0
+DMACTL1=\$502!      \ DMA module control 1
+DMACTL2=\$504!      \ DMA module control 2
+DMACTL3=\$506!      \ DMA module control 3
+DMACTL4=\$508!      \ DMA module control 4
+DMAIV=\$50A!        \ DMA interrupt vector
+
+DMA0CTL=\$510!      \ DMA channel 0 control
+DMA0SAL=\$512!      \ DMA channel 0 source address low
+DMA0SAH=\$514!      \ DMA channel 0 source address high
+DMA0DAL=\$516!      \ DMA channel 0 destination address low
+DMA0DAH=\$518!      \ DMA channel 0 destination address high
+DMA0SZ=\$51A!       \ DMA channel 0 transfer size
+
+DMA1CTL=\$520!      \ DMA channel 1 control
+DMA1SAL=\$522!      \ DMA channel 1 source address low
+DMA1SAH=\$524!      \ DMA channel 1 source address high
+DMA1DAL=\$526!      \ DMA channel 1 destination address low
+DMA1DAH=\$528!      \ DMA channel 1 destination address high
+DMA1SZ=\$52A!       \ DMA channel 1 transfer size
+
+DMA2CTL=\$530!      \ DMA channel 2 control
+DMA2SAL=\$532!      \ DMA channel 2 source address low
+DMA2SAH=\$534!      \ DMA channel 2 source address high
+DMA2DAL=\$536!      \ DMA channel 2 destination address low
+DMA2DAH=\$538!      \ DMA channel 2 destination address high
+DMA2SZ=\$53A!       \ DMA channel 2 transfer size
+
+
+MPUCTL0=\$5A0!      \ MPU control 0
+MPUCTL1=\$5A2!      \ MPU control 1
+MPUSEGB2=\$5A4!     \ MPU Segmentation Border2
+MPUSEGB1=\$5A6!     \ MPU Segmentation Border1
+MPUSAM=\$5A8!       \ MPU access management
+MPUIPC0=\$5AA!      \ MPU IP control 0
+MPUIPSEGB2=\$5AC!   \ MPU IP Encapsulation Segment Border 2
+MPUIPSEGB1=\$5AE!   \ MPU IP Encapsulation Segment Border 1
+
+UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0
+UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1
+UCA0BRW=\$5C6!
+UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0
+UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1
+UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control
+UCA0STAT=\$5CA!     \ eUSCI_A status
+UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer
+UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer
+UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control
+UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control
+UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control
+UCA0IE=\$5DA!       \ eUSCI_A interrupt enable
+UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags
+UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word
+
+UCA1CTLW0=\$5E0!    \ eUSCI_A control word 0
+UCA1CTLW1=\$5E2!    \ eUSCI_A control word 1
+UCA1BRW=\$5E6!
+UCA1BR0=\$5E6!      \ eUSCI_A baud rate 0
+UCA1BR1=\$5E7!      \ eUSCI_A baud rate 1
+UCA1MCTLW=\$5E8!    \ eUSCI_A modulation control
+UCA1STAT=\$5EA!     \ eUSCI_A status
+UCA1RXBUF=\$5EC!    \ eUSCI_A receive buffer
+UCA1TXBUF=\$5EE!    \ eUSCI_A transmit buffer
+UCA1ABCTL=\$5F0!    \ eUSCI_A LIN control
+UCA1IRTCTL=\$5F2!   \ eUSCI_A IrDA transmit control
+UCA1IRRCTL=\$5F3!   \ eUSCI_A IrDA receive control
+UCA1IE=\$5FA!       \ eUSCI_A interrupt enable
+UCA1IFG=\$5FC!      \ eUSCI_A interrupt flags
+UCA1IV=\$5FE!       \ eUSCI_A interrupt vector word
+
+UCB0CTLW0=\$640!    \ eUSCI_B control word 0
+UCB0CTLW1=\$642!    \ eUSCI_B control word 1
+UCB0BRW=\$646!
+UCB0BR0=\$646!      \ eUSCI_B bit rate 0
+UCB0BR1=\$647!      \ eUSCI_B bit rate 1
+UCB0STATW=\$648!    \ eUSCI_B status word
+UCBCNT0=\$649!      \ eUSCI_B hardware count
+UCB0TBCNT=\$64A!    \ eUSCI_B byte counter threshold
+UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer
+UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer
+UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0
+UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1
+UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2
+UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3
+UCB0ADDRX=\$65C!    \ eUSCI_B received address
+UCB0ADDMASK=\$65E!  \ eUSCI_B address mask
+UCB0I2CSA=\$660!    \ eUSCI I2C slave address
+UCB0IE=\$66A!       \ eUSCI interrupt enable
+UCB0IFG=\$66C!      \ eUSCI interrupt flags
+UCB0IV=\$66E!       \ eUSCI interrupt vector word
 
 UCTXACK=\$20!
 UCTR=\$10!
 
 
-ADC12CTL0=\$800!    \ ADC12_B Control 0                                 
-ADC12CTL1=\$802!    \ ADC12_B Control 1                                 
-ADC12CTL2=\$804!    \ ADC12_B Control 2                                 
-ADC12CTL3=\$806!    \ ADC12_B Control 3                                 
-ADC12LO=\$808!      \ ADC12_B Window Comparator Low Threshold Register  
-ADC12HI=\$80A!      \ ADC12_B Window Comparator High Threshold Register 
-ADC12IFGR0=\$80C!   \ ADC12_B Interrupt Flag Register 0                 
-ADC12IFGR1=\$80E!   \ ADC12_B Interrupt Flag Register 1                 
-ADC12IFGR2=\$810!   \ ADC12_B Interrupt Flag Register 2                 
-ADC12IER0=\$812!    \ ADC12_B Interrupt Enable Register 0               
-ADC12IER1=\$814!    \ ADC12_B Interrupt Enable Register 1               
-ADC12IER2=\$816!    \ ADC12_B Interrupt Enable Register 2               
-ADC12IV=\$818!      \ ADC12_B Interrupt Vector                          
-ADC12MCTL0=\$820!   \ ADC12_B Memory Control 0                          
-ADC12MCTL1=\$822!   \ ADC12_B Memory Control 1                          
-ADC12MCTL2=\$824!   \ ADC12_B Memory Control 2                          
-ADC12MCTL3=\$826!   \ ADC12_B Memory Control 3                          
-ADC12MCTL4=\$828!   \ ADC12_B Memory Control 4                          
-ADC12MCTL5=\$82A!   \ ADC12_B Memory Control 5                          
-ADC12MCTL6=\$82C!   \ ADC12_B Memory Control 6                          
-ADC12MCTL7=\$82E!   \ ADC12_B Memory Control 7                          
-ADC12MCTL8=\$830!   \ ADC12_B Memory Control 8                          
-ADC12MCTL9=\$832!   \ ADC12_B Memory Control 9                          
-ADC12MCTL10=\$834!  \ ADC12_B Memory Control 10                         
-ADC12MCTL11=\$836!  \ ADC12_B Memory Control 11                         
-ADC12MCTL12=\$838!  \ ADC12_B Memory Control 12                         
-ADC12MCTL13=\$83A!  \ ADC12_B Memory Control 13 
-ADC12MCTL14=\$83C!  \ ADC12_B Memory Control 14 
-ADC12MCTL15=\$83E!  \ ADC12_B Memory Control 15 
-ADC12MCTL16=\$840!  \ ADC12_B Memory Control 16 
-ADC12MCTL17=\$842!  \ ADC12_B Memory Control 17 
-ADC12MCTL18=\$844!  \ ADC12_B Memory Control 18 
-ADC12MCTL19=\$846!  \ ADC12_B Memory Control 19 
-ADC12MCTL20=\$848!  \ ADC12_B Memory Control 20 
-ADC12MCTL21=\$84A!  \ ADC12_B Memory Control 21 
-ADC12MCTL22=\$84C!  \ ADC12_B Memory Control 22 
-ADC12MCTL23=\$84E!  \ ADC12_B Memory Control 23 
-ADC12MCTL24=\$850!  \ ADC12_B Memory Control 24 
-ADC12MCTL25=\$852!  \ ADC12_B Memory Control 25 
-ADC12MCTL26=\$854!  \ ADC12_B Memory Control 26 
-ADC12MCTL27=\$856!  \ ADC12_B Memory Control 27 
-ADC12MCTL28=\$858!  \ ADC12_B Memory Control 28 
-ADC12MCTL29=\$85A!  \ ADC12_B Memory Control 29 
-ADC12MCTL30=\$85C!  \ ADC12_B Memory Control 30 
-ADC12MCTL31=\$85E!  \ ADC12_B Memory Control 31 
-ADC12MEM0=\$860!    \ ADC12_B Memory 0 
-ADC12MEM1=\$862!    \ ADC12_B Memory 1 
-ADC12MEM2=\$864!    \ ADC12_B Memory 2 
-ADC12MEM3=\$866!    \ ADC12_B Memory 3 
-ADC12MEM4=\$868!    \ ADC12_B Memory 4 
-ADC12MEM5=\$86A!    \ ADC12_B Memory 5 
-ADC12MEM6=\$86C!    \ ADC12_B Memory 6 
-ADC12MEM7=\$86E!    \ ADC12_B Memory 7 
-ADC12MEM8=\$870!    \ ADC12_B Memory 8 
-ADC12MEM9=\$872!    \ ADC12_B Memory 9 
-ADC12MEM10=\$874!   \ ADC12_B Memory 10 
-ADC12MEM11=\$876!   \ ADC12_B Memory 11 
-ADC12MEM12=\$878!   \ ADC12_B Memory 12 
-ADC12MEM13=\$87A!   \ ADC12_B Memory 13 
-ADC12MEM14=\$87C!   \ ADC12_B Memory 14 
-ADC12MEM15=\$87E!   \ ADC12_B Memory 15 
-ADC12MEM16=\$880!   \ ADC12_B Memory 16 
-ADC12MEM17=\$882!   \ ADC12_B Memory 17 
-ADC12MEM18=\$884!   \ ADC12_B Memory 18 
-ADC12MEM19=\$886!   \ ADC12_B Memory 19 
-ADC12MEM20=\$888!   \ ADC12_B Memory 20 
-ADC12MEM21=\$88A!   \ ADC12_B Memory 21 
-ADC12MEM22=\$88C!   \ ADC12_B Memory 22 
-ADC12MEM23=\$88E!   \ ADC12_B Memory 23 
-ADC12MEM24=\$890!   \ ADC12_B Memory 24 
-ADC12MEM25=\$892!   \ ADC12_B Memory 25 
-ADC12MEM26=\$894!   \ ADC12_B Memory 26 
-ADC12MEM27=\$896!   \ ADC12_B Memory 27 
-ADC12MEM28=\$898!   \ ADC12_B Memory 28 
-ADC12MEM29=\$89A!   \ ADC12_B Memory 29 
-ADC12MEM30=\$89C!   \ ADC12_B Memory 30 
-ADC12MEM31=\$89E!   \ ADC12_B Memory 31 
+ADC12CTL0=\$800!    \ ADC12_B Control 0
+ADC12CTL1=\$802!    \ ADC12_B Control 1
+ADC12CTL2=\$804!    \ ADC12_B Control 2
+ADC12CTL3=\$806!    \ ADC12_B Control 3
+ADC12LO=\$808!      \ ADC12_B Window Comparator Low Threshold Register
+ADC12HI=\$80A!      \ ADC12_B Window Comparator High Threshold Register
+ADC12IFGR0=\$80C!   \ ADC12_B Interrupt Flag Register 0
+ADC12IFGR1=\$80E!   \ ADC12_B Interrupt Flag Register 1
+ADC12IFGR2=\$810!   \ ADC12_B Interrupt Flag Register 2
+ADC12IER0=\$812!    \ ADC12_B Interrupt Enable Register 0
+ADC12IER1=\$814!    \ ADC12_B Interrupt Enable Register 1
+ADC12IER2=\$816!    \ ADC12_B Interrupt Enable Register 2
+ADC12IV=\$818!      \ ADC12_B Interrupt Vector
+ADC12MCTL0=\$820!   \ ADC12_B Memory Control 0
+ADC12MCTL1=\$822!   \ ADC12_B Memory Control 1
+ADC12MCTL2=\$824!   \ ADC12_B Memory Control 2
+ADC12MCTL3=\$826!   \ ADC12_B Memory Control 3
+ADC12MCTL4=\$828!   \ ADC12_B Memory Control 4
+ADC12MCTL5=\$82A!   \ ADC12_B Memory Control 5
+ADC12MCTL6=\$82C!   \ ADC12_B Memory Control 6
+ADC12MCTL7=\$82E!   \ ADC12_B Memory Control 7
+ADC12MCTL8=\$830!   \ ADC12_B Memory Control 8
+ADC12MCTL9=\$832!   \ ADC12_B Memory Control 9
+ADC12MCTL10=\$834!  \ ADC12_B Memory Control 10
+ADC12MCTL11=\$836!  \ ADC12_B Memory Control 11
+ADC12MCTL12=\$838!  \ ADC12_B Memory Control 12
+ADC12MCTL13=\$83A!  \ ADC12_B Memory Control 13
+ADC12MCTL14=\$83C!  \ ADC12_B Memory Control 14
+ADC12MCTL15=\$83E!  \ ADC12_B Memory Control 15
+ADC12MCTL16=\$840!  \ ADC12_B Memory Control 16
+ADC12MCTL17=\$842!  \ ADC12_B Memory Control 17
+ADC12MCTL18=\$844!  \ ADC12_B Memory Control 18
+ADC12MCTL19=\$846!  \ ADC12_B Memory Control 19
+ADC12MCTL20=\$848!  \ ADC12_B Memory Control 20
+ADC12MCTL21=\$84A!  \ ADC12_B Memory Control 21
+ADC12MCTL22=\$84C!  \ ADC12_B Memory Control 22
+ADC12MCTL23=\$84E!  \ ADC12_B Memory Control 23
+ADC12MCTL24=\$850!  \ ADC12_B Memory Control 24
+ADC12MCTL25=\$852!  \ ADC12_B Memory Control 25
+ADC12MCTL26=\$854!  \ ADC12_B Memory Control 26
+ADC12MCTL27=\$856!  \ ADC12_B Memory Control 27
+ADC12MCTL28=\$858!  \ ADC12_B Memory Control 28
+ADC12MCTL29=\$85A!  \ ADC12_B Memory Control 29
+ADC12MCTL30=\$85C!  \ ADC12_B Memory Control 30
+ADC12MCTL31=\$85E!  \ ADC12_B Memory Control 31
+ADC12MEM0=\$860!    \ ADC12_B Memory 0
+ADC12MEM1=\$862!    \ ADC12_B Memory 1
+ADC12MEM2=\$864!    \ ADC12_B Memory 2
+ADC12MEM3=\$866!    \ ADC12_B Memory 3
+ADC12MEM4=\$868!    \ ADC12_B Memory 4
+ADC12MEM5=\$86A!    \ ADC12_B Memory 5
+ADC12MEM6=\$86C!    \ ADC12_B Memory 6
+ADC12MEM7=\$86E!    \ ADC12_B Memory 7
+ADC12MEM8=\$870!    \ ADC12_B Memory 8
+ADC12MEM9=\$872!    \ ADC12_B Memory 9
+ADC12MEM10=\$874!   \ ADC12_B Memory 10
+ADC12MEM11=\$876!   \ ADC12_B Memory 11
+ADC12MEM12=\$878!   \ ADC12_B Memory 12
+ADC12MEM13=\$87A!   \ ADC12_B Memory 13
+ADC12MEM14=\$87C!   \ ADC12_B Memory 14
+ADC12MEM15=\$87E!   \ ADC12_B Memory 15
+ADC12MEM16=\$880!   \ ADC12_B Memory 16
+ADC12MEM17=\$882!   \ ADC12_B Memory 17
+ADC12MEM18=\$884!   \ ADC12_B Memory 18
+ADC12MEM19=\$886!   \ ADC12_B Memory 19
+ADC12MEM20=\$888!   \ ADC12_B Memory 20
+ADC12MEM21=\$88A!   \ ADC12_B Memory 21
+ADC12MEM22=\$88C!   \ ADC12_B Memory 22
+ADC12MEM23=\$88E!   \ ADC12_B Memory 23
+ADC12MEM24=\$890!   \ ADC12_B Memory 24
+ADC12MEM25=\$892!   \ ADC12_B Memory 25
+ADC12MEM26=\$894!   \ ADC12_B Memory 26
+ADC12MEM27=\$896!   \ ADC12_B Memory 27
+ADC12MEM28=\$898!   \ ADC12_B Memory 28
+ADC12MEM29=\$89A!   \ ADC12_B Memory 29
+ADC12MEM30=\$89C!   \ ADC12_B Memory 30
+ADC12MEM31=\$89E!   \ ADC12_B Memory 31
 
 ADCON=\$10!
 ADCSTART=\$03!
@@ -759,19 +786,19 @@ ADCSTART=\$03!
 CDIFG=1!
 CDIIFG=2!
 
-CDCTL0=\$8C0!       \ Comparator_E control register 0     
-CDCTL1=\$8C2!       \ Comparator_E control register 1     
-CDCTL2=\$8C4!       \ Comparator_E control register 2     
-CDCTL3=\$8C6!       \ Comparator_E control register 3     
-CDINT=\$8CC!        \ Comparator_E interrupt register     
-CDIV=\$8CE!         \ Comparator_E interrupt vector word  
-
-
-AESACTL0=\$9C0!     \ AES accelerator control register 0                  
-AESASTAT=\$9C4!     \ AES accelerator status register                     
-AESAKEY=\$9C6!      \ AES accelerator key register                        
-AESADIN=\$9C8!      \ AES accelerator data in register                    
-AESADOUT=\$9CA!     \ AES accelerator data out register                   
-AESAXDIN=\$9CC!     \ AES accelerator XORed data in register              
-AESAXIN =\$9CE!     \ AES accelerator XORed data in register (no trigger) 
+CDCTL0=\$8C0!       \ Comparator_E control register 0
+CDCTL1=\$8C2!       \ Comparator_E control register 1
+CDCTL2=\$8C4!       \ Comparator_E control register 2
+CDCTL3=\$8C6!       \ Comparator_E control register 3
+CDINT=\$8CC!        \ Comparator_E interrupt register
+CDIV=\$8CE!         \ Comparator_E interrupt vector word
+
+
+AESACTL0=\$9C0!     \ AES accelerator control register 0
+AESASTAT=\$9C4!     \ AES accelerator status register
+AESAKEY=\$9C6!      \ AES accelerator key register
+AESADIN=\$9C8!      \ AES accelerator data in register
+AESADOUT=\$9CA!     \ AES accelerator data out register
+AESAXDIN=\$9CC!     \ AES accelerator XORed data in register
+AESAXIN =\$9CE!     \ AES accelerator XORed data in register (no trigger)
 
index fed66a4..1b7f55b 100644 (file)
@@ -26,7 +26,7 @@ DEVICE = "MSP430FR5969"
 ; ----------------------------------------------
 PAGESIZE        .equ 512         ; MPU unit
 ; ----------------------------------------------
-; BSL                         
+; BSL
 ; ----------------------------------------------
 BSL             .equ 1000h
 ; ----------------------------------------------
@@ -65,7 +65,7 @@ BSL_SIG2        .equ 0FF86h      ;
 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits max
 IPE_SIG_VALID   .equ 0FF88h      ; one word
 IPE_STR_PTR_SRC .equ 0FF8Ah      ; one word
-I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address 
+I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
@@ -267,7 +267,7 @@ P1SELC      .equ PA_SFR + 16h    ; Port 1 SELection Complement
 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
-P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word 
+P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word
 
 P2IN        .equ PA_SFR + 01h    ; Port 2 INput
 P2OUT       .equ PA_SFR + 03h    ; Port 2 OUTput
@@ -279,7 +279,7 @@ P2SELC      .equ PA_SFR + 17h    ; Port 2 SELection Complement
 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 
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT3/4
@@ -306,7 +306,7 @@ 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 
+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
@@ -318,7 +318,7 @@ 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 
+P4IV        .equ PB_SFR + 1Eh    ; Port 4 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORTJ
@@ -383,14 +383,14 @@ RES3      .equ MPY_SFR + 2Ah    ; 32x32-bit result 3 */
 MPY32CTL0 .equ MPY_SFR + 2Ch    ; MPY32 control register 0
 
 
-MPUCTL0     .equ MPU_SFR + 00h  ; MPU control 0             
-MPUCTL1     .equ MPU_SFR + 02h  ; MPU control 1             
-MPUSEGB2    .equ MPU_SFR + 04h  ; MPU Segmentation Border 2 
-MPUSEGB1    .equ MPU_SFR + 06h  ; MPU Segmentation Border 1 
-MPUSAM      .equ MPU_SFR + 08h  ; MPU access management     
-MPUIPC0     .equ MPU_SFR + 0Ah  ; MPU IP control 0                      
-MPUIPSEGB2  .equ MPU_SFR + 0Ch  ; MPU IP Encapsulation Segment Border 2 
-MPUIPSEGB1  .equ MPU_SFR + 0Eh  ; MPU IP Encapsulation Segment Border 1 
+MPUCTL0     .equ MPU_SFR + 00h  ; MPU control 0
+MPUCTL1     .equ MPU_SFR + 02h  ; MPU control 1
+MPUSEGB2    .equ MPU_SFR + 04h  ; MPU Segmentation Border 2
+MPUSEGB1    .equ MPU_SFR + 06h  ; MPU Segmentation Border 1
+MPUSAM      .equ MPU_SFR + 08h  ; MPU access management
+MPUIPC0     .equ MPU_SFR + 0Ah  ; MPU IP control 0
+MPUIPSEGB2  .equ MPU_SFR + 0Ch  ; MPU IP Encapsulation Segment Border 2
+MPUIPSEGB1  .equ MPU_SFR + 0Eh  ; MPU IP Encapsulation Segment Border 1
 
 
     .IFDEF UCA0_TERM
@@ -437,7 +437,7 @@ TERM_STATW      .equ eUSCI_B0_SFR + 08h     ; USCI_B0 Status Word
 TERM_RXBUF      .equ eUSCI_B0_SFR + 0Ch     ; USCI_B0 Receive Buffer 8
 TERM_TXBUF      .equ eUSCI_B0_SFR + 0Eh     ; USCI_B0 Transmit Buffer 8
 TERM_I2COA0     .equ eUSCI_B0_SFR + 14h     ; USCI_B0 I2C Own Address 0
-TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register 
+TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register
 TERM_I2CSA      .equ eUSCI_B0_SFR + 20h     ; USCI_B0 I2C Slave Address
 TERM_IE         .equ eUSCI_B0_SFR + 2Ah     ; USCI_B0 Interrupt Enable
 TERM_IFG        .equ eUSCI_B0_SFR + 2Ch     ; USCI_B0 Interrupt Flags Register
index 4934d55..d51c85f 100644 (file)
@@ -31,42 +31,67 @@ FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
@@ -87,55 +112,49 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_LEN=\#84! bytes
 HOLD_SIZE=\#34! bytes
 
 ! ---------------------------------------
 ! FastForth RAM memory map (>= 1k)
 ! ---------------------------------------
-LEAVEPTR=\$1C00!    \ Leave-stack pointer, init by QUIT
-LSATCK=\$1C00!      \ leave stack,      grow up
-PSTACK=\$1C80!      \ parameter stack,  grow down
-RSTACK=\$1CE0!      \ Return stack,     grow down
-
-PAD_I2CADR=\$1CE0!  \ RX I2C address
-PAD_I2CCNT=\$1CE2!  \ count max
-PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
-
-TIB_I2CADR=\$1D38!  \ TX I2C address 
-TIB_I2CCNT=\$1D3A!  \ count of bytes
-TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
-
-HOLDS_ORG=\$1D90!   \ base address for HOLDS
-HOLD_BASE=\$1DB2!   \ BASE HOLD area, grow down
-
-! ----------------------
-! NOT SAVED VARIABLES
-! ----------------------
-
+LEAVEPTR=\$1C00!        Leave-stack pointer, init by QUIT
+LSATCK=\$1C00!          leave stack,      grow up
+PSTACK=\$1C80!          parameter stack,  grow down
+RSTACK=\$1CE0!          Return stack,     grow down
+!
+PAD_I2CADR=\$1CE0!      RX I2C address
+PAD_I2CCNT=\$1CE2!      count max
+PAD_ORG=\$1CE4!         user scratch pad buffer, 84 bytes, grow up
+!
+TIB_I2CADR=\$1D38!      TX I2C address
+TIB_I2CCNT=\$1D3A!      count of bytes
+TIB_ORG=\$1D3C!         Terminal input buffer, 84 bytes, grow up
+!
+HOLDS_ORG=\$1D90!       base address for HOLDS
+HOLD_BASE=\$1DB2!       BASE HOLD area, grow down
+!
 HP=\$1DB2!              HOLD ptr
-CAPS=\$1DB4!            CAPS ON/OFF flag, must be set to -1 before first reset !
-LAST_NFA=\$1DB6!
-LAST_THREAD=\$1DB8!
-LAST_CFA=\$1DBA!
-LAST_PSP=\$1DBC!
-
-STATEADR=\$1DBE!        Interpreter state
-
-SOURCE_LEN=\$1DC0!      len of input stream
-SOURCE_ADR=\$1DC2!      adr of input stream
-TOIN=\$1DC4!            >IN
-DP=\$1DC6!              dictionary ptr
-
-LASTVOC=\$1DC8!         keep VOC-LINK
-CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
-CURRENT=\$1DDA!         CURRENT dictionnary ptr
-
-BASEADR=\$1DDC!         numeric base, must be defined before first reset !
-LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
-
+LAST_NFA=\$1DB4!
+LAST_THREAD=\$1DB6!
+LAST_CFA=\$1DB8!
+LAST_PSP=\$1DBA!
+!
+STATEADR=\$1DBC!        Interpreter state
+BASEADR=\$1DBE!         base
+CAPS=\$1DC0!            CAPS ON/OFF
+!
+SOURCE_LEN=\$1DC2!      len of input stream
+SOURCE_ORG=\$1DC4!      adr of input stream
+TOIN=\$1DC6!            >IN
+DP=\$1DC8!              dictionary ptr
+!
+LASTVOC=\$1DCA!         keep VOC-LINK
+CURRENT=\$1DCC!         CURRENT dictionnary ptr
+CONTEXT=\$1DCE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
-!1DE0! 28 RAM bytes free 
+!1DE0! 28 RAM bytes free
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -147,7 +166,7 @@ SD_BUF=\$1E00!      \ SD_Card buffer
 BUFEND=\$2000!
 
 ! ---------------------------------------
-! FAT16 FileSystemInfos 
+! FAT16 FileSystemInfos
 ! ---------------------------------------
 FATtype=\$2002!
 BS_FirstSectorL=\$2004!
@@ -175,7 +194,7 @@ SectorH=\$201C!
 ! ---------------------------------------
 ! BUFFER management
 ! ---------------------------------------
-BufferPtr=\$201E! 
+BufferPtr=\$201E!
 BufferLen=\$2020!
 
 ! ---------------------------------------
@@ -183,16 +202,16 @@ BufferLen=\$2020!
 ! ---------------------------------------
 ClusterL=\$2022!     16 bits wide (FAT16)
 ClusterH=\$2024!     16 bits wide (FAT16)
-NewClusterL=\$2026!  16 bits wide (FAT16) 
-NewClusterH=\$2028!  16 bits wide (FAT16) 
-CurFATsector=\$202A! 
+NewClusterL=\$2026!  16 bits wide (FAT16)
+NewClusterH=\$2028!  16 bits wide (FAT16)
+CurFATsector=\$202A!
 
 ! ---------------------------------------
 ! DIR entry
 ! ---------------------------------------
 DIRclusterL=\$202C!  contains the Cluster of current directory ; 1 if FAT16 root directory
 DIRclusterH=\$202E!  contains the Cluster of current directory ; 1 if FAT16 root directory
-EntryOfst=\$2030!  
+EntryOfst=\$2030!
 
 ! ---------------------------------------
 ! Handle Pointer
@@ -208,7 +227,7 @@ EndOfPath=\$2036!
 ! ---------------------------------------
 ! Handle structure
 ! ---------------------------------------
-! three handle tokens : 
+! three handle tokens :
 ! token = 0 : free handle
 ! token = 1 : file to read
 ! token = 2 : file updated (write)
@@ -232,7 +251,7 @@ HDLW_PrevLEN=24!    previous LEN
 HDLW_PrevORG=26!    previous ORG
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=28!
 FirstHandle=\$2038!
@@ -256,52 +275,60 @@ MAIN_LEN=\$BC00!        47 k FRAM
 
 SLEEP=\$4400!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$440A!                 CODE compiled by LITERAL
-XSQUOTE=\$4414!             CODE compiled by S" and S_
-HEREXEC=\$4428!             CODE HERE and BEGIN execute address
-QFBRAN=\$4434!              CODE compiled by IF UNTIL
-BRAN=\$443A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$443C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$443E!                 CODE compiled by DO
-XPLOOP=\$444E!              CODE compiled by +LOOP
-XLOOP=\$4460!               CODE compiled by LOOP
-MUSMOD=\$4466!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$4478!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$4480!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$44AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$44AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$44BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$44CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$44D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$44E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$44EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$441E!             CODE compiled by S" and S_
+HEREXEC=\$4432!             CODE HERE and BEGIN execute address
+MUSMOD=\$443E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$4450!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$4458!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$4482!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$4484!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$4494!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$44A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$44AC!              CODE compiled by IF UNTIL
+BRAN=\$44B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$44B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$44B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$44C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$44F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$452A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$4536!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$44D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$4508!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$4512!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$4594!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$459C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$45C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$45C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$45B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$458E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$45BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$45BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$4554!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$457E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$4584!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$4586!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$4544!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$4546!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$4556!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$4556!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$4558!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$4580!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR5969
 ! ----------------------------------------------
 MAIN_LEN=\$FC00!        63k FRAM
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
-BSL_SIG1=\$FF84!  
-BSL_SIG2=\$FF86!  
+BSL_SIG1=\$FF84!
+BSL_SIG2=\$FF86!
 I2CSLA0=\$FFA2!         UCBxI2COA0 default value address
 I2CSLA1=\$FFA4!         UCBxI2COA1 default value address
 I2CSLA2=\$FFA6!         UCBxI2COA2 default value address
@@ -348,39 +375,39 @@ SFRIFG1=\$102!      \ SFR flag register
 SFRRPCR=\$104!      \ SFR reset pin control
 
 PMMCTL0=\$120!      \ PMM Control 0
-PMMIFG=\$12A!       \ PMM interrupt flags 
+PMMIFG=\$12A!       \ PMM interrupt flags
 PM5CTL0=\$130!      \ PM5 Control 0
 
-FRCTLCTL0=\$140!    \ FRAM control 0    
-GCCTL0=\$144!       \ General control 0 
-GCCTL1=\$146!       \ General control 1 
+FRCTLCTL0=\$140!    \ FRAM control 0
+GCCTL0=\$144!       \ General control 0
+GCCTL1=\$146!       \ General control 1
 
-CRC16DI=\$150!      \ CRC data input                  
-CRCDIRB=\$152!      \ CRC data input reverse byte     
-CRCINIRES=\$154!    \ CRC initialization and result   
-CRCRESR=\$156!      \ CRC result reverse byte  
+CRC16DI=\$150!      \ CRC data input
+CRCDIRB=\$152!      \ CRC data input reverse byte
+CRCINIRES=\$154!    \ CRC initialization and result
+CRCRESR=\$156!      \ CRC result reverse byte
 
 WDTCTL=\$15C!        \ WDT control register
 
-CSCTL0=\$160!       \ CS control 0 
-CSCTL1=\$162!       \ CS control 1 
-CSCTL2=\$164!       \ CS control 2 
-CSCTL3=\$166!       \ CS control 3 
-CSCTL4=\$168!       \ CS control 4 
-CSCTL5=\$16A!       \ CS control 5 
-CSCTL6=\$16C!       \ CS control 6 
-
-SYSCTL=\$180!       \ System control              
-SYSJMBC=\$186!      \ JTAG mailbox control        
-SYSJMBI0=\$188!     \ JTAG mailbox input 0        
-SYSJMBI1=\$18A!     \ JTAG mailbox input 1        
-SYSJMBO0=\$18C!     \ JTAG mailbox output 0       
-SYSJMBO1=\$18E!     \ JTAG mailbox output 1       
-SYSUNIV=\$19A!      \ User NMI vector generator   
-SYSSNIV=\$19C!      \ System NMI vector generator 
-SYSRSTIV=\$19E!     \ Reset vector generator      
-
-REFCTL=\$1B0!       \ Shared reference control 
+CSCTL0=\$160!       \ CS control 0
+CSCTL1=\$162!       \ CS control 1
+CSCTL2=\$164!       \ CS control 2
+CSCTL3=\$166!       \ CS control 3
+CSCTL4=\$168!       \ CS control 4
+CSCTL5=\$16A!       \ CS control 5
+CSCTL6=\$16C!       \ CS control 6
+
+SYSCTL=\$180!       \ System control
+SYSJMBC=\$186!      \ JTAG mailbox control
+SYSJMBI0=\$188!     \ JTAG mailbox input 0
+SYSJMBI1=\$18A!     \ JTAG mailbox input 1
+SYSJMBO0=\$18C!     \ JTAG mailbox output 0
+SYSJMBO1=\$18E!     \ JTAG mailbox output 1
+SYSUNIV=\$19A!      \ User NMI vector generator
+SYSSNIV=\$19C!      \ System NMI vector generator
+SYSRSTIV=\$19E!     \ Reset vector generator
+
+REFCTL=\$1B0!       \ Shared reference control
 
 PAIN=\$200!
 PAOUT=\$202!
@@ -467,90 +494,90 @@ TBCLR=2!
 TBIFG=1!
 CCIFG=1!
 
-TA0CTL=\$340!       \ TA0 control                 
-TA0CCTL0=\$342!     \ Capture/compare control 0   
-TA0CCTL1=\$344!     \ Capture/compare control 1   
-TA0CCTL2=\$346!     \ Capture/compare control 2   
-TA0R=\$350!         \ TA0 counter register        
-TA0CCR0=\$352!      \ Capture/compare register 0  
-TA0CCR1=\$354!      \ Capture/compare register 1  
-TA0CCR2=\$356!      \ Capture/compare register 2  
-TA0EX0=\$360!       \ TA0 expansion register 0    
-TA0IV=\$36E!        \ TA0 interrupt vector        
-
-TA1CTL=\$380!       \ TA1 control                 
-TA1CCTL0=\$382!     \ Capture/compare control 0   
-TA1CCTL1=\$384!     \ Capture/compare control 1   
-TA1CCTL2=\$386!     \ Capture/compare control 2   
-TA1R=\$390!         \ TA1 counter register        
-TA1CCR0=\$392!      \ Capture/compare register 0  
-TA1CCR1=\$394!      \ Capture/compare register 1  
-TA1CCR2=\$396!      \ Capture/compare register 2  
-TA1EX0=\$3A0!       \ TA1 expansion register 0    
-TA1IV=\$3AE!        \ TA1 interrupt vector        
-
-TB0CTL=\$3C0!       \ TB0 control                 
-TB0CCTL0=\$3C2!     \ Capture/compare control 0   
-TB0CCTL1=\$3C4!     \ Capture/compare control 1   
-TB0CCTL2=\$3C6!     \ Capture/compare control 2   
-TB0CCTL3=\$3C8!     \ Capture/compare control 3   
-TB0CCTL4=\$3CA!     \ Capture/compare control 4   
-TB0CCTL5=\$3CC!     \ Capture/compare control 5   
-TB0CCTL6=\$3CE!     \ Capture/compare control 6   
-TB0R=\$3D0!         \ TB0 counter register        
-TB0CCR0=\$3D2!      \ Capture/compare register 0  
-TB0CCR1=\$3D4!      \ Capture/compare register 1  
-TB0CCR2=\$3D6!      \ Capture/compare register 2  
-TB0CCR3=\$3D8!      \ Capture/compare register 3  
-TB0CCR5=\$3DA!      \ Capture/compare register 4 
-TB0CCR5=\$3DC!      \ Capture/compare register 5  
-TB0CCR6=\$3DE!      \ Capture/compare register 6  
-TB0EX0=\$3E0!       \ TB0 expansion register 0    
-TB0IV=\$3EE!        \ TB0 interrupt vector        
-
-TA2CTL=\$400!       \ TA2 control                 
-TA2CCTL0=\$402!     \ Capture/compare control 0   
-TA2CCTL1=\$404!     \ Capture/compare control 1   
-TA2R=\$410!         \ TA2 counter register        
-TA2CCR0=\$412!      \ Capture/compare register 0  
-TA2CCR1=\$414!      \ Capture/compare register 1  
-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   
-TA3R=\$450!         \ TA3 counter register        
-TA3CCR0=\$452!      \ Capture/compare register 0  
-TA3CCR1=\$454!      \ Capture/compare register 1  
-TA3EX0=\$460!       \ TA3 expansion register 0    
-TA3IV=\$46E!        \ TA3 interrupt vector  
+TA0CTL=\$340!       \ TA0 control
+TA0CCTL0=\$342!     \ Capture/compare control 0
+TA0CCTL1=\$344!     \ Capture/compare control 1
+TA0CCTL2=\$346!     \ Capture/compare control 2
+TA0R=\$350!         \ TA0 counter register
+TA0CCR0=\$352!      \ Capture/compare register 0
+TA0CCR1=\$354!      \ Capture/compare register 1
+TA0CCR2=\$356!      \ Capture/compare register 2
+TA0EX0=\$360!       \ TA0 expansion register 0
+TA0IV=\$36E!        \ TA0 interrupt vector
+
+TA1CTL=\$380!       \ TA1 control
+TA1CCTL0=\$382!     \ Capture/compare control 0
+TA1CCTL1=\$384!     \ Capture/compare control 1
+TA1CCTL2=\$386!     \ Capture/compare control 2
+TA1R=\$390!         \ TA1 counter register
+TA1CCR0=\$392!      \ Capture/compare register 0
+TA1CCR1=\$394!      \ Capture/compare register 1
+TA1CCR2=\$396!      \ Capture/compare register 2
+TA1EX0=\$3A0!       \ TA1 expansion register 0
+TA1IV=\$3AE!        \ TA1 interrupt vector
+
+TB0CTL=\$3C0!       \ TB0 control
+TB0CCTL0=\$3C2!     \ Capture/compare control 0
+TB0CCTL1=\$3C4!     \ Capture/compare control 1
+TB0CCTL2=\$3C6!     \ Capture/compare control 2
+TB0CCTL3=\$3C8!     \ Capture/compare control 3
+TB0CCTL4=\$3CA!     \ Capture/compare control 4
+TB0CCTL5=\$3CC!     \ Capture/compare control 5
+TB0CCTL6=\$3CE!     \ Capture/compare control 6
+TB0R=\$3D0!         \ TB0 counter register
+TB0CCR0=\$3D2!      \ Capture/compare register 0
+TB0CCR1=\$3D4!      \ Capture/compare register 1
+TB0CCR2=\$3D6!      \ Capture/compare register 2
+TB0CCR3=\$3D8!      \ Capture/compare register 3
+TB0CCR5=\$3DA!      \ Capture/compare register 4
+TB0CCR5=\$3DC!      \ Capture/compare register 5
+TB0CCR6=\$3DE!      \ Capture/compare register 6
+TB0EX0=\$3E0!       \ TB0 expansion register 0
+TB0IV=\$3EE!        \ TB0 interrupt vector
+
+TA2CTL=\$400!       \ TA2 control
+TA2CCTL0=\$402!     \ Capture/compare control 0
+TA2CCTL1=\$404!     \ Capture/compare control 1
+TA2R=\$410!         \ TA2 counter register
+TA2CCR0=\$412!      \ Capture/compare register 0
+TA2CCR1=\$414!      \ Capture/compare register 1
+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
+TA3R=\$450!         \ TA3 counter register
+TA3CCR0=\$452!      \ Capture/compare register 0
+TA3CCR1=\$454!      \ Capture/compare register 1
+TA3EX0=\$460!       \ TA3 expansion register 0
+TA3IV=\$46E!        \ TA3 interrupt vector
 
 !                   \ RTC_B
-RTCCTL0=\$4A0!      \ RTC control 0                     
-RTCCTL1=\$4A1!      \ RTC control 1                                
-RTCCTL2=\$4A2!      \ RTC control 2                              
-RTCCTL3=\$4A3!      \ RTC control 3                       
-RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control                         
-RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control                         
-RTCPS0=\$4AC!       \ RTC prescaler 0                                 
-RTCPS1=\$4AD!       \ RTC prescaler 1                                 
-RTCIV=\$4AE!        \ RTC interrupt vector word                       
-RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,     
-RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,     
-RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,      
-RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW, 
-RTCDAY=\$4B4!       \ RTC days                                        
-RTCMON=\$4B5!       \ RTC month                                       
-RTCYEAR=\$4B6!                                       
-RTCYEARL=\$4B6!     \ RTC year low                                    
-RTCYEARH=\$4B7!     \ RTC year high                                   
-RTCAMIN=\$4B8!      \ RTC alarm minutes                               
-RTCAHOUR=\$4B9!     \ RTC alarm hours                                 
-RTCADOW=\$4BA!      \ RTC alarm day of week                           
-RTCADAY=\$4BB!      \ RTC alarm days                                  
-BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register               
-BCD2BIN=\$4BE!      \ BCD-to-binary conversion register  
+RTCCTL0=\$4A0!      \ RTC control 0
+RTCCTL1=\$4A1!      \ RTC control 1
+RTCCTL2=\$4A2!      \ RTC control 2
+RTCCTL3=\$4A3!      \ RTC control 3
+RTCPS0CTL=\$4A8!    \ RTC prescaler 0 control
+RTCPS1CTL=\$4AA!    \ RTC prescaler 1 control
+RTCPS0=\$4AC!       \ RTC prescaler 0
+RTCPS1=\$4AD!       \ RTC prescaler 1
+RTCIV=\$4AE!        \ RTC interrupt vector word
+RTCSEC=\$4B0!       \ RTC seconds, RTC counter register 1 RTCSEC,
+RTCMIN=\$4B1!       \ RTC minutes, RTC counter register 2 RTCMIN,
+RTCHOUR=\$4B2!      \ RTC hours, RTC counter register 3 RTCHOUR,
+RTCDOW=\$4B3!       \ RTC day of week, RTC counter register 4 RTCDOW,
+RTCDAY=\$4B4!       \ RTC days
+RTCMON=\$4B5!       \ RTC month
+RTCYEAR=\$4B6!
+RTCYEARL=\$4B6!     \ RTC year low
+RTCYEARH=\$4B7!     \ RTC year high
+RTCAMIN=\$4B8!      \ RTC alarm minutes
+RTCAHOUR=\$4B9!     \ RTC alarm hours
+RTCADOW=\$4BA!      \ RTC alarm day of week
+RTCADAY=\$4BB!      \ RTC alarm days
+BIN2BCD=\$4BC!      \ Binary-to-BCD conversion register
+BCD2BIN=\$4BE!      \ BCD-to-binary conversion register
 RTCHOLD=\$40!
 RTCRDY=\$10!
 
@@ -580,178 +607,178 @@ MPY32CTL0=\$4EC!    \ MPY32 control register 0
 
 DMAIFG=8!
 
-DMACTL0=\$500!      \ DMA module control 0                    
-DMACTL1=\$502!      \ DMA module control 1                    
-DMACTL2=\$504!      \ DMA module control 2                    
-DMACTL3=\$506!      \ DMA module control 3                    
-DMACTL4=\$508!      \ DMA module control 4                    
-DMAIV=\$50A!        \ DMA interrupt vector                    
-
-DMA0CTL=\$510!      \ DMA channel 0 control                   
-DMA0SAL=\$512!      \ DMA channel 0 source address low        
-DMA0SAH=\$514!      \ DMA channel 0 source address high       
-DMA0DAL=\$516!      \ DMA channel 0 destination address low   
-DMA0DAH=\$518!      \ DMA channel 0 destination address high  
-DMA0SZ=\$51A!       \ DMA channel 0 transfer size             
-
-DMA1CTL=\$520!      \ DMA channel 1 control                   
-DMA1SAL=\$522!      \ DMA channel 1 source address low        
-DMA1SAH=\$524!      \ DMA channel 1 source address high       
-DMA1DAL=\$526!      \ DMA channel 1 destination address low   
-DMA1DAH=\$528!      \ DMA channel 1 destination address high  
-DMA1SZ=\$52A!       \ DMA channel 1 transfer size             
-
-DMA2CTL=\$530!      \ DMA channel 2 control                   
-DMA2SAL=\$532!      \ DMA channel 2 source address low        
-DMA2SAH=\$534!      \ DMA channel 2 source address high       
-DMA2DAL=\$536!      \ DMA channel 2 destination address low   
-DMA2DAH=\$538!      \ DMA channel 2 destination address high  
-DMA2SZ=\$53A!       \ DMA channel 2 transfer size             
-
-
-MPUCTL0=\$5A0!      \ MPU control 0             
-MPUCTL1=\$5A2!      \ MPU control 1             
-MPUSEGB2=\$5A4!     \ MPU Segmentation Border2 
-MPUSEGB1=\$5A6!     \ MPU Segmentation Border1 
-MPUSAM=\$5A8!       \ MPU access management     
-MPUIPC0=\$5AA!      \ MPU IP control 0                      
-MPUIPSEGB2=\$5AC!   \ MPU IP Encapsulation Segment Border 2 
-MPUIPSEGB1=\$5AE!   \ MPU IP Encapsulation Segment Border 1 
-
-UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0        
-UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1        
-UCA0BRW=\$5C6!         
-UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0           
-UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1           
-UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control    
-UCA0STAT=\$5CA!     \ eUSCI_A status                
-UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer        
-UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer       
-UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control           
-UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control 
-UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control  
-UCA0IE=\$5DA!       \ eUSCI_A interrupt enable      
-UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags       
-UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word 
-
-UCA1CTLW0=\$5E0!    \ eUSCI_A control word 0        
-UCA1CTLW1=\$5E2!    \ eUSCI_A control word 1        
-UCA1BRW=\$5E6!         
-UCA1BR0=\$5E6!      \ eUSCI_A baud rate 0           
-UCA1BR1=\$5E7!      \ eUSCI_A baud rate 1           
-UCA1MCTLW=\$5E8!    \ eUSCI_A modulation control    
-UCA1STAT=\$5EA!     \ eUSCI_A status                
-UCA1RXBUF=\$5EC!    \ eUSCI_A receive buffer        
-UCA1TXBUF=\$5EE!    \ eUSCI_A transmit buffer       
-UCA1ABCTL=\$5F0!    \ eUSCI_A LIN control           
-UCA1IRTCTL=\$5F2!   \ eUSCI_A IrDA transmit control 
-UCA1IRRCTL=\$5F3!   \ eUSCI_A IrDA receive control  
-UCA1IE=\$5FA!       \ eUSCI_A interrupt enable      
-UCA1IFG=\$5FC!      \ eUSCI_A interrupt flags       
-UCA1IV=\$5FE!       \ eUSCI_A interrupt vector word 
-
-UCB0CTLW0=\$640!    \ eUSCI_B control word 0          
-UCB0CTLW1=\$642!    \ eUSCI_B control word 1 
-UCB0BRW=\$646!         
-UCB0BR0=\$646!      \ eUSCI_B bit rate 0              
-UCB0BR1=\$647!      \ eUSCI_B bit rate 1              
-UCB0STATW=\$648!    \ eUSCI_B status word 
-UCBCNT0=\$649!      \ eUSCI_B hardware count           
-UCB0TBCNT=\$64A!    \ eUSCI_B byte counter threshold  
-UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer          
-UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer         
-UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0       
-UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1       
-UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2       
-UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3       
-UCB0ADDRX=\$65C!    \ eUSCI_B received address        
-UCB0ADDMASK=\$65E!  \ eUSCI_B address mask            
-UCB0I2CSA=\$660!    \ eUSCI I2C slave address         
-UCB0IE=\$66A!       \ eUSCI interrupt enable          
-UCB0IFG=\$66C!      \ eUSCI interrupt flags           
-UCB0IV=\$66E!       \ eUSCI interrupt vector word     
+DMACTL0=\$500!      \ DMA module control 0
+DMACTL1=\$502!      \ DMA module control 1
+DMACTL2=\$504!      \ DMA module control 2
+DMACTL3=\$506!      \ DMA module control 3
+DMACTL4=\$508!      \ DMA module control 4
+DMAIV=\$50A!        \ DMA interrupt vector
+
+DMA0CTL=\$510!      \ DMA channel 0 control
+DMA0SAL=\$512!      \ DMA channel 0 source address low
+DMA0SAH=\$514!      \ DMA channel 0 source address high
+DMA0DAL=\$516!      \ DMA channel 0 destination address low
+DMA0DAH=\$518!      \ DMA channel 0 destination address high
+DMA0SZ=\$51A!       \ DMA channel 0 transfer size
+
+DMA1CTL=\$520!      \ DMA channel 1 control
+DMA1SAL=\$522!      \ DMA channel 1 source address low
+DMA1SAH=\$524!      \ DMA channel 1 source address high
+DMA1DAL=\$526!      \ DMA channel 1 destination address low
+DMA1DAH=\$528!      \ DMA channel 1 destination address high
+DMA1SZ=\$52A!       \ DMA channel 1 transfer size
+
+DMA2CTL=\$530!      \ DMA channel 2 control
+DMA2SAL=\$532!      \ DMA channel 2 source address low
+DMA2SAH=\$534!      \ DMA channel 2 source address high
+DMA2DAL=\$536!      \ DMA channel 2 destination address low
+DMA2DAH=\$538!      \ DMA channel 2 destination address high
+DMA2SZ=\$53A!       \ DMA channel 2 transfer size
+
+
+MPUCTL0=\$5A0!      \ MPU control 0
+MPUCTL1=\$5A2!      \ MPU control 1
+MPUSEGB2=\$5A4!     \ MPU Segmentation Border2
+MPUSEGB1=\$5A6!     \ MPU Segmentation Border1
+MPUSAM=\$5A8!       \ MPU access management
+MPUIPC0=\$5AA!      \ MPU IP control 0
+MPUIPSEGB2=\$5AC!   \ MPU IP Encapsulation Segment Border 2
+MPUIPSEGB1=\$5AE!   \ MPU IP Encapsulation Segment Border 1
+
+UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0
+UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1
+UCA0BRW=\$5C6!
+UCA0BR0=\$5C6!      \ eUSCI_A baud rate 0
+UCA0BR1=\$5C7!      \ eUSCI_A baud rate 1
+UCA0MCTLW=\$5C8!    \ eUSCI_A modulation control
+UCA0STAT=\$5CA!     \ eUSCI_A status
+UCA0RXBUF=\$5CC!    \ eUSCI_A receive buffer
+UCA0TXBUF=\$5CE!    \ eUSCI_A transmit buffer
+UCA0ABCTL=\$5D0!    \ eUSCI_A LIN control
+UCA0IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control
+UCA0IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control
+UCA0IE=\$5DA!       \ eUSCI_A interrupt enable
+UCA0IFG=\$5DC!      \ eUSCI_A interrupt flags
+UCA0IV=\$5DE!       \ eUSCI_A interrupt vector word
+
+UCA1CTLW0=\$5E0!    \ eUSCI_A control word 0
+UCA1CTLW1=\$5E2!    \ eUSCI_A control word 1
+UCA1BRW=\$5E6!
+UCA1BR0=\$5E6!      \ eUSCI_A baud rate 0
+UCA1BR1=\$5E7!      \ eUSCI_A baud rate 1
+UCA1MCTLW=\$5E8!    \ eUSCI_A modulation control
+UCA1STAT=\$5EA!     \ eUSCI_A status
+UCA1RXBUF=\$5EC!    \ eUSCI_A receive buffer
+UCA1TXBUF=\$5EE!    \ eUSCI_A transmit buffer
+UCA1ABCTL=\$5F0!    \ eUSCI_A LIN control
+UCA1IRTCTL=\$5F2!   \ eUSCI_A IrDA transmit control
+UCA1IRRCTL=\$5F3!   \ eUSCI_A IrDA receive control
+UCA1IE=\$5FA!       \ eUSCI_A interrupt enable
+UCA1IFG=\$5FC!      \ eUSCI_A interrupt flags
+UCA1IV=\$5FE!       \ eUSCI_A interrupt vector word
+
+UCB0CTLW0=\$640!    \ eUSCI_B control word 0
+UCB0CTLW1=\$642!    \ eUSCI_B control word 1
+UCB0BRW=\$646!
+UCB0BR0=\$646!      \ eUSCI_B bit rate 0
+UCB0BR1=\$647!      \ eUSCI_B bit rate 1
+UCB0STATW=\$648!    \ eUSCI_B status word
+UCBCNT0=\$649!      \ eUSCI_B hardware count
+UCB0TBCNT=\$64A!    \ eUSCI_B byte counter threshold
+UCB0RXBUF=\$64C!    \ eUSCI_B receive buffer
+UCB0TXBUF=\$64E!    \ eUSCI_B transmit buffer
+UCB0I2COA0=\$654!   \ eUSCI_B I2C own address 0
+UCB0I2COA1=\$656!   \ eUSCI_B I2C own address 1
+UCB0I2COA2=\$658!   \ eUSCI_B I2C own address 2
+UCB0I2COA3=\$65A!   \ eUSCI_B I2C own address 3
+UCB0ADDRX=\$65C!    \ eUSCI_B received address
+UCB0ADDMASK=\$65E!  \ eUSCI_B address mask
+UCB0I2CSA=\$660!    \ eUSCI I2C slave address
+UCB0IE=\$66A!       \ eUSCI interrupt enable
+UCB0IFG=\$66C!      \ eUSCI interrupt flags
+UCB0IV=\$66E!       \ eUSCI interrupt vector word
 
 UCTXACK=\$20!
 UCTR=\$10!
 
 
-ADC12CTL0=\$800!    \ ADC12_B Control 0                                 
-ADC12CTL1=\$802!    \ ADC12_B Control 1                                 
-ADC12CTL2=\$804!    \ ADC12_B Control 2                                 
-ADC12CTL3=\$806!    \ ADC12_B Control 3                                 
-ADC12LO=\$808!      \ ADC12_B Window Comparator Low Threshold Register  
-ADC12HI=\$80A!      \ ADC12_B Window Comparator High Threshold Register 
-ADC12IFGR0=\$80C!   \ ADC12_B Interrupt Flag Register 0                 
-ADC12IFGR1=\$80E!   \ ADC12_B Interrupt Flag Register 1                 
-ADC12IFGR2=\$810!   \ ADC12_B Interrupt Flag Register 2                 
-ADC12IER0=\$812!    \ ADC12_B Interrupt Enable Register 0               
-ADC12IER1=\$814!    \ ADC12_B Interrupt Enable Register 1               
-ADC12IER2=\$816!    \ ADC12_B Interrupt Enable Register 2               
-ADC12IV=\$818!      \ ADC12_B Interrupt Vector                          
-ADC12MCTL0=\$820!   \ ADC12_B Memory Control 0                          
-ADC12MCTL1=\$822!   \ ADC12_B Memory Control 1                          
-ADC12MCTL2=\$824!   \ ADC12_B Memory Control 2                          
-ADC12MCTL3=\$826!   \ ADC12_B Memory Control 3                          
-ADC12MCTL4=\$828!   \ ADC12_B Memory Control 4                          
-ADC12MCTL5=\$82A!   \ ADC12_B Memory Control 5                          
-ADC12MCTL6=\$82C!   \ ADC12_B Memory Control 6                          
-ADC12MCTL7=\$82E!   \ ADC12_B Memory Control 7                          
-ADC12MCTL8=\$830!   \ ADC12_B Memory Control 8                          
-ADC12MCTL9=\$832!   \ ADC12_B Memory Control 9                          
-ADC12MCTL10=\$834!  \ ADC12_B Memory Control 10                         
-ADC12MCTL11=\$836!  \ ADC12_B Memory Control 11                         
-ADC12MCTL12=\$838!  \ ADC12_B Memory Control 12                         
-ADC12MCTL13=\$83A!  \ ADC12_B Memory Control 13 
-ADC12MCTL14=\$83C!  \ ADC12_B Memory Control 14 
-ADC12MCTL15=\$83E!  \ ADC12_B Memory Control 15 
-ADC12MCTL16=\$840!  \ ADC12_B Memory Control 16 
-ADC12MCTL17=\$842!  \ ADC12_B Memory Control 17 
-ADC12MCTL18=\$844!  \ ADC12_B Memory Control 18 
-ADC12MCTL19=\$846!  \ ADC12_B Memory Control 19 
-ADC12MCTL20=\$848!  \ ADC12_B Memory Control 20 
-ADC12MCTL21=\$84A!  \ ADC12_B Memory Control 21 
-ADC12MCTL22=\$84C!  \ ADC12_B Memory Control 22 
-ADC12MCTL23=\$84E!  \ ADC12_B Memory Control 23 
-ADC12MCTL24=\$850!  \ ADC12_B Memory Control 24 
-ADC12MCTL25=\$852!  \ ADC12_B Memory Control 25 
-ADC12MCTL26=\$854!  \ ADC12_B Memory Control 26 
-ADC12MCTL27=\$856!  \ ADC12_B Memory Control 27 
-ADC12MCTL28=\$858!  \ ADC12_B Memory Control 28 
-ADC12MCTL29=\$85A!  \ ADC12_B Memory Control 29 
-ADC12MCTL30=\$85C!  \ ADC12_B Memory Control 30 
-ADC12MCTL31=\$85E!  \ ADC12_B Memory Control 31 
-ADC12MEM0=\$860!    \ ADC12_B Memory 0 
-ADC12MEM1=\$862!    \ ADC12_B Memory 1 
-ADC12MEM2=\$864!    \ ADC12_B Memory 2 
-ADC12MEM3=\$866!    \ ADC12_B Memory 3 
-ADC12MEM4=\$868!    \ ADC12_B Memory 4 
-ADC12MEM5=\$86A!    \ ADC12_B Memory 5 
-ADC12MEM6=\$86C!    \ ADC12_B Memory 6 
-ADC12MEM7=\$86E!    \ ADC12_B Memory 7 
-ADC12MEM8=\$870!    \ ADC12_B Memory 8 
-ADC12MEM9=\$872!    \ ADC12_B Memory 9 
-ADC12MEM10=\$874!   \ ADC12_B Memory 10 
-ADC12MEM11=\$876!   \ ADC12_B Memory 11 
-ADC12MEM12=\$878!   \ ADC12_B Memory 12 
-ADC12MEM13=\$87A!   \ ADC12_B Memory 13 
-ADC12MEM14=\$87C!   \ ADC12_B Memory 14 
-ADC12MEM15=\$87E!   \ ADC12_B Memory 15 
-ADC12MEM16=\$880!   \ ADC12_B Memory 16 
-ADC12MEM17=\$882!   \ ADC12_B Memory 17 
-ADC12MEM18=\$884!   \ ADC12_B Memory 18 
-ADC12MEM19=\$886!   \ ADC12_B Memory 19 
-ADC12MEM20=\$888!   \ ADC12_B Memory 20 
-ADC12MEM21=\$88A!   \ ADC12_B Memory 21 
-ADC12MEM22=\$88C!   \ ADC12_B Memory 22 
-ADC12MEM23=\$88E!   \ ADC12_B Memory 23 
-ADC12MEM24=\$890!   \ ADC12_B Memory 24 
-ADC12MEM25=\$892!   \ ADC12_B Memory 25 
-ADC12MEM26=\$894!   \ ADC12_B Memory 26 
-ADC12MEM27=\$896!   \ ADC12_B Memory 27 
-ADC12MEM28=\$898!   \ ADC12_B Memory 28 
-ADC12MEM29=\$89A!   \ ADC12_B Memory 29 
-ADC12MEM30=\$89C!   \ ADC12_B Memory 30 
-ADC12MEM31=\$89E!   \ ADC12_B Memory 31 
+ADC12CTL0=\$800!    \ ADC12_B Control 0
+ADC12CTL1=\$802!    \ ADC12_B Control 1
+ADC12CTL2=\$804!    \ ADC12_B Control 2
+ADC12CTL3=\$806!    \ ADC12_B Control 3
+ADC12LO=\$808!      \ ADC12_B Window Comparator Low Threshold Register
+ADC12HI=\$80A!      \ ADC12_B Window Comparator High Threshold Register
+ADC12IFGR0=\$80C!   \ ADC12_B Interrupt Flag Register 0
+ADC12IFGR1=\$80E!   \ ADC12_B Interrupt Flag Register 1
+ADC12IFGR2=\$810!   \ ADC12_B Interrupt Flag Register 2
+ADC12IER0=\$812!    \ ADC12_B Interrupt Enable Register 0
+ADC12IER1=\$814!    \ ADC12_B Interrupt Enable Register 1
+ADC12IER2=\$816!    \ ADC12_B Interrupt Enable Register 2
+ADC12IV=\$818!      \ ADC12_B Interrupt Vector
+ADC12MCTL0=\$820!   \ ADC12_B Memory Control 0
+ADC12MCTL1=\$822!   \ ADC12_B Memory Control 1
+ADC12MCTL2=\$824!   \ ADC12_B Memory Control 2
+ADC12MCTL3=\$826!   \ ADC12_B Memory Control 3
+ADC12MCTL4=\$828!   \ ADC12_B Memory Control 4
+ADC12MCTL5=\$82A!   \ ADC12_B Memory Control 5
+ADC12MCTL6=\$82C!   \ ADC12_B Memory Control 6
+ADC12MCTL7=\$82E!   \ ADC12_B Memory Control 7
+ADC12MCTL8=\$830!   \ ADC12_B Memory Control 8
+ADC12MCTL9=\$832!   \ ADC12_B Memory Control 9
+ADC12MCTL10=\$834!  \ ADC12_B Memory Control 10
+ADC12MCTL11=\$836!  \ ADC12_B Memory Control 11
+ADC12MCTL12=\$838!  \ ADC12_B Memory Control 12
+ADC12MCTL13=\$83A!  \ ADC12_B Memory Control 13
+ADC12MCTL14=\$83C!  \ ADC12_B Memory Control 14
+ADC12MCTL15=\$83E!  \ ADC12_B Memory Control 15
+ADC12MCTL16=\$840!  \ ADC12_B Memory Control 16
+ADC12MCTL17=\$842!  \ ADC12_B Memory Control 17
+ADC12MCTL18=\$844!  \ ADC12_B Memory Control 18
+ADC12MCTL19=\$846!  \ ADC12_B Memory Control 19
+ADC12MCTL20=\$848!  \ ADC12_B Memory Control 20
+ADC12MCTL21=\$84A!  \ ADC12_B Memory Control 21
+ADC12MCTL22=\$84C!  \ ADC12_B Memory Control 22
+ADC12MCTL23=\$84E!  \ ADC12_B Memory Control 23
+ADC12MCTL24=\$850!  \ ADC12_B Memory Control 24
+ADC12MCTL25=\$852!  \ ADC12_B Memory Control 25
+ADC12MCTL26=\$854!  \ ADC12_B Memory Control 26
+ADC12MCTL27=\$856!  \ ADC12_B Memory Control 27
+ADC12MCTL28=\$858!  \ ADC12_B Memory Control 28
+ADC12MCTL29=\$85A!  \ ADC12_B Memory Control 29
+ADC12MCTL30=\$85C!  \ ADC12_B Memory Control 30
+ADC12MCTL31=\$85E!  \ ADC12_B Memory Control 31
+ADC12MEM0=\$860!    \ ADC12_B Memory 0
+ADC12MEM1=\$862!    \ ADC12_B Memory 1
+ADC12MEM2=\$864!    \ ADC12_B Memory 2
+ADC12MEM3=\$866!    \ ADC12_B Memory 3
+ADC12MEM4=\$868!    \ ADC12_B Memory 4
+ADC12MEM5=\$86A!    \ ADC12_B Memory 5
+ADC12MEM6=\$86C!    \ ADC12_B Memory 6
+ADC12MEM7=\$86E!    \ ADC12_B Memory 7
+ADC12MEM8=\$870!    \ ADC12_B Memory 8
+ADC12MEM9=\$872!    \ ADC12_B Memory 9
+ADC12MEM10=\$874!   \ ADC12_B Memory 10
+ADC12MEM11=\$876!   \ ADC12_B Memory 11
+ADC12MEM12=\$878!   \ ADC12_B Memory 12
+ADC12MEM13=\$87A!   \ ADC12_B Memory 13
+ADC12MEM14=\$87C!   \ ADC12_B Memory 14
+ADC12MEM15=\$87E!   \ ADC12_B Memory 15
+ADC12MEM16=\$880!   \ ADC12_B Memory 16
+ADC12MEM17=\$882!   \ ADC12_B Memory 17
+ADC12MEM18=\$884!   \ ADC12_B Memory 18
+ADC12MEM19=\$886!   \ ADC12_B Memory 19
+ADC12MEM20=\$888!   \ ADC12_B Memory 20
+ADC12MEM21=\$88A!   \ ADC12_B Memory 21
+ADC12MEM22=\$88C!   \ ADC12_B Memory 22
+ADC12MEM23=\$88E!   \ ADC12_B Memory 23
+ADC12MEM24=\$890!   \ ADC12_B Memory 24
+ADC12MEM25=\$892!   \ ADC12_B Memory 25
+ADC12MEM26=\$894!   \ ADC12_B Memory 26
+ADC12MEM27=\$896!   \ ADC12_B Memory 27
+ADC12MEM28=\$898!   \ ADC12_B Memory 28
+ADC12MEM29=\$89A!   \ ADC12_B Memory 29
+ADC12MEM30=\$89C!   \ ADC12_B Memory 30
+ADC12MEM31=\$89E!   \ ADC12_B Memory 31
 
 ADCON=\$10!
 ADCSTART=\$03!
@@ -759,19 +786,19 @@ ADCSTART=\$03!
 CDIFG=1!
 CDIIFG=2!
 
-CDCTL0=\$8C0!       \ Comparator_E control register 0     
-CDCTL1=\$8C2!       \ Comparator_E control register 1     
-CDCTL2=\$8C4!       \ Comparator_E control register 2     
-CDCTL3=\$8C6!       \ Comparator_E control register 3     
-CDINT=\$8CC!        \ Comparator_E interrupt register     
-CDIV=\$8CE!         \ Comparator_E interrupt vector word  
-
-
-AESACTL0=\$9C0!     \ AES accelerator control register 0                  
-AESASTAT=\$9C4!     \ AES accelerator status register                     
-AESAKEY=\$9C6!      \ AES accelerator key register                        
-AESADIN=\$9C8!      \ AES accelerator data in register                    
-AESADOUT=\$9CA!     \ AES accelerator data out register                   
-AESAXDIN=\$9CC!     \ AES accelerator XORed data in register              
-AESAXIN =\$9CE!     \ AES accelerator XORed data in register (no trigger) 
+CDCTL0=\$8C0!       \ Comparator_E control register 0
+CDCTL1=\$8C2!       \ Comparator_E control register 1
+CDCTL2=\$8C4!       \ Comparator_E control register 2
+CDCTL3=\$8C6!       \ Comparator_E control register 3
+CDINT=\$8CC!        \ Comparator_E interrupt register
+CDIV=\$8CE!         \ Comparator_E interrupt vector word
+
+
+AESACTL0=\$9C0!     \ AES accelerator control register 0
+AESASTAT=\$9C4!     \ AES accelerator status register
+AESAKEY=\$9C6!      \ AES accelerator key register
+AESADIN=\$9C8!      \ AES accelerator data in register
+AESADOUT=\$9CA!     \ AES accelerator data out register
+AESAXDIN=\$9CC!     \ AES accelerator XORed data in register
+AESAXIN =\$9CE!     \ AES accelerator XORed data in register (no trigger)
 
index d718445..279ec37 100644 (file)
@@ -59,7 +59,7 @@ JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG1=0xAAAA, length of password strin
 BSL_SIG1        .equ 0FF84h      ;
 BSL_SIG2        .equ 0FF86h      ;
 JTAG_PASSWORD   .equ 0FF86h      ; up to 0FFC5h : 256 bits
-I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address 
+I2CSLA0         .equ 0FFA2h      ; UCBxI2COA0 default value address
 I2CSLA1         .equ 0FFA4h      ; UCBxI2COA1 default value address
 I2CSLA2         .equ 0FFA6h      ; UCBxI2COA2 default value address
 I2CSLA3         .equ 0FFA8h      ; UCBxI2COA3 default value address
@@ -233,7 +233,7 @@ P1SELC      .equ PA_SFR + 16h    ; Port 1 SELection Complement
 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
-P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word 
+P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word
 
 P2IN        .equ PA_SFR + 01h    ; Port 2 INput
 P2OUT       .equ PA_SFR + 03h    ; Port 2 OUTput
@@ -245,7 +245,7 @@ P2SELC      .equ PA_SFR + 17h    ; Port 2 SELection Complement
 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 
+P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT3/4
@@ -272,7 +272,7 @@ 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 
+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
@@ -284,7 +284,7 @@ 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 
+P4IV        .equ PB_SFR + 1Eh    ; Port 4 Interrupt Vector word
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : PORT5/6
@@ -364,7 +364,7 @@ RTCPS1CTL     .set RTC_C_SFR + 0Ah
 RTCPS         .set RTC_C_SFR + 0Ch ; = RT1PS:RT0PS
 RTCIV         .set RTC_C_SFR + 0Eh
 RTCSEC        .set RTC_C_SFR + 10h
-RTCCNT1       .set RTC_C_SFR + 10h     
+RTCCNT1       .set RTC_C_SFR + 10h
 RTCMIN        .set RTC_C_SFR + 11h
 RTCCNT2       .set RTC_C_SFR + 11h
 RTCHOUR       .set RTC_C_SFR + 12h
@@ -407,14 +407,14 @@ RES3      .equ MPY_SFR + 2Ah    ; 32x32-bit result 3 */
 MPY32CTL0 .equ MPY_SFR + 2Ch    ; MPY32 control register 0
 
 
-MPUCTL0     .equ MPU_SFR + 00h  ; MPU control 0             
-MPUCTL1     .equ MPU_SFR + 02h  ; MPU control 1             
-MPUSEGB2    .equ MPU_SFR + 04h  ; MPU Segmentation Border 2 
-MPUSEGB1    .equ MPU_SFR + 06h  ; MPU Segmentation Border 1 
-MPUSAM      .equ MPU_SFR + 08h  ; MPU access management     
-MPUIPC0     .equ MPU_SFR + 0Ah  ; MPU IP control 0                      
-MPUIPSEGB2  .equ MPU_SFR + 0Ch  ; MPU IP Encapsulation Segment Border 2 
-MPUIPSEGB1  .equ MPU_SFR + 0Eh  ; MPU IP Encapsulation Segment Border 1 
+MPUCTL0     .equ MPU_SFR + 00h  ; MPU control 0
+MPUCTL1     .equ MPU_SFR + 02h  ; MPU control 1
+MPUSEGB2    .equ MPU_SFR + 04h  ; MPU Segmentation Border 2
+MPUSEGB1    .equ MPU_SFR + 06h  ; MPU Segmentation Border 1
+MPUSAM      .equ MPU_SFR + 08h  ; MPU access management
+MPUIPC0     .equ MPU_SFR + 0Ah  ; MPU IP control 0
+MPUIPSEGB2  .equ MPU_SFR + 0Ch  ; MPU IP Encapsulation Segment Border 2
+MPUIPSEGB1  .equ MPU_SFR + 0Eh  ; MPU IP Encapsulation Segment Border 1
 
 ; ----------------------------------------------------------------------
 ; eUSCI_A0
@@ -497,7 +497,7 @@ TERM_STATW      .equ eUSCI_B0_SFR + 08h     ; USCI_B0 Status Word
 TERM_RXBUF      .equ eUSCI_B0_SFR + 0Ch     ; USCI_B0 Receive Buffer 8
 TERM_TXBUF      .equ eUSCI_B0_SFR + 0Eh     ; USCI_B0 Transmit Buffer 8
 TERM_I2COA0     .equ eUSCI_B0_SFR + 14h     ; USCI_B0 I2C Own Address 0
-TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register 
+TERM_ADDRX      .equ eUSCI_B0_SFR + 1Ch     ; USCI_B0  Received Address Register
 TERM_I2CSA      .equ eUSCI_B0_SFR + 20h     ; USCI_B0 I2C Slave Address
 TERM_IE         .equ eUSCI_B0_SFR + 2Ah     ; USCI_B0 Interrupt Enable
 TERM_IFG        .equ eUSCI_B0_SFR + 2Ch     ; USCI_B0 Interrupt Flags Register
index f3e1a10..79e7d3d 100644 (file)
@@ -44,40 +44,65 @@ TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
 I2CSLAVEADR1=\$1804!    
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP   
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT   
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT  
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
@@ -99,52 +124,47 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_LEN=\#84! bytes
 HOLD_SIZE=\#34! bytes
 
 ! ----------------------------------------------
 ! FastForth RAM memory map (>= 1k):
 ! ----------------------------------------------
-LEAVEPTR=\$1C00!    \ Leave-stack pointer, init by QUIT
-LSATCK=\$1C00!      \ leave stack,      grow up
-PSTACK=\$1C80!      \ parameter stack,  grow down
-RSTACK=\$1CE0!      \ Return stack,     grow down
-
-PAD_I2CADR=\$1CE0!  \ RX I2C address
-PAD_I2CCNT=\$1CE2!  \ count max
-PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
-
-TIB_I2CADR=\$1D38!  \ TX I2C address
-TIB_I2CCNT=\$1D3A!  \ count of bytes
-TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
-
-HOLDS_ORG=\$1D90!   \ base address for HOLDS
-HOLD_BASE=\$1DB2!   \ BASE HOLD area, grow down
-
-! ----------------------
-! NOT SAVED VARIABLES
-! ----------------------
-
+LEAVEPTR=\$1C00!        Leave-stack pointer, init by QUIT
+LSATCK=\$1C00!          leave stack,      grow up
+PSTACK=\$1C80!          parameter stack,  grow down
+RSTACK=\$1CE0!          Return stack,     grow down
+!
+PAD_I2CADR=\$1CE0!      RX I2C address
+PAD_I2CCNT=\$1CE2!      count max
+PAD_ORG=\$1CE4!         user scratch pad buffer, 84 bytes, grow up
+!
+TIB_I2CADR=\$1D38!      TX I2C address 
+TIB_I2CCNT=\$1D3A!      count of bytes
+TIB_ORG=\$1D3C!         Terminal input buffer, 84 bytes, grow up
+!
+HOLDS_ORG=\$1D90!       base address for HOLDS
+HOLD_BASE=\$1DB2!       BASE HOLD area, grow down
+!
 HP=\$1DB2!              HOLD ptr
-CAPS=\$1DB4!            CAPS ON/OFF flag, must be set to -1 before first reset !
-LAST_NFA=\$1DB6!
-LAST_THREAD=\$1DB8!
-LAST_CFA=\$1DBA!
-LAST_PSP=\$1DBC!
-
-STATEADR=\$1DBE!        Interpreter state
-
-SOURCE_LEN=\$1DC0!      len of input stream
-SOURCE_ORG=\$1DC2!      adr of input stream
-TOIN=\$1DC4!            >IN
-DP=\$1DC6!              dictionary ptr
-
-LASTVOC=\$1DC8!         keep VOC-LINK
-CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
-CURRENT=\$1DDA!         CURRENT dictionnary ptr
-
-BASEADR=\$1DDC!           numeric base, must be defined before first reset !
-LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
+LAST_NFA=\$1DB4!
+LAST_THREAD=\$1DB6!
+LAST_CFA=\$1DB8!
+LAST_PSP=\$1DBA!
+!
+STATEADR=\$1DBC!        Interpreter state
+BASEADR=\$1DBE!         base
+CAPS=\$1DC0!            CAPS ON/OFF
+!
+SOURCE_LEN=\$1DC2!      len of input stream
+SOURCE_ORG=\$1DC4!      adr of input stream
+TOIN=\$1DC6!            >IN
+DP=\$1DC8!              dictionary ptr
+!
+LASTVOC=\$1DCA!         keep VOC-LINK
+CURRENT=\$1DCC!         CURRENT dictionnary ptr
+CONTEXT=\$1DCE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
 !1DE0! 28 RAM bytes free 
 ! ---------------------------------------
@@ -267,47 +287,55 @@ MAIN_LEN=\$24000!       127 k FRAM
 
 SLEEP=\$4400!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$440A!                 CODE compiled by LITERAL
-XSQUOTE=\$4414!             CODE compiled by S" and S_
-HEREXEC=\$4428!             CODE HERE and BEGIN execute address
-QFBRAN=\$4434!              CODE compiled by IF UNTIL
-BRAN=\$443A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$443C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$443E!                 CODE compiled by DO
-XPLOOP=\$444E!              CODE compiled by +LOOP
-XLOOP=\$4460!               CODE compiled by LOOP
-MUSMOD=\$4466!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$4478!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$4480!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$44AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$44AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$44BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$44CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$44D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$44E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$44EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$441E!             CODE compiled by S" and S_
+HEREXEC=\$4432!             CODE HERE and BEGIN execute address
+MUSMOD=\$443E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$4450!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$4458!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$4482!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$4484!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$4494!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$44A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$44AC!              CODE compiled by IF UNTIL
+BRAN=\$44B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$44B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$44B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$44C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$44F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$452A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$4536!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$44D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$4508!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$4512!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$4594!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$459C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$45C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$45C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$45B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$458E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$45BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$45BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$4554!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$457E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$4584!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$4586!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$4544!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$4546!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$4556!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$4556!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$4558!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$4580!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR6989
 ! ----------------------------------------------
 MAIN_LEN=\$1FC00!       127 k FRAM
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
index ac96d1b..eed89bc 100644 (file)
@@ -38,7 +38,7 @@ INFO_LEN=\$0200!
 ! You can check the addresses below by comparing their values in DTCforthMSP430FRxxxx.lst
 ! those addresses are usable with the symbolic assembler
 ! ----------------------------------------------
-! FastForth INFO, system addresses (in EPROM)
+! FastForth INFO addresses
 ! ----------------------------------------------
 FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
@@ -46,45 +46,71 @@ TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
 I2CSLAVEADR1=\$1804!    
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X         see WIPE
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-!                       
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP   
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT   
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT  
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+!
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
-TLV_ORG=\$1A00!      ; Device Descriptor Info (Tag-Lenght-Value)
-TLV_LEN=\$0100!      ;
+TLV_ORG=\$1A00!         Device Descriptor Info (Tag-Lenght-Value)
+TLV_LEN=\$0100!       
 DEVICEID=\$1A04!
 
 ! ============================================
@@ -102,52 +128,47 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_LEN=\#84! bytes
 HOLD_SIZE=\#34! bytes
 
 ! ----------------------------------------------
 ! FastForth RAM memory map (>= 1k):
 ! ----------------------------------------------
-LEAVEPTR=\$1C00!    \ Leave-stack pointer, init by QUIT
-LSATCK=\$1C00!      \ leave stack,      grow up
-PSTACK=\$1C80!      \ parameter stack,  grow down
-RSTACK=\$1CE0!      \ Return stack,     grow down
-
-PAD_I2CADR=\$1CE0!  \ RX I2C address
-PAD_I2CCNT=\$1CE2!  \ count max
-PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
-
-TIB_I2CADR=\$1D38!  \ TX I2C address 
-TIB_I2CCNT=\$1D3A!  \ count of bytes
-TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
-
-HOLDS_ORG=\$1D90!   \ base address for HOLDS
-HOLD_BASE=\$1DB2!   \ BASE HOLD area, grow down
-
-! ----------------------
-! NOT SAVED VARIABLES
-! ----------------------
-
-HP=\$1DB2!          \ HOLD ptr
-CAPS=\$1DB4!        \ CAPS ON/OFF flag, must be set to -1 before first reset !
-LAST_NFA=\$1DB6!
-LAST_THREAD=\$1DB8!
-LAST_CFA=\$1DBA!
-LAST_PSP=\$1DBC!
-
-STATEADR=\$1DBE!       \ Interpreter state
-
-SOURCE_LEN=\$1DC0!  \ len of input stream
-SOURCE_ORG=\$1DC2!  \ adr of input stream
-TOIN=\$1DC4!        \ >IN
-DP=\$1DC6!          \ dictionary ptr
-
-LASTVOC=\$1DC8!     \ keep VOC-LINK
-CONTEXT=\$1DCA!     \ CONTEXT dictionnary space (8 CELLS)
-CURRENT=\$1DDA!     \ CURRENT dictionnary ptr
-
-BASEADR=\$1DDC!        \ numeric base, must be defined before first reset !
-LINE=\$1DDE!        \ line in interpretation, activated with NOECHO, desactivated with ECHO
+LEAVEPTR=\$1C00!        Leave-stack pointer, init by QUIT
+LSATCK=\$1C00!          leave stack,      grow up
+PSTACK=\$1C80!          parameter stack,  grow down
+RSTACK=\$1CE0!          Return stack,     grow down
+!
+PAD_I2CADR=\$1CE0!      RX I2C address
+PAD_I2CCNT=\$1CE2!      count max
+PAD_ORG=\$1CE4!         user scratch pad buffer, 84 bytes, grow up
+!
+TIB_I2CADR=\$1D38!      TX I2C address 
+TIB_I2CCNT=\$1D3A!      count of bytes
+TIB_ORG=\$1D3C!         Terminal input buffer, 84 bytes, grow up
+!
+HOLDS_ORG=\$1D90!       base address for HOLDS
+HOLD_BASE=\$1DB2!       BASE HOLD area, grow down
+!
+HP=\$1DB2!              HOLD ptr
+LAST_NFA=\$1DB4!
+LAST_THREAD=\$1DB6!
+LAST_CFA=\$1DB8!
+LAST_PSP=\$1DBA!
+!
+STATEADR=\$1DBC!        Interpreter state
+BASEADR=\$1DBE!         base
+CAPS=\$1DC0!            CAPS ON/OFF
+!
+SOURCE_LEN=\$1DC2!      len of input stream
+SOURCE_ORG=\$1DC4!      adr of input stream
+TOIN=\$1DC6!            >IN
+DP=\$1DC8!              dictionary ptr
+!
+LASTVOC=\$1DCA!         keep VOC-LINK
+CURRENT=\$1DCC!         CURRENT dictionnary ptr
+CONTEXT=\$1DCE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
 !1DE0! 28 RAM bytes free 
 ! ---------------------------------------
@@ -199,6 +220,8 @@ ClusterL=\$2022!     16 bits wide (FAT16)
 ClusterH=\$2024!     16 bits wide (FAT16)
 NewClusterL=\$2026!  16 bits wide (FAT16) 
 NewClusterH=\$2028!  16 bits wide (FAT16) 
+LastFATsector=\$2026!  16 bits wide (FAT16) 
+LastFAToffset=\$2028!  16 bits wide (FAT16) 
 CurFATsector=\$202A! 
 
 ! ---------------------------------------
@@ -273,49 +296,56 @@ WriteSectorWX=WRITE_SECT+8!
 MAIN_ORG=\$4000!        Code space start
 MAIN_LEN=\$40000!       240 kb FRAM
 ! ----------------------------------------------
-
 SLEEP=\$4000!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$400A!                 CODE compiled by LITERAL
-XSQUOTE=\$4014!             CODE compiled by S" and S_
-HEREXEC=\$4028!             CODE HERE and BEGIN execute address
-QFBRAN=\$4034!              CODE compiled by IF UNTIL
-BRAN=\$403A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$403C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$403E!                 CODE compiled by DO
-XPLOOP=\$404E!              CODE compiled by +LOOP
-XLOOP=\$4060!               CODE compiled by LOOP
-MUSMOD=\$4066!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$4078!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$4080!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$40AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$40AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$40BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$40CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$40D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$40E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$40EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$401E!             CODE compiled by S" and S_
+HEREXEC=\$4032!             CODE HERE and BEGIN execute address
+MUSMOD=\$403E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$4050!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$4058!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$4082!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$4084!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$4094!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$40A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$40AC!              CODE compiled by IF UNTIL
+BRAN=\$40B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$40B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$40B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$40C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$40F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$412A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$4136!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$40D0!          asm CODE common part of SYS and QABORT, starts FORTH engine
+QABORT=\$4108!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$4112!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+!-------------------------------------------------------------------------------
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$4194!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$419C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$41C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$41C8!          ASM CODE, called by ACCEPT before RX char LF.
+UART_INIT_TERM=\$4154!      asm CODE, default content of HARD_APP (WARM starts with: CALL &HARD_APP)
+UART_COLD_TERM=\$417E!      asm CODE, default content of STOP_APP (COLD starts with: CALL &STOP_APP)
+UART_INIT_SOFT=\$4184!      asm CODE, default content of SOFT_APP (INIT_FORTH starts with: CALL &SOFT_APP)
+UART_RXON=\$4186!           asm CODE, default content of SLEEP_APP (SLEEP starts with: CALL &SLEEP_APP)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$41B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$418E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$41BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$41BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$4144!          asm CODE, default content of SLEEP_APP (SLEEP starts with: CALL &SLEEP_APP)
+I2C_CTRL_CH=\$4146!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$4156!       asm CODE, default content of STOP_APP (COLD starts with: CALL &STOP_APP)
+I2C_INIT_SOFT=\$4156!       asm CODE, default content of SOFT_APP (INIT_FORTH starts with: CALL &SOFT_APP)
+I2C_INIT_TERM=\$4158!       asm CODE, default content of HARD_APP (WARM starts with: CALL &HARD_APP)
+I2C_WARM=\$4180!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR5994
 ! ----------------------------------------------
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line, and WORD use.
+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, enable JTAG/SBW
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
index a8471cf..79fb218 100644 (file)
@@ -42,42 +42,67 @@ FREQ_KHZ=\$1800!        FREQUENCY (in kHz)
 TERMBRW_RST=\$1802!     TERMBRW_RST
 TERMMCTLW_RST=\$1804!   TERMMCTLW_RST
 I2CSLAVEADR=\$1802!     I2C_SLAVE address
-I2CSLAVEADR1=\$1804!    
+I2CSLAVEADR1=\$1804!
 LPM_MODE=\$1806!        LPM_MODE value, LPM0+GIE is the default value
-RSTIV_MEM=\$1808!       SYSRSTIV memory, set to -1 to do Deep RESET
-RST_DP=\$180A!          RST value for DP
-RST_VOC=\$180C!         RST value for VOClink
-VERSION=\$180E!
-THREADS=\$1810!         THREADS
-KERNEL_ADDON=\$1812!
-
-WIPE_INI_=\$1814!       MOV #WIPE_INI,X
-WIPE_COLD=\$1814!       WIPE value for PFA_COLD
-WIPE_INI_FORTH=\$1816!  WIPE value for PFA_INI_FORTH
-WIPE_SLEEP=\$1818!      WIPE value for PFA_SLEEP
-WIPE_WARM=\$181A!       WIPE value for PFA_WARM
-WIPE_TERM_INT=\$181C!   WIPE value for TERMINAL vector
-WIPE_DP=\$182E!         WIPE value for RST_DP   
-WIPE_VOC=\$1820!        WIPE value for RST_VOC
-
-INI_FORTH_INI=\$1822!   MOV #INI_FORTH_INI,X    \ >BODY instruction of INI_FORTH subroutine
-INIT_ACCEPT=\$1822!     WIPE value for PFAACCEPT
-INIT_CR=\$1824!         WIPE value for PFACR
-INIT_EMIT=\$1826!       FORTH value for PFAEMIT
-INIT_KEY=\$1828!        WIPE value for PFAKEY
-INIT_CIB=\$182A!        WIPE value for CIB_ADR
-HALF_FORTH_INI=\$182C!  to preserve the state of DEFERed words, used by user INI_SOFT_APP as:
-!                       ADD #4,0(RSP)           \ skip INI_FORTH >BODY instruction "MOV #INI_FORTH_INI,X"
-!                       MOV #HALF_FORTH_INI,X   \ replace it by "MOV #HALF_FORTH_INI,X"
-!                       MOV @RSP+,PC            \ then RET
-INIT_DOCOL=\$182C!      FORTH value for rDOCOL   (R4)
-INIT_DODOES=\$182E!     FORTH value for rDODOES  (R5)
-INIT_DOCON=\$1830!      FORTH value for rDOCON   (R6)
-INIT_DOVAR=\$1832!      FORTH value for rDOVAR   (R7)
-INIT_CAPS=\$1834!       FORTH value for CAPS
-INIT_BASE=\$1836!       FORTH value for BASE
-!                       free EPROM
-
+USERSTIV=\$1808!        user SYS variable, defines software RESET, DEEP_RST, INIT_HARWARE, etc.
+VERSION=\$180A!
+THREADS=\$180C!         THREADS
+KERNEL_ADDON=\$180E!    BIT15=FLOORED DIVISION
+!                       BIT14=LF_XTAL
+!                       BIT13=UART CTS
+!                       BIT12=UART RTS
+!                       BIT11=UART XON/XOFF
+!                       BIT10=UART half duplex
+!                       BIT9=I2C_TERMINAL
+!                       BIT8=Q15.16 input
+!                       BIT7=DOUBLE input
+!                       BIT6=assembler 20 bits
+!                       BIT5=assembler 16 bits
+!                       BIT4=assembler 16 bits with 20 bits addr
+!                       BIT3=vocabulary set
+!                       BIT2=
+!                       BIT1=
+!                       BIT0=
+!
+DEEP_ORG=\$1810!        MOV #DEEP_ORG,X
+DEEP_TERM_VEC=\$1810!   to DEEP_INIT TERMINAL vector
+DEEP_COLD=\$1812!       to DEEP_INIT COLD_APP
+DEEP_SOFT=\$1814!       to DEEP_INIT SOFT_APP
+DEEP_HARD=\$1816!       to DEEP_INIT HARD_APP
+DEEP_SLEEP=\$1818!      to DEEP_INIT SLEEP_APP
+DEEP_DP=\$181A!         to DEEP_INIT RST_DP
+DEEP_LASTVOC=\$181C!    to DEEP_INIT RST_LASTVOC
+DEEP_CURRENT=\$181E!    to DEEP_INIT RST_CURRENT
+DEEP_CONTEXT=\$1820!    to DEEP_INIT RST_CONTEXT
+!
+PUC_ABORT_ORG=\$1822!   MOV #PUC_ABORT_ORG,X
+INIT_ACCEPT=\$1822!     to INIT PFA_ACCEPT
+INIT_EMIT=\$1824!       to INIT PFA_EMIT
+INIT_KEY=\$1826!        to INIT PFA_KEY
+INIT_CIB=\$1828!        to INIT CIB_ORG
+FORTH_ORG=\$182A!       MOV #FORTH_ORG,X        \to preserve the state of DEFERed words
+INIT_RSP=\$182A!        to INIT RSP
+INIT_DOCOL=\$182C!      to INIT rDOCOL   (R4) to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
+INIT_DODOES=\$182E!     to INIT rDODOES  (R5)
+INIT_DOCON=\$1830!      to INIT rDOCON   (R6)
+INIT_DOVAR=\$1832!      to INIT rDOVAR   (R7)
+INIT_CAPS=\$1834!       to INIT CAPS
+INIT_BASE=\$1836!       to INIT BASE
+INIT_LEAVE=\$1838!      to INIT LEAVEPTR
+!
+RST_ORG=\$183A!
+RST_LEN=\$10!
+COLD_APP=\$183A!        COLD_APP
+SOFT_APP=\$183C!        SOFT_APP
+HARD_APP=\$183E!        HARD_APP
+SLEEP_APP=\$1840!       SLEEP_APP
+RST_DP=\$1842!          RST_RET value for (RAM) DDP
+RST_LASTVOC=\$1844!     RST_RET value for (RAM) LASTVOC
+RST_CURRENT=\$1846!     RST_RET value for (RAM) CURRENT
+RST_CONTEXT=\$1848!     RST_RET value for (RAM) CONTEXT (8 CELLS)
+!
+! $185A = free EPROM
+!
 ! ============================================
 ! FRAM TLV
 ! ============================================
@@ -99,54 +124,49 @@ LSTACK_SIZE=\#16! words
 PSTACK_SIZE=\#48! words
 RSTACK_SIZE=\#48! words
 PAD_LEN=\#84! bytes
-TIB_LEN=\#84! bytes
+CIB_LEN=\#84! bytes
 HOLD_SIZE=\#34! bytes
 
 ! ----------------------------------------------
 ! FastForth RAM memory map (>= 1k):
 ! ----------------------------------------------
-LEAVEPTR=\$1C00!    \ Leave-stack pointer, init by QUIT
-LSATCK=\$1C00!      \ leave stack,      grow up
-PSTACK=\$1C80!      \ parameter stack,  grow down
-RSTACK=\$1CE0!      \ Return stack,     grow down
-
-PAD_I2CADR=\$1CE0!  \ RX I2C address
-PAD_I2CCNT=\$1CE2!  \ count max
-PAD_ORG=\$1CE4!     \ user scratch pad buffer, 84 bytes, grow up
-
-TIB_I2CADR=\$1D38!  \ TX I2C address
-TIB_I2CCNT=\$1D3A!  \ count of bytes
-TIB_ORG=\$1D3C!     \ Terminal input buffer, 84 bytes, grow up
-
-HOLDS_ORG=\$1D90!   \ base address for HOLDS
-HOLD_BASE=\$1DB2!   \ BASE HOLD area, grow down
-
-! ----------------------
-! NOT SAVED VARIABLES
-! ----------------------
-
+LEAVEPTR=\$1C00!        Leave-stack pointer, init by QUIT
+LSATCK=\$1C00!          leave stack,      grow up
+PSTACK=\$1C80!          parameter stack,  grow down
+RSTACK=\$1CE0!          Return stack,     grow down
+!
+PAD_I2CADR=\$1CE0!      RX I2C address
+PAD_I2CCNT=\$1CE2!      count max
+PAD_ORG=\$1CE4!         user scratch pad buffer, 84 bytes, grow up
+!
+TIB_I2CADR=\$1D38!      TX I2C address
+TIB_I2CCNT=\$1D3A!      count of bytes
+TIB_ORG=\$1D3C!         Terminal input buffer, 84 bytes, grow up
+!
+HOLDS_ORG=\$1D90!       base address for HOLDS
+HOLD_BASE=\$1DB2!       BASE HOLD area, grow down
+!
 HP=\$1DB2!              HOLD ptr
-CAPS=\$1DB4!            CAPS ON/OFF flag, must be set to -1 before first reset !
-LAST_NFA=\$1DB6!
-LAST_THREAD=\$1DB8!
-LAST_CFA=\$1DBA!
-LAST_PSP=\$1DBC!
-
-STATEADR=\$1DBE!        Interpreter state
-
-SOURCE_LEN=\$1DC0!      len of input stream
-SOURCE_ORG=\$1DC2!      adr of input stream
-TOIN=\$1DC4!            >IN
-DP=\$1DC6!              dictionary ptr
-
-LASTVOC=\$1DC8!         keep VOC-LINK
-CONTEXT=\$1DCA!         CONTEXT dictionnary space (8 CELLS)
-CURRENT=\$1DDA!         CURRENT dictionnary ptr
-
-BASEADR=\$1DDC!           numeric base, must be defined before first reset !
-LINE=\$1DDE!            line in interpretation, activated with NOECHO, desactivated with ECHO
+LAST_NFA=\$1DB4!
+LAST_THREAD=\$1DB6!
+LAST_CFA=\$1DB8!
+LAST_PSP=\$1DBA!
+!
+STATEADR=\$1DBC!        Interpreter state
+BASEADR=\$1DBE!         base
+CAPS=\$1DC0!            CAPS ON/OFF
+!
+SOURCE_LEN=\$1DC2!      len of input stream
+SOURCE_ORG=\$1DC4!      adr of input stream
+TOIN=\$1DC6!            >IN
+DP=\$1DC8!              dictionary ptr
+!
+LASTVOC=\$1DCA!         keep VOC-LINK
+CURRENT=\$1DCC!         CURRENT dictionnary ptr
+CONTEXT=\$1DCE!         CONTEXT dictionnary space (8 CELLS)
+!
 ! ---------------------------------------
-!1DE0! 28 RAM bytes free 
+!1DE0! 28 RAM bytes free
 ! ---------------------------------------
 
 ! ---------------------------------------
@@ -243,7 +263,7 @@ HDLW_PrevLEN=24!    previous LEN
 HDLW_PrevORG=26!    previous ORG
 
 
-!OpenedFirstFile     ; "openedFile" structure 
+!OpenedFirstFile     ; "openedFile" structure
 HandleMax=8!
 HandleLenght=28!
 FirstHandle=\$2038!
@@ -267,47 +287,55 @@ MAIN_LEN=\$24000!       127 k FRAM
 
 SLEEP=\$4400!               CODE_WITHOUT_RETURN, CPU shutdown
 LIT=\$440A!                 CODE compiled by LITERAL
-XSQUOTE=\$4414!             CODE compiled by S" and S_
-HEREXEC=\$4428!             CODE HERE and BEGIN execute address
-QFBRAN=\$4434!              CODE compiled by IF UNTIL
-BRAN=\$443A!                CODE compiled by ELSE REPEAT AGAIN
-NEXT_ADR=\$443C!            CODE NEXT instruction (MOV @IP+,PC)
-XDO=\$443E!                 CODE compiled by DO
-XPLOOP=\$444E!              CODE compiled by +LOOP
-XLOOP=\$4460!               CODE compiled by LOOP
-MUSMOD=\$4466!              ASM CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
-MDIV1DIV2=\$4478!           ASM CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
-MDIV1=\$4480!               ASM CODE input for 48/16 unsigned division, see DOUBLE M*/
-RET_ADR=\$44AA!             ASM CODE of INI_FORTH_PFA and MARKER+8 definitions,
-SETIB=\$44AC!               CODE Set Input Buffer with org & len values, reset >IN pointer
-REFILL=\$44BC!              CODE accept one line from input and leave org len of input buffer
-CIB_ADR=\$44CA!             [CIB_ADR] = TIB_ORG by default; may be redirected to SDIB_ORG
-XDODOES=\$44D4!             to restore rDODOES: MOV #XDODOES,rDODOES
-XDOCON=\$44E2!              to restore rDOCON: MOV #XDOCON,rDOCON
-XDOVAR=\$44EE!              to restore rDOVAR: MOV #XDOVAR,rDOVAR
+XSQUOTE=\$441E!             CODE compiled by S" and S_
+HEREXEC=\$4432!             CODE HERE and BEGIN execute address
+MUSMOD=\$443E!              asm CODE 32/16 unsigned division, used by ?NUMBER, UM/MOD
+MDIV1DIV2=\$4450!           asm CODE input for 48/16 unsigned division with DVDhi=0, see DOUBLE M*/
+MDIV1=\$4458!               asm CODE input for 48/16 unsigned division, see DOUBLE M*/
+RET_ADR=\$4482!             asm CODE of INIT_SOFT_PFA and MARKER+8 definitions,
+SETIB=\$4484!               CODE Set Input Buffer with org & len values, reset >IN pointer
+REFILL=\$4494!              CODE accept one line from input and leave org len of input buffer
+CIB_ORG=\$44A0!             [CIB_ORG] = TIB_ORG by default; may be redirected to SDIB_ORG
+QFBRAN=\$44AC!              CODE compiled by IF UNTIL
+BRAN=\$44B2!                CODE compiled by ELSE REPEAT AGAIN
+NEXT_ADR=\$44B4!            CODE NEXT instruction (MOV @IP+,PC)
+XDODOES=\$44B6!             to restore rDODOES: MOV #XDODOES,rDODOES
+XDOCON=\$44C4!              to restore rDOCON: MOV #XDOCON,rDOCON
+!                           to restore rDOVAR: MOV &INIT_DOVAR,rDOVAR
 !                           to restore rDOCOL: MOV &INIT_DOCOL,rDOCOL
-INI_FORTH=\$44F8!           asm CODE common part of RST and QABORT, starts FORTH engine
-QABORT=\$452A!              CODE_WITHOUT_RETURN run-time part of ABORT"
-ABORT_TERM=\$4536!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET  
+INIT_FORTH=\$44D0!          asm CODE common part of RST and QABORT, starts FORTH engine
+QABORT=\$4508!              CODE_WITHOUT_RETURN run-time part of ABORT"
+ABORT_TERM=\$4512!          CODE_WITHOUT_RETURN, called by QREVEAL and INTERPRET
 !-------------------------------------------------------------------------------
-UART_COLD_TERM=\$4594!      ASM CODE, content of COLD+2 by default
-UART_INIT_TERM=\$459C!      ASM CODE, content of WARM+2 by default
-UART_RXON=\$45C6!           ASM CODE, content of SLEEP+2 by default
-UART_RXOFF=\$45C8!          ASM CODE, called by ACCEPT before RX char LF.
+! UART FASTFORTH
 !-------------------------------------------------------------------------------
-I2C_COLD_TERM=\$45B8!       ASM CODE, content of COLD_PFA by default
-I2C_INIT_TERM=\$458E!       ASM CODE, content of WARM_PFA by default
-I2C_RXON=\$45BA!            ASM CODE, content of SLEEP_PFA by default
-I2C_CTRL_CH=\$45BC!         ASM CODE, used as is: MOV.B #CTRL_CHAR,Y
+UART_INIT_TERM=\$4554!      asm CODE, content of WARM+2 by default (WARM starts with: CALL #UART_INIT_TERM)
+UART_COLD_TERM=\$457E!      asm CODE, content of COLD+2 by default (COLD starts with: CALL #UART_COLD_TERM)
+UART_INIT_SOFT=\$4584!      asm CODE, content of INIT_FORTH+2 (by default, INIT_FORTH starts with: CALL #RET_ADR)
+UART_RXON=\$4586!           asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXON=KEY\+\$8!         asm CODE, content of SLEEP+2 (by default, SLEEP starts with: CALL #UART_RXON)
+UART_RXOFF=ACCEPT\+\$2A!    asm CODE, called by ACCEPT after 'CR' and before 'LF'.
+!-------------------------------------------------------------------------------
+! I2C FASTFORTH
+!-------------------------------------------------------------------------------
+I2C_ACCEPT=\$4544!          asm CODE, content of SLEEP+2 by default
+I2C_CTRL_CH=\$4546!         asm CODE, used as is: MOV.B #CTRL_CHAR,Y
 !                                                 CALL #I2C_CTRL_CH
+I2C_COLD_TERM=\$4556!       asm CODE, content of COLD+2, RET address by default
+I2C_INIT_SOFT=\$4556!       asm CODE, content of INIT_FORTH+2, RET address by default
+I2C_INIT_TERM=\$4558!       asm CODE, content of WARM+2 by default
+I2C_WARM=\$4580!            WARM address
 !-------------------------------------------------------------------------------
-
+NOPUC=SYS\+\$0A!            NOPUC               with FORTH: ' SYS 10 +
+COLD=SYS\+\$16!             COLD address                    ' SYS 22 +
+ABORT=ALLOT\+\$8!           CODE_WITHOUT_RETURN             ' ALLOT 8 +
+QUIT=ALLOT\+\$0E!           CODE_WITHOUT_RETURN             ' ALLOT 14 +
 
 ! ----------------------------------------------
 ! Interrupt Vectors and signatures - MSP430FR6989
 ! ----------------------------------------------
 MAIN_LEN=\$1FC00!       127 k FRAM
-FRAM_FULL=\$FF30!       80 bytes are sufficient considering what can be compiled in one line and WORD use.
+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; must be reset by wipe.
 JTAG_SIG2=\$FF82!       if JTAG_SIG1=\$AAAA, length of password string @ JTAG_PASSWORD
@@ -717,14 +745,14 @@ DMA2DAH=\$538!      \ DMA channel 2 destination address high
 DMA2SZ=\$53A!       \ DMA channel 2 transfer size
 
 
-MPUCTL0=\$5A0!      \ MPU control 0             
-MPUCTL1=\$5A2!      \ MPU control 1             
-MPUSEGB2=\$5A4!     \ MPU Segmentation Border2 
-MPUSEGB1=\$5A6!     \ MPU Segmentation Border1 
-MPUSAM=\$5A8!       \ MPU access management     
-MPUIPC0=\$5AA!      \ MPU IP control 0                      
-MPUIPSEGB2=\$5AC!   \ MPU IP Encapsulation Segment Border 2 
-MPUIPSEGB1=\$5AE!   \ MPU IP Encapsulation Segment Border 1 
+MPUCTL0=\$5A0!      \ MPU control 0
+MPUCTL1=\$5A2!      \ MPU control 1
+MPUSEGB2=\$5A4!     \ MPU Segmentation Border2
+MPUSEGB1=\$5A6!     \ MPU Segmentation Border1
+MPUSAM=\$5A8!       \ MPU access management
+MPUIPC0=\$5AA!      \ MPU IP control 0
+MPUIPSEGB2=\$5AC!   \ MPU IP Encapsulation Segment Border 2
+MPUIPSEGB1=\$5AE!   \ MPU IP Encapsulation Segment Border 1
 
 UCA0CTLW0=\$5C0!    \ eUSCI_A control word 0
 UCA0CTLW1=\$5C2!    \ eUSCI_A control word 1
index 5cbf7e9..034bd7d 100644 (file)
@@ -76,7 +76,7 @@
 ; MSP-EXP430FR2355 LAUNCHPAD    <--> OUTPUT WORLD
 ; ======================================================================
 
-;                                 +--4k7-< DeepRST switch <-- GND 
+;                                 +--4k7-< DeepRST switch <-- GND
 ;                                 |
 ; P4.3  - UCA1 TXD    J101.6 -  <-+-> RX  UARTtoUSB bridge
 ; P4.2  - UCA1 RXD    J101.8 -  <---- TX  UARTtoUSB bridge
 
 ; P1.2  - UCB0 SDA    J1.10  -  <---> SDA I2C Master_Slave
 ; P1.3  - UCB0 SCL    J1.9   -  ----> SCL I2C Master_Slave
-        
-; P2.2  -             J2.18  -  <---- TSSOP32236 (IR RC5) 
+
+; P2.2  -             J2.18  -  <---- TSSOP32236 (IR RC5)
 
 ; P2.5  -             J2.13  -  <---- SD_CD (Card Detect)
 ; P4.4  -             J2.12  -  ----> SD_CS (Card Select)
 ; P4.5  - UCB1 CLK    J1.7   -  ----> SD_CLK
 ; P4.6  - UCB1 SIMO   J2.15  -  ----> SD_SDI
 ; P4.7  - UCB1 SOMI   J2.14  -  <---- SD_SDO
-        
+
 ; P6.0  -             J4.39  -  ----> SCL I2C Soft_Master
 ; P6.1  -             J4.38  -  <---> SDA I2C Soft_Master
 
@@ -130,14 +130,14 @@ BUS_TERM    .equ    0Ch         ; P1.2=SDA, P1.3=SCL
             MOV #0FFFEh,&PAOUT  ; all pins with pullup resistors else LED1
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high (false) to disable RX TERM during start FORTH
 HANDSHAKOUT .equ    P2OUT
 HANDSHAKIN  .equ    P2IN
 RTS         .equ    1           ; P2.0
             BIS.B #RTS,&P2DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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    2           ; P2.1
             BIC.B #CTS,&P2OUT   ; CTS input resistor is pulled down
@@ -146,7 +146,7 @@ CTS         .equ    2           ; P2.1
 
 
 SW2_IN      .equ P2IN
-SW2         .equ 8              ; P2.3 = S2 
+SW2         .equ 8              ; P2.3 = S2
 
 SD_CDIN     .equ  P2IN
 CD_SD       .equ  20h           ; P2.5
@@ -171,10 +171,7 @@ CD_SD       .equ  20h           ; P2.5
             MOV #-1,&PBOUT  ; pullup resistors for all pins
 
 SW1_IN      .equ P4IN
-SW1         .equ 2      ; P4.1 = S1 
-
-WIPE_IN     .equ P4IN
-IO_WIPE     .equ 2      ; P4.1 = S1 = FORTH Deep_RST pin 
+SW1         .equ 2      ; P4.1 = S1
 
     .IFDEF UCA1_TERM
 ; UCA1 RXD      P4.2    -   J101.8  <----   TX  UARTtoUSB bridge
@@ -236,117 +233,44 @@ LED2        .equ    40h         ;  P6.6 LED2 green
 
 ; CS code for MSP430FR2355
 
-; to measure SMCLK frequency, wires SMCLK on P1.0: 
+; to measure SMCLK frequency, wires SMCLK on P1.0:
 ;    BIS.B #1,&P1SEL1
 ;    BIS.B #1,&P1DIR
 
-; to measure REFO frequency, wires ACLK on P1.1: 
+; to measure REFO frequency, wires ACLK on P1.1:
 ;    BIS.B #2,&P1SEL1
 ;    BIS.B #2,&P1DIR
 
-; =====================================
-    .IF FREQUENCY = 1
-            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
-; =====================================
+    .IFDEF LF_XTAL
+; because LOCKLPM5 is ON, XT1 is replaced by REFO automaticaly until WARM clears LOCKLPM5
+;           MOV     #0000h,&CSCTL3  ; FLL select XT1, FLLREFDIV=0 (default value)
+            MOV     #0000h,&CSCTL4  ; ACLOCK select XT1, MCLK & SMCLK select DCOCLKDIV
+            BIS.B   #0C0h,&P2SEL1   ; P2.6 as XOUT, P2.7 as XIN
+    .ELSE
+            BIS     #0010h,&CSCTL3  ; FLL select REFCLOCK
+;            MOV     #0100h,&CSCTL4  ; ACLOCK select REFOCLK, MCLK & SMCLK select DCOCLKDIV (default value)
+    .ENDIF
+            BIC.B   #-1,&CSCTL1     ; clear DCORSEL (Set 1MHZ DCORSEL), DCOFTRIM=0, ENable MODulation to reduce EMI
+    .IF FREQUENCY = 1               ; nothing else to do
     .ELSEIF FREQUENCY = 2
-            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
-; =====================================
+            BIS.B   #2,&CSCTL1      ; Set 2MHZ DCORSEL
     .ELSEIF FREQUENCY = 4
-            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
-; =====================================
+            BIS.B   #4,&CSCTL1      ; Set 4MHZ DCORSEL
     .ELSEIF FREQUENCY = 8
-            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     #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
-; =====================================
+            BIS.B   #6,&CSCTL1      ; Set 8MHZ DCORSEL
     .ELSEIF FREQUENCY = 12
-            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     #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
-; =====================================
+            BIS.B   #8,&CSCTL1      ; Set 12MHZ DCORSEL
     .ELSEIF FREQUENCY = 16
-            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     #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
-; =====================================
+            BIS.B   #10,&CSCTL1     ; Set 16MHZ DCORSEL
     .ELSEIF FREQUENCY = 20
-            MOV     #1EFFh,&CSCTL0       ; preset MOD=31, DCO=255  
-            MOV     #00BCh,&CSCTL1      ; Set 20MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
-; ------------------------------------- ;  fCOCLKDIV = REFO x (FLLN+1)
-;            MOV     #0261h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=261h
-                                        ; fCOCLKDIV = 32768 x 609+1) = 19.988 MHz ; measured : 19.xxxMHz
-            MOV     #0262h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=262h
-                                        ; fCOCLKDIV = 32768 x 610+1) = 20.021 MHz ; measured : 20.xxxMHz
-;            MOV     #0263h,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=263h
-                                        ; fCOCLKDIV = 32768 x 611+1) = 20.054 MHz ; measured : 20.xxxMHz
-; =====================================
+            BIS.B   #12,&CSCTL1     ; Set 20MHZ DCORSEL
     .ELSEIF FREQUENCY = 24
-            MOV     #1EFFh,&CSCTL0       ; preset MOD=31, DCO=255  
-            MOV     #00BEh,&CSCTL1      ; Set 24MHZ DCORSEL,enable DCOFTRIM=3h ,enable Modulation to reduce EMI
-; ------------------------------------- ;  fCOCLKDIV = REFO x (FLLN+1)
-;            MOV     #02DBh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=2DBh
-                                        ; fCOCLKDIV = 32768 x 731+1) = 23.986 MHz ; measured : 23.xxxMHz
-            MOV     #02DCh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=2DCh
-                                        ; fCOCLKDIV = 32768 x 732+1) = 24.019 MHz ; measured : 23.xxxMHz
-;            MOV     #02DDh,&CSCTL2      ; Set FLLD=0 (DCOCLKCDIV=DCO),set FLLN=2DDh
-                                        ; fCOCLKDIV = 32768 x 733+1) = 24.051 MHz ; measured : 24.xxxMHz
-; =====================================
+            BIS.B   #14,&CSCTL1     ; Set 24MHZ DCORSEL
     .ELSEIF
-    .error "bad frequency setting, only 0.5,1,2,4,8,12,16,20,24 MHz"
+    .error "bad frequency setting, only 1,2,4,8,12,16,20,24 MHz"
     .ENDIF
-
-    .IFDEF LF_XTAL
-; because LOCKLPM5 is ON, XT1 is replaced by REFO automaticaly until WARM clears LOCKLPM5
-;           MOV     #0000h,&CSCTL3      ; FLL select XT1, FLLREFDIV=0 (default value)
-            MOV     #0000h,&CSCTL4      ; ACLOCK select XT1, MCLK & SMCLK select DCOCLKDIV
-            BIS.B   #0C0h,&P2SEL1       ; P2.6 as XOUT, P2.7 as XIN
-    .ELSE
-            BIS     #0010h,&CSCTL3      ; FLL select REFCLOCK
-;            MOV     #0100h,&CSCTL4      ; ACLOCK select REFOCLK, MCLK & SMCLK select DCOCLKDIV (default value)
-    .ENDIF
-
+;            MOV #INT(FREQUENCY*1000000/32768)-1,&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight lower
+            MOV #INT(FREQUENCY*1000000/32768),&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight upper
             MOV     #92,X           ; 96* 3 ms = 288 ms delay, because FLL lock time = 200 ms
 ClockWaitX  MOV     &FREQ_KHZ,Y     ;
 ClockWaitY  SUB     #1,Y            ;1
index bb4f858..139e70b 100644 (file)
@@ -4,10 +4,10 @@
 \.f=\.4th for MSP_EXP430FR2355! to change file type
 !
 !========================
-! remove comments        
+! remove comments
 !========================
-\\*\n=
-\s\\*\n=\n
+\\*\n=!       entire comment lines
+\s\\*\n=\n!   comments at end of line
 ! ======================================================================
 ! MSP430FR2355 Config
 ! ======================================================================
@@ -92,7 +92,7 @@
 ! MSP_EXP430FR2355 LAUNCHPAD    <--> OUTPUT WORLD
 ! ======================================================================
 !
-!                                 +--4k7-< DeepRST switch <-- GND 
+!                                 +--4k7-< DeepRST switch <-- GND
 !                                 |
 ! P4.3  - UCA1 TXD    J101.6 -  <-+-> RX  UARTtoUSB bridge
 ! P4.2  - UCA1 RXD    J101.8 -  <---- TX  UARTtoUSB bridge
 !
 ! P1.2  - UCB0 SDA    J1.10  -  <---> SDA I2C Master_Slave
 ! P1.3  - UCB0 SCL    J1.9   -  ----> SCL I2C Master_Slave
-!       
-! P2.2  -             J2.18  -  <---- TSSOP32236 (IR RC5) 
+!
+! P2.2  -             J2.18  -  <---- TSSOP32236 (IR RC5)
 !
 ! P2.5  -             J2.12  -  ----> SD_CS (Card Select)
 ! P4.4  -             J2.13  -  <---- SD_CD (Card Detect)
 ! P4.5  - UCB1 CLK    J1.7   -  ----> SD_CLK
 ! P4.7  - UCB1 SOMI   J2.14  -  <---- SD_SDO
 ! P4.6  - UCB1 SIMO   J2.15  -  ----> SD_SDI
-!       
+!
 ! P3.2  -             J4.38  -  <---> SDA I2C Soft_Master
 ! P3.3  -             J4.39  -  ----> SCL I2C Soft_Master
 
 ! P6.0  <------------------------> 11 LCD_DB4
 ! P6.1  <------------------------> 12 LCD_DB5
 ! P6.2  <------------------------> 13 LCD_DB5
-! P6.3  <------------------------> 14 LCD_DB7        
+! P6.3  <------------------------> 14 LCD_DB7
 
 ! P4.1                        ---> S2 LCD contrast +
 ! P2.3                        ---> S1 LCD contrast -
 ! ============================================
 ! FORTH TERMINAL I/O :
 ! ============================================
-!TERMINAL 
+!TERMINAL
 BUS_TERM=\$0C!          P4.2 = RX, P4.3 = TX
 
 TERM_IN=\$221!          P4
@@ -196,10 +196,10 @@ LED2_DIR=\$245!
 LED2=\$40!              P6.6 LED2 green
 
 SW1_IN=\$221!
-SW1=2!                  P4.1 = S1 
+SW1=2!                  P4.1 = S1
 
 WIPE_IN=\$221!
-WIPE=2!                 P4.1 = S1 = FORTH Deep_RST pin    
+WIPE=2!                 P4.1 = S1 = FORTH Deep_RST pin
 
 SW2_IN=\$201!
 SW2=8!                  P2.3
@@ -242,10 +242,10 @@ WDT_TIM_0_VEC=\$FFF4!   TB1_0_VEC
 
 !IR_RC5
 RC5_=RC5_!
-IR_IN=\$201!  
-IR_OUT=\$203! 
-IR_DIR=\$205! 
-IR_REN=\$209! 
+IR_IN=\$201!
+IR_OUT=\$203!
+IR_DIR=\$205!
+IR_REN=\$209!
 IR_IES=\$219!
 IR_IE=\$21B!
 IR_IFG=\$21D!
@@ -261,18 +261,22 @@ I2CSM_IN=\$220!
 I2CSM_OUT=\$222!
 I2CSM_DIR=\$224!
 I2CSM_REN=\$226!
+I2CSM_IES=\$238!
+I2CSM_IFG=\$23C!
 SM_SDA=4!                P3.2
 SM_SCL=8!                P3.3
-SM_BUS=\$0C!    
+SM_BUS=\$0C!
 
 !Software I2C_Multi_Master
 I2CSMM_IN=\$220!
 I2CSMM_OUT=\$222!
 I2CSMM_DIR=\$224!
 I2CSMM_REN=\$226!
+I2CSMM_IES=\$238!
+I2CSMM_IFG=\$23C!
 SMM_SDA=4!               P3.2
 SMM_SCL=8!               P3.3
-SMM_BUS=\$0C!    
+SMM_BUS=\$0C!
 
 !hardware I2C_Multi_Master
 I2CMM_IN=\$200!
@@ -321,12 +325,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$540!   USCI_B0 Control Word Register 0
 I2CM_CTLW1=\$542!   USCI_B0 Control Word Register 1
 I2CM_BRW=\$546!     USCI_B0 Baud Word Rate 0
-I2CM_STATW=\$548!   USCI_B0 status word 
-I2CM_TBCNT=\$54A!   USCI_B0 byte counter threshold  
+I2CM_STATW=\$548!   USCI_B0 status word
+I2CM_TBCNT=\$54A!   USCI_B0 byte counter threshold
 I2CM_RXBUF=\$54C!   USCI_B0 Receive Buffer 8
 I2CM_TXBUF=\$54E!   USCI_B0 Transmit Buffer 8
 I2CM_I2COA0=\$554!  USCI_B0 I2C Own Address 0
-I2CM_ADDRX=\$55C!   USCI_B0 Received Address Register 
+I2CM_ADDRX=\$55C!   USCI_B0 Received Address Register
 I2CM_I2CSA=\$560!   USCI_B0 I2C Slave Address
 I2CM_IE=\$56A!      USCI_B0 Interrupt Enable
 I2CM_IFG=\$56C!     USCI_B0 Interrupt Flags Register
@@ -334,12 +338,12 @@ I2CM_IFG=\$56C!     USCI_B0 Interrupt Flags Register
 I2CS_CTLW0=\$540!   USCI_B0 Control Word Register 0
 I2CS_CTLW1=\$542!   USCI_B0 Control Word Register 1
 I2CS_BRW=\$546!     USCI_B0 Baud Word Rate 0
-I2CS_STATW=\$548!   USCI_B0 status word 
-I2CS_TBCNT=\$54A!   USCI_B0 byte counter threshold  
+I2CS_STATW=\$548!   USCI_B0 status word
+I2CS_TBCNT=\$54A!   USCI_B0 byte counter threshold
 I2CS_RXBUF=\$54C!   USCI_B0 Receive Buffer 8
 I2CS_TXBUF=\$54E!   USCI_B0 Transmit Buffer 8
 I2CS_I2COA0=\$554!  USCI_B0 I2C Own Address 0
-I2CS_ADDRX=\$55C!   USCI_B0 Received Address Register 
+I2CS_ADDRX=\$55C!   USCI_B0 Received Address Register
 I2CS_I2CSA=\$560!   USCI_B0 I2C Slave Address
 I2CS_IE=\$56A!      USCI_B0 Interrupt Enable
 I2CS_IFG=\$56C!     USCI_B0 Interrupt Flags Register
@@ -347,7 +351,7 @@ I2CS_IFG=\$56C!     USCI_B0 Interrupt Flags Register
 CD_SD=\$10!             P4.4 as Card Detect
 SD_CDIN=\$221!
 
-CS_SD=\$20!             P2.5 as Card Select     
+CS_SD=\$20!             P2.5 as Card Select
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
index 50facde..b875538 100644 (file)
@@ -51,7 +51,7 @@
 ; MSP-EXP430FR2433 LAUNCHPAD    <--> OUTPUT WORLD
 ; ======================================================================
 
-;                                 +--4k7-< DeepRST switch <-- GND 
+;                                 +--4k7-< DeepRST switch <-- GND
 ;                                 |
 ; P1.4  - UCA0 TXD    J101.6 -  <-+-> RX  UARTtoUSB bridge
 ; P1.5  - UCA0 RXD    J101.8 -  <---- TX  UARTtoUSB bridge
 
 ; P1.2  - UCB0 SDA    J1.10  -  <---> SDA I2C Master_Slave
 ; P1.3  - UCB0 SCL    J1.9   -  ----> SCL I2C Master_Slave
-        
-; P2.2  - ACLK        J2.18  -  <---- TSSOP32236 (IR RC5) 
+
+; P2.2  - ACLK        J2.18  -  <---- TSSOP32236 (IR RC5)
 
 ; P2.0  -             J2.11  -  ----> SD_CS (Card Select)
 ; P2.1  -             J2.12  -  <---- SD_CD (Card Detect)
 ; P2.4  - UCA1 CLK    J1.7   -  ----> SD_CLK
 ; P2.5  - UCA1 SOMI   J2.14  -  <---- SD_SDO
 ; P2.6  - UCA1 SIMO   J2.15  -  ----> SD_SDI
-        
+
 ; P3.1  -             J2.13  -  ----> SCL I2C Soft_Master
 ; P3.2  -             J2.17  -  <---> SDA I2C Soft_Master
-        
+
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : I/O
@@ -89,8 +89,8 @@
 ; LED2 - P1.1
 ; P1.4  - TXD TERMINAL + DEEP_RST
 ; P1.5  - RXD TERMINAL
-; P1.0  - RTS TERMINAL     
-; P1.1  - CTS TERMINAL     
+; P1.0  - RTS TERMINAL
+; P1.1  - CTS TERMINAL
 
 LED1_OUT    .equ    P1OUT
 LED1_DIR    .equ    P1DIR
@@ -151,18 +151,15 @@ BUS_TERM    .equ    60h
 SW1_IN      .equ    P2IN
 SW1         .equ    8           ; P2.3 = S1
 
-WIPE_IN     .equ    P2IN
-IO_WIPE     .equ    8           ; P2.3 = S1 = FORTH Deep_RST pin
-
             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 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P1DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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
             BIC.B #CTS,&P1OUT   ; CTS input pulled down
         .ENDIF  ; TERMINAL5WIRES
@@ -197,7 +194,7 @@ SW2         .equ    80h         ; P2.7 = S2
 ; POWER ON RESET SYS config
 ; ----------------------------------------------------------------------
 
-; SYS code                                  
+; SYS code
 ;    BIC #1,&SYSCFG0 ; enable write program in FRAM
     MOV #0A500h,&SYSCFG0 ; enable write MAIN and INFO
 
@@ -207,138 +204,36 @@ SW2         .equ    80h         ; P2.7 = S2
 
 ; CS code for EXP430FR2433
 
-; to measure REFO frequency, output ACLK on P2.2: 
+; to measure REFO frequency, output ACLK on P2.2:
 ;    BIS.B #4,&P2SEL1
 ;    BIS.B #4,&P2DIR
 ; result : REFO = 32.69kHz
 
-; ===================================================================
-; need to adjust FLLN (and DCO) for each device of MSP430fr2xxx family ?
-; (no problem with MSP430FR5xxx families without FLL).
-; ===================================================================
-    .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
-; =====================================
-    .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
-; =====================================
+    .IFDEF LF_XTAL
+;           MOV     #0000h,&CSCTL3   ; FLL select XT1, FLLREFDIV=0 (default value)
+            MOV     #0000h,&CSCTL4  ; ACLOCK select XT1, MCLK & SMCLK select DCOCLKDIV
+            BIS.B   #03,&P2SEL0     ; P2.0 as XOUT, P2.1 as XIN
+    .ELSE
+            BIS     #0010h,&CSCTL3  ; FLL select REFCLOCK
+;            MOV     #0200h,&CSCTL4  ; ACLOCK select VLOCLK, MCLK & SMCLK select DCOCLKDIV (default value)
+    .ENDIF
+            BIC.B   #-1,&CSCTL1     ; clear DCORSEL (Set 1MHZ DCORSEL), DCOFTRIM=0, ENable MODulation to reduce EMI
+    .IF FREQUENCY = 1               ; nothing else to do
     .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.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
-; =====================================
+            BIS.B   #2,&CSCTL1      ; Set 2MHZ DCORSEL
     .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
-; =====================================
+            BIS.B   #4,&CSCTL1      ; Set 4MHZ DCORSEL
     .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
-
-; =====================================
+            BIS.B   #6,&CSCTL1      ; Set 8MHZ DCORSEL
     .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
-; =====================================
+            BIS.B   #8,&CSCTL1      ; Set 12MHZ DCORSEL
     .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
-; =====================================
+            BIS.B   #10,&CSCTL1     ; Set 16MHZ DCORSEL
     .ELSEIF
-    .error "bad frequency setting, only 0.5,1,2,4,8,12,16 MHz"
+    .error "bad frequency setting, only 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
-            BIS.B   #03,&P2SEL0     ; P2.0 as XOUT, P2.1 as XIN
-    .ELSE   
-            BIS     #0010h,&CSCTL3  ; FLL select REFCLOCK
-            MOV     #0200h,&CSCTL4  ; ACLOCK select VLOCLK, MCLK & SMCLK select DCOCLKDIV (default value)
-    .ENDIF
-
+;            MOV #INT(FREQUENCY*1000000/32768)-1,&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight lower
+            MOV #INT(FREQUENCY*1000000/32768),&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight upper
             MOV     #128,X          ; 128* 3 ms = 384 ms delay, because FLL lock time = 280 ms
 ClockWaitX  MOV     &FREQ_KHZ,Y     ;
 ClockWaitY  SUB     #1,Y            ;1
index 4017a0f..5b862e9 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for MSP_EXP430FR2433!      to change file type
 !
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
@@ -63,7 +63,7 @@
 ! MSP-EXP430FR2433 LAUNCHPAD    <--> OUTPUT WORLD
 ! ======================================================================
 !
-!                                 +--4k7-< DeepRST switch <-- GND 
+!                                 +--4k7-< DeepRST switch <-- GND
 !                                 |
 ! P1.4  - UCA0 TXD    J101.6 -  <-+-> RX  UARTtoUSB bridge
 ! P1.5  - UCA0 RXD    J101.8 -  <---- TX  UARTtoUSB bridge
 ! P2.5  - UCA1 SOMI   J2.14  -  <---- SD_SDO
 ! P2.1  -             J2.12  -  <---- SD_CD (Card Detect)
 ! P2.0  -             J2.11  -  ----> SD_CS (Card Select)
-!       
+!
 ! P1.3  - UCB0 SCL    J1.9   -  ----> SCL I2C Slave
 ! P1.2  - UCB0 SDA    J1.10  -  <---> SDA I2C Slave
-!       
+!
 ! P3.1  -             J2.13  -  ----> SCL I2C SoftMaster
 ! P3.2  -             J2.17  -  <---> SDA I2C SoftMaster
-!       
-! P2.2  - ACLK        J2.18  -  <---- TSSOP32236 (IR RC5) 
+!
+! P2.2  - ACLK        J2.18  -  <---- TSSOP32236 (IR RC5)
 
 
 
 ! ============================================
 ! FORTH I/O :
 ! ============================================
-!TERMINAL 
+!TERMINAL
 BUS_TERM=\$30!      ; P1.4 = TX, P1.5 = RX
 
 TERM_IN=\$200!
@@ -100,21 +100,21 @@ TERM_SEL=\$20A!     \SEL0
 TERM_VEC=\$FFE4!    \ UCA0
 WAKE_UP=1!          \ RX int
 
-TERM_CTLW0=\$500!   \ eUSCI_A control word 0        
-TERM_CTLW1=\$502!   \ eUSCI_A control word 1        
-TERM_BRW=\$506!         
-TERM_BR0=\$506!     \ eUSCI_A baud rate 0           
-TERM_BR1=\$507!     \ eUSCI_A baud rate 1           
-TERM_MCTLW=\$508!   \ eUSCI_A modulation control    
-TERM_STATW=\$50A!   \ eUSCI_A status                
-TERM_RXBUF=\$50C!   \ eUSCI_A receive buffer        
-TERM_TXBUF=\$50E!   \ eUSCI_A transmit buffer       
-TERM_ABCTL=\$510!   \ eUSCI_A LIN control           
-TERM_IRTCTL=\$512!  \ eUSCI_A IrDA transmit control 
-TERM_IRRCTL=\$513!  \ eUSCI_A IrDA receive control  
-TERM_IE=\$51A!      \ eUSCI_A interrupt enable      
-TERM_IFG=\$51C!     \ eUSCI_A interrupt flags       
-TERM_IV=\$51E!      \ eUSCI_A interrupt vector word 
+TERM_CTLW0=\$500!   \ eUSCI_A control word 0
+TERM_CTLW1=\$502!   \ eUSCI_A control word 1
+TERM_BRW=\$506!
+TERM_BR0=\$506!     \ eUSCI_A baud rate 0
+TERM_BR1=\$507!     \ eUSCI_A baud rate 1
+TERM_MCTLW=\$508!   \ eUSCI_A modulation control
+TERM_STATW=\$50A!   \ eUSCI_A status
+TERM_RXBUF=\$50C!   \ eUSCI_A receive buffer
+TERM_TXBUF=\$50E!   \ eUSCI_A transmit buffer
+TERM_ABCTL=\$510!   \ eUSCI_A LIN control
+TERM_IRTCTL=\$512!  \ eUSCI_A IrDA transmit control
+TERM_IRRCTL=\$513!  \ eUSCI_A IrDA receive control
+TERM_IE=\$51A!      \ eUSCI_A interrupt enable
+TERM_IFG=\$51C!     \ eUSCI_A interrupt flags
+TERM_IV=\$51E!      \ eUSCI_A interrupt vector word
 
 RTS=1!              P1.0
 CTS=2!              P1.1
@@ -133,20 +133,20 @@ LED2_DIR=\$204!
 LED2=2!             P1.1 LED2 green
 
 SW1_IN=\$201!
-SW1=8!              P2.3 = S1    
+SW1=8!              P2.3 = S1
 
 WIPE_IN=\$201!
-IO_WIPE=8!          P2.3 = S1 = FORTH Deep_RST pin    
+IO_WIPE=8!          P2.3 = S1 = FORTH Deep_RST pin
 
 SW2_IN=\$201!
 SW2=\$80!           P2.7
 
 
 !IR_RC5
-IR_IN=\$201!  
-IR_OUT=\$203! 
-IR_DIR=\$205! 
-IR_REN=\$209! 
+IR_IN=\$201!
+IR_OUT=\$203!
+IR_DIR=\$205!
+IR_REN=\$209!
 IR_IES=\$219!
 IR_IE=\$21B!
 IR_IFG=\$21D!
@@ -161,7 +161,7 @@ I2CSM_DIR=\$224!
 I2CSM_REN=\$226!
 SM_SDA=4!            P3.2
 SM_SCL=2!            P3.1
-SM_BUS=\$06!    
+SM_BUS=\$06!
 
 !I2C_Soft_Multi_Master
 I2CSMM_IN=\$220!
@@ -170,14 +170,14 @@ I2CSMM_DIR=\$224!
 I2CSMM_REN=\$226!
 SMM_SDA=4!            P3.2
 SMM_SCL=2!            P3.1
-SMM_BUS=\$06!    
+SMM_BUS=\$06!
 
 !I2C_Multi_Master
 I2CMM_IN=\$200!
 I2CMM_OUT=\$202!
 I2CMM_DIR=\$204!
 I2CMM_REN=\$206!
-I2CMM_SEL=\$20A!    SEL0   
+I2CMM_SEL=\$20A!    SEL0
 I2CMM_VEC=\$FFE0!   UCB0_VEC
 MM_SDA=\$04!         P1.2
 MM_SCL=\$08!         P1.3
@@ -218,12 +218,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$540!   USCI_B0 Control Word Register 0
 I2CM_CTLW1=\$542!   USCI_B0 Control Word Register 1
 I2CM_BRW=\$546!     USCI_B0 Baud Word Rate 0
-I2CM_STATW=\$548!   USCI_B0 status word 
-I2CM_TBCNT=\$54A!   USCI_B0 byte counter threshold  
+I2CM_STATW=\$548!   USCI_B0 status word
+I2CM_TBCNT=\$54A!   USCI_B0 byte counter threshold
 I2CM_RXBUF=\$54C!   USCI_B0 Receive Buffer 8
 I2CM_TXBUF=\$54E!   USCI_B0 Transmit Buffer 8
 I2CM_I2COA0=\$554!  USCI_B0 I2C Own Address 0
-I2CM_ADDRX=\$55C!   USCI_B0 Received Address Register 
+I2CM_ADDRX=\$55C!   USCI_B0 Received Address Register
 I2CM_I2CSA=\$560!   USCI_B0 I2C Slave Address
 I2CM_IE=\$56A!      USCI_B0 Interrupt Enable
 I2CM_IFG=\$56C!     USCI_B0 Interrupt Flags Register
@@ -231,12 +231,12 @@ I2CM_IFG=\$56C!     USCI_B0 Interrupt Flags Register
 I2CS_CTLW0=\$540!   USCI_B0 Control Word Register 0
 I2CS_CTLW1=\$542!   USCI_B0 Control Word Register 1
 I2CS_BRW=\$546!     USCI_B0 Baud Word Rate 0
-I2CS_STATW=\$548!   USCI_B0 status word 
-I2CS_TBCNT=\$54A!   USCI_B0 byte counter threshold  
+I2CS_STATW=\$548!   USCI_B0 status word
+I2CS_TBCNT=\$54A!   USCI_B0 byte counter threshold
 I2CS_RXBUF=\$54C!   USCI_B0 Receive Buffer 8
 I2CS_TXBUF=\$54E!   USCI_B0 Transmit Buffer 8
 I2CS_I2COA0=\$554!  USCI_B0 I2C Own Address 0
-I2CS_ADDRX=\$55C!   USCI_B0 Received Address Register 
+I2CS_ADDRX=\$55C!   USCI_B0 Received Address Register
 I2CS_I2CSA=\$560!   USCI_B0 I2C Slave Address
 I2CS_IE=\$56A!      USCI_B0 Interrupt Enable
 I2CS_IFG=\$56C!     USCI_B0 Interrupt Flags Register
@@ -244,7 +244,7 @@ I2CS_IFG=\$56C!     USCI_B0 Interrupt Flags Register
 CD_SD=2!        ; P2.1 as Card Detect
 SD_CDIN=\$201!
 
-CS_SD=1!        ; P2.0 as Card Select    
+CS_SD=1!        ; P2.0 as Card Select
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
index 4a2aff5..acbede8 100644 (file)
@@ -30,7 +30,7 @@
 ; P2 - P8.1 ACLK/A9
 ; P3 - P1.1 UCA0 RXD
 ; P4 - P1.0 UCA0 TXD
-; P5 - P2.7    
+; P5 - P2.7
 ; P6 - P8.0 SMCLK/A8
 ; P7 - P5.1 UCB0 CLK
 ; P8 - P2.5
 ; ---------------------------------------------------
 ; MSP  - MSP-EXP430FR4133 LAUNCHPAD <--> OUTPUT WORLD
 ; ---------------------------------------------------
-; P1.0 - LED1 red 
+; P1.0 - LED1 red
 ; P4.0 - LED2 green
 ;
 ; P1.2 - S1
-; P2.6 - S2 
-;                                 +-4k7-< DeepRST <-- GND 
+; P2.6 - S2
+;                                 +-4k7-< DeepRST <-- GND
 ;                                 |
 ; P1.0 - UCA0 TXD       J101.8  --+-> RX  UARTtoUSB bridge
 ; P1.1 - UCA0 RXD       J101.10 <---- TX  UARTtoUSB bridge
 ; P2.3 - RTS            J101.14 ----> CTS UARTtoUSB bridge (if TERMINALCTSRTS option)
 ;  VCC -                J101.16 <---- VCC (optional supply from UARTtoUSB bridge - WARNING ! 3.3V !)
 ;  GND -                J101.20 <---> GND (optional supply from UARTtoUSB bridge)
-;                     
+;
 ; P2.7 -                J1.5    <---- OUT IR_Receiver (1 TSOP32236)
-; 
-; P4.1 - LFXI 32768Hz quartz  
-; P4.2 - LFXO 32768Hz quartz  
+;
+; P4.1 - LFXI 32768Hz quartz
+; P4.2 - LFXO 32768Hz quartz
 ;
 ; P5.2 - UCB0 SDA/SIMO  J2.6    <---> SDA I2C Slave
 ; P5.3 - UCB0 SCL/SOMI  J2.7    <---- SCL I2C Slave
-;       
+;
 ; P5.1 - UCB0 CLK       J1.7    ----> orange    SD_CLK
 ; P5.2 - UCB0 SDA/SIMO  J2.6    ----> grey      SD_SDI
 ; P5.3 - UCB0 SCL/SOMI  J2.7    <---- purple    SD_SDO
 ; P8.0 -                J1.6    <---- violin    SD_CD (Card Detect)
 ; P8.1 -                J1.2    ----> brown     SD_CS (Card Select)
-;       
+;
 ; P8.2 - Soft I2C_Master J1.9   ----> SDA software I2C Master
 ; P8.3 - Soft I2C_Master J1.10  <---> SCL software I2C Master
 
@@ -179,7 +179,7 @@ RTS         .set    8           ; P2.3 bit position
 CTS         .set    10h         ; P2.4 bit position
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P2DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
@@ -203,9 +203,9 @@ SW2         .equ    40h     ; P2.6 = S2
 
 ; P4 configuration :
 ; P4.0 - LED2 green
-; P4.1 - LFXI 32768Hz quartz  
-; P4.2 - LFXO 32768Hz quartz  
-  
+; P4.1 - LFXI 32768Hz quartz
+; P4.2 - LFXO 32768Hz quartz
+
 LED2_OUT    .equ    P4OUT
 LED2_DIR    .equ    P4IN
 LED2        .equ    1           ;  P4.0 LED2 green
@@ -249,7 +249,7 @@ SD_CDIN     .equ P8IN
 SD_CSOUT    .equ P8OUT
 SD_CSDIR    .equ P8DIR
 CD_SD       .equ 1        ; P8.0
-CS_SD       .equ 2        ; P8.1    
+CS_SD       .equ 2        ; P8.1
 
 ; reset state : Px{DIR,REN,SEL0,SEL1,SELC,IE,IFG,IV} = 0 ; Px{IN,OUT,IES} = ?
 
@@ -268,7 +268,7 @@ CS_SD       .equ 2        ; P8.1
 ; ----------------------------------------------------------------------
 ; POWER ON RESET SYS config
 ; ----------------------------------------------------------------------
-; SYS code                                  
+; SYS code
 ;    BIC #1,&SYSCFG0 ; enable write program in FRAM
     MOV #0A500h,&SYSCFG0 ; enable write MAIN and INFO
 
@@ -283,126 +283,31 @@ CS_SD       .equ 2        ; P8.1
 ;    BIS.B #2,&P8DIR
 ; result : REFO = ? 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     #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
-; =====================================
-    .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
-; =====================================
-    .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.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
-; =====================================
-    .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
-; =====================================
-    .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
-
-; =====================================
-    .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
-; =====================================
-    .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
-; =====================================
-    .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
             BIS.B   #06,&P4SEL0         ; P4.2 as XOUT, P4.1 as XIN
     .ELSE
             BIS     #0010h,&CSCTL3      ; FLL select REFCLOCK
-            MOV     #0200h,&CSCTL4      ; ACLOCK select VLOCLK, MCLK & SMCLK select DCOCLKDIV (default value)
+;            MOV     #0100h,&CSCTL4      ; ACLOCK select REFO, MCLK & SMCLK select DCOCLKDIV (default value)
+    .ENDIF
+            BIC.B   #-1,&CSCTL1     ; clear DCORSEL (Set 1MHZ DCORSEL), DCOFTRIM=0, ENable MODulation to reduce EMI
+    .IF FREQUENCY = 1               ; nothing else to do
+    .ELSEIF FREQUENCY = 2
+            BIS.B   #2,&CSCTL1      ; Set 2MHZ DCORSEL
+    .ELSEIF FREQUENCY = 4
+            BIS.B   #4,&CSCTL1      ; Set 4MHZ DCORSEL
+    .ELSEIF FREQUENCY = 8
+            BIS.B   #6,&CSCTL1      ; Set 8MHZ DCORSEL
+    .ELSEIF FREQUENCY = 12
+            BIS.B   #8,&CSCTL1      ; Set 12MHZ DCORSEL
+    .ELSEIF FREQUENCY = 16
+            BIS.B   #10,&CSCTL1     ; Set 16MHZ DCORSEL
+    .ELSEIF
+    .error "bad frequency setting, only 1,2,4,8,12,16 MHz"
     .ENDIF
+;            MOV #INT(FREQUENCY*1000000/32768)-1,&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight lower
+            MOV #INT(FREQUENCY*1000000/32768),&CSCTL2; set FLLD=0 (DCOCLKCDIV=DCO),set FLLN for frequency slight upper
             MOV     #64,X               ; 64* 3 ms = 192 ms delay, because FLL lock time = 120 ms
 ClockWaitX  MOV     &FREQ_KHZ,Y         ;
 ClockWaitY  SUB     #1,Y                ;1
index 9335c25..db0a3c3 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for MSP_EXP430FR4133!      to change file type
 !
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
@@ -37,7 +37,7 @@
 ! P2 - P8.1 ACLK/A9
 ! P3 - P1.1 UCA0 RXD
 ! P4 - P1.0 UCA0 TXD
-! P5 - P2.7    
+! P5 - P2.7
 ! P6 - P8.0 SMCLK/A8
 ! P7 - P5.1 UCB0 CLK
 ! P8 - P2.5
 ! MSP  - MSP-EXP430FR4133 LAUNCHPAD <--> OUTPUT WORLD
 ! ---------------------------------------------------
 !
-!                                 +-4k7-< DeepRST <-- GND 
+!                                 +-4k7-< DeepRST <-- GND
 !                                 |
 ! P1.0 - UCA0 TXD       J101.8  --+-> RX  UARTtoUSB bridge
 ! P1.1 - UCA0 RXD       J101.10 <---- TX  UARTtoUSB bridge
 !  VCC -                J101.16 <---- VCC (optional supply from UARTtoUSB bridge - WARNING ! 3.3V !)
 !  GND -                J101.20 <---> GND (optional supply from UARTtoUSB bridge)
 !
-! P1.0 - STRAP JP1 MUST BE REMOVED     (LED red) 
+! P1.0 - STRAP JP1 MUST BE REMOVED     (LED red)
 !        =========================
 !
 ! P4.0 - LED green
 !
 ! P1.2 - Switch SW1              <--- LCD contrast + (finger :-)
-! P2.6 - Switch SW2              <--- LCD contrast - (finger ;-) 
+! P2.6 - Switch SW2              <--- LCD contrast - (finger ;-)
+!
 !
-!                                   
 !  GND -                 J2.1   <-------+---0V0---------->  1 LCD_Vss
 !  VCC -                 J1.1   >------ | --3V6-----+---->  2 LCD_Vdd
 !                                       |           |
 ! P5.1 -                 J1.7   <------------------------> 12 LCD_DB5
 ! P5.2 -                 J2.15  <------------------------> 13 LCD_DB5
 ! P5.3 -                 J2.14  <------------------------> 14 LCD_DB7
-!        
-!                     
+!
+!
 ! P1.7 -                J2.19   <---- OUT IR_Receiver (1 TSOP32236)
-! 
-! P4.1 - LFXIN  32768Hz quartz  
-! P4.2 - LFXOUT 32768Hz quartz  
-! 
+!
+! P4.1 - LFXIN  32768Hz quartz
+! P4.2 - LFXOUT 32768Hz quartz
+!
 !  VCC -                J1.1    ----> VCC SD_CardAdapter
 !  GND -                J2.1    <---> GND SD_CardAdapter
-! P5.1 -  UCB0 CLK      J1.7    ----> CLK SD_CardAdapter (SCK)  
+! P5.1 -  UCB0 CLK      J1.7    ----> CLK SD_CardAdapter (SCK)
 ! P8.1 -                J1.2    ----> CS  SD_CardAdapter (Card Select)
 ! P5.2 -  UCB0 TXD/SIMO J2.15   ----> SDI SD_CardAdapter (MOSI)
 ! P5.3 -  UCB0 RXD/SOMI J2.14   <---- SDO SD_CardAdapter (MISO)
 ! P8.0 -                J1.6    <---- CD  SD_CardAdapter (Card Detect)
 !
 !
-!       
+!
 ! P8.2 - Soft I2C_Master J1.9   ----> SDA software I2C Master
 ! P8.3 - Soft I2C_Master J1.10  <---> SCL software I2C Master
 
 ! ============================================
 ! FORTH I/O :
 ! ============================================
-!TERMINAL 
+!TERMINAL
 BUS_TERM=3!         ; P1.0 = TX, P1.1 = RX
 
 TERM_IN=\$200!
@@ -184,21 +184,21 @@ TERM_SEL=\$20A!     \ SEL0
 TERM_VEC=\$FFEC!    \ UCA0
 WAKE_UP=1!          \ RX int
 
-TERM_CTLW0=\$500!    \ eUSCI_A control word 0        
-TERM_CTLW1=\$502!    \ eUSCI_A control word 1        
-TERM_BRW=\$506!         
-TERM_BR0=\$506!      \ eUSCI_A baud rate 0           
-TERM_BR1=\$507!      \ eUSCI_A baud rate 1           
-TERM_MCTLW=\$508!    \ eUSCI_A modulation control    
-TERM_STATW=\$50A!     \ eUSCI_A status                
-TERM_RXBUF=\$50C!    \ eUSCI_A receive buffer        
-TERM_TXBUF=\$50E!    \ eUSCI_A transmit buffer       
-TERM_ABCTL=\$510!    \ eUSCI_A LIN control           
-TERM_IRTCTL=\$512!   \ eUSCI_A IrDA transmit control 
-TERM_IRRCTL=\$513!   \ eUSCI_A IrDA receive control  
-TERM_IE=\$51A!       \ eUSCI_A interrupt enable      
-TERM_IFG=\$51C!      \ eUSCI_A interrupt flags       
-TERM_IV=\$51E!       \ eUSCI_A interrupt vector word 
+TERM_CTLW0=\$500!    \ eUSCI_A control word 0
+TERM_CTLW1=\$502!    \ eUSCI_A control word 1
+TERM_BRW=\$506!
+TERM_BR0=\$506!      \ eUSCI_A baud rate 0
+TERM_BR1=\$507!      \ eUSCI_A baud rate 1
+TERM_MCTLW=\$508!    \ eUSCI_A modulation control
+TERM_STATW=\$50A!     \ eUSCI_A status
+TERM_RXBUF=\$50C!    \ eUSCI_A receive buffer
+TERM_TXBUF=\$50E!    \ eUSCI_A transmit buffer
+TERM_ABCTL=\$510!    \ eUSCI_A LIN control
+TERM_IRTCTL=\$512!   \ eUSCI_A IrDA transmit control
+TERM_IRRCTL=\$513!   \ eUSCI_A IrDA receive control
+TERM_IE=\$51A!       \ eUSCI_A interrupt enable
+TERM_IFG=\$51C!      \ eUSCI_A interrupt flags
+TERM_IV=\$51E!       \ eUSCI_A interrupt vector word
 
 RTS=8!              ; P2.3
 CTS=\$10!           ; P2.4
@@ -262,10 +262,10 @@ LCD_DB=\$0F!        P5.0-3 LCD_DATA_BUS
 
 !IR_RC5 input
 !------------
-IR_IN=\$200!  
-IR_OUT=\$202! 
-IR_DIR=\$204! 
-IR_REN=\$206! 
+IR_IN=\$200!
+IR_OUT=\$202!
+IR_DIR=\$204!
+IR_REN=\$206!
 IR_IES=\$218!
 IR_IE=\$21A!
 IR_IFG=\$21C!
@@ -340,12 +340,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$540!   USCI_B0 Control Word Register 0
 I2CM_CTLW1=\$542!   USCI_B0 Control Word Register 1
 I2CM_BRW=\$546!     USCI_B0 Baud Word Rate 0
-I2CM_STATW=\$548!   USCI_B0 status word 
-I2CM_TBCNT=\$54A!   USCI_B0 byte counter threshold  
+I2CM_STATW=\$548!   USCI_B0 status word
+I2CM_TBCNT=\$54A!   USCI_B0 byte counter threshold
 I2CM_RXBUF=\$54C!   USCI_B0 Receive Buffer 8
 I2CM_TXBUF=\$54E!   USCI_B0 Transmit Buffer 8
 I2CM_I2COA0=\$554!  USCI_B0 I2C Own Address 0
-I2CM_ADDRX=\$55C!   USCI_B0 Received Address Register 
+I2CM_ADDRX=\$55C!   USCI_B0 Received Address Register
 I2CM_I2CSA=\$560!   USCI_B0 I2C Slave Address
 I2CM_IE=\$56A!      USCI_B0 Interrupt Enable
 I2CM_IFG=\$56C!     USCI_B0 Interrupt Flags Register
@@ -353,18 +353,18 @@ I2CM_IFG=\$56C!     USCI_B0 Interrupt Flags Register
 I2CS_CTLW0=\$540!   USCI_B0 Control Word Register 0
 I2CS_CTLW1=\$542!   USCI_B0 Control Word Register 1
 I2CS_BRW=\$546!     USCI_B0 Baud Word Rate 0
-I2CS_STATW=\$548!   USCI_B0 status word 
-I2CS_TBCNT=\$54A!   USCI_B0 byte counter threshold  
+I2CS_STATW=\$548!   USCI_B0 status word
+I2CS_TBCNT=\$54A!   USCI_B0 byte counter threshold
 I2CS_RXBUF=\$54C!   USCI_B0 Receive Buffer 8
 I2CS_TXBUF=\$54E!   USCI_B0 Transmit Buffer 8
 I2CS_I2COA0=\$554!  USCI_B0 I2C Own Address 0
-I2CS_ADDRX=\$55C!   USCI_B0 Received Address Register 
+I2CS_ADDRX=\$55C!   USCI_B0 Received Address Register
 I2CS_I2CSA=\$560!   USCI_B0 I2C Slave Address
 I2CS_IE=\$56A!      USCI_B0 Interrupt Enable
 I2CS_IFG=\$56C!     USCI_B0 Interrupt Flags Register
 
 
-CD_SD=2!        ; P8.1 as Card Detect     
+CD_SD=2!        ; P8.1 as Card Detect
 SD_CDIN=\$261!
 
 CS_SD=1!        ; P8.0 as Card Select
index 586e67a..475ea35 100644 (file)
@@ -1,7 +1,7 @@
 ; -*- coding: utf-8 -*-
 
 ; ----------------------------------------------------------------------
-; MSP_EXP430FR739.asm 
+; MSP_EXP430FR739.asm
 ; ----------------------------------------------------------------------
 ; ----------------------------------------------------------------------
 ; MSP430FR57xx BOOTSTRAP
@@ -12,7 +12,7 @@
 ; Buffer size for Core Commands : 260 bytes
 ; Notable Information
 ; 1. TX and RX pins are noted in the device data sheet
-; 2. A mass erase command or incorrect password triggers a BSL reset. 
+; 2. A mass erase command or incorrect password triggers a BSL reset.
 ;    This resets the BSL state to the default settings (9600 baud, password locked)
 ; Known Bugs
 ; 1. The baud rate of 115k cannot be ensured across all clock, voltage, and temperature variations
 ;
 ; P4.0 - Switch S1              <--- LCD contrast + (finger :-)
 ; P4.1 - Switch S2              <--- LCD contrast - (finger :-)
-;                                   
+;
 ;  GND                          <-------+---0V0---------->  1 LCD_Vss
 ;  VCC                          >------ | --3V6-----+---->  2 LCD_Vdd
 ;                                       |           |
 ; P1.2 -                 SV1.3  <------------------------> 13 LCD_DB5
 ; P1.3 -                 SV1.8  <------------------------> 14 LCD_DB7
 ;
-; PJ.4 - LFXI 32768Hz quartz  
-; PJ.5 - LFXO 32768Hz quartz  
-; PJ.6 - HFXI 
-; PJ.7 - HFXO 
-;                                 +--4k7-< DeepRST <-- GND 
+; PJ.4 - LFXI 32768Hz quartz
+; PJ.5 - LFXO 32768Hz quartz
+; PJ.6 - HFXI
+; PJ.7 - HFXO
+;                                 +--4k7-< DeepRST <-- GND
 ;                                 |
 ; P2.0 -  UCA0 TXD       SV2.11 --+-> RX  UARTtoUSB bridge
 ; P2.1 -  UCA0 RXD       SV2.8  <---- TX  UARTtoUSB bridge
 ;  VCC -                        <---- VCC (optional supply from UARTtoUSB bridge - WARNING ! 3.3V !)
 ;  GND -                        <---> GND (optional supply from UARTtoUSB bridge)
-;        
+;
 ; ---------------------------------------------------------------------------
 ; SD_CardAdapter not compatible with HARDWARE flow control for FORTH TERMINAL
 ; ---------------------------------------------------------------------------
-; VCC  -                 RF.2 
-; VSS  -                 RF.1 
+; VCC  -                 RF.2
+; VSS  -                 RF.1
 ; P2.2 -                 RF.16  <---- CD  SD_CardAdapter (Card Detect) / RTS
 ; P2.3 -                 RF.10  ----> CS  SD_CardAdapter (Card Select) / CTS
-; P2.4 - UCA1 CLK        RF.14  ----> CLK SD_CardAdapter (SCK)  
+; P2.4 - UCA1 CLK        RF.14  ----> CLK SD_CardAdapter (SCK)
 ; P2.5 - UCA1 TXD/SIMO   RF.7   ----> SDI SD_CardAdapter (MOSI)
 ; P2.6 - UCA1 RXD/SOMI   RF.5   <---- SDO SD_CardAdapter (MISO)
 ;
@@ -199,14 +199,14 @@ SD_CDIN     .equ    P2IN
 SD_CSOUT    .equ    P2OUT
 SD_CSDIR    .equ    P2DIR
 CD_SD       .equ    4          ; P2.2
-CS_SD       .equ    8          ; P2.3   
+CS_SD       .equ    8          ; P2.3
 
 HANDSHAKOUT .equ    P2OUT
 HANDSHAKIN  .equ    P2IN
 RTS         .equ    4           ; P2.2
 CTS         .equ    8           ; P2.3
 
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
 
 ; P2.7 is used to power the accelerometer and NTC voltage divider ==> output low = power OFF
@@ -215,11 +215,11 @@ CTS         .equ    8           ; P2.3
     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 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P2DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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
             BIC.B #CTS,&P2OUT   ; CTS input pulled down
         .ENDIF  ; TERMINAL5WIRES
@@ -244,9 +244,6 @@ CTS         .equ    8           ; P2.3
 SW1_IN      .equ P4IN
 SW1         .equ 1          ; P4.0 = S1
 
-WIPE_IN     .equ    P4IN
-IO_WIPE     .equ    1       ; P4.0 = S1 = FORTH Deep_RST pin
-
 SW2_IN      .equ P4IN
 SW2         .equ 2          ; P4.1 = S2
 
index d50a3a9..0a8992c 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for MSP_EXP430FR5739!      to change file type
 
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
@@ -95,7 +95,7 @@
 !
 ! P4.0 - Switch S1              <--- LCD contrast + (finger :-)
 ! P4.1 - Switch S2              <--- LCD contrast - (finger :-)
-!                                   
+!
 !  GND                          <-------+---0V0---------->  1 LCD_Vss
 !  VCC                          >------ | --3V6-----+---->  2 LCD_Vdd
 !                                       |           |
 ! P1.2 -                 SV1.3  <------------------------> 13 LCD_DB5
 ! P1.3 -                 SV1.8  <------------------------> 14 LCD_DB7
 !
-! PJ.4 - LFXI 32768Hz quartz  
-! PJ.5 - LFXO 32768Hz quartz  
-! PJ.6 - HFXI 
-! PJ.7 - HFXO 
-!                                 +--4k7-< DeepRST <-- GND 
+! PJ.4 - LFXI 32768Hz quartz
+! PJ.5 - LFXO 32768Hz quartz
+! PJ.6 - HFXI
+! PJ.7 - HFXO
+!                                 +--4k7-< DeepRST <-- GND
 !                                 |
 ! P2.0 -  UCA0 TXD       SV2.11 --+-> RX  UARTtoUSB bridge
 ! P2.1 -  UCA0 RXD       SV2.8  <---- TX  UARTtoUSB bridge
 !  VCC -                        <---- VCC (optional supply from UARTtoUSB bridge - WARNING ! 3.3V !)
 !  GND -                        <---> GND (optional supply from UARTtoUSB bridge)
-!        
-! VCC  -                 RF.2 
-! VSS  -                 RF.1 
+!
+! VCC  -                 RF.2
+! VSS  -                 RF.1
 ! P2.2 -                 RF.16  <---- CD  SD_CardAdapter (Card Detect)
 ! P2.3 -                 RF.10  ----> CS  SD_CardAdapter (Card Select)
-! P2.4 - UCA1 CLK        RF.14  ----> CLK SD_CardAdapter (SCK)  
+! P2.4 - UCA1 CLK        RF.14  ----> CLK SD_CardAdapter (SCK)
 ! P2.5 - UCA1 TXD/SIMO   RF.7   ----> SDI SD_CardAdapter (MOSI)
 ! P2.6 - UCA1 RXD/SOMI   RF.5   <---- SDO SD_CardAdapter (MISO)
 !
 ! ============================================
 ! FORTH I/O :
 ! ============================================
-!TERMINAL 
+!TERMINAL
 BUS_TERM=3!         \ P2.0 = TX, P2.1 = RX
 
 TERM_IN=\$201!
@@ -222,10 +222,10 @@ WDT_TIM_CCR0=\$352!     TA0CCR0
 WDT_TIM_EX0=\$360!      TA0EX0
 WDT_TIM_0_VEC=\$FFEA!     TA0_0_VEC
 
-IR_IN=\$201!  
-IR_OUT=\$203! 
-IR_DIR=\$205! 
-IR_REN=\$207! 
+IR_IN=\$201!
+IR_OUT=\$203!
+IR_DIR=\$205!
+IR_REN=\$207!
 IR_IES=\$219!
 IR_IE=\$21B!
 IR_IFG=\$21D!
@@ -307,12 +307,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$640!   USCI_B0 Control Word Register 0
 I2CM_CTLW1=\$642!   USCI_B0 Control Word Register 1
 I2CM_BRW=\$646!     USCI_B0 Baud Word Rate 0
-I2CM_STATW=\$648!   USCI_B0 status word 
-I2CM_TBCNT=\$64A!   USCI_B0 byte counter threshold  
+I2CM_STATW=\$648!   USCI_B0 status word
+I2CM_TBCNT=\$64A!   USCI_B0 byte counter threshold
 I2CM_RXBUF=\$64C!   USCI_B0 Receive Buffer 8
 I2CM_TXBUF=\$64E!   USCI_B0 Transmit Buffer 8
 I2CM_I2COA0=\$654!  USCI_B0 I2C Own Address 0
-I2CM_ADDRX=\$65C!   USCI_B0 Received Address Register 
+I2CM_ADDRX=\$65C!   USCI_B0 Received Address Register
 I2CM_I2CSA=\$660!   USCI_B0 I2C Slave Address
 I2CM_IE=\$66A!      USCI_B0 Interrupt Enable
 I2CM_IFG=\$66C!     USCI_B0 Interrupt Flags Register
@@ -320,12 +320,12 @@ I2CM_IFG=\$66C!     USCI_B0 Interrupt Flags Register
 I2CS_CTLW0=\$640!   USCI_B0 Control Word Register 0
 I2CS_CTLW1=\$642!   USCI_B0 Control Word Register 1
 I2CS_BRW=\$646!     USCI_B0 Baud Word Rate 0
-I2CS_STATW=\$648!   USCI_B0 status word 
-I2CS_TBCNT=\$64A!   USCI_B0 byte counter threshold  
+I2CS_STATW=\$648!   USCI_B0 status word
+I2CS_TBCNT=\$64A!   USCI_B0 byte counter threshold
 I2CS_RXBUF=\$64C!   USCI_B0 Receive Buffer 8
 I2CS_TXBUF=\$64E!   USCI_B0 Transmit Buffer 8
 I2CS_I2COA0=\$654!  USCI_B0 I2C Own Address 0
-I2CS_ADDRX=\$65C!   USCI_B0 Received Address Register 
+I2CS_ADDRX=\$65C!   USCI_B0 Received Address Register
 I2CS_I2CSA=\$660!   USCI_B0 I2C Slave Address
 I2CS_IE=\$66A!      USCI_B0 Interrupt Enable
 I2CS_IFG=\$66C!     USCI_B0 Interrupt Flags Register
@@ -334,7 +334,7 @@ I2CS_IFG=\$66C!     USCI_B0 Interrupt Flags Register
 CD_SD=4!                P2.2 as Card Detect
 SD_CDIN=\$201!
 
-CS_SD=8!                P2.3 as Card Select     
+CS_SD=8!                P2.3 as Card Select
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
index 2d09033..98f39b3 100644 (file)
 
 ; P4.5 - Switch S1              <--- LCD contrast + (finger :-)
 ; P1.1 - Switch S2              <--- LCD contrast - (finger ;-)
-                                    
+
 ;  GND -                 J1.2   <-------+---0V0---------->  1 LCD_Vss
 ;  VCC -                 J1.3   >------ | --3V6-----+---->  2 LCD_Vdd
 ;                                       |           |
 ; 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 
+
+;                                 +--4k7-< DeepRST <-- GND
 ;                                 |
 ; 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)  
+; P2.4 - UCA1 CLK        J4.6   ----> CLK  SD_CardAdapter (SCK)
 ; 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 use is not compatible with core option "TERMINAL5WIRES"
 ; P4.0 -                 J3.10  <---- OUT  IR_Receiver (1 TSOP32236) ───┐
 ;                                                                       └┌───┐
 ; P1.6 - UCB0 SDA/SIMO   J5.15  <---> SDA  I2C MASTER/SLAVE
 ; P3.0 -                 J5.7   <---- free
 
-; PJ.4 - LFXI 32768Hz quartz  
-; PJ.5 - LFXO 32768Hz quartz  
-; PJ.6 - HFXI 
-; PJ.7 - HFXO 
-  
+; PJ.4 - LFXI 32768Hz quartz
+; PJ.5 - LFXO 32768Hz quartz
+; PJ.6 - HFXI
+; PJ.7 - HFXO
+
 ; P2.3 - NC
 ; P2.7 - NC
 ; P3.1 - NC
@@ -209,8 +209,8 @@ BUS_TERM    .equ    0C0h
     .ENDIF
 
     .IFDEF UCA0_TERM
-; P2.0  UCA0-TXD    --> USB2UART RXD    
-; P2.1  UCA0-RXD    <-- USB2UART TXD 
+; P2.0  UCA0-TXD    --> USB2UART RXD
+; P2.1  UCA0-RXD    <-- USB2UART TXD
 TERM_IN     .equ P2IN
 TERM_SEL    .equ P2SEL1
 TERM_REN    .equ P2REN
@@ -245,14 +245,11 @@ SD_CDIN     .equ    P4IN
 SD_CSOUT    .equ    P4OUT
 SD_CSDIR    .equ    P4DIR
 CD_SD       .equ    4       ; P4.2 as Card Detect
-CS_SD       .equ    8       ; P4.3 as Chip Select    
+CS_SD       .equ    8       ; P4.3 as Chip Select
 
 SW1_IN      .equ    P4IN
 SW1         .equ    20h     ; P4.5 = S1
 
-WIPE_IN     .equ    P4IN
-IO_WIPE     .equ    20h     ; P4.5 = S1 = FORTH Deep_RST pin
-
 LED1_OUT    .equ    P4OUT
 LED1_DIR    .equ    P4DIR
 LED1        .equ    40h     ;  P4.6 LED1 red
@@ -261,11 +258,11 @@ LED1        .equ    40h     ;  P4.6 LED1 red
             MOV #0BFFFh,&PBOUT  ; all pins as input with pull up resistor else P4.6
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P4DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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
             BIC.B #CTS,&P4OUT   ; CTS input pulled down
         .ENDIF  ; TERMINAL5WIRES
index b9a15e2..90f53ba 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for MSP_EXP430FR5969!      to change file type
 !
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
@@ -41,7 +41,7 @@
 ! P2 - P4.2
 ! P3 - P2.6 UCA1 RX/SOMI
 ! P4 - P2.5 UCA1 TX/SIMO
-! P5 - P4.3             
+! P5 - P4.3
 ! P6 - P2.4 UCA1     CLK
 ! P7 - P2.2 TB0.2 UCB0CLK
 ! P8 - P3.4
@@ -70,7 +70,7 @@
 ! P9    P10    RX0     P2.1 (no strap)
 ! P11   P12    CTS     P4.0 (no strap)
 ! P13   P14    RTS     P4.1 (no strap)
-! P15<->P16     V+ <-> VCC 
+! P15<->P16     V+ <-> VCC
 ! P17   P18     5V          (no strap)
 ! P19---P20    GND-----VSS
 
 
 ! J13 jumpers : device <-> eZ-FET
 ! -------------------------------
-!  P2   P1          NC     NC  
+!  P2   P1          NC     NC
 !  P4<->P3        TEST <-> TEST
-!  P6<->P5         RST <-> RST 
+!  P6<->P5         RST <-> RST
 !  P8   P7        P2.0     TX0  (no jumper)
 ! P10   P9        P2.1     RX0  (no jumper)
 ! P12   P11       P4.0     CTS  (no jumper)
 ! P14   P13       P4.1     RTS  (no jumper)
-! P16<->P15        VCC <-> V+  
+! P16<->P15        VCC <-> V+
 ! P18   P17         5V     5V   (no jumper)
-! P20---P19        VSS-----GND  
+! P20---P19        VSS-----GND
 
 ! P4.6 - J6 - LED1 red
 ! P1.0 - LED2 green
 !
 ! P4.5 - Switch S1              <--- LCD contrast + (finger :-)
 ! P1.1 - Switch S2              <--- LCD contrast - (finger ;-)
-!                                   
+!
 !  GND -                 J1.2   <-------+---0V0---------->  1 LCD_Vss
 !  VCC -                 J1.3   >------ | --3V6-----+---->  2 LCD_Vdd
 !                                       |           |
 ! PJ.1 -                 J3.3   <------------------------> 12 LCD_DB5
 ! PJ.2 -                 J3.5   <------------------------> 13 LCD_DB6
 ! PJ.3 -                 J3.7   <------------------------> 14 LCD_DB7
-!        
-!                                 +--4k7-< DeepRST <-- GND 
+!
+!                                 +--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)
 !  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)  
+! 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)
 ! P1.6 - UCB0 SDA/SIMO   J5.15  <---> SDA  I2C MASTER/SLAVE
 ! P3.0 -                 J5.7   <---- free
 !
-! PJ.4 - LFXI 32768Hz quartz  
-! PJ.5 - LFXO 32768Hz quartz  
-! PJ.6 - HFXI 
-! PJ.7 - HFXO 
-! 
+! PJ.4 - LFXI 32768Hz quartz
+! PJ.5 - LFXO 32768Hz quartz
+! PJ.6 - HFXI
+! PJ.7 - HFXO
+!
 ! P2.3 - NC
 ! P2.7 - NC
 ! P3.1 - NC
 ! ============================================
 ! FORTH I/O :
 ! ============================================
-!TERMINAL 
+!TERMINAL
 BUS_TERM=3!         \ P2.0 = TX, P2.1 = RX
 
 TERM_IN=\$201!
@@ -189,21 +189,21 @@ TERM_SEL=\$20D!
 TERM_VEC=\$FFF0!    \ UCA0
 WAKE_UP=1!          \ RX int
 
-TERM_CTLW0=\$5C0!    \ eUSCI_A control word 0        
-TERM_CTLW1=\$5C2!    \ eUSCI_A control word 1        
-TERM_BRW=\$5C6!         
-TERM_BR0=\$5C6!      \ eUSCI_A baud rate 0           
-TERM_BR1=\$5C7!      \ eUSCI_A baud rate 1           
-TERM_MCTLW=\$5C8!    \ eUSCI_A modulation control    
-TERM_STAT=\$5CA!     \ eUSCI_A status                
-TERM_RXBUF=\$5CC!    \ eUSCI_A receive buffer        
-TERM_TXBUF=\$5CE!    \ eUSCI_A transmit buffer       
-TERM_ABCTL=\$5D0!    \ eUSCI_A LIN control           
-TERM_IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control 
-TERM_IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control  
-TERM_IE=\$5DA!       \ eUSCI_A interrupt enable      
-TERM_IFG=\$5DC!      \ eUSCI_A interrupt flags       
-TERM_IV=\$5DE!       \ eUSCI_A interrupt vector word 
+TERM_CTLW0=\$5C0!    \ eUSCI_A control word 0
+TERM_CTLW1=\$5C2!    \ eUSCI_A control word 1
+TERM_BRW=\$5C6!
+TERM_BR0=\$5C6!      \ eUSCI_A baud rate 0
+TERM_BR1=\$5C7!      \ eUSCI_A baud rate 1
+TERM_MCTLW=\$5C8!    \ eUSCI_A modulation control
+TERM_STAT=\$5CA!     \ eUSCI_A status
+TERM_RXBUF=\$5CC!    \ eUSCI_A receive buffer
+TERM_TXBUF=\$5CE!    \ eUSCI_A transmit buffer
+TERM_ABCTL=\$5D0!    \ eUSCI_A LIN control
+TERM_IRTCTL=\$5D2!   \ eUSCI_A IrDA transmit control
+TERM_IRRCTL=\$5D3!   \ eUSCI_A IrDA receive control
+TERM_IE=\$5DA!       \ eUSCI_A interrupt enable
+TERM_IFG=\$5DC!      \ eUSCI_A interrupt flags
+TERM_IV=\$5DE!       \ eUSCI_A interrupt vector word
 
 RTS=2!              ; P4.1
 CTS=1!              ; P4.0
@@ -213,7 +213,7 @@ HANDSHAKOUT=\$223!
 CD_SD=4!            P4.2 as Card Detect
 SD_CDIN=\$221!
 
-CS_SD=8!            P4.3 as Card Select     
+CS_SD=8!            P4.3 as Card Select
 SD_CSOUT=\$223!
 SD_CSDIR=\$225!
 
@@ -237,10 +237,10 @@ LED2=\$01!          P1.0
 
 ! init state : input with pullup resistor
 SW1_IN=\$221
-SW1=\$20!           P4.5 = S1 
+SW1=\$20!           P4.5 = S1
 
 WIPE_IN=\$221
-IO_WIPE=\$20!       P4.5 = S1 = FORTH Deep_RST pin  
+IO_WIPE=\$20!       P4.5 = S1 = FORTH Deep_RST pin
 
 ! init state : input with pullup resistor
 SW2_IN=\$200
@@ -353,12 +353,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$640!   USCI_B0 Control Word Register 0
 I2CM_CTLW1=\$642!   USCI_B0 Control Word Register 1
 I2CM_BRW=\$646!     USCI_B0 Baud Word Rate 0
-I2CM_STATW=\$648!   USCI_B0 status word 
-I2CM_TBCNT=\$64A!   USCI_B0 byte counter threshold  
+I2CM_STATW=\$648!   USCI_B0 status word
+I2CM_TBCNT=\$64A!   USCI_B0 byte counter threshold
 I2CM_RXBUF=\$64C!   USCI_B0 Receive Buffer 8
 I2CM_TXBUF=\$64E!   USCI_B0 Transmit Buffer 8
 I2CM_I2COA0=\$654!  USCI_B0 I2C Own Address 0
-I2CM_ADDRX=\$65C!   USCI_B0 Received Address Register 
+I2CM_ADDRX=\$65C!   USCI_B0 Received Address Register
 I2CM_I2CSA=\$660!   USCI_B0 I2C Slave Address
 I2CM_IE=\$66A!      USCI_B0 Interrupt Enable
 I2CM_IFG=\$66C!     USCI_B0 Interrupt Flags Register
@@ -366,12 +366,12 @@ I2CM_IFG=\$66C!     USCI_B0 Interrupt Flags Register
 I2CS_CTLW0=\$640!   USCI_B0 Control Word Register 0
 I2CS_CTLW1=\$642!   USCI_B0 Control Word Register 1
 I2CS_BRW=\$646!     USCI_B0 Baud Word Rate 0
-I2CS_STATW=\$648!   USCI_B0 status word 
-I2CS_TBCNT=\$64A!   USCI_B0 byte counter threshold  
+I2CS_STATW=\$648!   USCI_B0 status word
+I2CS_TBCNT=\$64A!   USCI_B0 byte counter threshold
 I2CS_RXBUF=\$64C!   USCI_B0 Receive Buffer 8
 I2CS_TXBUF=\$64E!   USCI_B0 Transmit Buffer 8
 I2CS_I2COA0=\$654!  USCI_B0 I2C Own Address 0
-I2CS_ADDRX=\$65C!   USCI_B0 Received Address Register 
+I2CS_ADDRX=\$65C!   USCI_B0 Received Address Register
 I2CS_I2CSA=\$660!   USCI_B0 I2C Slave Address
 I2CS_IE=\$66A!      USCI_B0 Interrupt Enable
 I2CS_IFG=\$66C!     USCI_B0 Interrupt Flags Register
index 8bdf083..c5e7f4e 100644 (file)
@@ -30,7 +30,7 @@
 ; P2 - P9.2 ESICH2
 ; P3 - P4.3 UCA0 RXD
 ; P4 - P4.2 UCA0 TXD
-; P5 - P3.2 UCB1 SCL    
+; P5 - P3.2 UCB1 SCL
 ; P6 - P9.3 ESICH3
 ; P7 - P1.4 UCB0 CLK
 ; P8 - P2.0 TB0.6
 
 ; P1.1 - Switch S1              <--- LCD contrast + (finger :-)
 ; P1.2 - Switch S2              <--- LCD contrast - (finger ;-)
-                                    
+
 ;  GND                          <-------+---0V0---------->  1 LCD_Vss
 ;  VCC                          >------ | --3V3-----+---->  2 LCD_Vdd
 ;                                       |           |
 ; P9.5/A13/C13                  ------------------------->  5 LCD_R/W
 ; P9.6/A14/C14                  ------------------------->  6 LCD_EN
 
-;                                 +--4k7-< DeepRST <-- GND 
+;                                 +--4k7-< DeepRST <-- GND
 ;                                 |
 ; P3.4 - UCA1 TXD               <-+-> RX  UARTtoUSB bridge
 ; P3.5 - UCA1 RXD               <---- TX  UARTtoUSB bridge
 
 ;  VCC -                        ----> VCC SD_CardAdapter
 ;  GND -                        <---> GND SD_CardAdapter
-; P2.2 -  UCA0 CLK              ----> CLK SD_CardAdapter (SCK)  
+; P2.2 -  UCA0 CLK              ----> CLK SD_CardAdapter (SCK)
 ; P2.6 -                        ----> CS  SD_CardAdapter (Card Select)
 ; P2.0 -  UCA0 TXD/SIMO         ----> SDI SD_CardAdapter (MOSI)
 ; P2.1 -  UCA0 RXD/SOMI         <---- SDO SD_CardAdapter (MISO)
 ; P3.2 -UCB1 SCL/SOMI           ----> free
 ; P3.3 -         TA1.1          <---> free
 
-; PJ.4 - LFXI 32768Hz quartz  
-; PJ.5 - LFXO 32768Hz quartz  
-; PJ.6 - HFXI 
-; PJ.7 - HFXO 
-  
+; PJ.4 - LFXI 32768Hz quartz
+; PJ.5 - LFXO 32768Hz quartz
+; PJ.6 - HFXI
+; PJ.7 - HFXO
+
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : I/O
@@ -215,7 +215,7 @@ BUS_TERM    .equ    0C0h
 SD_CDIN     .equ P2IN
 SD_CSOUT    .equ P2OUT
 SD_CSDIR    .equ P2DIR
-CS_SD       .equ 40h    ; P2.6 Chip Select  
+CS_SD       .equ 40h    ; P2.6 Chip Select
 CD_SD       .equ 80h    ; P2.7 Card Detect
 
 ; PORTx default wanted state : pins as input with pullup resistor
@@ -256,11 +256,11 @@ BUS_TERM    .equ    30h    ; P3.5 = RX
             MOV #-1,&PBOUT  ; all pins as input with resistor
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P3DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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
             BIC.B #CTS,&P3OUT   ; CTS input pulled down
         .ENDIF  ; TERMINAL5WIRES
@@ -313,7 +313,7 @@ LED2        .equ    80h        ;  P9.7 LED2 green
 
 
 ; PORT10 usage
-    
+
 ; PORTx default wanted state : pins as input with pullup resistor
 
             MOV.B   #-1,&P9REN  ; all pins with pull resistors else P9.7
index 684fddd..b0e85bb 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for MSP_EXP430FR5972!      to change file type
 !
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
@@ -26,7 +26,7 @@
 !
 ! P1.1 - Switch S1              <--- LCD contrast + (finger :-)
 ! P1.2 - Switch S2              <--- LCD contrast - (finger ;-)
-!                                   
+!
 !  GND                          <-------+---0V0---------->  1 LCD_Vss
 !  VCC                          >------ | --3V3-----+---->  2 LCD_Vdd
 !                                       |           |
@@ -44,7 +44,7 @@
 ! P9.5/A13/C13                  ------------------------->  5 LCD_R/W
 ! P9.6/A14/C14                  ------------------------->  6 LCD_EN
 !
-!                                 +--4k7-< DeepRST <-- GND 
+!                                 +--4k7-< DeepRST <-- GND
 !                                 |
 ! P3.4 - UCA1 TXD               <-+-> RX  UARTtoUSB bridge
 ! P3.5 - UCA1 RXD               <---- TX  UARTtoUSB bridge
@@ -54,7 +54,7 @@
 !
 !  VCC -                        ----> VCC SD_CardAdapter
 !  GND -                        <---> GND SD_CardAdapter
-! P2.2 -  UCA0 CLK              ----> CLK SD_CardAdapter (SCK)  
+! P2.2 -  UCA0 CLK              ----> CLK SD_CardAdapter (SCK)
 ! P2.6 -                        ----> CS  SD_CardAdapter (Card Select)
 ! P2.0 -  UCA0 TXD/SIMO         ----> SDI SD_CardAdapter (MOSI)
 ! P2.1 -  UCA0 RXD/SOMI         <---- SDO SD_CardAdapter (MISO)
 ! P3.2 -UCB1 SCL/SOMI           ----> free
 ! P3.3 -         TA1.1          <---> free
 !
-! PJ.4 - LFXI 32768Hz quartz  
-! PJ.5 - LFXO 32768Hz quartz  
-! PJ.6 - HFXI 
-! PJ.7 - HFXO 
-  
+! PJ.4 - LFXI 32768Hz quartz
+! PJ.5 - LFXO 32768Hz quartz
+! PJ.6 - HFXI
+! PJ.7 - HFXO
+
 
 ! ============================================
 ! FORTH I/O :
@@ -120,7 +120,7 @@ HANDSHAKOUT=\$222!
 CD_SD=\$80!        ; P2.7 as Card Detect
 SD_CDIN=\$201!
 
-CS_SD=\$40!        ; P2.6 as Card Select 
+CS_SD=\$40!        ; P2.6 as Card Select
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
@@ -181,10 +181,10 @@ WDT_TIM_CCR0=\$352!     TA0CCR0
 WDT_TIM_EX0=\$360!      TA0EX0
 WDT_TIM_0_Vec=\$FFE8!   TA0_0_Vec
 
-IR_IN=\$221!  
-IR_OUT=\$223! 
-IR_DIR=\$225! 
-IR_REN=\$227! 
+IR_IN=\$221!
+IR_OUT=\$223!
+IR_DIR=\$225!
+IR_REN=\$227!
 IR_IES=\$239!
 IR_IE=\$23B!
 IR_IFG=\$23D!
@@ -198,7 +198,7 @@ I2CSM_DIR=\$204!
 I2CSM_REN=\$206!
 SM_SDA=8!     P1.3
 SM_SCL=\$20!     P1.5
-SM_BUS=\$28!     
+SM_BUS=\$28!
 
 I2CSMM_IN=\$200!
 I2CSMM_OUT=\$202!
@@ -206,7 +206,7 @@ I2CSMM_DIR=\$204!
 I2CSMM_REN=\$206!
 SMM_SDA=8!    P1.3
 SMM_SCL=\$20!    P1.5
-SMM_BUS=\$28!    
+SMM_BUS=\$28!
 RC5_TIM_CTL=\$380!      TA1CTL
 RC5_TIM_R=\$390!        TA1R
 RC5_TIM_EX0=\$3A0!      TA1EX0
@@ -220,7 +220,7 @@ I2CMM_SEL=\$20A!    SEL0
 I2CMM_Vec=\$FFEC!   UCBO_Vec
 MM_SDA=\$40!         P1.6
 MM_SCL=\$80!         P1.7
-MM_BUS=\$C0!    
+MM_BUS=\$C0!
 
 I2CM_IN=\$200!
 I2CM_OUT=\$202!
@@ -230,7 +230,7 @@ I2CM_SEL=\$20A!     SEL0
 I2CM_Vec=\$FFEC!    UCBO_Vec
 M_SDA=\$40!          P1.6
 M_SCL=\$80!          P1.7
-M_BUS=\$C0!    
+M_BUS=\$C0!
 
 I2CS_IN=\$200!
 I2CS_OUT=\$202!
@@ -255,12 +255,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$640!   USCI_B0 Control Word Register 0
 I2CM_CTLW1=\$642!   USCI_B0 Control Word Register 1
 I2CM_BRW=\$646!     USCI_B0 Baud Word Rate 0
-I2CM_STATW=\$648!   USCI_B0 status word 
-I2CM_TBCNT=\$64A!   USCI_B0 byte counter threshold  
+I2CM_STATW=\$648!   USCI_B0 status word
+I2CM_TBCNT=\$64A!   USCI_B0 byte counter threshold
 I2CM_RXBUF=\$64C!   USCI_B0 Receive Buffer 8
 I2CM_TXBUF=\$64E!   USCI_B0 Transmit Buffer 8
 I2CM_I2COA0=\$654!  USCI_B0 I2C Own Address 0
-I2CM_ADDRX=\$65C!   USCI_B0 Received Address Register 
+I2CM_ADDRX=\$65C!   USCI_B0 Received Address Register
 I2CM_I2CSA=\$660!   USCI_B0 I2C Slave Address
 I2CM_IE=\$66A!      USCI_B0 Interrupt Enable
 I2CM_IFG=\$66C!     USCI_B0 Interrupt Flags Register
@@ -268,12 +268,12 @@ I2CM_IFG=\$66C!     USCI_B0 Interrupt Flags Register
 I2CS_CTLW0=\$640!   USCI_B0 Control Word Register 0
 I2CS_CTLW1=\$642!   USCI_B0 Control Word Register 1
 I2CS_BRW=\$646!     USCI_B0 Baud Word Rate 0
-I2CS_STATW=\$648!   USCI_B0 status word 
-I2CS_TBCNT=\$64A!   USCI_B0 byte counter threshold  
+I2CS_STATW=\$648!   USCI_B0 status word
+I2CS_TBCNT=\$64A!   USCI_B0 byte counter threshold
 I2CS_RXBUF=\$64C!   USCI_B0 Receive Buffer 8
 I2CS_TXBUF=\$64E!   USCI_B0 Transmit Buffer 8
 I2CS_I2COA0=\$654!  USCI_B0 I2C Own Address 0
-I2CS_ADDRX=\$65C!   USCI_B0 Received Address Register 
+I2CS_ADDRX=\$65C!   USCI_B0 Received Address Register
 I2CS_I2CSA=\$660!   USCI_B0 I2C Slave Address
 I2CS_IE=\$66A!      USCI_B0 Interrupt Enable
 I2CS_IFG=\$66C!     USCI_B0 Interrupt Flags Register
index b2524c3..1760de3 100644 (file)
@@ -11,7 +11,7 @@
 ; 3V3             10-9
 ; P2.1 UCA0_RX     8-7         <---- TX   UARTtoUSB bridge
 ;                                +--4k7-< DeepRST <-- GND
-;                                |            
+;                                |
 ; P2.0 UCA0_TX     6-5         <-+-> RX   UARTtoUSB bridge
 ; /RST             4-3
 ; TEST             2-1
 ;
 ; P5.6    - sw1                <--- LCD contrast + (finger :-)
 ; P5.5    - sw2                <--- LCD contrast - (finger ;-)
-; RST     - sw3 
+; RST     - sw3
 ;
 ; P1.0    - led1 red
 ; P1.1    - led2 green
 ;
 ; J1 - left ext.
 ; 3v3
-; P1.2/TA1.1/TA0CLK/COUT/A2/C2 <--- OUT IR_Receiver (1 TSOP32236)     
+; P1.2/TA1.1/TA0CLK/COUT/A2/C2 <--- OUT IR_Receiver (1 TSOP32236)
 ; P6.1/UCA3RXD/UCA3SOMI        ------------------------->  4 LCD_RS
 ; P6.0/UCA3TXD/UCA3SIMO        ------------------------->  5 LCD_R/W
 ; P6.2/UCA3CLK                 ------------------------->  6 LCD_EN0
-; P1.3/TA1.2/UCB0STE/A3/C3            
+; P1.3/TA1.2/UCB0STE/A3/C3
 ; P5.2/UCB1CLK/TA4CLK
 ; P6.3/UCA3STE
 ; P7.1/UCB2SOMI/UCB2SCL        ---> SCL I2C MASTER/SLAVE
 ; J3 - left int.
 ; 5V
 ; GND
-; P3.0/A12/C12                 <------------------------> 11 LCD_DB4   
+; P3.0/A12/C12                 <------------------------> 11 LCD_DB4
 ; P3.1/A13/C13                 <------------------------> 12 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)    
+; P1.5/TB0.2/UCA0CLK/A5/C5     >---||--+--^/\/\/v--+---->  3 LCD_Vo (=0V6 without modulation)
 ; P4.7
 ; P8.0
 ;
 ; J4 - right int.
-; P3.7/TB0.6                          
-; P3.6/TB0.5                          
-; P3.5/TB0.4/COUT                     
+; P3.7/TB0.6
+; P3.6/TB0.5
+; P3.5/TB0.4/COUT
 ; P3.4/TB0.3/SMCLK
 ; P7.3/UCB2STE/TA4.1
-; P2.6/TB0.1/UCA1RXD/UCA1SOMI 
-; P2.5/TB0.0/UCA1TXD/UCA1SIMO 
+; P2.6/TB0.1/UCA1RXD/UCA1SOMI
+; P2.5/TB0.0/UCA1TXD/UCA1SIMO
 ; P4.3/A11
 ; P4.2/A10       RTS ----> CTS  UARTtoUSB bridge (optional hardware control flow)
 ; P4.1/A9        CTS <---- RTS  UARTtoUSB bridge (optional hardware control flow)
@@ -91,7 +91,7 @@
 ; -----------------------------------------------
 ; LCD config
 ; -----------------------------------------------
-                                    
+
 ;       <-------+---0V0---------->  1 LCD_Vss
 ;       >------ | --3V6-----+---->  2 LCD_Vdd
 ;               |           |
@@ -144,8 +144,8 @@ BUS_SD      .equ 04C0h  ; pins P2.2 as UCB0CLK, P1.6 as UCB0SIMO & P1.7 as UCB0S
     .ENDIF
 
     .IFDEF UCA0_TERM ; see device.inc
-; P2.0  UCA0-TXD    --> USB2UART RXD    
-; P2.1  UCA0-RXD    <-- USB2UART TXD 
+; P2.0  UCA0-TXD    --> USB2UART RXD
+; P2.1  UCA0-RXD    <-- USB2UART TXD
 TERM_IN     .equ P2IN
 TERM_SEL    .equ P2SEL1
 TERM_REN    .equ P2REN
@@ -163,7 +163,7 @@ BUS_TERM    .equ 3
 ; PORT4 FastForth usage
 SD_CSOUT    .equ    P4OUT
 SD_CSDIR    .equ    P4DIR
-CS_SD       .equ    1           ; P4.0 Chip Select    
+CS_SD       .equ    1           ; P4.0 SD_card Chip Select
 
 HANDSHAKIN  .equ    P4IN
 HANDSHAKOUT .equ    P4OUT
@@ -174,11 +174,11 @@ CTS         .equ    2           ; P4.1
             BIS #-1,&PBOUT
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P4DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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
             BIC.B #CTS,&P4OUT   ; CTS input pulled down
         .ENDIF  ; TERMINAL5WIRES
@@ -193,12 +193,10 @@ CTS         .equ    2           ; P4.1
 ; P5.5 Switch S2
 SW1_IN      .set P5IN    ; port
 SW1         .set 040h    ; P5.6 bit position
+
 SW2_IN      .set P5IN    ; port
 SW2         .set 020h    ; P5.5 bit position
 
-WIPE_IN     .equ    P5IN
-IO_WIPE     .equ    40h ; P5.6 = S1 = FORTH Deep_RST pin
-
 ; PORT6 FastForth usage
 
 
@@ -223,7 +221,7 @@ SCL         .equ 2      ; P7.1
 BUS_TERM    .equ 3
     .ENDIF
 
-CD_SD       .equ 4        ; P7.2 Card Detect
+CD_SD       .equ 4        ; P7.2 SD_Card Card Detect
 SD_CDIN     .equ P7IN
 
 ; PORT8 FastForth usage
index 45292be..04fe02d 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for MSP_EXP430FR5994!      to change file type
 
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
@@ -24,7 +24,7 @@
 ! 3V3             10-9
 ! P2.1 UCA0_RX     8-7         <---- TX   UARTtoUSB bridge
 !                                +--4k7-< DeepRST <-- GND
-!                                |            
+!                                |
 ! P2.0 UCA0_TX     6-5         <-+-> RX   UARTtoUSB bridge
 ! /RST             4-3
 ! TEST             2-1
 
 ! P5.6    - sw1                <--- LCD contrast + (finger :-)
 ! P5.5    - sw2                <--- LCD contrast - (finger ;-)
-! RST     - sw3 
+! RST     - sw3
 
 ! P1.0    - led1 red
 ! P1.1    - led2 green
 
 ! J1 - left ext.
 ! 3v3
-! P1.2/TA1.1/TA0CLK/COUT/A2/C2 <--- OUT IR_Receiver (1 TSOP32236)     
+! P1.2/TA1.1/TA0CLK/COUT/A2/C2 <--- OUT IR_Receiver (1 TSOP32236)
 ! P6.1/UCA3RXD/UCA3SOMI        ------------------------->  4 LCD_RS
 ! P6.0/UCA3TXD/UCA3SIMO        ------------------------->  5 LCD_R/W
 ! P6.2/UCA3CLK                 ------------------------->  6 LCD_EN0
-! P1.3/TA1.2/UCB0STE/A3/C3            
+! P1.3/TA1.2/UCB0STE/A3/C3
 ! P5.2/UCB1CLK/TA4CLK
 ! P6.3/UCA3STE
 ! P7.1/UCB2SOMI/UCB2SCL        ---> SCL I2C MASTER/SLAVE
 ! J3 - left int.
 ! 5V
 ! GND
-! P3.0/A12/C12                 <------------------------> 11 LCD_DB4   
+! P3.0/A12/C12                 <------------------------> 11 LCD_DB4
 ! P3.1/A13/C13                 <------------------------> 12 LCD_DB5
 ! P3.2/A14/C14                 <------------------------> 13 LCD_DB5
 ! 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)    
+! P1.5/TB0.2/UCA0CLK/A5/C5     >---||--+--^/\/\/v--+---->  3 LCD_Vo (=0V6 without modulation)
 ! P4.7
 ! P8.0
 
 ! J4 - right int.
-! P3.7/TB0.6                          
-! P3.6/TB0.5                          
-! P3.5/TB0.4/COUT                     
+! P3.7/TB0.6
+! P3.6/TB0.5
+! P3.5/TB0.4/COUT
 ! P3.4/TB0.3/SMCLK
 ! P7.3/UCB2STE/TA4.1
-! P2.6/TB0.1/UCA1RXD/UCA1SOMI 
-! P2.5/TB0.0/UCA1TXD/UCA1SIMO 
+! P2.6/TB0.1/UCA1RXD/UCA1SOMI
+! P2.5/TB0.0/UCA1TXD/UCA1SIMO
 ! P4.3/A11
 ! P4.2/A10       RTS ----> CTS  UARTtoUSB bridge (optional hardware control flow)
 ! P4.1/A9        CTS <---- RTS  UARTtoUSB bridge (optional hardware control flow)
@@ -139,21 +139,21 @@ TERM_IN=\$201!
 TERM_REN=\$207!
 TERM_SEL=\$20D!     ; SEL1
 
-TERM_CTLW0=\$5C0!    \ eUSCI_A0 control word 0        
-TERM_CTLW1=\$5C2!    \ eUSCI_A0 control word 1        
-TERM_BRW=\$5C6!         
-TERM_BR0=\$5C6!      \ eUSCI_A0 baud rate 0           
-TERM_BR1=\$5C7!      \ eUSCI_A0 baud rate 1           
-TERM_MCTLW=\$5C8!    \ eUSCI_A0 modulation control    
-TERM_STATW=\$5CA!    \ eUSCI_A0 status                
-TERM_RXBUF=\$5CC!    \ eUSCI_A0 receive buffer        
-TERM_TXBUF=\$5CE!    \ eUSCI_A0 transmit buffer       
-TERM_ABCTL=\$5D0!    \ eUSCI_A0 LIN control           
-TERM_IRTCTL=\$5D2!   \ eUSCI_A0 IrDA transmit control 
-TERM_IRRCTL=\$5D3!   \ eUSCI_A0 IrDA receive control  
-TERM_IE=\$5DA!       \ eUSCI_A0 interrupt enable      
-TERM_IFG=\$5DC!      \ eUSCI_A0 interrupt flags       
-TERM_IV=\$5DE!       \ eUSCI_A0 interrupt vector word 
+TERM_CTLW0=\$5C0!    \ eUSCI_A0 control word 0
+TERM_CTLW1=\$5C2!    \ eUSCI_A0 control word 1
+TERM_BRW=\$5C6!
+TERM_BR0=\$5C6!      \ eUSCI_A0 baud rate 0
+TERM_BR1=\$5C7!      \ eUSCI_A0 baud rate 1
+TERM_MCTLW=\$5C8!    \ eUSCI_A0 modulation control
+TERM_STATW=\$5CA!    \ eUSCI_A0 status
+TERM_RXBUF=\$5CC!    \ eUSCI_A0 receive buffer
+TERM_TXBUF=\$5CE!    \ eUSCI_A0 transmit buffer
+TERM_ABCTL=\$5D0!    \ eUSCI_A0 LIN control
+TERM_IRTCTL=\$5D2!   \ eUSCI_A0 IrDA transmit control
+TERM_IRRCTL=\$5D3!   \ eUSCI_A0 IrDA receive control
+TERM_IE=\$5DA!       \ eUSCI_A0 interrupt enable
+TERM_IFG=\$5DC!      \ eUSCI_A0 interrupt flags
+TERM_IV=\$5DE!       \ eUSCI_A0 interrupt vector word
 
 RTS=4!              ; P4.2
 CTS=2!              ; P4.1
@@ -163,7 +163,7 @@ HANDSHAKOUT=\$223!
 CD_SD=4!            ; P7.2 as Card Detect
 SD_CDIN=\$260!
 
-CS_SD=1!            ; P4.0 as Card Select     
+CS_SD=1!            ; P4.0 as Card Select
 SD_CSOUT=\$223!
 SD_CSDIR=\$225!
 
@@ -171,26 +171,26 @@ SD_SEL1=\$20C!      ; word access, to configure UCB0
 SD_REN=\$206!       ; word access, to configure pullup resistors
 BUS_SD=\$04C0!      ; pins P2.2 as UCB0CLK, P1.6 as UCB0SIMO & P1.7 as UCB0SOMI
 
-SD_CTLW0=\$640!    \ eUSCI_B0 control word 0          
-SD_CTLW1=\$642!    \ eUSCI_B0 control word 1 
-SD_BRW=\$646!         
-SD_BR0=\$646!      \ eUSCI_B0 bit rate 0              
-SD_BR1=\$647!      \ eUSCI_B0 bit rate 1              
-SD_STATW=\$648!    \ eUSCI_B0 status word 
-SD_NT0=\$649!      \ eUSCI_B0 hardware count           
-SD_TBCNT=\$64A!    \ eUSCI_B0 byte counter threshold  
-SD_RXBUF=\$64C!    \ eUSCI_B0 receive buffer          
-SD_TXBUF=\$64E!    \ eUSCI_B0 transmit buffer         
-SD_I2COA0=\$654!   \ eUSCI_B0 I2C own address 0       
-SD_I2COA1=\$656!   \ eUSCI_B0 I2C own address 1       
-SD_I2COA2=\$658!   \ eUSCI_B0 I2C own address 2       
-SD_I2COA3=\$65A!   \ eUSCI_B0 I2C own address 3       
-SD_ADDRX=\$65C!    \ eUSCI_B0 received address        
-SD_ADDMASK=\$65E!  \ eUSCI_B0 address mask            
-SD_I2CSA=\$660!    \ eUSCI_B0 I2C slave address         
-SD_IE=\$66A!       \ eUSCI_B0 interrupt enable          
-SD_IFG=\$66C!      \ eUSCI_B0 interrupt flags           
-SD_IV=\$66E!       \ eUSCI_B0 interrupt vector word     
+SD_CTLW0=\$640!    \ eUSCI_B0 control word 0
+SD_CTLW1=\$642!    \ eUSCI_B0 control word 1
+SD_BRW=\$646!
+SD_BR0=\$646!      \ eUSCI_B0 bit rate 0
+SD_BR1=\$647!      \ eUSCI_B0 bit rate 1
+SD_STATW=\$648!    \ eUSCI_B0 status word
+SD_NT0=\$649!      \ eUSCI_B0 hardware count
+SD_TBCNT=\$64A!    \ eUSCI_B0 byte counter threshold
+SD_RXBUF=\$64C!    \ eUSCI_B0 receive buffer
+SD_TXBUF=\$64E!    \ eUSCI_B0 transmit buffer
+SD_I2COA0=\$654!   \ eUSCI_B0 I2C own address 0
+SD_I2COA1=\$656!   \ eUSCI_B0 I2C own address 1
+SD_I2COA2=\$658!   \ eUSCI_B0 I2C own address 2
+SD_I2COA3=\$65A!   \ eUSCI_B0 I2C own address 3
+SD_ADDRX=\$65C!    \ eUSCI_B0 received address
+SD_ADDMASK=\$65E!  \ eUSCI_B0 address mask
+SD_I2CSA=\$660!    \ eUSCI_B0 I2C slave address
+SD_IE=\$66A!       \ eUSCI_B0 interrupt enable
+SD_IFG=\$66C!      \ eUSCI_B0 interrupt flags
+SD_IV=\$66E!       \ eUSCI_B0 interrupt vector word
 
 
 ! ============================================
@@ -247,10 +247,10 @@ WDT_TIM_CCR0=\$352!     TA0CCR0
 WDT_TIM_EX0=\$360!      TA0EX0
 WDT_TIM_0_VEC=\$FFEA!   TA0_0_VEC
 
-IR_IN=\$200!  
-IR_OUT=\$202! 
-IR_DIR=\$204! 
-IR_REN=\$206! 
+IR_IN=\$200!
+IR_OUT=\$202!
+IR_DIR=\$204!
+IR_REN=\$206!
 IR_IES=\$208!
 IR_IE=\$20A!
 IR_IFG=\$20C!
@@ -322,12 +322,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$6C0!   USCI_B2 Control Word Register 0
 I2CM_CTLW1=\$6C2!   USCI_B2 Control Word Register 1
 I2CM_BRW=\$6C6!     USCI_B2 Baud Word Rate 0
-I2CM_STATW=\$6C8!   USCI_B2 status word 
-I2CM_TBCNT=\$6CA!   USCI_B2 byte counter threshold  
+I2CM_STATW=\$6C8!   USCI_B2 status word
+I2CM_TBCNT=\$6CA!   USCI_B2 byte counter threshold
 I2CM_RXBUF=\$6CC!   USCI_B2 Receive Buffer 8
 I2CM_TXBUF=\$6CE!   USCI_B2 Transmit Buffer 8
 I2CM_I2COA0=\$6D4!  USCI_B2 I2C Own Address 0
-I2CM_ADDRX=\$6DC!   USCI_B2 Received Address Register 
+I2CM_ADDRX=\$6DC!   USCI_B2 Received Address Register
 I2CM_I2CSA=\$6E0!   USCI_B2 I2C Slave Address
 I2CM_IE=\$6EA!      USCI_B2 Interrupt Enable
 I2CM_IFG=\$6EC!     USCI_B2 Interrupt Flags Register
@@ -335,12 +335,12 @@ I2CM_IFG=\$6EC!     USCI_B2 Interrupt Flags Register
 I2CS_CTLW0=\$6C0!   USCI_B2 Control Word Register 0
 I2CS_CTLW1=\$6C2!   USCI_B2 Control Word Register 1
 I2CS_BRW=\$6C6!     USCI_B2 Baud Word Rate 0
-I2CS_STATW=\$6C8!   USCI_B2 status word 
-I2CS_TBCNT=\$6CA!   USCI_B2 byte counter threshold  
+I2CS_STATW=\$6C8!   USCI_B2 status word
+I2CS_TBCNT=\$6CA!   USCI_B2 byte counter threshold
 I2CS_RXBUF=\$6CC!   USCI_B2 Receive Buffer 8
 I2CS_TXBUF=\$6CE!   USCI_B2 Transmit Buffer 8
 I2CS_I2COA0=\$6D4!  USCI_B2 I2C Own Address 0
-I2CS_ADDRX=\$6DC!   USCI_B2 Received Address Register 
+I2CS_ADDRX=\$6DC!   USCI_B2 Received Address Register
 I2CS_I2CSA=\$6E0!   USCI_B2 I2C Slave Address
 I2CS_IE=\$6EA!      USCI_B2 Interrupt Enable
 I2CS_IFG=\$6EC!     USCI_B2 Interrupt Flags Register
index f2db496..53cf5d1 100644 (file)
@@ -30,7 +30,7 @@
 ; P2 - P9.2 ESICH2
 ; P3 - P4.3 UCA0 RXD
 ; P4 - P4.2 UCA0 TXD
-; P5 - P3.2 UCB1 SCL    
+; P5 - P3.2 UCB1 SCL
 ; P6 - P9.3 ESICH3
 ; P7 - P1.4 UCB0 CLK
 ; P8 - P2.0 TB0.6
 
 ; P1.1 - Switch S1              <--- LCD contrast + (finger :-)
 ; P1.2 - Switch S2              <--- LCD contrast - (finger ;-)
-                                    
+
 ; note : ESI1.1 = lowest left pin
 ; note : ESI1.2 is not connected to 3.3V
 ;  GND/ESIVSS -          ESI1.3 <-------+---0V0---------->  1 LCD_Vss
 ; P9.5/ESICI1 -         ESI1.9  ------------------------->  5 LCD_R/W
 ; P9.6/ESICI2 -         ESI1.8  ------------------------->  6 LCD_EN
 
-;                                 +--4k7-< DeepRST <-- GND 
+;                                 +--4k7-< DeepRST <-- GND
 ;                                 |
 ; P3.4 - UCA1 TXD       J101.8  <-+-> RX  UARTtoUSB bridge
 ; P3.5 - UCA1 RXD       J101.10 <---- TX  UARTtoUSB bridge
 
 ;  VCC -                J1.1    ----> VCC SD_CardAdapter
 ;  GND -                J2.20   <---> GND SD_CardAdapter
-; P2.2 -  UCA0 CLK      J4.35   ----> CLK SD_CardAdapter (SCK)  
+; P2.2 -  UCA0 CLK      J4.35   ----> CLK SD_CardAdapter (SCK)
 ; P2.6 -                J4.39   ----> CS  SD_CardAdapter (Card Select)
 ; P2.0 -  UCA0 TXD/SIMO J1.8    ----> SDI SD_CardAdapter (MOSI)
 ; P2.1 -  UCA0 RXD/SOMI J2.19   <---- SDO SD_CardAdapter (MISO)
 ; P3.2 -UCB1 SCL/SOMI   J1.5    ----> free
 ; P3.3 -         TA1.1  J1.5    <---> free
 
-; PJ.4 - LFXI 32768Hz quartz  
-; PJ.5 - LFXO 32768Hz quartz  
-; PJ.6 - HFXI 
-; PJ.7 - HFXO 
-  
+; PJ.4 - LFXI 32768Hz quartz
+; PJ.5 - LFXO 32768Hz quartz
+; PJ.6 - HFXI
+; PJ.7 - HFXO
+
 
 ; ----------------------------------------------------------------------
 ; POWER ON RESET AND INITIALIZATION : I/O
@@ -235,9 +235,6 @@ LED1        .equ    1       ;  P1.0 LED1 red
 SW1_IN      .set P1IN       ; port
 SW1         .set 2          ; P1.1 = S1
 
-WIPE_IN     .equ    P1IN
-IO_WIPE     .equ    2       ; P1.1 = S1 = FORTH Deep_RST pin
-
 ; P1.2 - Switch S2
 SW2_IN      .set P1IN       ; port
 SW2         .set 4          ; P1.2 = S2
@@ -260,7 +257,7 @@ BUS_TERM    .equ    0C0h
 SD_CDIN     .equ P2IN
 SD_CSOUT    .equ P2OUT
 SD_CSDIR    .equ P2DIR
-CS_SD       .equ 40h    ; P2.6 Chip Select  
+CS_SD       .equ 40h    ; P2.6 Chip Select
 CD_SD       .equ 80h    ; P2.7 Card Detect
 
 ; PORTx default wanted state : pins as input with pullup resistor
@@ -301,11 +298,11 @@ BUS_TERM    .equ    30h    ;
             MOV #-1,&PBOUT  ; all pins as input with resistor
 
     .IFDEF TERMINAL4WIRES
-; RTS output is wired to the CTS input of UART2USB bridge 
+; RTS output is wired to the CTS input of UART2USB bridge
 ; configure RTS as output high to disable RX TERM during start FORTH
             BIS.B #RTS,&P3DIR   ; RTS as output high
         .IFDEF TERMINAL5WIRES
-; CTS input must be wired to the RTS output of UART2USB bridge 
+; 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
             BIC.B #CTS,&P3OUT   ; CTS input pulled down
         .ENDIF  ; TERMINAL5WIRES
@@ -358,7 +355,7 @@ LED2        .equ    80h        ;  P9.7 LED2 green
 
 
 ; PORT10 usage
-    
+
 ; PORTx default wanted state : pins as input with pullup resistor
 
             MOV     #-1,&PEREN    ; all pins with pull resistors else P9.7
index a3d6b83..1d81f21 100644 (file)
@@ -4,7 +4,7 @@
 \.f=\.4th for MSP_EXP430FR6989!      to change file type
 !
 !========================
-! remove comments        
+! remove comments
 !========================
 \\*\n=
 \s\\*\n=\n
@@ -26,7 +26,7 @@
 !
 ! P1.1 - Switch S1              <--- LCD contrast + (finger :-)
 ! P1.2 - Switch S2              <--- LCD contrast - (finger ;-)
-!                                   
+!
 ! note : ESI1.1 = lowest left pin
 ! note : ESI1.2 is not connected to 3.3V
 !  GND                     J6.2 <-------+---0V0---------->  1 LCD_Vss
@@ -46,7 +46,7 @@
 ! P4.2                          ------------------------->  5 LCD_R/W green
 ! P4.3                          ------------------------->  6 LCD_EN  blue
 !
-!                                 +--4k7-< DeepRST <-- GND 
+!                                 +--4k7-< DeepRST <-- GND
 !                                 |
 ! P3.4 - UCA1 TXD       J101.8  <-+-> RX  UARTtoUSB bridge
 ! P3.5 - UCA1 RXD       J101.10 <---- TX  UARTtoUSB bridge
@@ -56,7 +56,7 @@
 !
 !  VCC -                J1.1    ----> VCC SD_CardAdapter
 !  GND -                J2.20   <---> GND SD_CardAdapter
-! P2.2 -  UCA0 CLK      J4.35   ----> CLK SD_CardAdapter (SCK)  
+! P2.2 -  UCA0 CLK      J4.35   ----> CLK SD_CardAdapter (SCK)
 ! P2.6 -                J4.39   ----> CS  SD_CardAdapter (Card Select)
 ! P2.0 -  UCA0 TXD/SIMO J1.8    ----> SDI SD_CardAdapter (MOSI)
 ! P2.1 -  UCA0 RXD/SOMI J2.19   <---- SDO SD_CardAdapter (MISO)
 ! P3.2 -UCB1 SCL/SOMI   J1.5    ----> free
 ! P3.3 -         TA1.1  J1.5    <---> free
 !
-! PJ.4 - LFXI 32768Hz quartz  
-! PJ.5 - LFXO 32768Hz quartz  
-! PJ.6 - HFXI 
-! PJ.7 - HFXO 
+! PJ.4 - LFXI 32768Hz quartz
+! PJ.5 - LFXO 32768Hz quartz
+! PJ.6 - HFXI
+! PJ.7 - HFXO
 
 
 ! ============================================
@@ -122,7 +122,7 @@ HANDSHAKOUT=\$222!
 CD_SD=\$80!        ; P2.7 as Card Detect
 SD_CDIN=\$201!
 
-CS_SD=\$40!        ; P2.6 as Card Select 
+CS_SD=\$40!        ; P2.6 as Card Select
 SD_CSOUT=\$203!
 SD_CSDIR=\$205!
 
@@ -183,10 +183,10 @@ WDT_TIM_CCR0=\$352!     TA0CCR0
 WDT_TIM_EX0=\$360!      TA0EX0
 WDT_TIM_0_Vec=\$FFE8!   TA0_0_Vec
 
-IR_IN=\$221!  
-IR_OUT=\$223! 
-IR_DIR=\$225! 
-IR_REN=\$227! 
+IR_IN=\$221!
+IR_OUT=\$223!
+IR_DIR=\$225!
+IR_REN=\$227!
 IR_IES=\$239!
 IR_IE=\$23B!
 IR_IFG=\$23D!
@@ -200,7 +200,7 @@ I2CSM_DIR=\$204!
 I2CSM_REN=\$206!
 SM_SDA=8!     P1.3
 SM_SCL=\$20!     P1.5
-SM_BUS=\$28!     
+SM_BUS=\$28!
 
 I2CSMM_IN=\$200!
 I2CSMM_OUT=\$202!
@@ -208,7 +208,7 @@ I2CSMM_DIR=\$204!
 I2CSMM_REN=\$206!
 SMM_SDA=8!    P1.3
 SMM_SCL=\$20!    P1.5
-SMM_BUS=\$28!    
+SMM_BUS=\$28!
 RC5_TIM_CTL=\$380!      TA1CTL
 RC5_TIM_R=\$390!        TA1R
 RC5_TIM_EX0=\$3A0!      TA1EX0
@@ -222,7 +222,7 @@ I2CMM_SEL=\$20A!    SEL0
 I2CMM_Vec=\$FFEC!   UCBO_Vec
 MM_SDA=\$40!         P1.6
 MM_SCL=\$80!         P1.7
-MM_BUS=\$C0!    
+MM_BUS=\$C0!
 
 I2CM_IN=\$200!
 I2CM_OUT=\$202!
@@ -232,7 +232,7 @@ I2CM_SEL=\$20A!     SEL0
 I2CM_Vec=\$FFEC!    UCBO_Vec
 M_SDA=\$40!          P1.6
 M_SCL=\$80!          P1.7
-M_BUS=\$C0!    
+M_BUS=\$C0!
 
 I2CS_IN=\$200!
 I2CS_OUT=\$202!
@@ -257,12 +257,12 @@ UCRXIFG0=1!         eUSCI_B Receive Interrupt Flag
 I2CM_CTLW0=\$640!   USCI_B0 Control Word Register 0
 I2CM_CTLW1=\$642!   USCI_B0 Control Word Register 1
 I2CM_BRW=\$646!     USCI_B0 Baud Word Rate 0
-I2CM_STATW=\$648!   USCI_B0 status word 
-I2CM_TBCNT=\$64A!   USCI_B0 byte counter threshold  
+I2CM_STATW=\$648!   USCI_B0 status word
+I2CM_TBCNT=\$64A!   USCI_B0 byte counter threshold
 I2CM_RXBUF=\$64C!   USCI_B0 Receive Buffer 8
 I2CM_TXBUF=\$64E!   USCI_B0 Transmit Buffer 8
 I2CM_I2COA0=\$654!  USCI_B0 I2C Own Address 0
-I2CM_ADDRX=\$65C!   USCI_B0 Received Address Register 
+I2CM_ADDRX=\$65C!   USCI_B0 Received Address Register
 I2CM_I2CSA=\$660!   USCI_B0 I2C Slave Address
 I2CM_IE=\$66A!      USCI_B0 Interrupt Enable
 I2CM_IFG=\$66C!     USCI_B0 Interrupt Flags Register
@@ -270,12 +270,12 @@ I2CM_IFG=\$66C!     USCI_B0 Interrupt Flags Register
 I2CS_CTLW0=\$640!   USCI_B0 Control Word Register 0
 I2CS_CTLW1=\$642!   USCI_B0 Control Word Register 1
 I2CS_BRW=\$646!     USCI_B0 Baud Word Rate 0
-I2CS_STATW=\$648!   USCI_B0 status word 
-I2CS_TBCNT=\$64A!   USCI_B0 byte counter threshold  
+I2CS_STATW=\$648!   USCI_B0 status word
+I2CS_TBCNT=\$64A!   USCI_B0 byte counter threshold
 I2CS_RXBUF=\$64C!   USCI_B0 Receive Buffer 8
 I2CS_TXBUF=\$64E!   USCI_B0 Transmit Buffer 8
 I2CS_I2COA0=\$654!  USCI_B0 I2C Own Address 0
-I2CS_ADDRX=\$65C!   USCI_B0 Received Address Register 
+I2CS_ADDRX=\$65C!   USCI_B0 Received Address Register
 I2CS_I2CSA=\$660!   USCI_B0 I2C Slave Address
 I2CS_IE=\$66A!      USCI_B0 Interrupt Enable
 I2CS_IFG=\$66C!     USCI_B0 Interrupt Flags Register
index 95f2c42..95e8eb1 100644 (file)
@@ -305,7 +305,7 @@ TERMMCTLW_INI   .equ 04900h
 ; ; TERMBRW=UCBR0, TERMMCTLW= (UCBRS0<<8)|(UCBRF0<<4)|UCOS16
 ; TERMBRW_INI     .equ 3
 ; TERMMCTLW_INI   .equ 04400h
-; 
+;
 ;         .CASE 806400  ; PL2303TA baudrate
 ; ; Configure UART_TERM @ 806400 bauds / 2MHz
 ; ; Configure UART_TERM @ 403200 bauds / 1MHz
@@ -513,7 +513,7 @@ TERMMCTLW_INI   .equ 0D600h
 ; Configure UART_TERM @ 1000000 bauds / 8MHz
 ; Configure UART_TERM @ 2000000 bauds / 16MHz
 ; N = 16000000/2000000 = 8 ==> {UCOS16=0, UCBR0=int(N)=8, UCBRF0=dont_care=0  UCBRS0=fn(frac(N))=fn(0.00000)=0x00
-TERMBRW_INI     .equ 8 
+TERMBRW_INI     .equ 8
 TERMMCTLW_INI   .equ 00000h
 
         .CASE 1228800 ; PL2303TA baudrate
@@ -542,7 +542,7 @@ TERMMCTLW_INI   .equ 04900h
 ; ; TERMBRW=UCBR0, TERMMCTLW= (UCBRS0<<8)|(UCBRF0<<4)|UCOS16
 ; TERMBRW_INI     .equ 3
 ; TERMMCTLW_INI   .equ 04400h
-; 
+;
 ;         .CASE 3000000 ; PL2303TA baudrate
 ; ; Configure UART_TERM @ 3000000 bauds / 8MHz
 ; ; Configure UART_TERM @ 6000000 bauds / 16MHz
@@ -966,7 +966,7 @@ TERMMCTLW_INI   .equ 0D600h
         .CASE 2000000
 ; Configure UART_TERM @ 2000000 bauds / 16MHz
 ; N = 16000000/2000000 = 8 ==> {UCOS16=0, UCBR0=int(N)=8, UCBRF0=dont_care=0  UCBRS0=fn(frac(N))=fn(0.00000)=0x00
-TERMBRW_INI     .equ 8 
+TERMBRW_INI     .equ 8
 TERMMCTLW_INI   .equ 00000h
 
         .CASE 2457600 ; PL2303TA baudrate
@@ -1002,7 +1002,7 @@ TERMMCTLW_INI   .equ 0
 ; ; TERMBRW=UCBR0, TERMMCTLW= (UCBRS0<<8)|(UCBRF0<<4)|UCOS16
 ; TERMBRW_INI     .equ 3
 ; TERMMCTLW_INI   .equ 02100h
-; 
+;
 ;         .CASE 6000000 ; PL2303TA baudrate
 ; ; Configure UART_TERM @ 6000000 bauds / 24MHz
 ; ; N = 16000000/6000000 = 2.6666.. ==> {UCOS16=0, UCBR0=int(N)=2, UCBRF0=dont_care=0  UCBRS0=fn(frac(N))=fn(0.6666)=0xB6
@@ -1303,15 +1303,9 @@ TERMMCTLW_INI   .equ 0EE00h
 TERMBRW_INI     .equ 4
 TERMMCTLW_INI   .equ 0
 
-;         .CASE 7500000 ; PL2303TA baudrate
-; ; Configure UART_TERM @ 7500000 bauds / 24MHz
-; ; N = 24000000/7500000 = 3.2 ==> {UCOS16=0, UCBR0=int(N)=3, UCBRF0=dont_care=0  UCBRS0=fn(frac(N))=fn(0.2)=0x11
-; TERMBRW_INI     .equ 3
-; TERMMCTLW_INI   .equ 01100h
-
         .ELSECASE
             .error "UART_TERM / 24 MHz : baudrate not implemented"
         .ENDCASE ; UART_TERM / 24MHz baudrates
-    .ELSEIF 
+    .ELSEIF
         .error "UART_TERM frequency not implemented"
     .ENDIF ; frequency
\ No newline at end of file
index 18656d0..9a43ce2 100644 (file)
@@ -1,31 +1,32 @@
-; Target.asm
+; -*- coding: utf-8 -*-
+; TargetInit.asm
 ; to Init I/O, Clock, FRAM, RTC, ... only for FastForth and SD_options use
     .IFDEF MSP_EXP430FR5739
-    .include "MSP_EXP430FR5739.asm"
+    .include "MSP_EXP430FR5739.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .IFDEF MSP_EXP430FR5969
-    .include "MSP_EXP430FR5969.asm"
+    .include "MSP_EXP430FR5969.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .IFDEF MSP_EXP430FR5994
-    .include "MSP_EXP430FR5994.asm"
+    .include "MSP_EXP430FR5994.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .IFDEF MSP_EXP430FR6989
-    .INCLUDE "MSP_EXP430FR6989.asm"
+    .INCLUDE "MSP_EXP430FR6989.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .IFDEF MSP_EXP430FR4133
-    .INCLUDE "MSP_EXP430FR4133.asm"
+    .INCLUDE "MSP_EXP430FR4133.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .IFDEF MSP_EXP430FR2433
-    .include "MSP_EXP430FR2433.asm"
+    .include "MSP_EXP430FR2433.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .IFDEF MSP_EXP430FR2355
-    .include "MSP_EXP430FR2355.asm"
+    .include "MSP_EXP430FR2355.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .IFDEF LP_MSP430FR2476
-    .include "LP_MSP430FR2476.asm"
+    .include "LP_MSP430FR2476.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .IFDEF CHIPSTICK_FR2433
-    .include "CHIPSTICK_FR2433.asm"
+    .include "CHIPSTICK_FR2433.asm" ; choose always Px0 to Px3 as RTS pin!!!
     .ENDIF
     .save
     .listing off
 ; add here your target.asm item:
 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     .restore
+    .IFDEF MY_MSP430FR5734
+    .include "MY_MSP430FR5734.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF MY_MSP430FR5738
+    .include "MY_MSP430FR5738.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF MY_MSP430FR5738_1
+    .include "MY_MSP430FR5738.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF MY_MSP430FR5738_2
+    .include "MY_MSP430FR5738.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF MY_MSP430FR5948
+    .include "MY_MSP430FR5948.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF MY_MSP430FR5948_1
+    .include "MY_MSP430FR5948_1.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF JMJ_BOX_2021_03_02
+    .include "JMJ_BOX_2021_03_02.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF JMJ_BOX_2021_05_04
+    .include "JMJ_BOX_2021_05_04.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF JMJ_BOX
+    .include "MY_MSP430FR5738.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF JMJ_BOX_2018_10_29
+    .include "JMJ_BOX_2018_10_29.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF JMJ_BOX_2018_08
+    .include "MY_MSP430FR5738.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF JMJ_BOX_GUILLAUME
+    .include "MY_MSP430FR5738_2.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF JMJ_BOX_FAVRE
+    .include "MY_MSP430FR5738_2.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF PA8_PA_MSP430
+    .include "MY_MSP430FR5738_2.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF PA_PA_MSP430
+    .include "MY_MSP430FR5738_2.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
+    .IFDEF PA_Core_MSP430
+    .include "MY_MSP430FR5948_1.asm" ; choose always Px0 to Px3 as RTS pin!!!
+    .ENDIF
index a5e1a09..cf9e8db 100644 (file)
@@ -22,8 +22,8 @@ BIT15       .equ 32768
 ; ----------------------------------------------
 ; MACROS FOR assembly instructions
 ; ----------------------------------------------
-NOP         .macro      ; 1 word, 1 cycle    
-            .word 4303h ; mov #0, r3         
+NOP         .macro      ; 1 word, 1 cycle
+            .word 4303h ; mov #0, r3
             .endm
 
 NOP2        .macro      ; 1 Word, 2 cycles
@@ -46,7 +46,7 @@ SCG1        .equ 0080h ; System Clock Generator 1. 1=turn_off_SMCLK
 V           .equ 0100h
 UF9         .equ 0200h ; = SR(9) User Flag 9
 UF10        .equ 0400h ; = SR(10) User Flag 10
-UF11        .equ 0800h ; = SR(11) User Flag 11  
+UF11        .equ 0800h ; = SR(11) User Flag 11
 ;----------------------------------------------------------------------------
 LPM0        .equ CPUOFF
 LPM1        .equ SCG0 + CPUOFF  ; for devices with FLL: LPM1 = LPM0 + FLL disabled
@@ -90,10 +90,17 @@ PSP         .reg    R15     ; PSP = Parameters Stack Pointer (stack data)
 ; "ASMtoFORTH" or "mDOCOL" switches anywhere in a word, i.e. not only at its
 ; beginning as ITC competitors.
 ;-------------------------------------------------------------------------------
+DOCOL       .equ 1284h              ; 1284h = CALL rDOCOL instruction
+DODOES      .equ 1285h              ; 1285h = CALL rDODOES instruction
+DOCON       .equ 1286h              ; 1286h = CALL rDOCON instruction
+DOVAR       .equ 1287h              ; 1287h = CALL rDOVAR instruction
+
+
+
     .SWITCH DTC
 
     .CASE 1 ; DOCOL = CALL rDOCOL, [rDOCOL] = XDOCOL
-ASMtoFORTH  .MACRO                  ; compiled by LO2HI
+mASM2FORTH  .MACRO                  ; compiled by LO2HI
             CALL #EXIT              ; 10 cycles
             .ENDM                   ; 2 words, 10 cycles
                                     ; LO2HI + HI2LO = 3 words, 10 cycles.
@@ -103,9 +110,9 @@ mDOCOL      .MACRO                  ; compiled by : and by colon
             .ENDM                   ; 1 word, 14 cycles (CALL included) (ITC+4)
                                     ; COLON + SEMI = 2 words, 20 cycles (ITC+2)
     .CASE 2 ; DOCOL = PUSH IP + CALL rDOCOL, [rDOCOL] = EXIT
-ASMtoFORTH  .MACRO                  ; compiled by LO2HI
+mASM2FORTH  .MACRO                  ; compiled by LO2HI
             CALL rDOCOL             ; 10 [rDOCOL] = EXIT
-            .ENDM                   ; 1 word, 10 cycles. 
+            .ENDM                   ; 1 word, 10 cycles.
                                     ; LO2HI + HI2LO = 2 words, 10 cycles.
 
 mDOCOL      .MACRO                  ; compiled by : and by COLON
@@ -114,7 +121,7 @@ mDOCOL      .MACRO                  ; compiled by : and by COLON
             .ENDM                   ; 2 words, 13 cycles (ITC+3)
                                     ; COLON + SEMI = 3 words, 19 cycles (ITC+1)
     .CASE 3 ; inlined DOCOL
-ASMtoFORTH  .MACRO                  ; compiled by LO2HI
+mASM2FORTH  .MACRO                  ; compiled by LO2HI
             MOV PC,IP               ; 1
             ADD #4,IP               ; 1
             MOV @IP+,PC             ; 4 NEXT
@@ -130,6 +137,10 @@ mDOCOL      .MACRO                  ; compiled by : and by COLON
                                     ; COLON + SEMI = 5 words, 15 cycles (ITC-3)
     .ENDCASE ; DTC
 
+mNEXTADR    .MACRO
+            .word   $+2
+            .ENDM
+
     .save
     .listing off
 ; ----------------------------------------------
@@ -144,21 +155,21 @@ asmlink     .set 0
 FORTHWORD   .MACRO  name
             .word   forthlink
 forthlink   .set    $
-            .byte   STRLEN(name),name
+            .byte   STRLEN(name)*2,name
 ;            .align  2
             .ENDM
 
 FORTHWORDIMM .MACRO  name
             .word   forthlink
 forthlink   .set    $
-            .byte   STRLEN(name)+128,name
+            .byte   STRLEN(name)*2+1,name ; bit 0 is the immediate flag
 ;            .align  2
             .ENDM
 
 asmword     .MACRO  name
             .word   asmlink
 asmlink     .set    $
-            .byte   STRLEN(name),name
+            .byte   STRLEN(name)*2,name
 ;            .align  2
             .ENDM
 
@@ -231,7 +242,7 @@ asmlink31   .set 0
 ; (THREADS-1)*2 = AND mask to define CURRENT offset in vocabulary
 ;-------------------------------------------
 FORTHWORD   .MACRO  name
-CONTEXTofst .set    charfromstr(name,0) & ((THREADS-1)*2)
+CONTEXTofst .set    (charfromstr(name,0) & (THREADS-1))*2
     .SWITCH CONTEXTofst
     .case 0
             .word   forthlink
@@ -330,14 +341,14 @@ forthlink30 .set    $
             .word   forthlink31
 forthlink31 .set    $
     .endcase
-            .byte   STRLEN(name),name
+            .byte   STRLEN(name)*2,name
             .ENDM
 
 ;-------------------------------------------
 ; (THREADS-1)*2 = AND mask to define CURRENT offset in vocabulary
 ;-------------------------------------------
 FORTHWORDIMM .MACRO  name
-CONTEXTofst .set    charfromstr(name,0) &  ((THREADS-1)*2)
+CONTEXTofst .set    (charfromstr(name,0) & (THREADS-1))*2
     .SWITCH CONTEXTofst
     .case 0
             .word   forthlink
@@ -436,14 +447,14 @@ forthlink30 .set    $
             .word   forthlink31
 forthlink31 .set    $
     .endcase
-            .byte   80h+STRLEN(name),name
+            .byte   STRLEN(name)*2+1,name ; bit 0 is the immediate flag
             .ENDM
 
 ;-------------------------------------------
 ; (THREADS-1)*2 = AND mask to define CURRENT offset in vocabulary
 ;-------------------------------------------
 asmword     .MACRO  name
-CONTEXTofst .set    charfromstr(name,0) &  ((THREADS-1)*2)
+CONTEXTofst .set    (charfromstr(name,0) & (THREADS-1))*2
     .SWITCH CONTEXTofst
     .case 0
             .word   asmlink
@@ -542,7 +553,7 @@ asmlink30 .set    $
             .word   asmlink31
 asmlink31 .set    $
     .endcase ; asmlink
-            .byte   STRLEN(name),name
+            .byte   STRLEN(name)*2,name
             .ENDM
 
     .endif ; thread case
@@ -567,7 +578,7 @@ USE_MOVE
 USE_MOVE
         .ENDIF
     .ENDIF
-    .IFDEF SD_CARD_LOADER 
+    .IFDEF SD_CARD_LOADER
         .IFNDEF DOUBLE_INPUT
 DOUBLE_INPUT
         .ENDIF
@@ -575,9 +586,6 @@ DOUBLE_INPUT
             .IFNDEF CONDCOMP
 CONDCOMP                    ; mandatory for Bootstrap
             .ENDIF
-            .IFNDEF DEFERRED
-DEFERRED                    ; mandatory for Bootstrap
-            .ENDIF
         .ENDIF
     .ENDIF
     .IFDEF EXTENDED_ASM
@@ -619,7 +627,10 @@ DOUBLE_NUMBERS              ; to process double numbers
 ;-----------------------------------------------------------------------
 ; DEVICE I/O, MEMORY, SFR, vectors and minimum FORTH I/O declarations
 ;-----------------------------------------------------------------------
+FADDON .set 0
+
     .IFDEF MSP_EXP430FR5739
+FADDON .SET FADDON | BIT0   ; hardware MPY
 LF_XTAL
         .IFDEF TERMINAL_I2C
 UCB0_TERM
@@ -630,6 +641,7 @@ UCA1_SD
         .include "MSP430FR5739.inc"
     .ENDIF
     .IFDEF MSP_EXP430FR5969
+FADDON .SET FADDON | BIT0   ; hardware MPY
 ;EXTENDED_MEM
 LF_XTAL
         .IFDEF TERMINAL_I2C
@@ -641,6 +653,7 @@ UCA1_SD
         .include "MSP430FR5969.inc"
     .ENDIF
     .IFDEF MSP_EXP430FR5994
+FADDON .SET FADDON | BIT0   ; hardware MPY
 ;EXTENDED_MEM
 LF_XTAL
         .IFDEF TERMINAL_I2C
@@ -652,6 +665,7 @@ UCB0_SD
         .include "MSP430FR5994.inc"
     .ENDIF
     .IFDEF MSP_EXP430FR6989
+FADDON .SET FADDON | BIT0   ; hardware MPY
 ;EXTENDED_MEM
 LF_XTAL
         .IFDEF TERMINAL_I2C
@@ -663,6 +677,7 @@ UCA0_SD
         .INCLUDE "MSP430FR6989.inc"
     .ENDIF
     .IFDEF MSP_EXP430FR5972
+FADDON .SET FADDON | BIT0   ; hardware MPY
 ;EXTENDED_MEM
 LF_XTAL
         .IFDEF TERMINAL_I2C
@@ -708,6 +723,7 @@ UCB0_SD
         .include "MSP430FR2433.inc"
     .ENDIF
     .IFDEF MSP_EXP430FR2355
+FADDON .SET FADDON | BIT0   ; hardware MPY
 FLL
 LF_XTAL
         .IFDEF TERMINAL_I2C
@@ -719,6 +735,7 @@ UCB1_SD
         .include "MSP430FR2355.inc"
     .ENDIF
     .IFDEF LP_MSP430FR2476
+FADDON .SET FADDON | BIT0   ; hardware MPY
 FLL
 ;EXTENDED_MEM
 ; LF_XTAL       ; connect resistors R2=0k, R3=0k before uncomment this line
@@ -735,49 +752,381 @@ UCA1_SD
 ; add here your device.inc item:
 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     .ENDIF
-
     .restore
 ; ---------------------------
 ; compute value of FORTHADDON
 ; ---------------------------
-FADDON .set 0
+    .IFDEF FLOORED_DIVISION
+FADDON .SET FADDON | BIT15  ; FLOORED_DIVISION
+    .ENDIF
     .IFDEF LF_XTAL
-FADDON .SET FADDON | BIT15  ; LFXTAL = 32768 Hz
+FADDON .SET FADDON | BIT14  ; LFXTAL = 32768 Hz
     .ENDIF
     .IFNDEF TERMINAL_I2C ; if TERMINAL UART...
         .IFDEF TERMINAL5WIRES
-FADDON .SET FADDON | BIT14  ; UART CTS
+FADDON .SET FADDON | BIT13  ; UART CTS
         .ENDIF
         .IFDEF TERMINAL4WIRES
-FADDON .SET FADDON | BIT13  ; UART RTS
+FADDON .SET FADDON | BIT12  ; UART RTS
         .ENDIF
         .IFDEF TERMINAL3WIRES
-FADDON .SET FADDON | BIT12  ; UART XON/XOFF
+FADDON .SET FADDON | BIT11  ; UART XON/XOFF
         .ENDIF
         .IFDEF HALFDUPLEX
-FADDON .SET FADDON | BIT11  ; UART Half Duplex
+FADDON .SET FADDON | BIT10  ; UART Half Duplex
         .ENDIF
     .ENDIF ; TERMINAL UART
+; ---------------------------
         .IFDEF TERMINAL_I2C
-FADDON .SET FADDON | BIT10  ;I2C TERMINAL
+FADDON .SET FADDON | BIT  ;I2C TERMINAL
         .ENDIF
     .IFDEF FIXPOINT_INPUT
-FADDON .SET FADDON | BIT9   ; Q15.16 INPUT
+FADDON .SET FADDON | BIT8   ; Q15.16 INPUT
     .ENDIF
     .IFDEF DOUBLE_INPUT
-FADDON .SET FADDON | BIT8   ; DOUBLE INPUT
+FADDON .SET FADDON | BIT7   ; DOUBLE INPUT
     .ENDIF
+; ---------------------------
     .IFDEF EXTENDED_ASM     ; Assembler 20 bits
-FADDON .SET FADDON | BIT7
-    .ENDIF
-    .IFDEF MSP430ASSEMBLER
-FADDON .SET FADDON | BIT6   ; Assembler 16 bits
+FADDON .SET FADDON | BIT6
     .ENDIF
+;    .IFDEF MSP430ASSEMBLER
+FADDON .SET FADDON | BIT5   ; Assembler 16 bits
+;    .ENDIF
     .IFDEF EXTENDED_MEM
-    .IFNDEF EXTENDED_ASM
-FADDON .SET FADDON | BIT5   ; Assembler 16 bits with Address access beyond $FFFF
+        .IFNDEF EXTENDED_ASM
+FADDON .SET FADDON | BIT4   ; Assembler 16 bits with Address access beyond $FFFF
+        .ENDIF
+    .ENDIF
+; ---------------------------
+;    .IFDEF VOCABULARY_SET   ;
+;FADDON .SET FADDON | BIT3   ; vocabulary set
+;    .ENDIF                  ; BIT2 to BIT0 are free
+
+
+
+;-------------------------------------------------------------------------------
+; DTCforthMSP430FR5xxx RAM memory map:
+;-------------------------------------------------------------------------------
+
+;---------------------------;---------
+; name             words    ; comment
+;---------------------------;---------
+;LSTACK = L0 = LEAVEPTR     ; ----- RAM_ORG
+                            ; |
+LSTACK_LEN .equ     16      ; | grows up
+                            ; V
+                            ; ^
+PSTACK_LEN .equ     48      ; | grows down
+                            ; |
+;PSTACK=S0                  ; ----- RAM_ORG + $80
+                            ; ^
+RSTACK_LEN .equ     48      ; | grows down
+                            ; |
+;RSTACK=R0                  ; ----- RAM_ORG + $E0
+
+;---------------------------;---------
+; names            bytes    ; comments
+;---------------------------;---------
+; PAD_I2CADR                ; ----- RAM_ORG + $E0
+; PAD_I2CCNT                ;
+; PAD                       < ----- RAM_ORG + $E4
+                            ; |
+PAD_LEN     .equ    84      ; | grows up    (ans spec. : PAD >= 84 chars)
+                            ; v
+; TIB_I2CADR                ; ----- RAM_ORG + $138
+; TIB_I2CCNT                ;
+; TIB                       < ----- RAM_ORG + $13C
+                            ; |
+CIB_LEN     .equ    84      ; | grows up    Current Input Buffer (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_BASE                 < ----- RAM_ORG + $1B2
+                            ;
+                            ;       system variables
+                            ;
+                            ; ----- RAM_ORG + $1E0
+                            ;
+                            ;       28 bytes free
+                            ;
+; SD_BUF_I2CADR             < ----- RAM_ORG + $1FC
+; SD_BUF_I2CCNT             ;
+; SD_BUF                    < ----- RAM_ORG + $200
+                            ;
+SD_BUF_LEN   .equ   200h    ;       512 bytes buffer
+                            ;
+; SD_BUF_END                < ----- RAM_ORG + $400
+
+LSTACK          .equ RAM_ORG
+LEAVEPTR        .equ LSTACK             ; Leave-stack pointer
+PSTACK          .equ LSTACK+(LSTACK_LEN*2)+(PSTACK_LEN*2)
+RSTACK          .equ PSTACK+(RSTACK_LEN*2)
+PAD_I2CADR      .equ PAD_ORG-4
+PAD_I2CCNT      .equ PAD_ORG-2
+PAD_ORG         .equ RSTACK+4
+TIB_I2CADR      .equ TIB_ORG-4
+TIB_I2CCNT      .equ TIB_ORG-2
+TIB_ORG         .equ PAD_ORG+PAD_LEN+4
+HOLDS_ORG       .equ TIB_ORG+CIB_LEN
+
+HOLD_BASE       .equ HOLDS_ORG+HOLD_LEN
+
+; ----------------------------------------------------
+; RAM_ORG + $1B2 : RAM VARIABLES
+; ----------------------------------------------------
+HP              .equ HOLD_BASE      ; HOLD ptr
+; ----------------------------------------------------
+; new definition pointers, generated by HEADER
+; ----------------------------------------------------
+LAST_NFA        .equ HOLD_BASE+2    ; used by REVEAL, IMMEDIATE
+LAST_THREAD     .equ HOLD_BASE+4    ;    "    REVEAL
+LAST_CFA        .equ HOLD_BASE+6    ;    "    DOES>, RECURSE
+LAST_PSP        .equ HOLD_BASE+8    ;    "    REVEAL
+; ----------------------------------------------------
+; FORTH interpreter variables
+; ----------------------------------------------------
+STATE           .equ HOLD_BASE+10   ; Interpreter state
+BASEADR         .equ HOLD_BASE+12   ; BASE
+CAPS            .equ HOLD_BASE+14   ; CAPS
+; ----------------------------------------------------
+SOURCE          .equ HOLD_BASE+16   ; len, org of input stream
+SOURCE_LEN      .equ HOLD_BASE+16   ;
+SOURCE_ORG      .equ HOLD_BASE+18   ;
+TOIN            .equ HOLD_BASE+20   ; CurrentInputBuffer pointer
+; ----------------------------------------------------
+; FORTH environment
+; ----------------------------------------------------
+DP              .equ HOLD_BASE+22   ; dictionnary pointer
+LASTVOC         .equ HOLD_BASE+24   ;
+CURRENT         .equ HOLD_BASE+26   ;
+CONTEXT         .equ HOLD_BASE+28   ; 8 words of depth ending
+NULL_WORD       .equ HOLD_BASE+44   ; with a null word in addition
+; ----------------------------------;
+
+    .IFDEF SD_CARD_LOADER
+; --------------------------------------------------
+; RAM_ORG + $1FC : RAM SD_CARD SD_BUF 4 + 512 bytes
+; --------------------------------------------------
+SD_BUF_I2CADR   .equ SD_BUF-4
+SD_BUF_I2CCNT   .equ SD_BUF-2
+SD_BUF          .equ HOLD_BASE+78
+SD_BUF_END      .equ SD_BUF+200h        ; 512bytes
+; --------------------------------------------------
+; RAM_ORG + $400 : free RAM
+; --------------------------------------------------
     .ENDIF
+
+    .IFDEF SD_CARD_LOADER
+; ---------------------------------------
+; VARIABLES that should be in RAM
+; ---------------------------------------
+        .IF RAM_LEN < 2048              ; if RAM < 2K (FR57xx) the variables below are in INFO space (FRAM)
+SD_ORG     .equ INFO_ORG+5Ah            ;
+        .ELSE                           ; if RAM >= 2k the variables below are in RAM
+SD_ORG     .equ SD_BUF_END+2            ; 1 word guard
+        .ENDIF
+
+    .org SD_ORG
+; ---------------------------------------
+; 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,
+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 command
+; ---------------------------------------
+SD_LOW_LEVEL    .equ SD_ORG+18
+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
+; ---------------------------------------
+; SD_BUF management
+; ---------------------------------------
+BufferPtr       .equ SD_LOW_LEVEL+10
+BufferLen       .equ SD_LOW_LEVEL+12
+; ---------------------------------------
+; FAT entry
+; ---------------------------------------
+SD_FAT_LEVEL    .equ SD_LOW_LEVEL+14
+ClusterL        .equ SD_FAT_LEVEL       ;
+ClusterH        .equ SD_FAT_LEVEL+2     ;
+LastFATsector   .equ SD_FAT_LEVEL+4     ;
+LastFAToffset   .equ SD_FAT_LEVEL+6     ;
+FATsector       .equ SD_FAT_LEVEL+8     ; not used
+; ---------------------------------------
+; DIR entry
+; ---------------------------------------
+DIRClusterL     .equ SD_FAT_LEVEL+10    ; contains the Cluster of current directory ; = 1 as FAT16 root directory
+DIRClusterH     .equ SD_FAT_LEVEL+12    ; contains the Cluster of current directory ; = 1 as FAT16 root directory
+DIREntryOfst    .equ SD_FAT_LEVEL+14
+; ---------------------------------------
+; Handle Pointer
+; ---------------------------------------
+CurrentHdl      .equ SD_FAT_LEVEL+16    ; contains the address of the last opened file structure, or 0
+; ---------------------------------------
+; Load file operation
+; ---------------------------------------
+PathName_PTR    .equ SD_FAT_LEVEL+18    ;
+PathName_END    .equ SD_FAT_LEVEL+20    ;
+; ---------------------------------------
+; Handle structure
+; ---------------------------------------
+FirstHandle     .equ SD_FAT_LEVEL+22
+; three handle tokens :
+; HDLB_Token= 0 : free handle
+;           = 1 : file to read
+;           = 2 : file updated (write)
+;           =-1 : LOAD"ed file (source file)
+
+; offset values
+HDLW_PrevHDL    .equ 0  ; previous handle
+HDLB_Token      .equ 2  ; token
+HDLB_ClustOfst  .equ 3  ; Current sector offset in current cluster (Byte)
+HDLL_DIRsect    .equ 4  ; Dir SectorL
+HDLH_DIRsect    .equ 6  ; Dir SectorH
+HDLW_DIRofst    .equ 8  ; SD_BUF offset of Dir entry
+HDLL_FirstClus  .equ 10 ; File First ClusterLo (identify the file)
+HDLH_FirstClus  .equ 12 ; File First ClusterHi (identify the file)
+HDLL_CurClust   .equ 14 ; Current ClusterLo
+HDLH_CurClust   .equ 16 ; Current ClusterHi
+HDLL_CurSize    .equ 18 ; written size / not yet read size (Long)
+HDLH_CurSize    .equ 20 ; written size / not yet read size (Long)
+HDLW_BUFofst    .equ 22 ; SD_BUF offset ; used by LOAD"
+HDLW_PrevLEN    .equ 24 ; previous LEN
+HDLW_PrevORG    .equ 26 ; previous ORG
+
+    .IF RAM_LEN < 2048     ; due to the lack of RAM, only 4 handles and PAD replaces SDIB
+HandleMax       .equ 4 ; and not 8 to respect INFO size (FRAM)
+HandleLenght    .equ 28
+HandlesLen      .equ handleMax*HandleLenght
+HandleEnd       .equ FirstHandle+handleMax*HandleLenght
+SD_END          .equ HandleEnd
+SDIB_I2CADR     .equ PAD_ORG-4
+SDIB_I2CCNT     .equ PAD_ORG-2
+SDIB_ORG        .equ PAD_ORG
+    .ELSE      ; RAM_Size >= 2k all is in RAM
+HandleMax       .equ 8
+HandleLenght    .equ 28
+HandlesLen      .equ handleMax*HandleLenght
+HandleEnd       .equ FirstHandle+handleMax*HandleLenght
+SDIB_I2CADR     .equ SDIB_ORG-4
+SDIB_I2CCNT     .equ SDIB_ORG-2
+SDIB_ORG        .equ HandleEnd+4
+SD_END          .equ SDIB_ORG+CIB_LEN
+    .ENDIF ; RAM_Size
+SD_LEN          .equ SD_END-SD_ORG
+    .ENDIF ; SD_CARD_LOADER
+
+    .org    INFO_ORG
+;-------------------------------------------------------------------------------
+; INFO(DCBA) >= 256 bytes memory map (FRAM) :
+;-------------------------------------------------------------------------------
+; FRAM INFO: KERNEL INIT CONSTANTS and VARIABLES
+; ----------------------------------------------
+FREQ_KHZ        .word FREQUENCY*1000    ; used to stabilize MCLK before start, see MSP430FRxxxx.asm
+    .IFDEF TERMINAL_I2C
+I2CSLAVEADR     .word MYSLAVEADR        ; on MSP430FR2xxx devices with BSL I2C, Slave address is FFA0h
+I2CSLAVEADR1    .word 0
+LPM_MODE        .word GIE+LPM4          ; LPM4 is the default mode for I2C TERMINAL
+    .ELSE ; TERMINAL_UART
+TERMBRW_RST     .word TERMBRW_INI       ; set by TERMINALBAUDRATE.inc
+TERMMCTLW_RST   .word TERMMCTLW_INI     ; set by TERMINALBAUDRATE.inc
+LPM_MODE        .word GIE+LPM0          ; LPM0 is the default mode for UART TERMINAL
     .ENDIF
-    .IFDEF CONDCOMP
-FADDON .SET FADDON | BIT0   ; Conditionnal Compilation
+USERSYS         .word -3                ; RESET use, value = -3 when compiling new kernel
+FORTHVERSION  .word VAL(SUBSTR(VER,1,0)); used by WARM
+INI_THREAD      .word THREADS           ; used by WORDS definition
+FORTHADDON      .word FADDON            ; used by FF_SPECS.f and to secure downloading of any source.f files.
+; --------------------------------------;
+DEEP_ORG                                ; MOV #DEEP_ORG,X     see "PUC 7" in forthMSP430FR.ASM
+; --------------------------------------;
+DEEP_TERM_VEC   .word TERMINAL_INT      ; MOV @X+,&TERM_VEC     ; TERMINAL_INT      --> FRAM TERM_VEC
+    .IFNDEF SD_CARD_LOADER
+DEEP_COLD       .word COLD_TERM         ; MOV @X+,&COLD_APP     ; COLD_TERM         --> FRAM COLD_APP
+DEEP_SOFT       .word INIT_SOFT_TERM    ; MOV @X+,&SOFT_APP     ; INIT_SOFT_TERM    --> FRAM SOFT_APP
+DEEP_HARD       .word INIT_TERM         ; MOV @X+,&HARD_APP     ; INIT_TERM         --> FRAM HARD_APP
+DEEP_SLEEP      .word RXON              ; MOV @X+,&SLEEP_APP    ; RXON              --> FRAM SLEEP_APP
+    .ELSE
+DEEP_COLD       .word COLD_TERM         ; MOV @X+,&COLD_APP     ; COLD_TERM         --> FRAM COLD_APP
+DEEP_SOFT       .word INIT_SOFT_SD      ; MOV @X+,&SOFT_APP     ; INIT_SOFT_SD      --> FRAM SOFT_APP
+DEEP_HARD       .word INIT_HARD_SD      ; MOV @X+,&HARD_APP     ; INIT_HARD_SD      --> FRAM HARD_APP
+DEEP_SLEEP      .word RXON              ; MOV @X+,&SLEEP_APP    ; RXON              --> FRAM SLEEP_APP
     .ENDIF
+DEEP_DP         .word ROMDICT           ; MOV @X+,&RST_DP       ; DEEP_DP           --> FRAM RST_DP
+DEEP_LASTVOC    .word lastvoclink       ; MOV @X+,&RST_LASTVOC  ; DEEP_LASTVOC      --> FRAM RST_LASTVOC
+DEEP_CURRENT    .word BODYFORTH         ; MOV @X+,&CURRENT      ; DEEP_CONTEXT      --> FRAM RST_CURRENT
+DEEP_CONTEXT    .word BODYFORTH         ; MOV @X+,&CONTEXT      ; DEEP_CONTEXT      --> FRAM RST_CONTEXT
+; --------------------------------------;
+PUC_ABORT_ORG                           ; MOV #PUC_ABORT_ORG,X
+; --------------------------------------;
+INIT_ACCEPT    .word ACCEPT+4           ; MOV @X+,&ACCEPT+2     ; INIT_ACCEPT       --> FRAM PFA_ACCEPT
+INIT_EMIT      .word EMIT+4             ; MOV @X+,&EMIT+2       ; INIT_EMIT         --> FRAM PFA_EMIT
+INIT_KEY       .word KEY+4              ; MOV @X+,&KEY+2        ; INIT_KEY          --> FRAM PFA_KEY
+INIT_CIB       .word TIB_ORG            ; MOV @X+,&CIB_ORG      ; INIT_CIB          --> FRAM CIB_ORG
+; --------------------------------------;
+FORTH_ORG                               ; MOV #FORTH_ORG,X
+; --------------------------------------;
+INIT_RSP        .word RSTACK            ; MOV @X+,RSP           ; INIT_RSP          --> RSP     (R1)
+    .SWITCH DTC
+        .CASE 1
+INIT_DOCOL      .word xDOCOL            ; MOV @X+,rDOCOL        ; INIT_DOCOL        --> rDOCOL  (R4)
+        .CASE 2
+INIT_DOCOL      .word EXIT              ; MOV @X+,rDOCOL        ; INIT_DOCOL        --> rDOCOL  (R4)
+        .CASE 3
+INIT_DOCOL      .word 0                 ; MOV @X+,R4            ; useless rDOCOL
+    .ENDCASE
+INIT_DODOES     .word xDODOES           ; MOV @X+,rDODOES       ; INIT_DODOES       --> rDODOES (R5)
+INIT_DOCON      .word xDOCON            ; MOV @X+,rDOCON        ; INIT_DOCON        --> rDOCON  (R6)
+INIT_DOVAR      .word RFROM             ; MOV @X+,rDOVAR        ; INIT_DOVAR        --> rDOVAR  (R7)
+INIT_CAPS       .word 32                ; MOV @X+,&CAPS         ; INIT_CAPS         --> RAM CAPS
+INIT_BASE       .word 10                ; MOV @X+,&BASE         ; INIT_BASE         --> RAM BASE
+INIT_LEAVE      .word LSTACK            ; MOV @X+,&LEAVEPTR     ; INIT_LEAVE        --> RAM LEAVEPTR
+; --------------------------------------;
+; FRAM RST values initialised by -1 SYS ;
+; --------------------------------------;
+RST_ORG                                 ; make room for RST values of:
+RST_LEN        .equ 16                  ; 16 bytes
+; --------------------------------------;
+    .IFNDEF SD_CARD_LOADER
+COLD_APP        .word COLD_TERM         ; COLD_APP
+SOFT_APP        .word INIT_SOFT_TERM    ; SOFT_APP
+HARD_APP        .word INIT_TERM         ; HARD_APP
+SLEEP_APP       .word RXON              ; SLEEP_APP
+    .ELSE
+COLD_APP        .word COLD_TERM         ; COLD_APP
+SOFT_APP        .word INIT_SOFT_SD      ; SOFT_APP
+HARD_APP        .word INIT_HARD_SD      ; HARD_APP
+SLEEP_APP       .word RXON              ; SLEEP_APP
+    .ENDIF
+; --------------------------------------;
+RST_DP          .word ROMDICT           ; program memory pointer
+; --------------------------------------;
+RST_LASTVOC     .word lastvoclink       ; last vocabulary link
+; --------------------------------------;
+RST_CURRENT     .word BODYFORTH         ; CURRENT word-set ptr
+; --------------------------------------;
+RST_CONTEXT     .word BODYFORTH         ; CONTEXT space (8 CELLS)
+                .word 0
+                .word 0
+                .word 0
+                .word 0
+                .word 0
+                .word 0
+                .word 0
+; --------------------------------------;
+                .word 0                 ; NULL_WORD, always 0
+; --------------------------------------;
+
+; --------------------------;
+; INFO_ORG + $5A : free use ;
+; --------------------------;
\ No newline at end of file
index 6282f4c..a3ee885 100644 (file)
@@ -1,6 +1,6 @@
 ; -*- coding: utf-8 -*-
 
-ROMDICT         ; init DDP with this current address
+ROMDICT         .equ $  ; init DDP with this current address
 lastvoclink     .equ voclink
 lastforthword   .equ forthlink
 lastasmword     .equ asmlink
@@ -81,32 +81,32 @@ lastasmword31   .equ asmlink31
 ; 0FF80h = SIGNATURES AREA, Deep_RST erases only 8 words from 0FF80h to 0FF90h
 ;----------------
     .org 0FF80h     ; JTAG signature (2 words)
-    .word -1   
+    .word -1
     .word -1
 ;    .org 0FF84h    ; BSL signature (2 words)
-    .word -1        
     .word -1
-;    .org 0FF88h    ; MSP430FR5xxx|MSP430FR6xxx JTAG_PASSWORD, up to 0FFFFh
-;    .org 0FF88h    ; MSP430FR5xxx|MSP430FR6xxx encapsulation signature (2 words)
+    .word -1
+;    .org 0FF88h    ; FR5xxx|FR6xxx JTAG_PASSWORD, up to 0FFFFh
+;    .org 0FF88h    ; FR5xxx|FR6xxx encapsulation signature (2 words)
+;    .org 0FF88h    ; FR215x|FR235x|FR247x|FR267x  BLS config signature + BSL config (2 words)
+    .word -1
+    .word -1
+    .word -1
+    .word -1
+;    .org 0FF90h    ; free (not erased by DEEP RESET)
+    .word -1
+    .word -1
+    .word -1
+    .word -1
     .word -1
     .word -1
     .word -1
     .word -1
-;    .org 0FF90h    ; free for 8 x I2C addresses UCBx
-    .word 0         ; I2C address mini = 10h, maxi = 0EEh (I2C-bus specification and user manual V6)
-    .word 0         ; (112 x I2C addresses with R/W flag = 0)
-    .word 0 
-    .word 0 
-    .word 0 
-    .word 0 
-    .word 0 
-    .word 0 
 
 ;----------------
-; FFA0h =  MSP430FR2355/2476 BSL I2C Address, a good idea for I2C_SLAVE_ADR(s) area, isn't it?
+; FFA0h =  FR215x|FR235x|FR247x|FR267x BSL I2C Address, a good idea for I2C_SLAVE_ADR(s) area, isn't it?
 ;----------------
-    .org 0FFA0h ;
-    .word 077h  ; --> MSP430FR2355/2476 BSL I2C 7 bits address (without R/W flag)
+    .word 077h  ; --> FR215x|FR235x|FR247x|FR267x BSL I2C 7 bits address (without R/W flag)
     .word 10h   ; --> UCBxI2COA0 8 bits address (with R/W flag=0)
     .word 12h   ; --> UCBxI2COA1
     .word 14h   ; --> UCBxI2COA2
@@ -116,7 +116,6 @@ lastasmword31   .equ asmlink31
 ;----------------
 ; FFACh = VECTORS AREA (lowest known vector interrupt)
 ;----------------
-    .org 0FFACh
     .word COLD
     .word COLD
     .word COLD
diff --git a/prog/SciTEUser.properties b/prog/SciTEUser.properties
new file mode 100644 (file)
index 0000000..d6cd09c
--- /dev/null
@@ -0,0 +1,11 @@
+PLAT_WIN=1
+PLAT_GTK=0
+position.maximize=1
+
+properties.directory.enable=1
+check.if.already.open=1
+
+save.session=1
+save.recent=1
+save.session=1
+session.bookmarks=1
diff --git a/prog/TERATERM.INI b/prog/TERATERM.INI
new file mode 100644 (file)
index 0000000..9ea4ef4
--- /dev/null
@@ -0,0 +1,972 @@
+[BG]
+; Use Eterm look-feel Background extension (on/off)
+BGEnable=on
+
+; Use AlphaBlend API (on/off)
+BGUseAlphaBlendAPI=on
+
+; Susie plugin path
+BGSPIPath=plugin
+
+; Fast window sizing/moving
+BGFastSizeMove=on
+
+; Flickerless window moving
+BGFlickerlessMove=on
+
+; If HideTitle=on and BGNoFrame=on, use window without frame
+; you can resize window with Alt + Shift + LeftDrag
+BGNoFrame=on
+
+; wildcard => random select
+BGThemeFile=theme\*.INI
+
+
+[Tera Term]
+;      Tera Term version number
+Version=4.100
+
+;      Language (English/Japanese/Russian/Korean/UTF-8)
+Language=English
+
+; User interface language file that includes message strings.
+; Tera Term uses built-in English message when the file or message is not found.
+UILanguageFile=lang\French.lng
+
+; Connecting timeout value(per seconds). No action if the value is zero.
+; Connecting socket could be canceled after the value timeout if the value is greater than zero.
+; The default value is zero(depends on Windows TCP/IP stack implementation).
+ConnectingTimeout=0
+
+; pasting string by clicking mouse right button disabled
+DisablePasteMouseRButton=off
+
+; pasting string by clicking mouse middle button disabled
+DisablePasteMouseMButton=on
+
+; confirm pasting string by clicking mouse right button
+ConfirmPasteMouseRButton=off
+
+; confirm changing clipboard string by clicking mouse right button
+ConfirmChangePaste=on
+ConfirmChangePasteCR=on
+PasteDialogSize=330,220
+ConfirmChangePasteStringFile=
+
+; Scroll out the current buffer when the clear screen does.
+ScrollWindowClearScreen=on
+
+; Reset scrollback on display activity
+AutoScrollOnlyInBottomLine=on
+
+; Starting the selection only by a left button.
+SelectOnlyByLButton=on
+
+; New connection by Alt-N Accelerator key
+AcceleratorNewConnection=on
+
+; Duplicate session by Alt-D Accelerator key disabled
+DisableAcceleratorDuplicateSession=off
+
+; Cygwin connection by Alt-G Accelerator key
+AcceleratorCygwinConnection=on
+
+; Send break by Alt-B Accelerator key disabled
+DisableAcceleratorSendBreak=off
+
+; New connection Menu disabled
+DisableMenuNewConnection=off
+
+; Duplicate session Menu disabled
+DisableMenuDuplicateSession=off
+
+; Send break Menu disabled
+DisableMenuSendBreak=off
+
+;      ANSI color definition (in the case FullColor=on)
+;      * UseTextColor should be off, or the background and foreground color of
+;        VTColor are assigned to color-number 0 and 7 respectively, even if
+;        they are specified in ANSIColor.
+;      * ANSIColor is a set of 4 values that are color-number(0--15),
+;        red-value(0--255), green-value(0--255) and blue-value(0--255).
+ANSIColor=0,0,0,0, 1,255,0,0, 2,0,255,0, 3,255,255,0, 4,128,128,255, 5,255,0,255, 6,0,255,255, 7,255,255,255, 8,64,64,64, 9,192,0,0, 10,0,192,0, 11,192,192,0, 12,64,64,192, 13,192,0,192, 14,0,192,192, 15,192,192,192
+; xterm
+; ANSIColor=0,0,0,0, 1,255,0,0, 2,0,255,0, 3,255,255,0, 4,92,92,255, 5,255,0,255, 6,0,255,255, 7,255,255,255, 8,127,127,127, 9,205,0,0, 10,0,205,0, 11,205,205,0, 12,0,0,238, 13,205,0,205, 14,0,205,205, 15,229,229,229
+; PuTTY
+;ANSIColor=0,0,0,0, 1,255,85,85, 2,85,255,85, 3,255,255,85, 4,85,85,255, 5,255,85,255, 6,85,255,255, 7,255,255,255, 8,85,85,85, 9,187,0,0, 10,0,187,0, 11,187,187,0, 12,0,0,187, 13,187,0,187, 14,0,187,187, 15,187,187,187
+; Tera Term Pro 2.3
+;ANSIColor=0,0,0,0, 1,255,0,0, 2,0,255,0, 3,255,255,0, 4,0,0,255, 5,255,0,255, 6,0,255,255, 7,255,255,255, 8,128,128,128, 9,128,0,0, 10,0,128,0, 11,128,128,0, 12,0,0,128, 13,128,0,128, 14,0,128,128, 15,192,192,192
+; Solarized (http://ethanschoonover.com/solarized)
+;ANSIColor=0,7,54,66, 1,203,75,22, 2,88,110,117, 3,101,123,131, 4,131,148,150, 5,108,113,196, 6,147,161,161, 7,253,246,227, 8,0,43,54, 9,220,50,47, 10,133,153,0, 11,181,137,0, 12,38,139,210, 13,211,54,130, 14,42,161,152, 15,238,232,213
+
+;      Enable continued-line copy
+EnableContinuedLineCopy=on
+
+; Mouse cursor type (arrow/ibeam/cross/hand)
+MouseCursor=IBEAM
+
+; Translucent window (0 - 255: transparency value)
+AlphaBlend=255
+
+; Cygwin install path
+CygwinDirectory=C:\cygwin64
+
+; Viewlog Editor path
+ViewlogEditor=C:\Windows\notepad.exe
+
+; Locale for Unicode
+;Locale=chs
+Locale=english
+
+; CodePage for Unicode
+CodePage=1252
+
+; Background color of text uses background color of screen (on/off)
+UseNormalBGColor=on
+
+;      Port type (serial/tcpip/namedpipe)
+Port=serial
+
+;      Window positions
+VTPos=-2147483648,-2147483648
+TEKPos=-2147483648,-2147483648
+
+;      Terminal size
+TerminalSize=128,42
+;      Terminal size=window size (on/off)
+TermIsWin=on
+;      Auto window resizing option (on/off)
+AutoWinResize=off
+
+;      Convert a received new-line (CR) char to CR/CRLF/LF/AUTO
+CRReceive=AUTO
+;      New-line code to be transmitted (CR/CRLF/LF)
+CRSend=CRLF
+
+;      Terminal ID
+TerminalID=VT100
+
+;      Local echo (on/off)
+LocalEcho=off
+
+;      Answerback
+Answerback=
+
+;      Auto window switching (VT<->TEK; on/off)
+AutoWinSwitch=off
+
+;      Kanji code to be received (SJIS/EUC/JIS)
+KanjiReceive=UTF-8
+;      JIS Katakana code to be received (7/8)
+KatakanaReceive=8
+
+;      Kanji code to be transmitted (SJIS/EUC/JIS)
+KanjiSend=UTF-8
+;      JIS Katakana to be transmitted (7/8)
+KatakanaSend=8
+;      Kanji-in sequence to be transmitted (@/B)
+KanjiIn=B
+;      Kanji-out sequence to be transmitted (J/B)
+KanjiOut=B
+
+;      Russian code set used in host
+RussHost=Windows
+;      Russian code set used in PC
+RussClient=Windows
+
+;      Window title
+Title=Tera Term
+
+;      Cursor shape (block/vertical/horizontal)
+CursorShape=block
+
+;      Hide title & menu bars and enable popup menu (on/off)
+HideTitle=off
+;      Hide menu bar and enable popup menu (on/off)
+PopupMenu=off
+
+;      Color mode (on/off)
+EnableANSIColor=on
+PcBoldColor=on
+Aixterm16Color=on
+Xterm256Color=on
+
+;      Enable scroll buffer (on/off)
+EnableScrollBuff=on
+;      Scroll buffer size
+ScrollBuffSize=40000
+
+;      Text and background colors
+;              for Normal characters
+VTColor=0,255,0,0,0,0
+;      Solarized Dark
+;VTColor=131,148,150,0,43,54
+;      Solarized Light
+;VTColor=101,123,131,253,246,227
+;
+;              for Bold characters
+EnableBoldAttrColor=on
+VTBoldColor=255,255,0,0,0,0
+;      Solarized Dark
+;VTBoldColor=147,161,161,7,54,66
+;      Solarized Light
+;VTBoldColor=88,110,117,238,232,213
+;
+;              for Blink characters
+EnableBlinkAttrColor=on
+VTBlinkColor=255,0,0,0,0,0
+;      Solarized Dark
+;VTBlinkColor=133,153,0,0,43,54
+;      Solarized Light
+;VTBlinkColor=133,153,0,253,246,227
+;
+;              for Reverse characters
+EnableReverseAttrColor=on
+VTReverseColor=0,0,0,255,255,255
+;      Solarized Dark
+;VTReverseColor=0,43,54,131,148,150
+;VTReverseColor=101,123,131,253,246,227
+;      Solarized Light
+;VTReverseColor=253,246,227,101,123,131
+;VTReverseColor=131,148,150,0,43,54
+;
+;              for URL(hyper link) text color
+EnableURLColor=on
+URLUnderline=on
+URLColor=0,255,255,0,0,0
+;      Solarized Dark
+;URLColor=181,137,0,0,43,54
+;      Solarized Light
+;URLColor=181,137,0,253,246,227
+;
+
+; Enable clickable URL
+EnableClickableUrl=off
+
+; Launched Browser
+;   Firefox example
+;     ClickableUrlBrowser=firefox
+;     ClickableUrlBrowserArg=-new-tab
+;   Opera example
+;     ClickableUrlBrowser=opera
+;     ClickableUrlBrowserArg=-newpage
+;   IE example
+;     ClickableUrlBrowser=iexplore
+;     ClickableUrlBrowserArg=
+;   Chrome example
+;     ClickableUrlBrowser=chrome
+;     ClickableUrlBrowserArg=
+ClickableUrlBrowser=
+ClickableUrlBrowserArg=
+
+
+;              for TEK window
+TEKColor=0,0,0,255,255,255
+
+;      TEK color emulation (on/off)
+TEKColorEmulation=off
+
+;      Font
+VTFont=Lucida Console,0,-13,0
+;      Bold style font (on/off)
+EnableBold=on
+;      Font for TEK window
+TEKFont=Terminal,0,-8,255
+;      Font quality(default/non-antialiased/antialiased/cleartype)
+FontQuality=nonantialiased
+
+;      Russian code set of the font
+RussFont=Windows
+
+;      Backspace key (BS/DEL)
+BSKey=BS
+;      transmit DEL by Delete key (on/off)
+DeleteKey=on
+
+;      Russian code set used in the keyboard driver
+RussKeyb=Windows
+
+;      Meta key (on/off/left/right)
+MetaKey=off
+
+;      Meta key sets MSB (off/raw/text)
+Meta8Bit=off
+
+;      Application keypad mode disabled.
+DisableAppKeypad=on
+
+;      Application cursor mode disabled.
+DisableAppCursor=on
+
+;      Serial port parameters
+;        Port number
+ComPort=4
+;        Baud rate
+BaudRate=4000000
+;        Parity (even/odd/none/mark/space)
+Parity=none
+;        Data (7/8)
+DataBit=8
+;        Stop (1/1.5/2)
+StopBit=1
+;        Flow control (x/hard/none)
+FlowCtrl=x
+;        Transmit delay per character (in msec)
+DelayPerChar=0
+;        Transmit delay per line (in msec)
+DelayPerLine=0
+
+;      TCP/IP parameters
+;        TCP port#
+TCPPort=10001
+;        Telnet flag (on/off)
+Telnet=off
+;        Telnet terminal type
+;TermType=vt100
+TermType=xterm
+
+;        Auto window closing option (on/off)
+AutoWinClose=on
+;        History list of hosts
+HistoryList=on
+
+; Binary flag for Send File (on/off)
+TransBin=off
+
+; without transfer dialog flag for Send File (on/off)
+FTHideDialog=off
+
+; Binary flag for Log (on/off)
+LogBinary=off
+; Log append (on/off)
+LogAppend=on
+; plain text flag for Log (on/off)
+LogTypePlainText=on
+; timestamp flag for Log (on/off)
+LogTimestamp=off
+; without transfer dialog flag for Log (on/off)
+LogHideDialog=off
+; Current all buffer included in first (on/off)
+LogIncludeScreenBuffer=off
+
+; Default Log file name. You can specify strftime format to here.
+LogDefaultName=teraterm.log
+; Default path to save the log file.
+LogDefaultPath=
+; Auto start logging with default log file name.
+LogAutoStart=off
+
+; === Log Rotate ===
+; Mode: 0(none), 1(size)
+LogRotate=0
+; Size
+LogRotateSize=0
+; Size type: 0(byte), 1(KB), 2(MB)
+LogRotateSizeType=0
+; Step: 0(none), >=1(count times)
+LogRotateStep=0
+
+; Deferred Log Write Mode (on/off)
+DeferredLogWriteMode=on
+
+
+; XMODEM option (checksum/crc/1k)
+XmodemOpt=checksum
+; Binary flag for XMODEM Receive and ZMODEM Send (on/off)
+XmodemBin=on
+
+; XMODEM receive command
+XmodemRcvCommand=
+
+; Default directory for file transfers
+FileDir=A:\projets\msp430\MSP430-FORTH
+
+; Filter for send file
+FileSendFilter=
+
+; SCP sending directory
+ScpSendDir=
+
+; Save Broadcast Command History
+BroadcastCommandHistory=on
+
+; Broadcast command enabling flag on the dialog window (on/off)
+AcceptBroadcast=on
+
+; Number of broadcast command history
+MaxBroadcatHistory=99
+
+;------ special options (see Tera Term help)
+
+; C1 (8-bit) control characters
+Accept8BitCtrl=on
+Send8BitCtrl=off
+
+; Accept remote-controlled window title changing (off/overwrite/ahead/last)
+AcceptTitleChangeRequest=overwrite
+
+; Wrong kanji-out ^[(H (Japanese only)
+AllowWrongSequence=off
+
+; Alternate screen buffer support
+AlternateScreenBuffer=on
+
+; Automatic serial reconnection when serial cable is inserted and extracted(Windows XP or later).
+AutoComPortReconnect=on
+
+; When serial port is specified with with /C= option and the port does not exist, 
+; Tera Term will wait for port connection. 
+WaitCom=off
+
+; Auto file renaming for downloading
+AutoFileRename=on
+
+; Auto text copying
+AutoTextCopy=on
+
+; Back wrap
+BackWrap=off
+
+; Beep by BEL (on/off/visual)
+Beep=on
+
+; Beep over-used
+BeepOverUsedTime=2
+BeepOverUsedCount=5
+BeepSuppressTime=5
+
+; Beep on connection & disconnection
+BeepOnConnect=off
+
+; B-Plus auto receive
+BPAuto=off
+
+; Escape all control characters in B-Plus
+BPEscCtl=off
+
+; B-Plus log
+BPLog=off
+
+; Clear serial port buffer when port opening
+ClearComBuffOnOpen=on
+
+; Clear screen when window is resized
+ClearOnResize=on
+
+; Clear screen after the connection is closed
+ClearScreenOnCloseConnection=off
+
+; Clipboard access from remote (on/off/read/write)
+ClipboardAccessFromRemote=off
+
+; "Disconnect?" warning
+ConfirmDisconnect=on
+
+; Control characters in kanji (Japanese only)
+CtrlInKanji=on
+
+; Confirm send a file when drag and drop
+ConfirmFileDragAndDrop=on
+
+; allow the sequences related to cursor control
+CursorCtrlSequence=off
+
+; Display all characters (debug mode)
+; Debug=off
+Debug=on
+; Debug mode type which can be selected by user.
+;   on|all   = All types
+;   off|none = Disabled debug mode
+;   normal   = usual teraterm debug mode
+;   hex      = hex output
+;   noout    = disable output completely
+DebugModes=all
+
+; Delimters for word selection
+;  (compatible with earlier versions of Tera Term)
+;  DelimList=$20
+;  DelimDBCS=off
+DelimList=$20!"#$24%&'()*+,:;<=>?@[\]^`{|}
+DelimDBCS=on
+
+; Disable mouse event tracking when Control-Key is pressed.
+DisableMouseTrackingByCtrl=on
+
+; Disable wheel to cursor translation when Control-Key is pressed.
+DisableWheelToCursorByCtrl=on
+
+; Line at a time mode
+EnableLineMode=on
+
+; Popup menu
+EnablePopupMenu=on
+
+; "Show menu bar" command
+EnableShowMenu=on
+
+; Enable the status line
+EnableStatusLine=on
+
+; High speed file transfer on serial connection.
+FileSendHighSpeedMode=on
+
+; Display "New Connection" dialog on startup
+HostDialogOnStartup=on
+
+; Enable IME / inline input (Japanese only)
+IME=on
+IMEInline=on
+
+IMERelatedCursor=off
+
+; Windows 7 jump list support
+JumpList=on
+
+; Join Split URL
+JoinSplitURL=off
+JoinSplitURLIgnoreEOLChar=\
+
+; Kermit log
+KmtLog=off
+; Kermit CAPAS: Ability to transmit and receive extended-length packets
+KmtLongPacket=off
+; Kermit CAPAS: Ability to accept "A" packets (file attributes)
+KmtFileAttr=off
+
+; Language selection
+LanguageSelection=on
+
+; Lock Terminal Unique ID
+LockTUID=on
+
+; Exclusive lock for log file
+LogLockExclusive=on
+
+; Max scroll buffer size
+MaxBuffSize=500000
+
+; Max serial port number
+MaxComPort=256
+
+; Max buffer size of OSC string
+MaxOSCBufferSize=4096
+
+; Mouse event tracking
+MouseEventTracking=on
+
+; Maximized window bug tweak
+MaximizedBugTweak=2
+
+; Nonblinking cursor
+NonblinkingCursor=off
+
+; Polygon cursor for KILLFOCUS
+KillFocusCursor=on
+
+; Delay for pass-thru printing (in secs)
+PassThruDelay=3
+
+; Direct pass-thru printing
+PassThruPort=
+
+; Delay for paste per each lines (in msec)
+PasteDelayPerLine=10
+
+; Allow the sequences related to printer control
+PrinterCtrlSequence=on
+
+; Printer font
+PrnFont=
+
+; Page margins for printing
+; (left, right, top and bottom in 1/100 inches)
+PrnMargin=50,50,50,50
+
+; Quick-VAN log
+QVLog=off
+
+; Quick-VAN window size
+QVWinSize=8
+
+; Russian code set of printer font
+RussPrint=Windows
+
+; Save VT Window position
+SaveVTWinPos=off
+
+; Max lines per one jump scroll
+ScrollThreshold=12
+
+; Scroll line count with mouse wheel button
+MouseWheelScrollLine=3
+
+; Text selection on window activation
+SelectOnActivate=on
+
+; Break signal length (in msec)
+SendBreakTime=1000
+
+; Startup macro
+StartupMacro=
+
+; Strict Key Mapping
+StrictKeyMapping=off
+
+; Tab Stop Modify Sequence (on/off/combination of HTS,HTS7,HTS8,TBC,TBC0,TBC3)
+TabStopModifySequence=on
+
+; TEK mouse code
+TEKGINMouseCode=32
+
+; Telnet Auto Detection
+TelAutoDetect=on
+
+; Telnet binary option
+TelBin=off
+
+; Telnet auto echo
+TelEcho=off
+
+; Telnet log
+TelLog=off
+
+; Standard telnet port
+TelPort=23
+
+; Keep-Alive packet sending interval on telnet connection (per second, 0=disabled)
+TelKeepAliveInterval=300
+
+; Auto setup for non-telnet
+TCPLocalEcho=off
+TCPCRSend=
+
+; Terminal Unique ID
+TerminalUID=FFFFFFFF
+
+; Title format
+; format ID:  5(000101) <title> - <host/port> VT/TEK
+; format ID: 13(001101) <host/port> - <title> VT/TEK
+; format ID: 29(011101) <host:tcpport/port> - <title> VT/TEK
+; format ID: 45(101101) <host/port:baud> - <title> VT/TEK
+; format ID: 61(111101) <host:tcpport/port:baud> - <title> VT/TEK
+TitleFormat=45
+
+; Allow the sequences related to title report (accept/ignore/empty)
+TitleReportSequence=empty
+
+; Translate mouse wheel to cursor key when application cursor mode
+TranslateWheelToCursor=on
+
+; Trim trailing new line character when pasting
+TrimTrailingNLonPaste=off
+
+; Unknown Unicode character handling
+UnknownUnicodeCharacterAsWide=off
+
+; Mapping of Unicode to DEC special character
+;   The sum of following values:
+;   1 : Box drawings (U+2500-U+257F)
+;   2 : Bullet (U+2022)
+;       Hyphenation point (U+2027)
+;       Light shade (25%) (U+2591)
+;       Medium shade (50%) (U+2592)
+;       Dark shade (75%) (U+2593)
+;       Black small square (U+25AA)
+;       Black vertical rectangle (U+25AE)
+;       Black verty small square (U+2B1D)
+;   4 : Middle dot (U+00B7)
+;       One dot leader (U+2024)
+;       Bullet operator (U+2219)
+UnicodeToDecSpMapping=3
+
+; White & black color conversion
+UseTextColor=off
+
+; VT Compatible Tab
+VTCompatTab=off
+
+; Space between characters (lines)
+VTFontSpace=0,0,0,0
+
+; Window Icon
+VTIcon=Default
+TEKIcon=Default
+
+; Scaling factors for printing (in pixels per inch)
+VTPPI=0,0
+TEKPPI=0,0
+
+; `wait4all' macro command
+Wait4allMacroCommand=off
+
+; allow the sequences related to window control
+WindowCtrlSequence=on
+
+; allow the sequences related to window report
+WindowReportSequence=on
+
+; [Window] menu
+WindowMenu=on
+
+; XMODEM log
+XmodemLog=off
+
+; XMODEM Timeout value(v1,v2,v3,v4,v5) by seconds
+;  v1=NAK mode: Timeout value for first packet
+;  v2=CRC mode: Timeout value for first packet
+;  v3=Timeout short time 
+;  v4=Timeout long time 
+;  v5=Timeout very long time 
+XmodemTimeouts=10,3,10,20,60
+
+; YMODEM log
+YmodemLog=off
+
+; YMODEM receive command
+YmodemRcvCommand=
+
+; YMODEM Timeout value(v1,v2,v3,v4,v5) by seconds
+;  v1=NAK mode: Timeout value for first packet
+;  v2=CRC mode: Timeout value for first packet
+;  v3=Timeout short time 
+;  v4=Timeout long time 
+;  v5=Timeout very long time 
+YmodemTimeouts=10,3,10,20,60
+
+; ZMODEM auto receive
+ZmodemAuto=off
+
+; ZMODEM parameters for sending
+ZmodemDataLen=1024
+ZmodemWinSize=32767
+
+; Escape all control characters in ZMODEM
+ZmodemEscCtl=off
+
+; ZMODEM log
+ZmodemLog=off
+
+; ZMODEM receive command
+ZmodemRcvCommand=rz
+
+; ZMODEM Timeout value(v1,v2,v3,v4) by seconds
+;  v1=Timeout value for serial port
+;  v2=Timeout value for TCP/IP port
+;  v3=Timeout value for initial packet
+;  v4=Timeout value for final packet
+ZmodemTimeouts=10,0,10,3
+NormalizeLineBreakOnPaste=off
+NotifyClipboardAccess=on
+LogTimestampFormat=%Y-%m-%d %H:%M:%S.%N
+LogTimestampUTC=off
+PrnConvFF=off
+ListHiddenFonts=on
+ISO2022ShiftFunction=on
+LogTimestampType=Local
+TerminalSpeed=38400
+
+;------ end of special options
+
+[TTSSH]
+; SSH enabled flag (1=enabled 0=disabled)
+Enabled=0
+
+; default login username (setup to authentication dialog)
+DefaultUserName=
+DefaultForwarding=
+
+; Cipher algorithm order
+;  2...DES(SSH1),    3...3DES(SSH1),   6...Blowfish(SSH1), 7...3DES-CBC,
+;  8...AES128-CBC,   9...AES192-CBC,   :...AES256-CBC,     ;...Blowfish-CBC,
+;  <...AES128-CTR,   =...AES192-CTR,   >...AES256-CTR,     ?...Arcfour,
+;  @...Arcfour128,   A...Arcfour256,   B...CAST128-CBC,    C...3DES-CTR,
+;  D...Blowfish-CTR, E...CAST128-CTR,  F...Camellia128-CBC,
+;  G...Camellia192-CBC, H...Camellia256-CBC, I...Camellia128-CTR,
+;  J...Camellia192-CTR, K...Camellia256-CTR
+;  0...Ciphers below this line are disabled.
+CipherOrder=K>H:J=G9I<F8C7D;EB3ML0A@?62
+
+; KEX algorithm order(SSH2)
+;  1...diffie-hellman-group1-sha1
+;  2...diffie-hellman-group14-sha1
+;  3...diffie-hellman-group-exchange-sha1
+;  4...diffie-hellman-group-exchange-sha256
+;  5...ecdh-sha2-nistp256
+;  6...ecdh-sha2-nistp384
+;  7...ecdh-sha2-nistp521
+;  8...diffie-hellman-group14-sha256
+;  9...diffie-hellman-group16-sha512
+;  :...diffie-hellman-group18-sha512
+;  0...KEXs below this line are disabled.
+KexOrder=567:9843210
+
+; minimal size in bits of an acceptable group in SSH_MSG_KEY_DH_GEX_REQUEST packet
+GexMinimalGroupSize=0
+
+; Host Key algorithm order(SSH2)
+;  2...ssh-rsa
+;  3...ssh-dss
+;  4...ecdh-sha2-nistp256
+;  5...ecdh-sha2-nistp384
+;  6...ecdh-sha2-nistp521
+;  7...ssh-ed25519
+;  0...below this line are disabled.
+HostKeyOrder=4567230
+
+; MAC algorithm order(SSH2)
+;  1...hmac-sha1
+;  2...hmac-md5
+;  3...hmac-sha1-96
+;  4...hmac-md5-96
+;  5...hmac-ripemd160@openssh.com
+;  6...hmac-sha2-256
+;  8...hmac-sha2-512
+;  0...below this line are disabled.
+MacOrder=86152@?:>;034<=
+
+; Compression algorithm order(SSH2)
+;  1...none
+;  2...zlib
+;  3...zlib@openssh.com(Delayed Compression)
+;  0...below this line are disabled.
+CompOrder=3210
+; packet compression level (0=none)
+Compression=0
+
+
+KnownHostsFiles=ssh_known_hosts
+DefaultRhostsLocalUserName=
+DefaultRhostsHostPrivateKeyFile=
+DefaultRSAPrivateKeyFile=
+DefaultAuthMethod=3
+; Debug message logging level of `TTSSH.LOG'.
+; The default value is disabled(0).
+;   LOG_LEVEL_FATAL      5
+;   LOG_LEVEL_ERROR      10
+;   LOG_LEVEL_URGENT     20
+;   LOG_LEVEL_WARNING    30
+;   LOG_LEVEL_NOTIFY     50
+;   LOG_LEVEL_INFO       80
+;   LOG_LEVEL_VERBOSE    100
+;   LOG_LEVEL_SSHDUMP    200
+LogLevel=0
+WriteBufferSize=2097152
+
+; SSH protocol version (1 or 2)
+ProtocolVersion=2
+
+; SSH heartbeat(keepalive): per second (0=disabled)
+HeartBeat=60
+
+; Remember password in memory (1=enabled 0=disabled)
+RememberPassword=1
+
+; Check supported auth methods with "none" method (1=enabled 0=disabled)
+CheckAuthListFirst=0
+
+; Enable connection to the server that has RSA key length less than 768 bit (1=enabled 0=disabled)
+EnableRsaShortKeyServer=0
+
+; SSH agent forwarding (pageant) (1=enabled 0=disabled)
+ForwardAgent=0
+
+; Confirm SSH agent forwarding (1=enabled 0=disabled)
+ForwardAgentConfirm=1
+
+; Verify host key by DNS (1=enabled 0=disabled)
+VerifyHostKeyDNS=0
+
+; SSH Icon
+SSHIcon=Default
+
+; Disable error popup-message box
+;  0 ... Default(not disabling)
+;  1 ... Sending forwarded data to a local port
+DisablePopupMessage=0
+
+; X11 Forwarding
+X11Display=
+
+; Host key rotation support (derived from OpenSSH 6.8)
+;  0 ... Disabled
+;  1 ... Enabled
+;  2 ... Enabled with User's confirmation
+UpdateHostkeys=0
+ForwardAgentNotify=1
+AuthBanner=1
+
+
+[TTProxy]
+ConnectionTimeout="10"
+SocksResolve="auto"
+TelnetHostnamePrompt=">> Host name: "
+TelnetUsernamePrompt="Username:"
+TelnetPasswordPrompt="Password:"
+TelnetConnectedMessage="-- Connected to "
+TelnetErrorMessage="!!!!!!!!"
+
+[TTXKanjiMenu]
+UseOneSetting=on
+
+[TTXttyrec]
+RecordStartSize=on
+
+[TTXRecurringCommand]
+Enable=off
+Command=
+Interval=300
+AddNewLine=off
+
+[Resize Menu]
+; 80x62
+;ResizeMenu1= 80, 24
+;
+; 120x52
+;ResizeMenu2=120, 52
+;
+; Width: no-change, Height: 52
+;ResizeMenu3=  0, 52
+;
+; Width: 80, Height: no-change
+;ResizeMenu4= 80,  0
+
+;------ Telnet host list
+;      Max number of hosts is 200.
+;      You can edit this list in the [Setup] TCP/IP dialog box.
+;[Hosts]
+;      Host name
+;Host1=myhost.example.com
+;      IPv4 address
+;Host2=192.0.2.1
+;      IPv6 address
+;Host3=[2001:db8:1:2:8401:02ff:fe03:0405]
+;      IPv6 address with interface number
+;Host4=[fe80::8401:02ff:fe03:0405%3]
+;      Host name with option
+;Host5=myhost.example.com /F=myhost.ini
+;      Host name with user, port and option
+;Host6=user@myhost.example.com:10022 /ssh
+;      URL
+;Host7=ssh://user@myhost.example.com
+;      COM1 port
+;Host8=/C=1
+;      Replay a file
+;Host9=/R=readme.txt
+
+[Hosts]
+Host1=192.168.0.11
+Host2=192.168.0.1
+Host3=192.168.4.2
+Host4=192.168.0.8
+Host5=192.168.1.8
+Host6=192.168.1.8/
+Host7=myhost.example.com
+Host8=192.0.2.1
+Host9=[2001:db8:1:2:8401:2ff:fe03:405]
+Host10=[fe80::8401:2ff:fe03:405%3]
+Host11=myhost.example.com /F=myhost.ini
+Host12=user@myhost.example.com:10022 /ssh
+Host13=ssh://user@myhost.example.com
+Host14=/C=1 ;serial port
+Host15=\\.\pipe\vmware-serial-port ;Named pipe
+Host16=/R=readme.txt ;replay a file