OSDN Git Service

V 3.2
[fast-forth/master.git] / MSP430-FORTH / MSP_EXP430FR5994 / PROG100K.4TH
index 0cce854..cc96786 100644 (file)
@@ -8,8 +8,130 @@ RST_STATE
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -155,19 +277,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -175,7 +311,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -186,7 +322,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -217,21 +353,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -377,19 +642,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -397,7 +676,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -408,7 +687,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -439,21 +718,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -599,19 +1007,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -619,7 +1041,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -630,7 +1052,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -661,21 +1083,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -821,19 +1372,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -841,7 +1406,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -852,7 +1417,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -883,20 +1448,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
-
-MARKER {RC5TOLCD}
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
@@ -1043,19 +1737,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -1063,7 +1771,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -1074,7 +1782,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -1105,21 +1813,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -1265,19 +2102,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -1285,7 +2136,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -1296,7 +2147,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -1327,21 +2178,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -1487,19 +2467,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -1507,7 +2501,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -1518,7 +2512,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -1549,21 +2543,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -1709,19 +2832,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -1729,7 +2866,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -1740,7 +2877,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -1771,20 +2908,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[UNDEFINED] STATE [IF]
+$1DBE CONSTANT STATE
+[THEN]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -1931,19 +3197,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -1951,7 +3231,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -1962,7 +3242,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -1993,21 +3273,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -2153,19 +3562,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -2173,7 +3596,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -2184,7 +3607,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -2215,21 +3638,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -2375,19 +3927,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -2395,7 +3961,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -2406,7 +3972,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -2437,21 +4003,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -2597,19 +4292,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -2617,7 +4326,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -2628,7 +4337,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -2659,21 +4368,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
 
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -2819,19 +4657,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -2839,7 +4691,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -2850,7 +4702,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -2881,21 +4733,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -3041,19 +5022,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -3061,7 +5056,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -3072,7 +5067,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -3103,21 +5098,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -3263,19 +5387,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -3283,7 +5421,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -3294,7 +5432,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -3325,21 +5463,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -3485,19 +5752,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -3505,7 +5786,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -3516,7 +5797,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -3547,21 +5828,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -3707,19 +6117,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -3727,7 +6151,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -3738,7 +6162,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -3769,21 +6193,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -3929,19 +6482,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -3949,7 +6516,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -3960,7 +6527,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -3991,21 +6558,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -4151,19 +6847,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -4171,7 +6881,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -4182,7 +6892,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -4213,20 +6923,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[THEN]
+
+[UNDEFINED] DEFER! [IF]
+CODE DEFER!
+MOV @R15+,2(R14)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [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]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -4373,19 +7212,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -4393,7 +7246,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -4404,7 +7257,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -4435,21 +7288,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -4595,19 +7577,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -4615,7 +7611,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -4626,7 +7622,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -4657,21 +7653,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -4817,19 +7942,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -4837,7 +7976,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -4848,7 +7987,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -4879,21 +8018,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -5039,19 +8307,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -5059,7 +8341,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -5070,7 +8352,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -5101,20 +8383,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -5261,19 +8672,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -5281,7 +8706,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -5292,7 +8717,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -5323,21 +8748,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -5483,19 +9037,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -5503,7 +9071,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -5514,7 +9082,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -5545,21 +9113,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -5705,19 +9402,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -5725,7 +9436,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -5736,7 +9447,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -5767,21 +9478,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -5927,19 +9767,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -5947,7 +9801,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -5958,7 +9812,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -5989,20 +9843,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -6149,19 +10132,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -6169,7 +10166,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -6180,7 +10177,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -6211,21 +10208,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -6371,19 +10497,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -6391,7 +10531,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -6402,7 +10542,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -6433,21 +10573,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -6593,19 +10862,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -6613,7 +10896,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -6624,7 +10907,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -6655,21 +10938,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -6815,19 +11227,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -6835,7 +11261,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -6846,7 +11272,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -6877,21 +11303,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -7037,19 +11592,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -7057,7 +11626,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -7068,7 +11637,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -7099,21 +11668,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -7259,19 +11957,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -7279,7 +11991,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -7290,7 +12002,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -7321,21 +12033,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -7481,19 +12322,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -7501,7 +12356,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -7512,7 +12367,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -7543,21 +12398,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -7703,19 +12687,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -7723,7 +12721,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -7734,7 +12732,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -7765,21 +12763,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -7925,19 +13052,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -7945,7 +13086,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -7956,7 +13097,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -7987,21 +13128,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -8147,19 +13417,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -8167,7 +13451,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -8178,7 +13462,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -8209,21 +13493,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -8369,19 +13782,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -8389,7 +13816,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -8400,7 +13827,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -8431,20 +13858,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+[UNDEFINED] >BODY [IF]
+CODE >BODY
+ADD #4,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -8591,19 +14147,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -8611,7 +14181,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -8622,7 +14192,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -8653,21 +14223,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -8813,19 +14512,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -8833,7 +14546,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -8844,7 +14557,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -8875,21 +14588,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -9035,19 +14877,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -9055,7 +14911,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -9066,7 +14922,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -9097,21 +14953,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -9257,19 +15242,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -9277,7 +15276,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -9288,7 +15287,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -9319,20 +15318,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+CODE THEN
+MOV &$1DC6,0(R14)
+MOV @R15+,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+[UNDEFINED] ELSE [IF]
+CODE ELSE
+ADD #4,&$1DC6
+MOV &$1DC6,R10
+MOV #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -9479,19 +15607,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -9499,7 +15641,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -9510,7 +15652,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -9541,21 +15683,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -9701,19 +15972,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -9721,7 +16006,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -9732,7 +16017,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -9763,21 +16048,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -9923,19 +16337,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -9943,7 +16371,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -9954,7 +16382,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -9985,21 +16413,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -10145,19 +16702,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -10165,7 +16736,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -10176,7 +16747,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -10207,20 +16778,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -10367,19 +17067,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -10387,7 +17101,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -10398,7 +17112,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -10429,21 +17143,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -10589,19 +17432,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -10609,7 +17466,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -10620,7 +17477,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -10651,21 +17508,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -10811,19 +17797,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -10831,7 +17831,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -10842,7 +17842,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -10873,21 +17873,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -11033,19 +18162,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -11053,7 +18196,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -11064,7 +18207,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -11095,21 +18238,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -11255,19 +18527,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -11275,7 +18561,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -11286,7 +18572,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -11317,21 +18603,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -11477,19 +18892,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -11497,7 +18926,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -11508,7 +18937,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -11539,21 +18968,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -11699,19 +19257,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -11719,7 +19291,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -11730,7 +19302,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -11761,21 +19333,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -11921,19 +19622,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -11941,7 +19656,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -11952,7 +19667,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -11983,21 +19698,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -12143,19 +19987,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -12163,7 +20021,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -12174,7 +20032,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -12205,21 +20063,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -12365,19 +20352,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -12385,7 +20386,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -12396,7 +20397,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -12427,21 +20428,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -12587,19 +20717,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -12607,7 +20751,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -12618,7 +20762,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -12649,21 +20793,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -12809,19 +21082,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -12829,7 +21116,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -12840,7 +21127,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -12871,21 +21158,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -13031,19 +21447,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -13051,7 +21481,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -13062,7 +21492,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -13093,21 +21523,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -13253,19 +21812,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -13273,7 +21846,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -13284,7 +21857,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -13315,21 +21888,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -13475,19 +22177,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -13495,7 +22211,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -13506,7 +22222,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -13537,20 +22253,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+[UNDEFINED] >BODY [IF]
+CODE >BODY
+ADD #4,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -13697,19 +22542,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -13717,7 +22576,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -13728,7 +22587,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -13759,21 +22618,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -13919,19 +22907,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -13939,7 +22941,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -13950,7 +22952,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -13981,21 +22983,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -14141,19 +23272,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -14161,7 +23306,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -14172,7 +23317,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -14203,21 +23348,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -14363,19 +23637,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -14383,7 +23671,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -14394,7 +23682,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -14425,20 +23713,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -14585,19 +24002,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -14605,7 +24036,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -14616,7 +24047,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -14647,21 +24078,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -14807,19 +24367,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -14827,7 +24401,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -14838,7 +24412,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -14869,21 +24443,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -15029,19 +24732,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -15049,7 +24766,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -15060,7 +24777,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -15091,21 +24808,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -15251,19 +25097,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -15271,7 +25131,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -15282,7 +25142,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -15313,20 +25173,149 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
-CODE START
-MOV #SLEEP,R9
-MOV #BACKGROUND,2(R9)
-MOV #WARM,R9
-MOV #APP_INIT,2(R9)
-MOV R9,R0
-ENDCODE 
+CODE START
+MOV #$4000,R9
+MOV #BACKGROUND,2(R9)
+MOV #WARM,R9
+MOV #SYS_INIT,2(R9)
+MOV R9,R0
+ENDCODE 
+
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
+[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
+
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
+MARKER {RC5TOLCD}
+
+[UNDEFINED] @ [IF]
+CODE @
+MOV @R14,R14
+MOV @R13+,R0
+ENDCODE
+[THEN]
 
-[DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [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] = [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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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]
 
-MARKER {RC5TOLCD}
 
 CODE 20_US
 BEGIN
@@ -15473,19 +25462,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -15493,7 +25496,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -15504,7 +25507,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -15535,21 +25538,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -15695,19 +25827,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -15715,7 +25861,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -15726,7 +25872,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -15757,21 +25903,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -15917,19 +26192,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -15937,7 +26226,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -15948,7 +26237,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -15979,21 +26268,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -16139,19 +26557,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -16159,7 +26591,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -16170,7 +26602,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -16201,21 +26633,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -16361,19 +26922,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -16381,7 +26956,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -16392,7 +26967,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -16423,21 +26998,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -16583,19 +27287,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -16603,7 +27321,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -16614,7 +27332,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -16645,21 +27363,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -16805,19 +27652,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -16825,7 +27686,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -16836,7 +27697,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -16867,21 +27728,150 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
+ECHO
+            ; downloading RC5toLCD.4th is done
+RST_HERE    ; this app is protected against <reset>
+
+
+RST_STATE
+
 [DEFINED] {RC5TOLCD} [IF] {RC5TOLCD} [THEN]
 
+[UNDEFINED] MARKER [IF]
+: MARKER
+CREATE
+HI2LO
+MOV &$1DC8,0(R10)
+SUB #2,R8
+MOV R8,2(R10)
+ADD #4,&$1DC6
+LO2HI
+DOES>
+HI2LO
+MOV @R1+,R13
+MOV @R14+,&$180E
+MOV @R14,&$180C
+MOV @R15+,R14
+MOV #RST_STATE,R0
+ENDCODE
+[THEN]
+
 MARKER {RC5TOLCD}
 
+[UNDEFINED] @ [IF]
+CODE @
+MOV @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]
+
+[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 #$404C,0(R14)
+ADD #2,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] THEN [IF]
+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 #$4048,-4(R10)
+MOV R10,0(R14)
+SUB #2,R10
+MOV R10,R14
+MOV @R13+,R0
+ENDCODE IMMEDIATE
+[THEN]
+
+[UNDEFINED] DEFER [IF]
+
+: DEFER
+CREATE
+HI2LO
+MOV #$4030,-4(R10)
+MOV #$402C,-2(R10)
+MOV @R1+,R13
+MOV @R13+,R0
+ENDCODE
+[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 20_US
 BEGIN
     BEGIN
@@ -17027,19 +28017,33 @@ BEGIN
 AGAIN
 ENDASM
 
+ASM SYS_OUT
+    MOV #WARM,R9
+    ADD #4,R9
+    MOV R9,R0
+ENDASM
+
 CODE STOP
-BW1 MOV #SLEEP,R9
+BW1 MOV #$4000,R9
     ADD #4,R9
     MOV R9,-2(R9)
+    MOV #WARM,R9
+    MOV #SYS_OUT,2(R9)
+    BIC.B #4,&$20A
+    BIC.B #4,&$20C
+    MOV #0,&$3C0
+    MOV #0,&$340
+    MOV #0,&$342
+    CALL #$400E
 COLON
-['] WARM >BODY IS WARM
 ECHO
-." RC5toLCD is removed. type START to restart"
-COLD
+." RC5toLCD is removed,"
+."  type START to restart"
+ WARM
 ;
 
-CODE APP_INIT
-MOV #%1011010100,&$3C0
+CODE SYS_INIT
+MOV #%10_1101_0100,&$3C0
 $1806 @ 16000 = [IF]
     MOV #1,&$3E0
 [THEN]
@@ -17047,7 +28051,7 @@ $1806 @ 24000 = [IF]
     MOV #2,&$3E0
 [THEN]
     MOV #19,&$3D2
-    MOV #%01100000,&$3C6
+MOV #%0110_0000,&$3C6
     MOV #10,&$3D6
     BIS.B #$20,&$204
     BIS.B #$20,&$20A
@@ -17058,7 +28062,7 @@ $1806 @ 24000 = [IF]
     BIS.B #4,&$20A
     BIC.B #4,&$20C
     MOV #RC5_INT,&$FFDE
-    MOV #%0100010100,&$340
+MOV #%01_0001_0100,&$340
     MOV ##3276,&$352
     MOV #%10000,&$342
     MOV #WDT_INT,&$FFEA
@@ -17089,19 +28093,17 @@ COLON
     ['] CR >BODY IS CR
     ['] EMIT >BODY IS EMIT
     ." RC5toLCD is running. Type STOP to quit"
-    ABORT
+    PWR_STATE ABORT
 ;
 
 CODE START
-MOV #SLEEP,R9
+MOV #$4000,R9
 MOV #BACKGROUND,2(R9)
 MOV #WARM,R9
-MOV #APP_INIT,2(R9)
+MOV #SYS_INIT,2(R9)
 MOV R9,R0
 ENDCODE 
 
-
-
 ECHO
             ; downloading RC5toLCD.4th is done
 RST_HERE    ; this app is protected against <reset>