[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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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
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]
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
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
['] 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>